diff --git a/desktop/package.json b/desktop/package.json index e1c8245..10e5f53 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -31,6 +31,7 @@ "dependencies": { "@tauri-apps/api": "^2", "@tauri-apps/plugin-opener": "^2", + "@xstate/react": "^6.1.0", "clsx": "^2.1.1", "date-fns": "^4.1.0", "framer-motion": "^12.36.0", @@ -42,6 +43,8 @@ "tailwind-merge": "^3.5.0", "tweetnacl": "^1.0.3", "uuid": "^11.0.0", + "valtio": "^2.3.1", + "xstate": "^5.28.0", "zustand": "^5.0.11" }, "devDependencies": { diff --git a/desktop/pnpm-lock.yaml b/desktop/pnpm-lock.yaml index be637c2..4ee559e 100644 --- a/desktop/pnpm-lock.yaml +++ b/desktop/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@tauri-apps/plugin-opener': specifier: ^2 version: 2.5.3 + '@xstate/react': + specifier: ^6.1.0 + version: 6.1.0(@types/react@19.2.14)(react@19.2.4)(xstate@5.28.0) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -47,9 +50,15 @@ importers: uuid: specifier: ^11.0.0 version: 11.1.0 + valtio: + specifier: ^2.3.1 + version: 2.3.1(@types/react@19.2.14)(react@19.2.4) + xstate: + specifier: ^5.28.0 + version: 5.28.0 zustand: specifier: ^5.0.11 - version: 5.0.11(@types/react@19.2.14)(react@19.2.4) + version: 5.0.11(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) devDependencies: '@playwright/test': specifier: ^1.58.2 @@ -986,6 +995,15 @@ packages: '@vitest/utils@2.1.8': resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} + '@xstate/react@6.1.0': + resolution: {integrity: sha512-ep9F0jGTI63B/jE8GHdMpUqtuz7yRebNaKv8EMUaiSi29NOglywc2X2YSOV/ygbIK+LtmgZ0q9anoEA2iBSEOw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + xstate: ^5.28.0 + peerDependenciesMeta: + xstate: + optional: true + agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -1582,6 +1600,9 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + proxy-compare@3.0.1: + resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1766,10 +1787,36 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + use-isomorphic-layout-effect@1.2.1: + resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true + valtio@2.3.1: + resolution: {integrity: sha512-ZsOaOEn0U9IJ96cAj3CZ3GjwpN3EJdjsi1PT4PREuB+Pcqfsczu16isT5DT1UrmHbk4PtLjk8kwNEHuR2CX56w==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + react: '>=18.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + vite-node@2.1.8: resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1929,6 +1976,9 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xstate@5.28.0: + resolution: {integrity: sha512-Iaqq6ZrUzqeUtA3hC5LQKZfR8ZLzEFTImMHJM3jWEdVvXWdKvvVLXZEiNQWm3SCA9ZbEou/n5rcsna1wb9t28A==} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -2632,6 +2682,16 @@ snapshots: loupe: 3.2.1 tinyrainbow: 1.2.0 + '@xstate/react@6.1.0(@types/react@19.2.14)(react@19.2.4)(xstate@5.28.0)': + dependencies: + react: 19.2.4 + use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.14)(react@19.2.4) + use-sync-external-store: 1.6.0(react@19.2.4) + optionalDependencies: + xstate: 5.28.0 + transitivePeerDependencies: + - '@types/react' + agent-base@7.1.4: {} ansi-regex@5.0.1: {} @@ -3198,6 +3258,8 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 + proxy-compare@3.0.1: {} + punycode@2.3.1: {} react-dom@19.2.4(react@19.2.4): @@ -3369,8 +3431,25 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + use-isomorphic-layout-effect@1.2.1(@types/react@19.2.14)(react@19.2.4): + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + use-sync-external-store@1.6.0(react@19.2.4): + dependencies: + react: 19.2.4 + uuid@11.1.0: {} + valtio@2.3.1(@types/react@19.2.14)(react@19.2.4): + dependencies: + proxy-compare: 3.0.1 + optionalDependencies: + '@types/react': 19.2.14 + react: 19.2.4 + vite-node@2.1.8(lightningcss@1.31.1): dependencies: cac: 6.7.14 @@ -3490,9 +3569,12 @@ snapshots: xmlchars@2.2.0: {} + xstate@5.28.0: {} + yallist@3.1.1: {} - zustand@5.0.11(@types/react@19.2.14)(react@19.2.4): + zustand@5.0.11(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)): optionalDependencies: '@types/react': 19.2.14 react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4)