├── .gitignore ├── README.md ├── lifecycle-playground ├── .gitignore ├── README.md ├── eslint.config.js ├── index.html ├── package-lock.json ├── package.json ├── public │ └── vite.svg ├── src │ ├── App.jsx │ ├── assets │ │ └── react.svg │ ├── components │ │ ├── LifecycleLogger.jsx │ │ └── LifecycleLoggerClass.jsx │ ├── index.css │ └── main.jsx └── vite.config.js ├── notes-app ├── .gitignore ├── README.md ├── eslint.config.js ├── index.html ├── package-lock.json ├── package.json ├── public │ ├── screen.png │ └── vite.svg ├── src │ ├── App.jsx │ ├── assets │ │ └── react.svg │ ├── components │ │ ├── Note.jsx │ │ ├── NoteForm.jsx │ │ ├── NoteList.jsx │ │ └── inputs │ │ │ ├── SelectInput.jsx │ │ │ ├── TextAreaInput.jsx │ │ │ └── TextInput.jsx │ ├── index.css │ └── main.jsx └── vite.config.js ├── rating-ui ├── .gitignore ├── README.md ├── eslint.config.js ├── index.html ├── package-lock.json ├── package.json ├── public │ ├── screen.png │ └── vite.svg ├── src │ ├── App.jsx │ ├── assets │ │ └── react.svg │ ├── components │ │ ├── Button.jsx │ │ ├── Modal.jsx │ │ ├── Rating.jsx │ │ └── Star.jsx │ ├── index.css │ └── main.jsx └── vite.config.js ├── shopping-cart-ui ├── .gitignore ├── README.md ├── eslint.config.js ├── index.html ├── package-lock.json ├── package.json ├── public │ ├── images │ │ ├── product-1.png │ │ ├── product-2.png │ │ ├── product-3.png │ │ ├── product-4.png │ │ ├── product-5.png │ │ └── product-6.png │ ├── screen.png │ └── vite.svg ├── src │ ├── App.jsx │ ├── assets │ │ └── react.svg │ ├── components │ │ ├── Header.jsx │ │ ├── ProductCard.jsx │ │ └── ProductList.jsx │ ├── context │ │ ├── CartContext.jsx │ │ └── ProductContext.jsx │ ├── data │ │ └── db.json │ ├── index.css │ └── main.jsx └── vite.config.js └── simple-timer ├── .gitignore ├── README.md ├── eslint.config.js ├── index.html ├── package-lock.json ├── package.json ├── public ├── screen.png └── vite.svg ├── src ├── App.jsx ├── assets │ └── react.svg ├── components │ ├── Timer.jsx │ ├── TimerControls.jsx │ └── TimerDisplay.jsx ├── index.css └── main.jsx └── vite.config.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/README.md -------------------------------------------------------------------------------- /lifecycle-playground/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/.gitignore -------------------------------------------------------------------------------- /lifecycle-playground/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/README.md -------------------------------------------------------------------------------- /lifecycle-playground/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/eslint.config.js -------------------------------------------------------------------------------- /lifecycle-playground/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/index.html -------------------------------------------------------------------------------- /lifecycle-playground/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/package-lock.json -------------------------------------------------------------------------------- /lifecycle-playground/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/package.json -------------------------------------------------------------------------------- /lifecycle-playground/public/vite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/public/vite.svg -------------------------------------------------------------------------------- /lifecycle-playground/src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/src/App.jsx -------------------------------------------------------------------------------- /lifecycle-playground/src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/src/assets/react.svg -------------------------------------------------------------------------------- /lifecycle-playground/src/components/LifecycleLogger.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/src/components/LifecycleLogger.jsx -------------------------------------------------------------------------------- /lifecycle-playground/src/components/LifecycleLoggerClass.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/src/components/LifecycleLoggerClass.jsx -------------------------------------------------------------------------------- /lifecycle-playground/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/src/index.css -------------------------------------------------------------------------------- /lifecycle-playground/src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/src/main.jsx -------------------------------------------------------------------------------- /lifecycle-playground/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/lifecycle-playground/vite.config.js -------------------------------------------------------------------------------- /notes-app/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/.gitignore -------------------------------------------------------------------------------- /notes-app/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/README.md -------------------------------------------------------------------------------- /notes-app/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/eslint.config.js -------------------------------------------------------------------------------- /notes-app/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/index.html -------------------------------------------------------------------------------- /notes-app/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/package-lock.json -------------------------------------------------------------------------------- /notes-app/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/package.json -------------------------------------------------------------------------------- /notes-app/public/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/public/screen.png -------------------------------------------------------------------------------- /notes-app/public/vite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/public/vite.svg -------------------------------------------------------------------------------- /notes-app/src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/App.jsx -------------------------------------------------------------------------------- /notes-app/src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/assets/react.svg -------------------------------------------------------------------------------- /notes-app/src/components/Note.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/components/Note.jsx -------------------------------------------------------------------------------- /notes-app/src/components/NoteForm.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/components/NoteForm.jsx -------------------------------------------------------------------------------- /notes-app/src/components/NoteList.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/components/NoteList.jsx -------------------------------------------------------------------------------- /notes-app/src/components/inputs/SelectInput.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/components/inputs/SelectInput.jsx -------------------------------------------------------------------------------- /notes-app/src/components/inputs/TextAreaInput.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/components/inputs/TextAreaInput.jsx -------------------------------------------------------------------------------- /notes-app/src/components/inputs/TextInput.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/components/inputs/TextInput.jsx -------------------------------------------------------------------------------- /notes-app/src/index.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | 3 | body { 4 | @apply bg-purple-900; 5 | } 6 | -------------------------------------------------------------------------------- /notes-app/src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/src/main.jsx -------------------------------------------------------------------------------- /notes-app/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/notes-app/vite.config.js -------------------------------------------------------------------------------- /rating-ui/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/.gitignore -------------------------------------------------------------------------------- /rating-ui/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/README.md -------------------------------------------------------------------------------- /rating-ui/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/eslint.config.js -------------------------------------------------------------------------------- /rating-ui/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/index.html -------------------------------------------------------------------------------- /rating-ui/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/package-lock.json -------------------------------------------------------------------------------- /rating-ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/package.json -------------------------------------------------------------------------------- /rating-ui/public/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/public/screen.png -------------------------------------------------------------------------------- /rating-ui/public/vite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/public/vite.svg -------------------------------------------------------------------------------- /rating-ui/src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/App.jsx -------------------------------------------------------------------------------- /rating-ui/src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/assets/react.svg -------------------------------------------------------------------------------- /rating-ui/src/components/Button.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/components/Button.jsx -------------------------------------------------------------------------------- /rating-ui/src/components/Modal.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/components/Modal.jsx -------------------------------------------------------------------------------- /rating-ui/src/components/Rating.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/components/Rating.jsx -------------------------------------------------------------------------------- /rating-ui/src/components/Star.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/components/Star.jsx -------------------------------------------------------------------------------- /rating-ui/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/index.css -------------------------------------------------------------------------------- /rating-ui/src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/src/main.jsx -------------------------------------------------------------------------------- /rating-ui/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/rating-ui/vite.config.js -------------------------------------------------------------------------------- /shopping-cart-ui/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/.gitignore -------------------------------------------------------------------------------- /shopping-cart-ui/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/README.md -------------------------------------------------------------------------------- /shopping-cart-ui/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/eslint.config.js -------------------------------------------------------------------------------- /shopping-cart-ui/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/index.html -------------------------------------------------------------------------------- /shopping-cart-ui/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/package-lock.json -------------------------------------------------------------------------------- /shopping-cart-ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/package.json -------------------------------------------------------------------------------- /shopping-cart-ui/public/images/product-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/images/product-1.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/images/product-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/images/product-2.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/images/product-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/images/product-3.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/images/product-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/images/product-4.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/images/product-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/images/product-5.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/images/product-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/images/product-6.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/screen.png -------------------------------------------------------------------------------- /shopping-cart-ui/public/vite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/public/vite.svg -------------------------------------------------------------------------------- /shopping-cart-ui/src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/App.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/assets/react.svg -------------------------------------------------------------------------------- /shopping-cart-ui/src/components/Header.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/components/Header.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/src/components/ProductCard.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/components/ProductCard.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/src/components/ProductList.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/components/ProductList.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/src/context/CartContext.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/context/CartContext.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/src/context/ProductContext.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/context/ProductContext.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/src/data/db.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/data/db.json -------------------------------------------------------------------------------- /shopping-cart-ui/src/index.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | -------------------------------------------------------------------------------- /shopping-cart-ui/src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/src/main.jsx -------------------------------------------------------------------------------- /shopping-cart-ui/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/shopping-cart-ui/vite.config.js -------------------------------------------------------------------------------- /simple-timer/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/.gitignore -------------------------------------------------------------------------------- /simple-timer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/README.md -------------------------------------------------------------------------------- /simple-timer/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/eslint.config.js -------------------------------------------------------------------------------- /simple-timer/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/index.html -------------------------------------------------------------------------------- /simple-timer/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/package-lock.json -------------------------------------------------------------------------------- /simple-timer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/package.json -------------------------------------------------------------------------------- /simple-timer/public/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/public/screen.png -------------------------------------------------------------------------------- /simple-timer/public/vite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/public/vite.svg -------------------------------------------------------------------------------- /simple-timer/src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/src/App.jsx -------------------------------------------------------------------------------- /simple-timer/src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/src/assets/react.svg -------------------------------------------------------------------------------- /simple-timer/src/components/Timer.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/src/components/Timer.jsx -------------------------------------------------------------------------------- /simple-timer/src/components/TimerControls.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/src/components/TimerControls.jsx -------------------------------------------------------------------------------- /simple-timer/src/components/TimerDisplay.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/src/components/TimerDisplay.jsx -------------------------------------------------------------------------------- /simple-timer/src/index.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | -------------------------------------------------------------------------------- /simple-timer/src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/src/main.jsx -------------------------------------------------------------------------------- /simple-timer/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradtraversy/modern-react-course-sandbox/HEAD/simple-timer/vite.config.js --------------------------------------------------------------------------------