diff --git a/exercises/react-vite/02-setting-up-your-environment/02-solution/public/vite.svg b/exercises/react-vite/02-setting-up-your-environment/02-solution/public/vite.svg
new file mode 100644
index 000000000..e7b8dfb1b
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/02-solution/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.css b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.css
new file mode 100644
index 000000000..b9d355df2
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.css
@@ -0,0 +1,42 @@
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+.logo {
+ height: 6em;
+ padding: 1.5em;
+ will-change: filter;
+ transition: filter 300ms;
+}
+.logo:hover {
+ filter: drop-shadow(0 0 2em #646cffaa);
+}
+.logo.react:hover {
+ filter: drop-shadow(0 0 2em #61dafbaa);
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ a:nth-of-type(2) .logo {
+ animation: logo-spin infinite 20s linear;
+ }
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
diff --git a/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.tsx b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.tsx
index e8a36121a..07a24095d 100644
--- a/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.tsx
+++ b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/App.tsx
@@ -1,6 +1,7 @@
import { useState } from "react"
import reactLogo from "./assets/react.svg"
import viteLogo from "./assets/vite.svg"
+import "./App.css"
function App() {
const [count, setCount] = useState(0)
diff --git a/exercises/react-vite/02-setting-up-your-environment/02-solution/src/assets/react.svg b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/assets/react.svg
new file mode 100644
index 000000000..6c87de9bb
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/exercises/react-vite/02-setting-up-your-environment/02-solution/src/tsconfig.node.json b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/tsconfig.node.json
new file mode 100644
index 000000000..abcd7f0da
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/02-solution/src/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "Bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/exercises/react-vite/02-setting-up-your-environment/03-solution/public/vite.svg b/exercises/react-vite/02-setting-up-your-environment/03-solution/public/vite.svg
new file mode 100644
index 000000000..e7b8dfb1b
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/03-solution/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.css b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.css
new file mode 100644
index 000000000..b9d355df2
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.css
@@ -0,0 +1,42 @@
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+.logo {
+ height: 6em;
+ padding: 1.5em;
+ will-change: filter;
+ transition: filter 300ms;
+}
+.logo:hover {
+ filter: drop-shadow(0 0 2em #646cffaa);
+}
+.logo.react:hover {
+ filter: drop-shadow(0 0 2em #61dafbaa);
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ a:nth-of-type(2) .logo {
+ animation: logo-spin infinite 20s linear;
+ }
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
diff --git a/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.tsx b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.tsx
index e8a36121a..07a24095d 100644
--- a/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.tsx
+++ b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/App.tsx
@@ -1,6 +1,7 @@
import { useState } from "react"
import reactLogo from "./assets/react.svg"
import viteLogo from "./assets/vite.svg"
+import "./App.css"
function App() {
const [count, setCount] = useState(0)
diff --git a/exercises/react-vite/02-setting-up-your-environment/03-solution/src/assets/react.svg b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/assets/react.svg
new file mode 100644
index 000000000..6c87de9bb
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/exercises/react-vite/02-setting-up-your-environment/03-solution/src/tsconfig.node.json b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/tsconfig.node.json
new file mode 100644
index 000000000..abcd7f0da
--- /dev/null
+++ b/exercises/react-vite/02-setting-up-your-environment/03-solution/src/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "Bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/exercises/react-vite/09-making-http-requests/01-problem/package.json b/exercises/react-vite/09-making-http-requests/01-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/01-problem/package.json
+++ b/exercises/react-vite/09-making-http-requests/01-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/01-solution/package.json b/exercises/react-vite/09-making-http-requests/01-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/01-solution/package.json
+++ b/exercises/react-vite/09-making-http-requests/01-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/02-problem/package.json b/exercises/react-vite/09-making-http-requests/02-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/02-problem/package.json
+++ b/exercises/react-vite/09-making-http-requests/02-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/02-solution/package.json b/exercises/react-vite/09-making-http-requests/02-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/02-solution/package.json
+++ b/exercises/react-vite/09-making-http-requests/02-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/03-problem/package.json b/exercises/react-vite/09-making-http-requests/03-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/03-problem/package.json
+++ b/exercises/react-vite/09-making-http-requests/03-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/03-solution/package.json b/exercises/react-vite/09-making-http-requests/03-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/03-solution/package.json
+++ b/exercises/react-vite/09-making-http-requests/03-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/04-problem/package.json b/exercises/react-vite/09-making-http-requests/04-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/04-problem/package.json
+++ b/exercises/react-vite/09-making-http-requests/04-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/04-solution/package.json b/exercises/react-vite/09-making-http-requests/04-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/04-solution/package.json
+++ b/exercises/react-vite/09-making-http-requests/04-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/05-problem/package.json b/exercises/react-vite/09-making-http-requests/05-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/05-problem/package.json
+++ b/exercises/react-vite/09-making-http-requests/05-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/09-making-http-requests/05-solution/package.json b/exercises/react-vite/09-making-http-requests/05-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/09-making-http-requests/05-solution/package.json
+++ b/exercises/react-vite/09-making-http-requests/05-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/10-nested-routes/01-solution/package.json b/exercises/react-vite/10-nested-routes/01-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/10-nested-routes/01-solution/package.json
+++ b/exercises/react-vite/10-nested-routes/01-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/10-nested-routes/02-solution/package.json b/exercises/react-vite/10-nested-routes/02-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/10-nested-routes/02-solution/package.json
+++ b/exercises/react-vite/10-nested-routes/02-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/11-controlled-vs-uncontrolled/01-problem/package.json b/exercises/react-vite/11-controlled-vs-uncontrolled/01-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/11-controlled-vs-uncontrolled/01-problem/package.json
+++ b/exercises/react-vite/11-controlled-vs-uncontrolled/01-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/11-controlled-vs-uncontrolled/01-solution/package.json b/exercises/react-vite/11-controlled-vs-uncontrolled/01-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/11-controlled-vs-uncontrolled/01-solution/package.json
+++ b/exercises/react-vite/11-controlled-vs-uncontrolled/01-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/11-controlled-vs-uncontrolled/02-problem/package.json b/exercises/react-vite/11-controlled-vs-uncontrolled/02-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/11-controlled-vs-uncontrolled/02-problem/package.json
+++ b/exercises/react-vite/11-controlled-vs-uncontrolled/02-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/11-controlled-vs-uncontrolled/02-solution/package.json b/exercises/react-vite/11-controlled-vs-uncontrolled/02-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/11-controlled-vs-uncontrolled/02-solution/package.json
+++ b/exercises/react-vite/11-controlled-vs-uncontrolled/02-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/11-controlled-vs-uncontrolled/03-problem/package.json b/exercises/react-vite/11-controlled-vs-uncontrolled/03-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/11-controlled-vs-uncontrolled/03-problem/package.json
+++ b/exercises/react-vite/11-controlled-vs-uncontrolled/03-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/11-controlled-vs-uncontrolled/03-solution/package.json b/exercises/react-vite/11-controlled-vs-uncontrolled/03-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/11-controlled-vs-uncontrolled/03-solution/package.json
+++ b/exercises/react-vite/11-controlled-vs-uncontrolled/03-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/12-testing/01-problem/package.json b/exercises/react-vite/12-testing/01-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/12-testing/01-problem/package.json
+++ b/exercises/react-vite/12-testing/01-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/12-testing/01-solution/package.json b/exercises/react-vite/12-testing/01-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/12-testing/01-solution/package.json
+++ b/exercises/react-vite/12-testing/01-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/12-testing/02-problem/package.json b/exercises/react-vite/12-testing/02-problem/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/12-testing/02-problem/package.json
+++ b/exercises/react-vite/12-testing/02-problem/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/exercises/react-vite/12-testing/02-solution/package.json b/exercises/react-vite/12-testing/02-solution/package.json
index 9fd59f15d..b9b87d6f2 100644
--- a/exercises/react-vite/12-testing/02-solution/package.json
+++ b/exercises/react-vite/12-testing/02-solution/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "api":"./node_modules/.bin/place-my-order-api -p 7070",
+ "api": "./node_modules/.bin/place-my-order-api -p 7070",
"typecheck": "tsc",
"eslint": "eslint vite.config.ts src",
"prettier": "prettier --check vite.config.ts src",
diff --git a/src/react-vite/09-making-http-requests/making-http-requests.md b/src/react-vite/09-making-http-requests/making-http-requests.md
index ed5100467..952f38a79 100644
--- a/src/react-vite/09-making-http-requests/making-http-requests.md
+++ b/src/react-vite/09-making-http-requests/making-http-requests.md
@@ -165,7 +165,7 @@ Before we begin requesting data from our API, we need to install the `place-my-o
npm install place-my-order-api@1
```
-✏️ Next add an API script to your `package.json`. NOTE: if on windows, change `/` to `\\`.
+✏️ Next add an API script to your `package.json`. NOTE: if on Windows, change `/` to `\\`.
@sourceref ../../../exercises/react-vite/09-making-http-requests/01-problem/package.json
@highlight 7, only