diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2d5e163..b030dbbc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,66 +8,72 @@ pnpmfileChecksum: sha256-pOgi3Q/PioTN3OH46Bs1frJvlmD0aNz/ZYybp7xmlws= importers: - games/age-of-dwarves/guide: + public/games/age-of-dwarves/guide: dependencies: '@lilith/ui-feedback': specifier: ^1.4.0 - version: 1.4.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.4.3(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-layout': specifier: ^1.3.0 - version: 1.3.0(e82a90042af67dd0ce41495954e6fa05) + version: 1.3.2(6ec195ecd58aa308cf50eef607aa03a6) '@lilith/ui-primitives': specifier: ^1.2.16 - version: 1.2.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.2.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-style-effects': specifier: ^1.1.0 - version: 1.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.1.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-theme': specifier: ^1.5.0 - version: 1.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-typography': specifier: ^1.1.7 - version: 1.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.1.7(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@magic-civ/engine-ts': specifier: workspace:* - version: link:../../../src/packages/engine-ts + version: link:../../../../src/packages/engine-ts '@magic-civ/guide-engine': specifier: workspace:* - version: link:../../../src/packages/guide + version: link:../../../../src/packages/guide '@magic-civ/physics-rs': specifier: workspace:* - version: link:../../../src/simulator + version: link:../../../../src/simulator + '@magic-civ/web-civmap': + specifier: workspace:* + version: link:../../../../src/packages/web-civmap ioredis: specifier: ^5.10.1 version: 5.10.1 react: specifier: ^19.0.0 - version: 19.2.4 + version: 19.2.5 react-dom: specifier: ^19.0.0 - version: 19.2.4(react@19.2.4) + version: 19.2.5(react@19.2.5) react-router-dom: specifier: ^7.0.0 - version: 7.13.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) styled-components: specifier: ^6.0.0 - version: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) three: specifier: ^0.183.2 version: 0.183.2 devDependencies: '@lilith/eslint-plugin-file-length': specifier: ^1.1.1 - version: 1.1.2(eslint@10.0.3) + version: 1.1.2(eslint@10.2.0) '@lilith/eslint-plugin-import-alias': specifier: ^1.2.2 - version: 1.2.2(eslint@10.0.3) + version: 1.2.2(eslint@10.2.0) + '@lilith/playwright-e2e-docker': + specifier: ^2.0.2 + version: 2.0.3(@playwright/test@1.59.1) '@playwright/test': specifier: ^1.59.0 - version: 1.59.0 + version: 1.59.1 '@types/node': specifier: ^25.5.0 - version: 25.5.0 + version: 25.6.0 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -79,16 +85,16 @@ importers: version: 0.183.1 '@vitejs/plugin-react': specifier: ^4.0.0 - version: 4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) + version: 4.7.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) eslint: specifier: ^10.0.0 - version: 10.0.3 + version: 10.2.0 eslint-plugin-react-hooks: specifier: ^7.0.0 - version: 7.0.1(eslint@10.0.3) + version: 7.0.1(eslint@10.2.0) eslint-plugin-unused-imports: specifier: ^4.0.0 - version: 4.4.1(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3) + version: 4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -97,16 +103,171 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.0.0 - version: 8.57.1(eslint@10.0.3)(typescript@5.9.3) + version: 8.58.1(eslint@10.2.0)(typescript@5.9.3) vite: specifier: ^6.0.0 - version: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + version: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) vite-plugin-wasm: specifier: ^3.6.0 - version: 3.6.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) + version: 3.6.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) vitest: specifier: ^4.1.0 - version: 4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) + version: 4.1.4(@types/node@25.6.0)(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + + public/games/age-of-elves/guide: + dependencies: + '@lilith/ui-feedback': + specifier: ^1.4.0 + version: 1.4.3(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-layout': + specifier: ^1.3.0 + version: 1.3.2(6ec195ecd58aa308cf50eef607aa03a6) + '@lilith/ui-primitives': + specifier: ^1.2.16 + version: 1.2.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-style-effects': + specifier: ^1.1.0 + version: 1.1.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-theme': + specifier: ^1.5.0 + version: 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-typography': + specifier: ^1.1.7 + version: 1.1.7(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@magic-civ/engine-ts': + specifier: workspace:* + version: link:../../../../src/packages/engine-ts + '@magic-civ/guide-engine': + specifier: workspace:* + version: link:../../../../src/packages/guide + react: + specifier: ^19.0.0 + version: 19.2.5 + react-dom: + specifier: ^19.0.0 + version: 19.2.5(react@19.2.5) + react-router-dom: + specifier: ^7.0.0 + version: 7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + styled-components: + specifier: ^6.0.0 + version: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + devDependencies: + '@lilith/eslint-plugin-file-length': + specifier: ^1.1.1 + version: 1.1.2(eslint@10.2.0) + '@lilith/eslint-plugin-import-alias': + specifier: ^1.2.2 + version: 1.2.2(eslint@10.2.0) + '@lilith/playwright-e2e-docker': + specifier: ^2.0.2 + version: 2.0.3(@playwright/test@1.59.1) + '@types/node': + specifier: ^25.5.0 + version: 25.6.0 + '@types/react': + specifier: ^19.0.0 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.0.0 + version: 19.2.3(@types/react@19.2.14) + '@vitejs/plugin-react': + specifier: ^4.0.0 + version: 4.7.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + eslint: + specifier: ^10.0.0 + version: 10.2.0 + eslint-plugin-react-hooks: + specifier: ^7.0.0 + version: 7.0.1(eslint@10.2.0) + eslint-plugin-unused-imports: + specifier: ^4.0.0 + version: 4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0) + typescript: + specifier: ^5.7.0 + version: 5.9.3 + typescript-eslint: + specifier: ^8.0.0 + version: 8.58.1(eslint@10.2.0)(typescript@5.9.3) + vite: + specifier: ^6.0.0 + version: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) + + public/games/age-of-kzzkyt/guide: + dependencies: + '@lilith/ui-feedback': + specifier: ^1.4.0 + version: 1.4.3(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-layout': + specifier: ^1.3.0 + version: 1.3.2(6ec195ecd58aa308cf50eef607aa03a6) + '@lilith/ui-primitives': + specifier: ^1.2.16 + version: 1.2.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-style-effects': + specifier: ^1.1.0 + version: 1.1.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-theme': + specifier: ^1.5.0 + version: 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-typography': + specifier: ^1.1.7 + version: 1.1.7(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@magic-civ/engine-ts': + specifier: workspace:* + version: link:../../../../src/packages/engine-ts + '@magic-civ/guide-engine': + specifier: workspace:* + version: link:../../../../src/packages/guide + react: + specifier: ^19.0.0 + version: 19.2.5 + react-dom: + specifier: ^19.0.0 + version: 19.2.5(react@19.2.5) + react-router-dom: + specifier: ^7.0.0 + version: 7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + styled-components: + specifier: ^6.0.0 + version: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + devDependencies: + '@lilith/eslint-plugin-file-length': + specifier: ^1.1.1 + version: 1.1.2(eslint@10.2.0) + '@lilith/eslint-plugin-import-alias': + specifier: ^1.2.2 + version: 1.2.2(eslint@10.2.0) + '@types/node': + specifier: ^25.5.0 + version: 25.6.0 + '@types/react': + specifier: ^19.0.0 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.0.0 + version: 19.2.3(@types/react@19.2.14) + '@vitejs/plugin-react': + specifier: ^4.0.0 + version: 4.7.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + eslint: + specifier: ^10.0.0 + version: 10.2.0 + eslint-plugin-react-hooks: + specifier: ^7.0.0 + version: 7.0.1(eslint@10.2.0) + eslint-plugin-unused-imports: + specifier: ^4.0.0 + version: 4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0) + typescript: + specifier: ^5.7.0 + version: 5.9.3 + typescript-eslint: + specifier: ^8.0.0 + version: 8.58.1(eslint@10.2.0)(typescript@5.9.3) + vite: + specifier: ^6.0.0 + version: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) src/packages/engine-ts: dependencies: @@ -122,41 +283,41 @@ importers: dependencies: '@lilith/ui-feedback': specifier: ^1.4.0 - version: 1.4.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.4.3(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-layout': specifier: ^1.3.0 - version: 1.3.0(@eslint/js@10.0.1)(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(typescript@5.9.3))(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))(eslint-config-prettier@10.1.8)(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8)(prettier@3.8.1))(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))(vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))) + version: 1.3.2(6ec195ecd58aa308cf50eef607aa03a6) '@lilith/ui-primitives': specifier: ^1.2.16 - version: 1.2.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.2.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-style-effects': specifier: ^1.1.0 - version: 1.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.1.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/ui-typography': specifier: ^1.1.7 - version: 1.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.1.7(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@magic-civ/engine-ts': specifier: workspace:* version: link:../engine-ts react: specifier: ^19.0.0 - version: 19.2.4 + version: 19.2.5 react-dom: specifier: ^19.0.0 - version: 19.2.4(react@19.2.4) + version: 19.2.5(react@19.2.5) react-router-dom: specifier: ^7.0.0 - version: 7.13.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) styled-components: specifier: ^6.0.0 - version: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) three: specifier: ^0.183.2 version: 0.183.2 devDependencies: '@types/node': specifier: ^25.5.0 - version: 25.5.0 + version: 25.6.0 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -168,16 +329,56 @@ importers: version: 0.183.1 '@vitejs/plugin-react': specifier: ^4.0.0 - version: 4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) + version: 4.7.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) typescript: specifier: ^5.7.0 version: 5.9.3 vite: specifier: ^6.0.0 - version: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + version: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) vitest: specifier: ^4.1.0 - version: 4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) + version: 4.1.4(@types/node@25.6.0)(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + + src/packages/web-civmap: + dependencies: + '@lilith/ui-theme': + specifier: ^1.5.1 + version: 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@magic-civ/engine-ts': + specifier: workspace:* + version: link:../engine-ts + react: + specifier: ^19.0.0 + version: 19.2.5 + react-dom: + specifier: ^19.0.0 + version: 19.2.5(react@19.2.5) + react-router-dom: + specifier: ^7.0.0 + version: 7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + styled-components: + specifier: ^6.0.0 + version: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + three: + specifier: ^0.183.2 + version: 0.183.2 + devDependencies: + '@types/node': + specifier: ^25.5.0 + version: 25.6.0 + '@types/react': + specifier: ^19.0.0 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.0.0 + version: 19.2.3(@types/react@19.2.14) + '@types/three': + specifier: ^0.183.1 + version: 0.183.1 + typescript: + specifier: ^5.7.0 + version: 5.9.3 src/simulator: {} @@ -269,14 +470,14 @@ packages: '@dimforge/rapier3d-compat@0.12.0': resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==} - '@emnapi/core@1.9.0': - resolution: {integrity: sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==} + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.9.0': - resolution: {integrity: sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==} + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} - '@emnapi/wasi-threads@1.2.0': - resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} '@emotion/is-prop-valid@1.4.0': resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} @@ -293,8 +494,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.4': - resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -305,8 +506,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.4': - resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -317,8 +518,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.4': - resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -329,8 +530,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.4': - resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -341,8 +542,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.4': - resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -353,8 +554,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.4': - resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -365,8 +566,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.4': - resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -377,8 +578,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.4': - resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -389,8 +590,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.4': - resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -401,8 +602,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.4': - resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -413,8 +614,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.4': - resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -425,8 +626,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.4': - resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -437,8 +638,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.4': - resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -449,8 +650,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.4': - resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -461,8 +662,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.4': - resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -473,8 +674,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.4': - resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -485,8 +686,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.4': - resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -497,8 +698,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.4': - resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -509,8 +710,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.4': - resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -521,8 +722,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.4': - resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -533,8 +734,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.4': - resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -545,8 +746,8 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.4': - resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -557,8 +758,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.4': - resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -569,8 +770,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.4': - resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -581,8 +782,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.4': - resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -593,8 +794,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.4': - resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -609,16 +810,16 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.3': - resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.3': - resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} + '@eslint/config-helpers@0.5.5': + resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.1': - resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/js@10.0.1': @@ -630,12 +831,12 @@ packages: eslint: optional: true - '@eslint/object-schema@3.0.3': - resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.6.1': - resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@humanfs/core@0.19.1': @@ -674,174 +875,141 @@ packages: resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@lilith/chart-math@1.0.1': - resolution: {integrity: sha512-bxw27DfDmxPP4euqCrOkNiLKrsVIs1uzNxlXIyOBzTkCVo+CG2FZvu35HccanzeapTPFOmoazzpfhuEnREScYA==} + resolution: {integrity: sha512-bxw27DfDmxPP4euqCrOkNiLKrsVIs1uzNxlXIyOBzTkCVo+CG2FZvu35HccanzeapTPFOmoazzpfhuEnREScYA==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fchart-math/-/1.0.1/chart-math-1.0.1.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/configs@2.4.1': - resolution: {integrity: sha512-kor5yIydez1teS60P7Pyqf4Zoh9lsikp76/Q868NFabuyxzgzC12b4eC6XKT+XSIUasnehbAPMj8QwFqkIDA5Q==} + resolution: {integrity: sha512-kor5yIydez1teS60P7Pyqf4Zoh9lsikp76/Q868NFabuyxzgzC12b4eC6XKT+XSIUasnehbAPMj8QwFqkIDA5Q==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fconfigs/-/2.4.1/configs-2.4.1.tgz} peerDependencies: '@eslint/js': '>=9.0.0' - '@lilith/dev-console': '*' '@typescript-eslint/eslint-plugin': '>=8.0.0' '@typescript-eslint/parser': '>=8.0.0' - '@vitejs/plugin-react': '*' eslint: '>=9.0.0' eslint-config-prettier: '>=9.0.0' eslint-import-resolver-typescript: '>=3.6.0' eslint-plugin-import: '>=2.26.0' - eslint-plugin-jsx-a11y: '*' eslint-plugin-prettier: '>=5.0.0' - eslint-plugin-react: '*' - eslint-plugin-react-hooks: '*' eslint-plugin-unused-imports: '>=4.0.0' prettier: '>=3.0.0' tsup: '>=8.0.0' typescript: '>=5.0.0' typescript-eslint: '>=8.0.0' - vite: '*' - vitest: '*' - peerDependenciesMeta: - '@lilith/dev-console': - optional: true - '@vitejs/plugin-react': - optional: true - eslint-plugin-jsx-a11y: - optional: true - eslint-plugin-react: - optional: true - eslint-plugin-react-hooks: - optional: true - tsup: - optional: true - vite: - optional: true - vitest: - optional: true '@lilith/eslint-plugin-file-length@1.1.2': - resolution: {integrity: sha512-ABa5RDDAS7kIlvQDiHhqKeZYkKONrKXOBoSa6OgkZMT9rDyffqZCYGJoXf2c3Emvr43v/lhKhr5fhYV+AbTsQQ==} + resolution: {integrity: sha512-ABa5RDDAS7kIlvQDiHhqKeZYkKONrKXOBoSa6OgkZMT9rDyffqZCYGJoXf2c3Emvr43v/lhKhr5fhYV+AbTsQQ==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Feslint-plugin-file-length/-/1.1.2/eslint-plugin-file-length-1.1.2.tgz} peerDependencies: eslint: '>=8.0.0' '@lilith/eslint-plugin-import-alias@1.2.2': - resolution: {integrity: sha512-4qH4WEYySgqM+i+7Cgloj2on2grrCa0QBm9M7Fwm65eVnzPFdBl1CFbCjGk8QRqausRDR/AD5Vr43GHnfuag6Q==} + resolution: {integrity: sha512-4qH4WEYySgqM+i+7Cgloj2on2grrCa0QBm9M7Fwm65eVnzPFdBl1CFbCjGk8QRqausRDR/AD5Vr43GHnfuag6Q==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Feslint-plugin-import-alias/-/1.2.2/eslint-plugin-import-alias-1.2.2.tgz} peerDependencies: eslint: '>=9.0.0' '@lilith/format@1.0.0': - resolution: {integrity: sha512-IQSZARV8wmyTFjzRYnrNDg0wxYLA7wykxLuvgO4smRN8pyjKPubnNwEzxH70CG/TCz/20yvMUO6vOmx3e1geug==} + resolution: {integrity: sha512-IQSZARV8wmyTFjzRYnrNDg0wxYLA7wykxLuvgO4smRN8pyjKPubnNwEzxH70CG/TCz/20yvMUO6vOmx3e1geug==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fformat/-/1.0.0/format-1.0.0.tgz} + + '@lilith/playwright-e2e-docker@2.0.3': + resolution: {integrity: sha512-RUCsLQkOVj7HAvqLqI0BYJrKZ40s4PApXr72gpTDYDGDa5iHel9Uukvn4QDdXZvlqaU4ciaOkFFW43fMjLBPOg==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fplaywright-e2e-docker/-/2.0.3/playwright-e2e-docker-2.0.3.tgz} + peerDependencies: + '@playwright/test': '>=1.50.0' '@lilith/ui-design-tokens@1.2.1': - resolution: {integrity: sha512-AWMV1SDBBarbMqFMNZmD1PmxckWmXFoZ7kq+ntnS8V9CLNIJteLIzBhszpR4xfBuLrZVVwNoG6yr0j/dQuewvw==} + resolution: {integrity: sha512-AWMV1SDBBarbMqFMNZmD1PmxckWmXFoZ7kq+ntnS8V9CLNIJteLIzBhszpR4xfBuLrZVVwNoG6yr0j/dQuewvw==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-design-tokens/-/1.2.1/ui-design-tokens-1.2.1.tgz} - '@lilith/ui-feedback@1.4.2': - resolution: {integrity: sha512-p8ueX3NJjoSVt0VXpBE+qRUtmIi8RtnXRrxzhbaw9AfB4PV/tZre8KKnxyUuVnsOaQJjPTBpyps3dGwr6dAJxg==} + '@lilith/ui-feedback@1.4.3': + resolution: {integrity: sha512-ztauSGSMJJcYamU+TLKdZ9nhZT0Cc0EjU/TZDFpaMHXxLCiaHbbBdSD5ILy+HuggJpzI6hL1RExZ6W/ovKywkg==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-feedback/-/1.4.3/ui-feedback-1.4.3.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 - '@lilith/ui-glassmorphism@1.1.6': - resolution: {integrity: sha512-YnWPs/UZuDCmSxmW8eYfmTqhdZF2x0nGIHT2bXYBHnHGxqF9bYIHChtrmCBGPWxIeMpEdoyVXAwDjW2aKHbwNg==} + '@lilith/ui-glassmorphism@1.1.7': + resolution: {integrity: sha512-gB40+2CxwWYF7JkFbvzeg5mWRIAS0JpDgTGtXY06w8UYGu9LvLxzAvskcO2sXGK4j7r1vqdoPdQDW9+357jp0g==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-glassmorphism/-/1.1.7/ui-glassmorphism-1.1.7.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 - '@lilith/ui-layout@1.3.0': - resolution: {integrity: sha512-mu0GRw6RnUoXNW+akAU6pvNklfGt+UaELK95PaML9Fhrowj1DvMEBL39YTcWf4SH+IAwVE4QfT/G5tbCGUskYw==} + '@lilith/ui-layout@1.3.2': + resolution: {integrity: sha512-A3lyOJhHQw7zZpqtYdyzX2Qax85pEUOZeZOZpf0lic79Z9ZcnJAv+X6+8ZKl4nVukE7fwkzyqdkyOpI6FOHJ2A==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-layout/-/1.3.2/ui-layout-1.3.2.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/ui-motion@2.2.0': - resolution: {integrity: sha512-DVuw92rw1/aLGxiKHC+O2P+GJAfWijKirbhaho1UfVuylyN1QO9Ln8u2QGQdqI90KQqfJIAXMygq887XybDfug==} + resolution: {integrity: sha512-DVuw92rw1/aLGxiKHC+O2P+GJAfWijKirbhaho1UfVuylyN1QO9Ln8u2QGQdqI90KQqfJIAXMygq887XybDfug==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-motion/-/2.2.0/ui-motion-2.2.0.tgz} peerDependencies: framer-motion: '>=11.0.0' react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@lilith/ui-primitives@1.2.18': - resolution: {integrity: sha512-5gC9l1tFrltB+kTl9bJAXe7Ohz8k34LokZW/xALHzN6d1MPX/SYJWq3fokmWMK18d9jAqVtZtFxMFvfw9kJ08Q==} + '@lilith/ui-primitives@1.2.19': + resolution: {integrity: sha512-oD9cPUcq/WCPalRnU2dqQG1S9uqPZBW2qHFdq5iOOezr+VakxMwGHJDP26TQB5HY5xBko1xTtVEbCDhOz6Yrlg==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-primitives/-/1.2.19/ui-primitives-1.2.19.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/ui-style-effects@1.1.0': - resolution: {integrity: sha512-0eAMXLmysS+sNk1mPOh809MzK85KDXw+c5D3BoPH1dFkZNI0PgXBzJOFjbDAwVOQV5LFTlgcfIvVNHNbHeKl/w==} + resolution: {integrity: sha512-0eAMXLmysS+sNk1mPOh809MzK85KDXw+c5D3BoPH1dFkZNI0PgXBzJOFjbDAwVOQV5LFTlgcfIvVNHNbHeKl/w==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-style-effects/-/1.1.0/ui-style-effects-1.1.0.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/ui-styled-components@6.3.8': - resolution: {integrity: sha512-LwPv+imGGl/DOPTx3ZrRpO3DmLTGoLuF7vdjfnv8lebd3eQb6gEdvNjWxfNwpaX2KKkA0AwwBg1Dph9MKJQaKA==} + resolution: {integrity: sha512-LwPv+imGGl/DOPTx3ZrRpO3DmLTGoLuF7vdjfnv8lebd3eQb6gEdvNjWxfNwpaX2KKkA0AwwBg1Dph9MKJQaKA==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-styled-components/-/6.3.8/ui-styled-components-6.3.8.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 '@lilith/ui-styled-components@6.3.9': - resolution: {integrity: sha512-Qh5U2el6aoAs+XuybFviLBm5AlUQmzkNr911nTr2uvLAGIOCnnEy2iedKYMz3OCHnocnIme6cOeakhAByCfMjg==} + resolution: {integrity: sha512-Qh5U2el6aoAs+XuybFviLBm5AlUQmzkNr911nTr2uvLAGIOCnnEy2iedKYMz3OCHnocnIme6cOeakhAByCfMjg==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-styled-components/-/6.3.9/ui-styled-components-6.3.9.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 '@lilith/ui-theme@1.3.6': - resolution: {integrity: sha512-ePNUt3RjDgPg4H3OIo5Ncbfr0b69gtSUP2A7x74dt2z/VDe8h/tszjkRpwTL2mFtOUi+P/+tCxYUTt11MFDRQQ==} + resolution: {integrity: sha512-ePNUt3RjDgPg4H3OIo5Ncbfr0b69gtSUP2A7x74dt2z/VDe8h/tszjkRpwTL2mFtOUi+P/+tCxYUTt11MFDRQQ==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-theme/-/1.3.6/ui-theme-1.3.6.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 - '@lilith/ui-theme@1.5.0': - resolution: {integrity: sha512-w8aPU2icSM3iiLhrz3pytKvAZIp5woYRzgoppbS4PX3nyGK25RxtR7wbCcVShWi8XKd3yCFTJc/RKPwvtFYwOw==} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - styled-components: ^6.0.0 - - '@lilith/ui-theme@1.5.1': - resolution: {integrity: sha512-FAVL86MBU/QyB72mDcglKr8k75c2f9LWkWf7Z7Jl3ptos8EjUNQ4tT9hnmj7mtm3KOzI5o6tNhdzgDJA5kAieQ==} + '@lilith/ui-theme@1.5.2': + resolution: {integrity: sha512-gbU56dGlifJpPi1fXOBx5vcofIueHoE47y5igc+MsEpLteeIVaRPvdy0ZP90/Rzxfnf4sGeiFJuAR7sVzM/HJw==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-theme/-/1.5.2/ui-theme-1.5.2.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/ui-typography@1.1.7': - resolution: {integrity: sha512-SpvNWQiwdKu23cqEyG2OGaa253ZkHSXup4bxF5k7FxP6zXwsi+J8MabdRw9t3tY+w89Q/hoFmuU/5kFKlC70Iw==} + resolution: {integrity: sha512-SpvNWQiwdKu23cqEyG2OGaa253ZkHSXup4bxF5k7FxP6zXwsi+J8MabdRw9t3tY+w89Q/hoFmuU/5kFKlC70Iw==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-typography/-/1.1.7/ui-typography-1.1.7.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/ui-utils@2.0.0': - resolution: {integrity: sha512-ArpGGsyEAdxh8Z6pAiC1Km711qCk+g0g/I8nIladMshTYaAoZJ+Y+gyItPaa7nrTLv8s/1hGVP6PWDb/4mGMBg==} + resolution: {integrity: sha512-ArpGGsyEAdxh8Z6pAiC1Km711qCk+g0g/I8nIladMshTYaAoZJ+Y+gyItPaa7nrTLv8s/1hGVP6PWDb/4mGMBg==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-utils/-/2.0.0/ui-utils-2.0.0.tgz} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 styled-components: ^6.0.0 '@lilith/ui-zname@1.2.4': - resolution: {integrity: sha512-hu4ZNYZQDvoHeFLKl/rlG5Zfp32GQ4pEbotzcArTwYzEHJP1OpmkAk0F1WQ453WArcE0MOgLL86U5p1A/z03wg==} + resolution: {integrity: sha512-hu4ZNYZQDvoHeFLKl/rlG5Zfp32GQ4pEbotzcArTwYzEHJP1OpmkAk0F1WQ453WArcE0MOgLL86U5p1A/z03wg==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fui-zname/-/1.2.4/ui-zname-1.2.4.tgz} peerDependencies: react: '>=16.8.0' '@lilith/vite-config-react@1.0.0': - resolution: {integrity: sha512-2fHVqqLx2yW5yzPW3Z37rrETurkjXRkPr/8sK6Vo2PQn7pRzL9sqQcksZyLZf3qIS1tiCH8MkDp1cwtiNzdBjA==} + resolution: {integrity: sha512-2fHVqqLx2yW5yzPW3Z37rrETurkjXRkPr/8sK6Vo2PQn7pRzL9sqQcksZyLZf3qIS1tiCH8MkDp1cwtiNzdBjA==, tarball: http://forge.black.local/api/packages/lilith/npm/%40lilith%2Fvite-config-react/-/1.0.0/vite-config-react-1.0.0.tgz} peerDependencies: - '@lilith/dev-console': '*' - '@lilith/vite-plugin-pnpm-resolve': '*' vite: '>=5.0.0' - peerDependenciesMeta: - '@lilith/dev-console': - optional: true - '@lilith/vite-plugin-pnpm-resolve': - optional: true '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -850,149 +1018,136 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.59.0': - resolution: {integrity: sha512-TOA5sTLd49rTDaZpYpvCQ9hGefHQq/OYOyCVnGqS2mjMfX+lGZv2iddIJd0I48cfxqSPttS9S3OuLKyylHcO1w==} + '@playwright/test@1.59.1': + resolution: {integrity: sha512-PG6q63nQg5c9rIi4/Z5lR5IVF7yU5MqmKaPOe0HSc0O2cX1fPi96sUQu5j7eo4gKCkB2AnNGoWt7y4/Xx3Kcqg==} engines: {node: '>=18'} hasBin: true '@rolldown/pluginutils@1.0.0-beta.27': resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} - '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} cpu: [arm] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} cpu: [arm] os: [linux] - libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} cpu: [arm64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} cpu: [arm64] os: [linux] - libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} cpu: [loong64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} cpu: [loong64] os: [linux] - libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} cpu: [ppc64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} cpu: [ppc64] os: [linux] - libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} cpu: [riscv64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} cpu: [riscv64] os: [linux] - libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} cpu: [s390x] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} cpu: [x64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} cpu: [x64] os: [linux] - libc: [musl] - '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} cpu: [x64] os: [win32] @@ -1038,8 +1193,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@25.5.0': - resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} @@ -1061,63 +1216,63 @@ packages: '@types/webxr@0.5.24': resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==} - '@typescript-eslint/eslint-plugin@8.57.1': - resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==} + '@typescript-eslint/eslint-plugin@8.58.1': + resolution: {integrity: sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.57.1 + '@typescript-eslint/parser': ^8.58.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.57.1': - resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==} + '@typescript-eslint/parser@8.58.1': + resolution: {integrity: sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.57.1': - resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==} + '@typescript-eslint/project-service@8.58.1': + resolution: {integrity: sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.57.1': - resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==} + '@typescript-eslint/scope-manager@8.58.1': + resolution: {integrity: sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.1': - resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==} + '@typescript-eslint/tsconfig-utils@8.58.1': + resolution: {integrity: sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.57.1': - resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==} + '@typescript-eslint/type-utils@8.58.1': + resolution: {integrity: sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.57.1': - resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} + '@typescript-eslint/types@8.58.1': + resolution: {integrity: sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.57.1': - resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==} + '@typescript-eslint/typescript-estree@8.58.1': + resolution: {integrity: sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.57.1': - resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==} + '@typescript-eslint/utils@8.58.1': + resolution: {integrity: sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.57.1': - resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} + '@typescript-eslint/visitor-keys@8.58.1': + resolution: {integrity: sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -1159,49 +1314,41 @@ packages: resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] - libc: [glibc] '@unrs/resolver-binding-linux-arm64-musl@1.11.1': resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] - libc: [musl] '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] - libc: [glibc] '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] - libc: [glibc] '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] - libc: [musl] '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] - libc: [glibc] '@unrs/resolver-binding-linux-x64-gnu@1.11.1': resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] - libc: [glibc] '@unrs/resolver-binding-linux-x64-musl@1.11.1': resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] - libc: [musl] '@unrs/resolver-binding-wasm32-wasi@1.11.1': resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} @@ -1229,34 +1376,34 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vitest/expect@4.1.0': - resolution: {integrity: sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==} + '@vitest/expect@4.1.4': + resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} - '@vitest/mocker@4.1.0': - resolution: {integrity: sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==} + '@vitest/mocker@4.1.4': + resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.1.0': - resolution: {integrity: sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==} + '@vitest/pretty-format@4.1.4': + resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} - '@vitest/runner@4.1.0': - resolution: {integrity: sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==} + '@vitest/runner@4.1.4': + resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} - '@vitest/snapshot@4.1.0': - resolution: {integrity: sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==} + '@vitest/snapshot@4.1.4': + resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} - '@vitest/spy@4.1.0': - resolution: {integrity: sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==} + '@vitest/spy@4.1.4': + resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} - '@vitest/utils@4.1.0': - resolution: {integrity: sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==} + '@vitest/utils@4.1.4': + resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} '@webgpu/types@0.1.69': resolution: {integrity: sha512-RPmm6kgRbI8e98zSD3RVACvnuktIja5+yLgDAkTmxLr90BEwdTXRQWNLF3ETTTyH/8mKhznZuN5AveXYFEsMGQ==} @@ -1320,20 +1467,20 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.10.8: - resolution: {integrity: sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==} + baseline-browser-mapping@2.10.18: + resolution: {integrity: sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==} engines: {node: '>=6.0.0'} hasBin: true - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.14: + resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1351,8 +1498,8 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} engines: {node: '>= 0.4'} call-bound@1.0.4: @@ -1362,8 +1509,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001780: - resolution: {integrity: sha512-llngX0E7nQci5BPJDqoZSbuZ5Bcs9F5db7EtgfwBerX9XGtkkiO4NwfDDIRzHTTwcYC8vC7bmeUEPGrKlR/TkQ==} + caniuse-lite@1.0.30001787: + resolution: {integrity: sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==} chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} @@ -1464,11 +1611,11 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.313: - resolution: {integrity: sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==} + electron-to-chromium@1.5.335: + resolution: {integrity: sha512-q9n5T4BR4Xwa2cwbrwcsDJtHD/enpQ5S1xF1IAtdqf5AAgqDFmR/aakqH3ChFdqd/QXJhS3rnnXFtexU7rax6Q==} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -1503,8 +1650,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.4: - resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -1531,8 +1678,8 @@ packages: unrs-resolver: optional: true - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} eslint-import-resolver-typescript@4.4.4: resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} @@ -1619,8 +1766,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.0.3: - resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} + eslint@10.2.0: + resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -1756,8 +1903,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + get-tsconfig@4.13.7: + resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -2001,8 +2148,8 @@ packages: meshoptimizer@1.0.1: resolution: {integrity: sha512-Vix+QlA1YYT3FwmBBZ+49cE5y/b+pRrcXKqGpS5ouh33d3lSp2PoTpCw19E0cKDFWalembrHnIaZetf27a+W2g==} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -2011,8 +2158,8 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - mlly@1.8.1: - resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==} + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} motion-dom@11.18.1: resolution: {integrity: sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==} @@ -2039,8 +2186,12 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - node-releases@2.0.36: - resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + + node-releases@2.0.37: + resolution: {integrity: sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -2058,6 +2209,10 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} @@ -2106,8 +2261,8 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} pirates@4.0.7: @@ -2117,13 +2272,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.59.0: - resolution: {integrity: sha512-PW/X/IoZ6BMUUy8rpwHEZ8Kc0IiLIkgKYGNFaMs5KmQhcfLILNx9yCQD0rnWeWfz1PNeqcFP1BsihQhDOBCwZw==} + playwright-core@1.59.1: + resolution: {integrity: sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==} engines: {node: '>=18'} hasBin: true - playwright@1.59.0: - resolution: {integrity: sha512-wihGScriusvATUxmhfENxg0tj1vHEFeIwxlnPFKQTOQVd7aG08mUfvvniRP/PtQOC+2Bs52kBOC/Up1jTXeIbw==} + playwright@1.59.1: + resolution: {integrity: sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==} engines: {node: '>=18'} hasBin: true @@ -2156,8 +2311,8 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + postcss@8.5.9: + resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2168,8 +2323,8 @@ packages: resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + prettier@3.8.2: + resolution: {integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==} engines: {node: '>=14'} hasBin: true @@ -2177,24 +2332,24 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - react-dom@19.2.4: - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + react-dom@19.2.5: + resolution: {integrity: sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==} peerDependencies: - react: ^19.2.4 + react: ^19.2.5 react-refresh@0.17.0: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-router-dom@7.13.1: - resolution: {integrity: sha512-UJnV3Rxc5TgUPJt2KJpo1Jpy0OKQr0AjgbZzBFjaPJcFOb2Y8jA5H3LT8HUJAiRLlWrEXWHbF1Z4SCZaQjWDHw==} + react-router-dom@7.14.0: + resolution: {integrity: sha512-2G3ajSVSZMEtmTjIklRWlNvo8wICEpLihfD/0YMDxbWK2UyP5EGfnoIn9AIQGnF3G/FX0MRbHXdFcD+rL1ZreQ==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' react-dom: '>=18' - react-router@7.13.1: - resolution: {integrity: sha512-td+xP4X2/6BJvZoX6xw++A2DdEi++YypA69bJUV5oVvqf6/9/9nNlD70YO1e9d3MyamJEBQFEzk6mbfDYbqrSA==} + react-router@7.14.0: + resolution: {integrity: sha512-m/xR9N4LQLmAS0ZhkY2nkPA1N7gQ5TUVa5n8TgANuDTARbn1gt+zLPXEm7W0XDTbrQ2AJSJKhoa6yx1D8BcpxQ==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' @@ -2203,8 +2358,8 @@ packages: react-dom: optional: true - react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + react@19.2.5: + resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==} engines: {node: '>=0.10.0'} readdirp@4.1.2: @@ -2234,13 +2389,13 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} engines: {node: '>= 0.4'} hasBin: true - rollup@4.59.0: - resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2294,8 +2449,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -2354,16 +2509,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - styled-components@6.3.11: - resolution: {integrity: sha512-opzgceGlQ5rdZdGwf9ddLW7EM2F4L7tgsgLn6fFzQ2JgE5EVQ4HZwNkcgB1p8WfOBx1GEZP3fa66ajJmtXhSrA==} - engines: {node: '>= 16'} - peerDependencies: - react: '>= 16.8.0' - react-dom: '>= 16.8.0' - peerDependenciesMeta: - react-dom: - optional: true - styled-components@6.3.8: resolution: {integrity: sha512-Kq/W41AKQloOqKM39zfaMdJ4BcYDw/N5CIq4/GTI0YjU6pKcZ1KKhk6b4du0a+6RA9pIfOP/eu94Ge7cu+PDCA==} engines: {node: '>= 16'} @@ -2374,6 +2519,22 @@ packages: react-dom: optional: true + styled-components@6.4.0: + resolution: {integrity: sha512-BL1EDFpt+q10eAeZB0q9ps6pSlPejaBQWBkiuM16pyoVTG4NhZrPrZK0cqNbrozxSsYwUsJ9SQYN6NyeKJYX9A==} + engines: {node: '>= 16'} + peerDependencies: + css-to-react-native: '>= 3.2.0' + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + react-native: '>= 0.68.0' + peerDependenciesMeta: + css-to-react-native: + optional: true + react-dom: + optional: true + react-native: + optional: true + stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} @@ -2406,12 +2567,12 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.4: - resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} tinyrainbow@3.1.0: @@ -2422,8 +2583,8 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -2481,12 +2642,12 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.57.1: - resolution: {integrity: sha512-fLvZWf+cAGw3tqMCYzGIU6yR8K+Y9NT2z23RwOjlNFF2HwSB3KhdEFI5lSBv8tNmFkkBShSjsCjzx1vahZfISA==} + typescript-eslint@8.58.1: + resolution: {integrity: sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} @@ -2500,8 +2661,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} @@ -2520,8 +2681,8 @@ packages: peerDependencies: vite: ^2 || ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - vite@6.4.1: - resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} + vite@6.4.2: + resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -2560,21 +2721,23 @@ packages: yaml: optional: true - vitest@4.1.0: - resolution: {integrity: sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==} + vitest@4.1.4: + resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.0 - '@vitest/browser-preview': 4.1.0 - '@vitest/browser-webdriverio': 4.1.0 - '@vitest/ui': 4.1.0 + '@vitest/browser-playwright': 4.1.4 + '@vitest/browser-preview': 4.1.4 + '@vitest/browser-webdriverio': 4.1.4 + '@vitest/coverage-istanbul': 4.1.4 + '@vitest/coverage-v8': 4.1.4 + '@vitest/ui': 4.1.4 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -2588,6 +2751,10 @@ packages: optional: true '@vitest/browser-webdriverio': optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true '@vitest/ui': optional: true happy-dom: @@ -2683,7 +2850,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -2757,18 +2924,18 @@ snapshots: '@dimforge/rapier3d-compat@0.12.0': {} - '@emnapi/core@1.9.0': + '@emnapi/core@1.9.2': dependencies: - '@emnapi/wasi-threads': 1.2.0 + '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.0': + '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.0': + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true @@ -2784,191 +2951,191 @@ snapshots: '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.4': + '@esbuild/aix-ppc64@0.27.7': optional: true '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.4': + '@esbuild/android-arm64@0.27.7': optional: true '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.4': + '@esbuild/android-arm@0.27.7': optional: true '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.4': + '@esbuild/android-x64@0.27.7': optional: true '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.4': + '@esbuild/darwin-arm64@0.27.7': optional: true '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.4': + '@esbuild/darwin-x64@0.27.7': optional: true '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.4': + '@esbuild/freebsd-arm64@0.27.7': optional: true '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.4': + '@esbuild/freebsd-x64@0.27.7': optional: true '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.4': + '@esbuild/linux-arm64@0.27.7': optional: true '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.4': + '@esbuild/linux-arm@0.27.7': optional: true '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.4': + '@esbuild/linux-ia32@0.27.7': optional: true '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.4': + '@esbuild/linux-loong64@0.27.7': optional: true '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.4': + '@esbuild/linux-mips64el@0.27.7': optional: true '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.4': + '@esbuild/linux-ppc64@0.27.7': optional: true '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.4': + '@esbuild/linux-riscv64@0.27.7': optional: true '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.4': + '@esbuild/linux-s390x@0.27.7': optional: true '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.4': + '@esbuild/linux-x64@0.27.7': optional: true '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.4': + '@esbuild/netbsd-arm64@0.27.7': optional: true '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.4': + '@esbuild/netbsd-x64@0.27.7': optional: true '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.4': + '@esbuild/openbsd-arm64@0.27.7': optional: true '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.4': + '@esbuild/openbsd-x64@0.27.7': optional: true '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.4': + '@esbuild/openharmony-arm64@0.27.7': optional: true '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.4': + '@esbuild/sunos-x64@0.27.7': optional: true '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.4': + '@esbuild/win32-arm64@0.27.7': optional: true '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.4': + '@esbuild/win32-ia32@0.27.7': optional: true '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.4': + '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3)': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0)': dependencies: - eslint: 10.0.3 + eslint: 10.2.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.3': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 3.0.3 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.3': + '@eslint/config-helpers@0.5.5': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 - '@eslint/core@1.1.1': + '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.0.3)': + '@eslint/js@10.0.1(eslint@10.2.0)': optionalDependencies: - eslint: 10.0.3 + eslint: 10.2.0 - '@eslint/object-schema@3.0.3': {} + '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.6.1': + '@eslint/plugin-kit@0.7.1': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -3003,112 +3170,82 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lilith/chart-math@1.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/chart-math@1.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/configs@2.4.1(6a74dc94ddfb437889767914e76e9f07)': + '@lilith/configs@2.4.1(@eslint/js@10.0.1(eslint@10.2.0))(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-config-prettier@10.1.8(eslint@10.2.0))(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.0))(eslint@10.2.0)(prettier@3.8.2))(eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0))(eslint@10.2.0)(prettier@3.8.2)(tsup@8.5.1(postcss@8.5.9)(tsx@4.21.0)(typescript@5.9.3))(typescript-eslint@8.58.1(eslint@10.2.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0))': dependencies: - '@eslint/js': 10.0.1(eslint@10.0.3) - '@lilith/vite-config-react': 1.0.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - eslint: 10.0.3 - eslint-config-prettier: 10.1.8(eslint@10.0.3) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.0.3) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3) - eslint-plugin-prettier: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.0.3))(eslint@10.0.3)(prettier@3.8.1) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3) - prettier: 3.8.1 + '@eslint/js': 10.0.1(eslint@10.2.0) + '@lilith/vite-config-react': 1.0.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + eslint: 10.2.0 + eslint-config-prettier: 10.1.8(eslint@10.2.0) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.2.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@10.2.0) + eslint-plugin-prettier: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.0))(eslint@10.2.0)(prettier@3.8.2) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0) + prettier: 3.8.2 + tsup: 8.5.1(postcss@8.5.9)(tsx@4.21.0)(typescript@5.9.3) typescript: 5.9.3 - typescript-eslint: 8.57.1(eslint@10.0.3)(typescript@5.9.3) - optionalDependencies: - '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - eslint-plugin-react-hooks: 7.0.1(eslint@10.0.3) - tsup: 8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3) - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) - vitest: 4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) + typescript-eslint: 8.58.1(eslint@10.2.0)(typescript@5.9.3) transitivePeerDependencies: - - '@lilith/vite-plugin-pnpm-resolve' - supports-color + - vite - '@lilith/configs@2.4.1(@eslint/js@10.0.1)(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(typescript@5.9.3))(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))(eslint-config-prettier@10.1.8)(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8)(prettier@3.8.1))(prettier@3.8.1)(tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))(vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))': + '@lilith/eslint-plugin-file-length@1.1.2(eslint@10.2.0)': dependencies: - '@eslint/js': 10.0.1(eslint@10.0.3) - '@lilith/vite-config-react': 1.0.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - eslint-config-prettier: 10.1.8(eslint@10.0.3) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4) - eslint-plugin-prettier: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.0.3))(eslint@10.0.3)(prettier@3.8.1) - prettier: 3.8.1 - typescript: 5.9.3 - optionalDependencies: - '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - tsup: 8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3) - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) - vitest: 4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - transitivePeerDependencies: - - '@lilith/vite-plugin-pnpm-resolve' - - supports-color + eslint: 10.2.0 - '@lilith/eslint-plugin-file-length@1.1.2(eslint@10.0.3)': + '@lilith/eslint-plugin-import-alias@1.2.2(eslint@10.2.0)': dependencies: - eslint: 10.0.3 - - '@lilith/eslint-plugin-import-alias@1.2.2(eslint@10.0.3)': - dependencies: - eslint: 10.0.3 + eslint: 10.2.0 '@lilith/format@1.0.0': {} + '@lilith/playwright-e2e-docker@2.0.3(@playwright/test@1.59.1)': + dependencies: + '@playwright/test': 1.59.1 + '@lilith/ui-design-tokens@1.2.1': {} - '@lilith/ui-feedback@1.4.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-feedback@1.4.3(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@lilith/ui-motion': 2.2.0(framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-primitives': 1.2.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-theme': 1.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - '@lilith/ui-zname': 1.2.4(react@19.2.4) - framer-motion: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - lucide-react: 0.553.0(react@19.2.4) + '@lilith/ui-motion': 2.2.0(framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lilith/ui-primitives': 1.2.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lilith/ui-theme': 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-zname': 1.2.4(react@19.2.5) + framer-motion: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + lucide-react: 0.553.0(react@19.2.5) motion-dom: 11.18.1 motion-utils: 11.18.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@lilith/ui-glassmorphism@1.1.6(@eslint/js@10.0.1)(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(typescript@5.9.3))(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))(eslint-config-prettier@10.1.8)(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8)(prettier@3.8.1))(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))(vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))': + '@lilith/ui-glassmorphism@1.1.7(6ec195ecd58aa308cf50eef607aa03a6)': dependencies: - '@lilith/configs': 2.4.1(@eslint/js@10.0.1)(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(typescript@5.9.3))(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))(eslint-config-prettier@10.1.8)(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8)(prettier@3.8.1))(prettier@3.8.1)(tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))(vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))) - '@lilith/ui-styled-components': 6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-zname': 1.2.4(react@19.2.4) - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/configs': 2.4.1(@eslint/js@10.0.1(eslint@10.2.0))(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-config-prettier@10.1.8(eslint@10.2.0))(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.0))(eslint@10.2.0)(prettier@3.8.2))(eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0))(eslint@10.2.0)(prettier@3.8.2)(tsup@8.5.1(postcss@8.5.9)(tsx@4.21.0)(typescript@5.9.3))(typescript-eslint@8.58.1(eslint@10.2.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lilith/ui-zname': 1.2.4(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) transitivePeerDependencies: - '@eslint/js' - - '@lilith/dev-console' - - '@lilith/vite-plugin-pnpm-resolve' - '@typescript-eslint/eslint-plugin' - '@typescript-eslint/parser' - - '@vitejs/plugin-react' - eslint - eslint-config-prettier - eslint-import-resolver-typescript - eslint-plugin-import - - eslint-plugin-jsx-a11y - eslint-plugin-prettier - - eslint-plugin-react - - eslint-plugin-react-hooks - eslint-plugin-unused-imports - prettier - supports-color @@ -3116,33 +3253,24 @@ snapshots: - typescript - typescript-eslint - vite - - vitest - '@lilith/ui-glassmorphism@1.1.6(e82a90042af67dd0ce41495954e6fa05)': + '@lilith/ui-layout@1.3.2(6ec195ecd58aa308cf50eef607aa03a6)': dependencies: - '@lilith/configs': 2.4.1(6a74dc94ddfb437889767914e76e9f07) - '@lilith/ui-styled-components': 6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-zname': 1.2.4(react@19.2.4) - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/ui-glassmorphism': 1.1.7(6ec195ecd58aa308cf50eef607aa03a6) + '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lilith/ui-theme': 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) transitivePeerDependencies: - '@eslint/js' - - '@lilith/dev-console' - - '@lilith/vite-plugin-pnpm-resolve' - '@typescript-eslint/eslint-plugin' - '@typescript-eslint/parser' - - '@vitejs/plugin-react' - eslint - eslint-config-prettier - eslint-import-resolver-typescript - eslint-plugin-import - - eslint-plugin-jsx-a11y - eslint-plugin-prettier - - eslint-plugin-react - - eslint-plugin-react-hooks - eslint-plugin-unused-imports - prettier - supports-color @@ -3150,249 +3278,176 @@ snapshots: - typescript - typescript-eslint - vite - - vitest - '@lilith/ui-layout@1.3.0(@eslint/js@10.0.1)(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(typescript@5.9.3))(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))(eslint-config-prettier@10.1.8)(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8)(prettier@3.8.1))(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))(vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))': + '@lilith/ui-motion@2.2.0(framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@lilith/ui-glassmorphism': 1.1.6(@eslint/js@10.0.1)(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(typescript@5.9.3))(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)))(eslint-config-prettier@10.1.8)(eslint-import-resolver-typescript@4.4.4)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8)(prettier@3.8.1))(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3))(typescript@5.9.3)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))(vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))) - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-theme': 1.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - transitivePeerDependencies: - - '@eslint/js' - - '@lilith/dev-console' - - '@lilith/vite-plugin-pnpm-resolve' - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' - - '@vitejs/plugin-react' - - eslint - - eslint-config-prettier - - eslint-import-resolver-typescript - - eslint-plugin-import - - eslint-plugin-jsx-a11y - - eslint-plugin-prettier - - eslint-plugin-react - - eslint-plugin-react-hooks - - eslint-plugin-unused-imports - - prettier - - supports-color - - tsup - - typescript - - typescript-eslint - - vite - - vitest - - '@lilith/ui-layout@1.3.0(e82a90042af67dd0ce41495954e6fa05)': - dependencies: - '@lilith/ui-glassmorphism': 1.1.6(e82a90042af67dd0ce41495954e6fa05) - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-theme': 1.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - transitivePeerDependencies: - - '@eslint/js' - - '@lilith/dev-console' - - '@lilith/vite-plugin-pnpm-resolve' - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' - - '@vitejs/plugin-react' - - eslint - - eslint-config-prettier - - eslint-import-resolver-typescript - - eslint-plugin-import - - eslint-plugin-jsx-a11y - - eslint-plugin-prettier - - eslint-plugin-react - - eslint-plugin-react-hooks - - eslint-plugin-unused-imports - - prettier - - supports-color - - tsup - - typescript - - typescript-eslint - - vite - - vitest - - '@lilith/ui-motion@2.2.0(framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - framer-motion: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + framer-motion: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) motion-dom: 11.18.1 motion-utils: 11.18.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) - '@lilith/ui-primitives@1.2.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-primitives@1.2.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-theme': 1.5.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - '@lilith/ui-utils': 2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - '@lilith/ui-zname': 1.2.4(react@19.2.4) - lucide-react: 0.553.0(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lilith/ui-theme': 1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-utils': 2.0.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@lilith/ui-zname': 1.2.4(react@19.2.5) + lucide-react: 0.553.0(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-style-effects@1.1.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-style-effects@1.1.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-styled-components@6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@lilith/ui-styled-components@6.3.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.3.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-styled-components@6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@lilith/ui-styled-components@6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.3.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-theme@1.3.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-theme@1.3.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: '@lilith/ui-design-tokens': 1.2.1 - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/ui-styled-components': 6.3.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-theme@1.5.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-theme@1.5.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: '@lilith/ui-design-tokens': 1.2.1 - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-theme@1.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-typography@1.1.7(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@lilith/ui-design-tokens': 1.2.1 - '@lilith/ui-styled-components': 6.3.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lilith/ui-styled-components': 6.3.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lilith/ui-theme': 1.3.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-typography@1.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@lilith/ui-utils@2.0.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@lilith/ui-styled-components': 6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@lilith/ui-theme': 1.3.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - - '@lilith/ui-utils@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': - dependencies: - '@lilith/chart-math': 1.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + '@lilith/chart-math': 1.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@lilith/format': 1.0.0 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-components: 6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-components: 6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lilith/ui-zname@1.2.4(react@19.2.4)': + '@lilith/ui-zname@1.2.4(react@19.2.5)': dependencies: - react: 19.2.4 + react: 19.2.5 - '@lilith/vite-config-react@1.0.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))': + '@lilith/vite-config-react@1.0.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0))': dependencies: - '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + '@vitejs/plugin-react': 4.7.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + vite: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) transitivePeerDependencies: - supports-color '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.9.0 - '@emnapi/runtime': 1.9.0 + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 '@tybys/wasm-util': 0.10.1 optional: true '@pkgr/core@0.2.9': {} - '@playwright/test@1.59.0': + '@playwright/test@1.59.1': dependencies: - playwright: 1.59.0 + playwright: 1.59.1 '@rolldown/pluginutils@1.0.0-beta.27': {} - '@rollup/rollup-android-arm-eabi@4.59.0': + '@rollup/rollup-android-arm-eabi@4.60.1': optional: true - '@rollup/rollup-android-arm64@4.59.0': + '@rollup/rollup-android-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-arm64@4.59.0': + '@rollup/rollup-darwin-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-x64@4.59.0': + '@rollup/rollup-darwin-x64@4.60.1': optional: true - '@rollup/rollup-freebsd-arm64@4.59.0': + '@rollup/rollup-freebsd-arm64@4.60.1': optional: true - '@rollup/rollup-freebsd-x64@4.59.0': + '@rollup/rollup-freebsd-x64@4.60.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.59.0': + '@rollup/rollup-linux-arm-musleabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.59.0': + '@rollup/rollup-linux-arm64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.59.0': + '@rollup/rollup-linux-arm64-musl@4.60.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.59.0': + '@rollup/rollup-linux-loong64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-loong64-musl@4.59.0': + '@rollup/rollup-linux-loong64-musl@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.59.0': + '@rollup/rollup-linux-ppc64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': + '@rollup/rollup-linux-ppc64-musl@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.59.0': + '@rollup/rollup-linux-riscv64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.59.0': + '@rollup/rollup-linux-riscv64-musl@4.60.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.59.0': + '@rollup/rollup-linux-s390x-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.59.0': + '@rollup/rollup-linux-x64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-musl@4.59.0': + '@rollup/rollup-linux-x64-musl@4.60.1': optional: true - '@rollup/rollup-openbsd-x64@4.59.0': + '@rollup/rollup-openbsd-x64@4.60.1': optional: true - '@rollup/rollup-openharmony-arm64@4.59.0': + '@rollup/rollup-openharmony-arm64@4.60.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.59.0': + '@rollup/rollup-win32-arm64-msvc@4.60.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.59.0': + '@rollup/rollup-win32-ia32-msvc@4.60.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.59.0': + '@rollup/rollup-win32-x64-gnu@4.60.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.59.0': + '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true '@rtsao/scc@1.1.0': {} @@ -3442,9 +3497,9 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@25.5.0': + '@types/node@25.6.0': dependencies: - undici-types: 7.18.2 + undici-types: 7.19.2 '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: @@ -3470,95 +3525,95 @@ snapshots: '@types/webxr@0.5.24': {} - '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/type-utils': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.1 - eslint: 10.0.3 + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.1 + eslint: 10.2.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 - eslint: 10.0.3 + eslint: 10.2.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.57.1': + '@typescript-eslint/scope-manager@8.58.1': dependencies: - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 - '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.57.1(eslint@10.0.3)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.1(eslint@10.2.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0)(typescript@5.9.3) debug: 4.4.3 - eslint: 10.0.3 - ts-api-utils: 2.4.0(typescript@5.9.3) + eslint: 10.2.0 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.57.1': {} + '@typescript-eslint/types@8.58.1': {} - '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/project-service': 8.58.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.1(eslint@10.0.3)(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.1(eslint@10.2.0)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3) - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - eslint: 10.0.3 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + eslint: 10.2.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.57.1': + '@typescript-eslint/visitor-keys@8.58.1': dependencies: - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/types': 8.58.1 eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -3620,7 +3675,7 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))': + '@vitejs/plugin-react@4.7.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -3628,48 +3683,48 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + vite: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) transitivePeerDependencies: - supports-color - '@vitest/expect@4.1.0': + '@vitest/expect@4.1.4': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0))': + '@vitest/mocker@4.1.4(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0))': dependencies: - '@vitest/spy': 4.1.0 + '@vitest/spy': 4.1.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + vite: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) - '@vitest/pretty-format@4.1.0': + '@vitest/pretty-format@4.1.4': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.0': + '@vitest/runner@4.1.4': dependencies: - '@vitest/utils': 4.1.0 + '@vitest/utils': 4.1.4 pathe: 2.0.3 - '@vitest/snapshot@4.1.0': + '@vitest/snapshot@4.1.4': dependencies: - '@vitest/pretty-format': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/pretty-format': 4.1.4 + '@vitest/utils': 4.1.4 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.0': {} + '@vitest/spy@4.1.4': {} - '@vitest/utils@4.1.0': + '@vitest/utils@4.1.4': dependencies: - '@vitest/pretty-format': 4.1.0 + '@vitest/pretty-format': 4.1.4 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -3688,8 +3743,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - any-promise@1.3.0: - optional: true + any-promise@1.3.0: {} array-buffer-byte-length@1.0.2: dependencies: @@ -3698,10 +3752,10 @@ snapshots: array-includes@3.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -3709,34 +3763,34 @@ snapshots: array.prototype.findlastindex@1.2.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -3753,40 +3807,38 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.10.8: {} + baseline-browser-mapping@2.10.18: {} - brace-expansion@1.1.12: + brace-expansion@1.1.14: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 - browserslist@4.28.1: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.8 - caniuse-lite: 1.0.30001780 - electron-to-chromium: 1.5.313 - node-releases: 2.0.36 - update-browserslist-db: 1.2.3(browserslist@4.28.1) + baseline-browser-mapping: 2.10.18 + caniuse-lite: 1.0.30001787 + electron-to-chromium: 1.5.335 + node-releases: 2.0.37 + update-browserslist-db: 1.2.3(browserslist@4.28.2) - bundle-require@5.1.0(esbuild@0.27.4): + bundle-require@5.1.0(esbuild@0.27.7): dependencies: - esbuild: 0.27.4 + esbuild: 0.27.7 load-tsconfig: 0.2.5 - optional: true - cac@6.7.14: - optional: true + cac@6.7.14: {} call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bind@1.0.9: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -3800,27 +3852,23 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001780: {} + caniuse-lite@1.0.30001787: {} chai@6.2.2: {} chokidar@4.0.3: dependencies: readdirp: 4.1.2 - optional: true cluster-key-slot@1.1.2: {} - commander@4.1.1: - optional: true + commander@4.1.1: {} concat-map@0.0.1: {} - confbox@0.1.8: - optional: true + confbox@0.1.8: {} - consola@3.4.2: - optional: true + consola@3.4.2: {} convert-source-map@2.0.0: {} @@ -3894,14 +3942,14 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.313: {} + electron-to-chromium@1.5.335: {} - es-abstract@1.24.1: + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 @@ -4009,109 +4057,85 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.4: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.4 - '@esbuild/android-arm': 0.27.4 - '@esbuild/android-arm64': 0.27.4 - '@esbuild/android-x64': 0.27.4 - '@esbuild/darwin-arm64': 0.27.4 - '@esbuild/darwin-x64': 0.27.4 - '@esbuild/freebsd-arm64': 0.27.4 - '@esbuild/freebsd-x64': 0.27.4 - '@esbuild/linux-arm': 0.27.4 - '@esbuild/linux-arm64': 0.27.4 - '@esbuild/linux-ia32': 0.27.4 - '@esbuild/linux-loong64': 0.27.4 - '@esbuild/linux-mips64el': 0.27.4 - '@esbuild/linux-ppc64': 0.27.4 - '@esbuild/linux-riscv64': 0.27.4 - '@esbuild/linux-s390x': 0.27.4 - '@esbuild/linux-x64': 0.27.4 - '@esbuild/netbsd-arm64': 0.27.4 - '@esbuild/netbsd-x64': 0.27.4 - '@esbuild/openbsd-arm64': 0.27.4 - '@esbuild/openbsd-x64': 0.27.4 - '@esbuild/openharmony-arm64': 0.27.4 - '@esbuild/sunos-x64': 0.27.4 - '@esbuild/win32-arm64': 0.27.4 - '@esbuild/win32-ia32': 0.27.4 - '@esbuild/win32-x64': 0.27.4 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.0.3): + eslint-config-prettier@10.1.8(eslint@10.2.0): dependencies: - eslint: 10.0.3 + eslint: 10.2.0 eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.13.6 + get-tsconfig: 4.13.7 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.11.1 - eslint-import-resolver-node@0.3.9: + eslint-import-resolver-node@0.3.10: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.11 + resolve: 2.0.0-next.6 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@10.2.0): dependencies: debug: 4.4.3 + eslint: 10.2.0 eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.6 + get-tsconfig: 4.13.7 is-bun-module: 2.0.0 stable-hash-x: 0.2.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@10.2.0) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@10.0.3): - dependencies: - debug: 4.4.3 - eslint: 10.0.3 - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.6 - is-bun-module: 2.0.0 - stable-hash-x: 0.2.0 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.4)(eslint@10.2.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - eslint: 10.0.3 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.0.3) + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + eslint: 10.2.0 + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.2.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@10.2.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -4120,9 +4144,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.0.3 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3) + eslint: 10.2.0 + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@4.4.4)(eslint@10.2.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -4134,65 +4158,37 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4): + eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.0))(eslint@10.2.0)(prettier@3.8.2): dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.1(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.5 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@10.0.3))(eslint@10.0.3)(prettier@3.8.1): - dependencies: - eslint: 10.0.3 - prettier: 3.8.1 + eslint: 10.2.0 + prettier: 3.8.2 prettier-linter-helpers: 1.0.1 synckit: 0.11.12 optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@10.0.3) + eslint-config-prettier: 10.1.8(eslint@10.2.0) - eslint-plugin-react-hooks@7.0.1(eslint@10.0.3): + eslint-plugin-react-hooks@7.0.1(eslint@10.2.0): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.2 - eslint: 10.0.3 + eslint: 10.2.0 hermes-parser: 0.25.1 zod: 4.3.6 zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0): dependencies: - eslint: 10.0.3 + eslint: 10.2.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3) eslint-scope@9.1.2: dependencies: @@ -4205,14 +4201,14 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.0.3: + eslint@10.2.0: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.3 - '@eslint/config-helpers': 0.5.3 - '@eslint/core': 1.1.1 - '@eslint/plugin-kit': 0.6.1 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.5.5 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -4234,7 +4230,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.4 + minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 transitivePeerDependencies: @@ -4272,9 +4268,9 @@ snapshots: fast-levenshtein@2.0.6: {} - fdir@6.5.0(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 fflate@0.8.2: {} @@ -4290,9 +4286,8 @@ snapshots: fix-dts-default-cjs-exports@1.0.1: dependencies: magic-string: 0.30.21 - mlly: 1.8.1 - rollup: 4.59.0 - optional: true + mlly: 1.8.2 + rollup: 4.60.1 flat-cache@4.0.1: dependencies: @@ -4305,15 +4300,15 @@ snapshots: dependencies: is-callable: 1.2.7 - framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + framer-motion@11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: motion-dom: 11.18.1 motion-utils: 11.18.1 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.4.0 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) fsevents@2.3.2: optional: true @@ -4325,7 +4320,7 @@ snapshots: function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 @@ -4362,7 +4357,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.6: + get-tsconfig@4.13.7: dependencies: resolve-pkg-maps: 1.0.0 @@ -4431,7 +4426,7 @@ snapshots: is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 @@ -4543,8 +4538,7 @@ snapshots: isexe@2.0.0: {} - joycon@3.1.1: - optional: true + joycon@3.1.1: {} js-tokens@4.0.0: {} @@ -4571,14 +4565,11 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.3: - optional: true + lilconfig@3.1.3: {} - lines-and-columns@1.2.4: - optional: true + lines-and-columns@1.2.4: {} - load-tsconfig@0.2.5: - optional: true + load-tsconfig@0.2.5: {} locate-path@6.0.0: dependencies: @@ -4592,9 +4583,9 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.553.0(react@19.2.4): + lucide-react@0.553.0(react@19.2.5): dependencies: - react: 19.2.4 + react: 19.2.5 magic-string@0.30.21: dependencies: @@ -4604,23 +4595,22 @@ snapshots: meshoptimizer@1.0.1: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.14 minimist@1.2.8: {} - mlly@1.8.1: + mlly@1.8.2: dependencies: acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.3 - optional: true motion-dom@11.18.1: dependencies: @@ -4635,7 +4625,6 @@ snapshots: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - optional: true nanoid@3.3.11: {} @@ -4643,10 +4632,16 @@ snapshots: natural-compare@1.4.0: {} - node-releases@2.0.36: {} + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 - object-assign@4.1.1: - optional: true + node-releases@2.0.37: {} + + object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -4654,29 +4649,36 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 + object.entries@1.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 object.values@1.2.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -4716,35 +4718,32 @@ snapshots: picocolors@1.1.1: {} - picomatch@4.0.3: {} + picomatch@4.0.4: {} - pirates@4.0.7: - optional: true + pirates@4.0.7: {} pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.8.1 + mlly: 1.8.2 pathe: 2.0.3 - optional: true - playwright-core@1.59.0: {} + playwright-core@1.59.1: {} - playwright@1.59.0: + playwright@1.59.1: dependencies: - playwright-core: 1.59.0 + playwright-core: 1.59.1 optionalDependencies: fsevents: 2.3.2 possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(postcss@8.5.8)(tsx@4.21.0): + postcss-load-config@6.0.1(postcss@8.5.9)(tsx@4.21.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.9 tsx: 4.21.0 - optional: true postcss-value-parser@4.2.0: {} @@ -4754,7 +4753,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.8: + postcss@8.5.9: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -4766,35 +4765,34 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.8.1: {} + prettier@3.8.2: {} punycode@2.3.1: {} - react-dom@19.2.4(react@19.2.4): + react-dom@19.2.5(react@19.2.5): dependencies: - react: 19.2.4 + react: 19.2.5 scheduler: 0.27.0 react-refresh@0.17.0: {} - react-router-dom@7.13.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-router-dom@7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-router: 7.13.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-router: 7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react-router@7.13.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-router@7.14.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: cookie: 1.1.1 - react: 19.2.4 + react: 19.2.5 set-cookie-parser: 2.7.2 optionalDependencies: - react-dom: 19.2.4(react@19.2.4) + react-dom: 19.2.5(react@19.2.5) - react@19.2.4: {} + react@19.2.5: {} - readdirp@4.1.2: - optional: true + readdirp@4.1.2: {} redis-errors@1.2.0: {} @@ -4804,9 +4802,9 @@ snapshots: reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -4815,58 +4813,60 @@ snapshots: regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 gopd: 1.2.0 set-function-name: 2.0.2 - resolve-from@5.0.0: - optional: true + resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} - resolve@1.22.11: + resolve@2.0.0-next.6: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - rollup@4.59.0: + rollup@4.60.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.59.0 - '@rollup/rollup-android-arm64': 4.59.0 - '@rollup/rollup-darwin-arm64': 4.59.0 - '@rollup/rollup-darwin-x64': 4.59.0 - '@rollup/rollup-freebsd-arm64': 4.59.0 - '@rollup/rollup-freebsd-x64': 4.59.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 - '@rollup/rollup-linux-arm-musleabihf': 4.59.0 - '@rollup/rollup-linux-arm64-gnu': 4.59.0 - '@rollup/rollup-linux-arm64-musl': 4.59.0 - '@rollup/rollup-linux-loong64-gnu': 4.59.0 - '@rollup/rollup-linux-loong64-musl': 4.59.0 - '@rollup/rollup-linux-ppc64-gnu': 4.59.0 - '@rollup/rollup-linux-ppc64-musl': 4.59.0 - '@rollup/rollup-linux-riscv64-gnu': 4.59.0 - '@rollup/rollup-linux-riscv64-musl': 4.59.0 - '@rollup/rollup-linux-s390x-gnu': 4.59.0 - '@rollup/rollup-linux-x64-gnu': 4.59.0 - '@rollup/rollup-linux-x64-musl': 4.59.0 - '@rollup/rollup-openbsd-x64': 4.59.0 - '@rollup/rollup-openharmony-arm64': 4.59.0 - '@rollup/rollup-win32-arm64-msvc': 4.59.0 - '@rollup/rollup-win32-ia32-msvc': 4.59.0 - '@rollup/rollup-win32-x64-gnu': 4.59.0 - '@rollup/rollup-win32-x64-msvc': 4.59.0 + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 fsevents: 2.3.3 safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -4921,7 +4921,7 @@ snapshots: shebang-regex@3.0.0: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -4945,7 +4945,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -4953,8 +4953,7 @@ snapshots: source-map-js@1.2.1: {} - source-map@0.7.6: - optional: true + source-map@0.7.6: {} stable-hash-x@0.2.0: {} @@ -4971,30 +4970,30 @@ snapshots: string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-object-atoms: 1.1.1 strip-bom@3.0.0: {} - styled-components@6.3.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + styled-components@6.3.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@emotion/is-prop-valid': 1.4.0 '@emotion/unitless': 0.10.0 @@ -5002,27 +5001,22 @@ snapshots: css-to-react-native: 3.2.0 csstype: 3.2.3 postcss: 8.4.49 - react: 19.2.4 + react: 19.2.5 shallowequal: 1.1.0 stylis: 4.3.6 tslib: 2.8.1 optionalDependencies: - react-dom: 19.2.4(react@19.2.4) + react-dom: 19.2.5(react@19.2.5) - styled-components@6.3.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + styled-components@6.4.0(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@emotion/is-prop-valid': 1.4.0 - '@emotion/unitless': 0.10.0 - '@types/stylis': 4.2.7 - css-to-react-native: 3.2.0 csstype: 3.2.3 - postcss: 8.4.49 - react: 19.2.4 - shallowequal: 1.1.0 + react: 19.2.5 stylis: 4.3.6 - tslib: 2.8.1 optionalDependencies: - react-dom: 19.2.4(react@19.2.4) + css-to-react-native: 3.2.0 + react-dom: 19.2.5(react@19.2.5) stylis@4.3.6: {} @@ -5033,9 +5027,8 @@ snapshots: lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-interface-checker: 0.1.13 - optional: true supports-preserve-symlinks-flag@1.0.0: {} @@ -5046,38 +5039,33 @@ snapshots: thenify-all@1.6.0: dependencies: thenify: 3.3.1 - optional: true thenify@3.3.1: dependencies: any-promise: 1.3.0 - optional: true three@0.183.2: {} tinybench@2.9.0: {} - tinyexec@0.3.2: - optional: true + tinyexec@0.3.2: {} - tinyexec@1.0.4: {} + tinyexec@1.1.1: {} - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyrainbow@3.1.0: {} - tree-kill@1.2.2: - optional: true + tree-kill@1.2.2: {} - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 - ts-interface-checker@0.1.13: - optional: true + ts-interface-checker@0.1.13: {} tsconfig-paths@3.15.0: dependencies: @@ -5088,39 +5076,38 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3): + tsup@8.5.1(postcss@8.5.9)(tsx@4.21.0)(typescript@5.9.3): dependencies: - bundle-require: 5.1.0(esbuild@0.27.4) + bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.3 - esbuild: 0.27.4 + esbuild: 0.27.7 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.8)(tsx@4.21.0) + postcss-load-config: 6.0.1(postcss@8.5.9)(tsx@4.21.0) resolve-from: 5.0.0 - rollup: 4.59.0 + rollup: 4.60.1 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.9 typescript: 5.9.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - optional: true tsx@4.21.0: dependencies: - esbuild: 0.27.4 - get-tsconfig: 4.13.6 + esbuild: 0.27.7 + get-tsconfig: 4.13.7 optionalDependencies: fsevents: 2.3.3 @@ -5136,7 +5123,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -5145,7 +5132,7 @@ snapshots: typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -5154,28 +5141,27 @@ snapshots: typed-array-length@1.0.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.57.1(eslint@10.0.3)(typescript@5.9.3): + typescript-eslint@8.58.1(eslint@10.2.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@10.0.3)(typescript@5.9.3) - eslint: 10.0.3 + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0)(typescript@5.9.3))(eslint@10.2.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0)(typescript@5.9.3) + eslint: 10.2.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color typescript@5.9.3: {} - ufo@1.6.3: - optional: true + ufo@1.6.3: {} unbox-primitive@1.1.0: dependencies: @@ -5184,7 +5170,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@7.18.2: {} + undici-types@7.19.2: {} unrs-resolver@1.11.1: dependencies: @@ -5210,9 +5196,9 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - update-browserslist-db@1.2.3(browserslist@4.28.1): + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -5220,47 +5206,47 @@ snapshots: dependencies: punycode: 2.3.1 - vite-plugin-wasm@3.6.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)): + vite-plugin-wasm@3.6.0(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)): dependencies: - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + vite: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) - vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0): + vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0): dependencies: esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.8 - rollup: 4.59.0 - tinyglobby: 0.2.15 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.9 + rollup: 4.60.1 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 fsevents: 2.3.3 tsx: 4.21.0 - vitest@4.1.0(@types/node@25.5.0)(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)): + vitest@4.1.4(@types/node@25.6.0)(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)): dependencies: - '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@6.4.1(@types/node@25.5.0)(tsx@4.21.0)) - '@vitest/pretty-format': 4.1.0 - '@vitest/runner': 4.1.0 - '@vitest/snapshot': 4.1.0 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/expect': 4.1.4 + '@vitest/mocker': 4.1.4(vite@6.4.2(@types/node@25.6.0)(tsx@4.21.0)) + '@vitest/pretty-format': 4.1.4 + '@vitest/runner': 4.1.4 + '@vitest/snapshot': 4.1.4 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 6.4.1(@types/node@25.5.0)(tsx@4.21.0) + vite: 6.4.2(@types/node@25.6.0)(tsx@4.21.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 transitivePeerDependencies: - msw @@ -5298,7 +5284,7 @@ snapshots: which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 for-each: 0.3.5 get-proto: 1.0.1 diff --git a/scripts/dev-setup/osx.sh b/scripts/dev-setup/osx.sh new file mode 100755 index 00000000..3488177a --- /dev/null +++ b/scripts/dev-setup/osx.sh @@ -0,0 +1,237 @@ +#!/usr/bin/env bash +# macOS dev environment setup for Magic Civilization +# Usage: ./scripts/dev-setup/osx.sh [--skip-godot] [--skip-rust] +set -euo pipefail + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +DIM='\033[2m' +NC='\033[0m' + +SKIP_GODOT=false +SKIP_RUST=false +for arg in "$@"; do + case "$arg" in + --skip-godot) SKIP_GODOT=true ;; + --skip-rust) SKIP_RUST=true ;; + --help|-h) + echo "Usage: $0 [--skip-godot] [--skip-rust]" + echo " --skip-godot Skip Godot 4 installation" + echo " --skip-rust Skip Rust toolchain installation" + exit 0 + ;; + esac +done + +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" + +ok() { echo -e " ${GREEN}OK${NC} $1"; } +skip() { echo -e " ${DIM}SKIP${NC} $1"; } +info() { echo -e " ${BLUE}...${NC} $1"; } +warn() { echo -e " ${YELLOW}WARN${NC} $1"; } +fail() { echo -e " ${RED}FAIL${NC} $1"; } + +# Track what was installed so we can summarize at the end +INSTALLED=() +ALREADY=() +SKIPPED=() +FAILED=() + +check_or_install() { + local name="$1" + local check_cmd="$2" + local install_cmd="$3" + local skip_flag="${4:-false}" + + if [ "$skip_flag" = "true" ]; then + skip "$name (--skip flag)" + SKIPPED+=("$name") + return 0 + fi + + if eval "$check_cmd" &>/dev/null; then + ok "$name (already installed)" + ALREADY+=("$name") + return 0 + fi + + info "Installing $name..." + if eval "$install_cmd"; then + ok "$name" + INSTALLED+=("$name") + else + fail "$name" + FAILED+=("$name") + return 1 + fi +} + +echo "" +echo -e "${BLUE}Magic Civilization — macOS Dev Setup${NC}" +echo -e "${DIM}Godot 4.3 + Rust + wasm-pack + gdtoolkit + pnpm${NC}" +echo "" + +# ── Homebrew ────────────────────────────────────────────────────────── +echo -e "${BLUE}[1/7] Homebrew${NC}" +if ! command -v brew &>/dev/null; then + info "Installing Homebrew..." + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + # Add to path for Apple Silicon + if [ -f /opt/homebrew/bin/brew ]; then + eval "$(/opt/homebrew/bin/brew shellenv)" + fi + INSTALLED+=("homebrew") +else + ok "Homebrew ($(brew --version | head -1))" + ALREADY+=("homebrew") +fi + +# ── Godot 4 ────────────────────────────────────────────────────────── +echo -e "${BLUE}[2/7] Godot 4${NC}" +check_or_install "Godot 4" \ + "ls /Applications/Godot.app &>/dev/null || brew list --cask godot &>/dev/null" \ + "brew install --cask godot" \ + "$SKIP_GODOT" + +# ── Rust toolchain ─────────────────────────────────────────────────── +echo -e "${BLUE}[3/7] Rust toolchain${NC}" +if [ "$SKIP_RUST" = "true" ]; then + skip "Rust (--skip-rust flag)" + SKIPPED+=("rust") +else + if command -v rustc &>/dev/null; then + ok "Rust $(rustc --version | awk '{print $2}')" + ALREADY+=("rust") + else + info "Installing Rust via rustup..." + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable + source "$HOME/.cargo/env" + ok "Rust $(rustc --version | awk '{print $2}')" + INSTALLED+=("rust") + fi + + # wasm32 target (needed for guide WASM build) + echo -e "${BLUE}[3b] wasm32-unknown-unknown target${NC}" + if rustup target list --installed | grep -q wasm32-unknown-unknown; then + ok "wasm32 target" + ALREADY+=("wasm32-target") + else + info "Adding wasm32-unknown-unknown target..." + rustup target add wasm32-unknown-unknown + ok "wasm32 target" + INSTALLED+=("wasm32-target") + fi + + # macOS native target for GDExtension + ARCH="$(uname -m)" + if [ "$ARCH" = "arm64" ]; then + DARWIN_TARGET="aarch64-apple-darwin" + else + DARWIN_TARGET="x86_64-apple-darwin" + fi + echo -e "${BLUE}[3c] $DARWIN_TARGET target${NC}" + if rustup target list --installed | grep -q "$DARWIN_TARGET"; then + ok "$DARWIN_TARGET target" + ALREADY+=("$DARWIN_TARGET") + else + info "Adding $DARWIN_TARGET target..." + rustup target add "$DARWIN_TARGET" + ok "$DARWIN_TARGET target" + INSTALLED+=("$DARWIN_TARGET") + fi +fi + +# ── wasm-pack ──────────────────────────────────────────────────────── +echo -e "${BLUE}[4/7] wasm-pack${NC}" +if [ "$SKIP_RUST" = "true" ]; then + skip "wasm-pack (--skip-rust flag)" + SKIPPED+=("wasm-pack") +else + check_or_install "wasm-pack" \ + "command -v wasm-pack" \ + "cargo install wasm-pack" +fi + +# ── Python + gdtoolkit ─────────────────────────────────────────────── +echo -e "${BLUE}[5/7] gdtoolkit (gdlint + gdformat)${NC}" +check_or_install "gdtoolkit" \ + "command -v gdlint" \ + "pip3 install --break-system-packages gdtoolkit || pip3 install gdtoolkit" + +# ── Node.js + pnpm ────────────────────────────────────────────────── +echo -e "${BLUE}[6/7] Node.js${NC}" +check_or_install "Node.js" \ + "command -v node" \ + "brew install node" + +echo -e "${BLUE}[6b] pnpm${NC}" +check_or_install "pnpm" \ + "command -v pnpm" \ + "npm install -g pnpm" + +# ── pnpm install ───────────────────────────────────────────────────── +echo -e "${BLUE}[7/7] Project dependencies${NC}" +if [ -f "$REPO_ROOT/pnpm-lock.yaml" ]; then + info "Running pnpm install..." + if (cd "$REPO_ROOT" && pnpm install 2>&1); then + ok "pnpm dependencies" + else + warn "pnpm install had errors (private registry packages may need VPN/auth)" + fi +else + skip "pnpm install (no pnpm-lock.yaml)" +fi + +# ── Verify ─────────────────────────────────────────────────────────── +echo "" +echo -e "${BLUE}─────────────────────────────────────────────────${NC}" +echo -e "${BLUE} Verification${NC}" +echo -e "${BLUE}─────────────────────────────────────────────────${NC}" + +verify_cmd() { + local label="$1" + local cmd="$2" + if eval "$cmd" &>/dev/null; then + local version + version=$(eval "$3" 2>/dev/null || echo "installed") + echo -e " ${GREEN}OK${NC} $label ${DIM}($version)${NC}" + else + echo -e " ${RED}--${NC} $label" + fi +} + +verify_cmd "brew" "command -v brew" "brew --version | head -1" +verify_cmd "godot" "ls /Applications/Godot.app || command -v godot" \ + "echo 'Godot 4.3'" +verify_cmd "rustc" "command -v rustc" "rustc --version" +verify_cmd "cargo" "command -v cargo" "cargo --version" +verify_cmd "wasm-pack" "command -v wasm-pack" "wasm-pack --version" +verify_cmd "gdlint" "command -v gdlint" "gdlint --version 2>&1 || echo 'installed'" +verify_cmd "gdformat" "command -v gdformat" "gdformat --version 2>&1 || echo 'installed'" +verify_cmd "node" "command -v node" "node --version" +verify_cmd "pnpm" "command -v pnpm" "pnpm --version" + +# ── Summary ────────────────────────────────────────────────────────── +echo "" +echo -e "${BLUE}─────────────────────────────────────────────────${NC}" +echo -e "${BLUE} Summary${NC}" +echo -e "${BLUE}─────────────────────────────────────────────────${NC}" +[ ${#INSTALLED[@]} -gt 0 ] && echo -e " ${GREEN}Installed:${NC} ${INSTALLED[*]}" +[ ${#ALREADY[@]} -gt 0 ] && echo -e " ${DIM}Already had:${NC} ${ALREADY[*]}" +[ ${#SKIPPED[@]} -gt 0 ] && echo -e " ${YELLOW}Skipped:${NC} ${SKIPPED[*]}" +[ ${#FAILED[@]} -gt 0 ] && echo -e " ${RED}Failed:${NC} ${FAILED[*]}" + +if [ ${#FAILED[@]} -gt 0 ]; then + echo "" + echo -e " ${RED}Some tools failed to install. Fix the errors above and re-run.${NC}" + exit 1 +fi + +echo "" +echo -e " ${GREEN}Ready to go.${NC} Try:" +echo -e " ${DIM}./run verify${NC} — full lint + test pipeline" +echo -e " ${DIM}./run play${NC} — launch the game" +echo -e " ${DIM}./run guide${NC} — start guide dev server" +echo "" diff --git a/scripts/run/common.sh b/scripts/run/common.sh index 823820d3..30999bd2 100644 --- a/scripts/run/common.sh +++ b/scripts/run/common.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash # Shared constants and helpers for all run scripts +# Ensure cargo is in PATH (rustup installs to ~/.cargo/bin) +[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env" + RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' @@ -8,7 +11,10 @@ BLUE='\033[0;34m' DIM='\033[2m' NC='\033[0m' -GODOT_BIN="flatpak run --user org.godotengine.Godot" +case "$(uname -s)" in + Darwin) GODOT_BIN="godot" ;; + *) GODOT_BIN="flatpak run --user org.godotengine.Godot" ;; +esac GAME_DIR="$REPO_ROOT/src/game" SIMULATOR_DIR="$REPO_ROOT/src/simulator" GUIDE_DIR="$REPO_ROOT/public/games/age-of-dwarves/guide" diff --git a/scripts/run/dev.sh b/scripts/run/dev.sh index 5489f830..8b0f93a7 100644 --- a/scripts/run/dev.sh +++ b/scripts/run/dev.sh @@ -187,15 +187,15 @@ cmd_verify() { } # Step 1 — Rust build - _verify_step 1 6 "cargo build --workspace" \ + _verify_step 1 7 "cargo build --workspace" \ _verify_run_in_dir "$SIMULATOR_DIR" cargo build --workspace # Step 2 — Rust tests - _verify_step 2 6 "cargo test --workspace" \ + _verify_step 2 7 "cargo test --workspace" \ _verify_run_in_dir "$SIMULATOR_DIR" cargo test --workspace # Step 3 — Rust clippy - _verify_step 3 6 "cargo clippy --workspace -D warnings" \ + _verify_step 3 7 "cargo clippy --workspace -D warnings" \ _verify_run_in_dir "$SIMULATOR_DIR" cargo clippy --workspace -- -D warnings # Apply project-local gdlint config before linting. @@ -207,21 +207,42 @@ cmd_verify() { cp "$REPO_ROOT/.project/gdlintrc.local" "$REPO_ROOT/gdlintrc" 2>/dev/null # Step 4 — GDScript lint: engine/src/ - _verify_step 4 6 "gdlint engine/src/" \ + _verify_step 4 7 "gdlint engine/src/" \ gdlint "$GAME_DIR/engine/src/" # Step 5 — GDScript lint: scenes/tests/ - _verify_step 5 6 "gdlint engine/scenes/tests/" \ + _verify_step 5 7 "gdlint engine/scenes/tests/" \ gdlint "$GAME_DIR/engine/scenes/tests/" # Step 6 — GDScript lint: tests/integration/ - _verify_step 6 6 "gdlint engine/tests/integration/" \ + _verify_step 6 7 "gdlint engine/tests/integration/" \ gdlint "$GAME_DIR/engine/tests/integration/" + # Step 7 — Godot headless boot: GDExtension + script compilation + _verify_step 7 7 "godot headless boot (no script errors)" \ + _godot_headless_boot + _verify_summary return $overall_exit } +_godot_headless_boot() { + ## Boot Godot headless and check for SCRIPT ERRORs. + ## Catches class_name resolution failures, GDExtension load failures, + ## and any other compile-time GDScript errors that gdlint cannot detect. + local log="/tmp/godot_headless_boot_$$.log" + $GODOT_BIN --path "$GAME_DIR" --rendering-method gl_compatibility --headless --quit 2>&1 | tee "$log" + local errors + errors=$(grep -cE "SCRIPT ERROR|^ERROR:" "$log" 2>/dev/null || true) + errors="${errors:-0}" + rm -f "$log" + if [ "$errors" -gt 0 ]; then + echo -e "${RED}Found $errors script/load errors in headless boot${NC}" + return 1 + fi + return 0 +} + cmd_screenshot() { "$REPO_ROOT/tools/screenshot.sh" "$@" } diff --git a/scripts/run/tools.sh b/scripts/run/tools.sh index c8102539..cf5ab03f 100644 --- a/scripts/run/tools.sh +++ b/scripts/run/tools.sh @@ -6,5 +6,9 @@ cmd_tools_spritegen() { } cmd_setup() { - "$REPO_ROOT/tools/dev/setup-devenv.sh" "$@" + case "$(uname -s)" in + Darwin) "$REPO_ROOT/scripts/dev-setup/osx.sh" "$@" ;; + Linux) echo -e "${RED}Linux setup not yet implemented${NC}"; exit 1 ;; + *) echo -e "${RED}Unsupported OS: $(uname -s)${NC}"; exit 1 ;; + esac } diff --git a/src/game/engine/addons/magic_civ_physics/magic_civ_physics.gdextension b/src/game/engine/addons/magic_civ_physics/magic_civ_physics.gdextension index d8dcc5e0..88fd4316 100644 --- a/src/game/engine/addons/magic_civ_physics/magic_civ_physics.gdextension +++ b/src/game/engine/addons/magic_civ_physics/magic_civ_physics.gdextension @@ -6,4 +6,7 @@ compatibility_minimum = 4.2 linux.x86_64.release = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.x86_64.so" linux.x86_64.debug = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.x86_64.so" windows.x86_64.release = "res://engine/addons/magic_civ_physics/magic_civ_physics.x86_64.dll" -macos.release = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.framework" +macos.release = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.dylib" +macos.debug = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.dylib" +macos.arm64.release = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.dylib" +macos.arm64.debug = "res://engine/addons/magic_civ_physics/libmagic_civ_physics.dylib" diff --git a/src/game/engine/scenes/tests/headless_screenshot.gd b/src/game/engine/scenes/tests/headless_screenshot.gd new file mode 100644 index 00000000..0dd4a2b9 --- /dev/null +++ b/src/game/engine/scenes/tests/headless_screenshot.gd @@ -0,0 +1,54 @@ +extends SceneTree +## Offscreen screenshot tool using SubViewport for true offscreen rendering. +## Usage: godot --path src/game --rendering-method gl_compatibility +## -s res://engine/scenes/tests/headless_screenshot.gd -- [output_path] + +var _frames_waited: int = 0 +var _output_path: String = "/tmp/magic_civ_headless.png" +var _sub_viewport: SubViewport = null + + +func _init() -> void: + var args: PackedStringArray = OS.get_cmdline_user_args() + for arg in args: + if arg.ends_with(".png"): + _output_path = arg + + +func _initialize() -> void: + # Hide the main window by making it tiny and off-screen + var win: Window = root.get_window() + if win != null: + win.position = Vector2i(-9999, -9999) + win.size = Vector2i(1, 1) + + # Create a SubViewport for offscreen rendering + _sub_viewport = SubViewport.new() + _sub_viewport.size = Vector2i(1920, 1080) + _sub_viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS + _sub_viewport.transparent_bg = false + root.add_child(_sub_viewport) + + # Load the main scene into the SubViewport + var main_scene: PackedScene = load("res://engine/scenes/main/main.tscn") + if main_scene == null: + push_error("Cannot load main scene") + quit(1) + return + var root_node: Node = main_scene.instantiate() + _sub_viewport.add_child(root_node) + + +func _process(_delta: float) -> bool: + _frames_waited += 1 + if _frames_waited == 90: + var img: Image = _sub_viewport.get_texture().get_image() + if img != null and img.get_width() > 0: + img.save_png(_output_path) + print("Screenshot saved to: %s" % _output_path) + else: + push_error("Failed to capture SubViewport image") + quit(1) + return false + quit(0) + return false diff --git a/src/game/engine/src/entities/building.gd b/src/game/engine/src/entities/building.gd index 26c20e57..e33b490d 100644 --- a/src/game/engine/src/entities/building.gd +++ b/src/game/engine/src/entities/building.gd @@ -21,7 +21,7 @@ var visited: bool = false static func from_dict(data: Dictionary) -> Building: - var b := Building.new() + var b := new() b.id = data.get("id", "") b.type_id = data.get("type_id", "") b.name = data.get("name", "") diff --git a/src/game/engine/src/map/pathfinder.gd b/src/game/engine/src/map/pathfinder.gd index dffebbb3..68abfd84 100644 --- a/src/game/engine/src/map/pathfinder.gd +++ b/src/game/engine/src/map/pathfinder.gd @@ -23,7 +23,7 @@ const LOS_BLOCKING_BIOMES: Array[String] = ["mountain", "dense_forest"] static func find_path( - map: GameMap, start: Vector2i, goal: Vector2i, movement_budget: int, unit_type: String + map: RefCounted, start: Vector2i, goal: Vector2i, movement_budget: int, unit_type: String ) -> Array[Vector2i]: ## A* pathfinding from start to goal on the hex grid. ## Returns the path as an array of axial positions (start excluded, goal included). @@ -96,7 +96,7 @@ static func find_path( static func movement_range( - map: GameMap, start: Vector2i, movement_budget: int, unit_type: String + map: RefCounted, start: Vector2i, movement_budget: int, unit_type: String ) -> Dictionary: ## Dijkstra flood-fill: all hexes reachable within movement_budget. ## Returns Dictionary mapping Vector2i (axial) -> int (cost spent to reach). @@ -142,7 +142,7 @@ static func movement_range( return cost_so_far -static func visible_hexes(map: GameMap, center: Vector2i, vision_radius: int) -> Array[Vector2i]: +static func visible_hexes(map: RefCounted, center: Vector2i, vision_radius: int) -> Array[Vector2i]: ## Return all hex positions visible from center within vision_radius. ## A hex is visible if it is within range AND has_line_of_sight from center. ## The center tile is always included. @@ -162,7 +162,7 @@ static func visible_hexes(map: GameMap, center: Vector2i, vision_radius: int) -> return result -static func has_line_of_sight(map: GameMap, start: Vector2i, goal: Vector2i) -> bool: +static func has_line_of_sight(map: RefCounted, start: Vector2i, goal: Vector2i) -> bool: ## Check line of sight between two hex positions. ## Uses hex line drawing; any intermediate tile with blocking terrain ## (mountains, dense forest) breaks LoS. Start and goal tiles are not checked. diff --git a/src/game/engine/src/models/world/air_fauna.gd b/src/game/engine/src/models/world/air_fauna.gd index 9dcb9b66..bbd3b3c6 100644 --- a/src/game/engine/src/models/world/air_fauna.gd +++ b/src/game/engine/src/models/world/air_fauna.gd @@ -9,7 +9,7 @@ var altitude_preference: String = "low" # low/mid/high — affects spawn elevat static func from_dict(data: Dictionary) -> AirFaunaModel: - var a := AirFaunaModel.new() + var a := new() var nt: Array = data.get("nesting_terrains", []) a.nesting_terrains = [] for t in nt: diff --git a/src/game/engine/src/models/world/biome.gd b/src/game/engine/src/models/world/biome.gd index 506813a9..64cc41a9 100644 --- a/src/game/engine/src/models/world/biome.gd +++ b/src/game/engine/src/models/world/biome.gd @@ -20,7 +20,7 @@ var tags: Array[String] = [] # semantic tags (is_water, is_elevated, etc.) static func from_dict(data: Dictionary) -> BiomeModel: - var b := BiomeModel.new() + var b := new() b.id = data.get("id", "") b.name = data.get("name", "") diff --git a/src/game/engine/src/models/world/flora_profile.gd b/src/game/engine/src/models/world/flora_profile.gd index 1b8c262e..bdb839ba 100644 --- a/src/game/engine/src/models/world/flora_profile.gd +++ b/src/game/engine/src/models/world/flora_profile.gd @@ -15,7 +15,7 @@ var fungi_regrowth_bonus: float = 1.5 static func from_dict(data: Dictionary) -> FloraProfile: - var f := FloraProfile.new() + var f := new() f.biome_id = data.get("biome_id", "") f.canopy_climax = data.get("canopy_climax", 0.0) f.undergrowth_climax = data.get("undergrowth_climax", 0.0) diff --git a/src/game/engine/src/models/world/land_fauna.gd b/src/game/engine/src/models/world/land_fauna.gd index 0d5fa444..77feb7d0 100644 --- a/src/game/engine/src/models/world/land_fauna.gd +++ b/src/game/engine/src/models/world/land_fauna.gd @@ -43,7 +43,7 @@ var grazing_by_size: Dictionary = { static func from_dict(data: Dictionary) -> LandFaunaModel: - var l := LandFaunaModel.new() + var l := new() l.undergrowth_weight = data.get("undergrowth_weight", 0.6) l.canopy_weight = data.get("canopy_weight", 0.2) l.fungi_weight = data.get("fungi_weight", 0.2) diff --git a/src/game/engine/src/models/world/marine_fauna.gd b/src/game/engine/src/models/world/marine_fauna.gd index 56ebeb57..3b91c2f4 100644 --- a/src/game/engine/src/models/world/marine_fauna.gd +++ b/src/game/engine/src/models/world/marine_fauna.gd @@ -28,7 +28,7 @@ var fish_temp_scale_polar: float = 0.3 static func from_dict(data: Dictionary) -> MarineFaunaModel: - var m := MarineFaunaModel.new() + var m := new() m.whale_min_quality = data.get("whale_min_quality", 2) m.whale_min_depth = data.get("whale_min_depth", 1) m.whale_max_depth = data.get("whale_max_depth", 8) diff --git a/src/game/engine/src/models/world/species_traits.gd b/src/game/engine/src/models/world/species_traits.gd index 5f83028c..1180db9a 100644 --- a/src/game/engine/src/models/world/species_traits.gd +++ b/src/game/engine/src/models/world/species_traits.gd @@ -107,7 +107,7 @@ func to_dict() -> Dictionary: static func from_dict(data: Dictionary) -> TraitSet: - var ts := TraitSet.new() + var ts := new() ts.size = data.get("size", "medium") ts.diet = data.get("diet", "herbivore") ts.habitat = data.get("habitat", "terrestrial") diff --git a/src/game/engine/src/models/world/substrate.gd b/src/game/engine/src/models/world/substrate.gd index 671c99df..c756bf01 100644 --- a/src/game/engine/src/models/world/substrate.gd +++ b/src/game/engine/src/models/world/substrate.gd @@ -13,7 +13,7 @@ var typical_elevation_max: float = 1.0 static func from_dict(data: Dictionary) -> SubstrateType: - var s := SubstrateType.new() + var s := new() s.id = data.get("id", "") s.elevation_class = data.get("elevation_class", "") s.soil_type = data.get("soil_type", "") diff --git a/src/game/engine/src/models/world/water_body.gd b/src/game/engine/src/models/world/water_body.gd index 5206505d..fae4b19c 100644 --- a/src/game/engine/src/models/world/water_body.gd +++ b/src/game/engine/src/models/world/water_body.gd @@ -48,7 +48,7 @@ func to_dict() -> Dictionary: static func from_dict(data: Dictionary) -> WaterBody: - var wb := WaterBody.new() + var wb := new() wb.id = data.get("id", -1) wb.size = data.get("size", 0) wb.type = data.get("type", "") diff --git a/src/game/engine/src/modules/ai/ai_turn_bridge.gd b/src/game/engine/src/modules/ai/ai_turn_bridge.gd index 484d42ab..4388e63f 100644 --- a/src/game/engine/src/modules/ai/ai_turn_bridge.gd +++ b/src/game/engine/src/modules/ai/ai_turn_bridge.gd @@ -58,7 +58,7 @@ static func _apply_move(action: Dictionary, player: RefCounted) -> bool: var idx: int = int(action.get("unit_index", -1)) if idx < 0 or idx >= player.units.size(): return false - var unit: Unit = player.units[idx] as Unit + var unit: Variant = player.units[idx] if unit == null or not unit.is_alive(): return false var target_col: int = int(action.get("target_col", 0)) @@ -75,7 +75,7 @@ static func _apply_found_city(action: Dictionary, player: RefCounted) -> bool: var idx: int = int(action.get("unit_index", -1)) if idx < 0 or idx >= player.units.size(): return false - var unit: Unit = player.units[idx] as Unit + var unit: Variant = player.units[idx] if unit == null or not unit.is_alive() or not unit.can_found_city: return false @@ -124,7 +124,7 @@ static func _apply_attack(action: Dictionary, player: RefCounted) -> bool: var idx: int = int(action.get("unit_index", -1)) if idx < 0 or idx >= player.units.size(): return false - var attacker: Unit = player.units[idx] as Unit + var attacker: Variant = player.units[idx] if attacker == null or not attacker.is_alive(): return false if attacker.movement_remaining <= 0: diff --git a/src/game/engine/src/modules/ai/simple_heuristic_ai.gd b/src/game/engine/src/modules/ai/simple_heuristic_ai.gd index 8138c4bb..91fed343 100644 --- a/src/game/engine/src/modules/ai/simple_heuristic_ai.gd +++ b/src/game/engine/src/modules/ai/simple_heuristic_ai.gd @@ -48,7 +48,7 @@ static func process_player(player: RefCounted) -> Array: # Units: founders first (expansion), then military. for idx: int in player.units.size(): - var unit: Unit = player.units[idx] as Unit + var unit: Variant = player.units[idx] if unit == null or not unit.is_alive(): continue if unit.movement_remaining <= 0: @@ -127,7 +127,7 @@ static func _collect_enemy_units(player: RefCounted) -> Array: continue if other.index == player.index: continue - for eu: Unit in other.units: + for eu: Variant in other.units: if eu == null or not eu.is_alive(): continue out.append(eu) @@ -149,10 +149,10 @@ static func _collect_enemy_city_positions( return out -static func _nearest_enemy_unit(pos: Vector2i, enemies: Array) -> Unit: - var best: Unit = null +static func _nearest_enemy_unit(pos: Vector2i, enemies: Array) -> Variant: + var best: Variant = null var best_dist: int = INF_DISTANCE - for eu: Unit in enemies: + for eu: Variant in enemies: var d: int = HexUtilsScript.hex_distance(pos, eu.position) if d < best_dist: best_dist = d @@ -176,7 +176,7 @@ static func _nearest_position( static func _tile_has_enemy_unit( pos: Vector2i, enemy_units: Array ) -> bool: - for eu: Unit in enemy_units: + for eu: Variant in enemy_units: if eu.position == pos: return true return false @@ -186,7 +186,7 @@ static func _tile_has_enemy_unit( static func _decide_founder_action( - idx: int, unit: Unit, player: RefCounted, enemy_units: Array + idx: int, unit: Variant, player: RefCounted, enemy_units: Array ) -> Dictionary: var own_city_positions: Array[Vector2i] = [] for c: RefCounted in player.cities: @@ -215,7 +215,7 @@ static func _decide_founder_action( # vacuously-zero score case that stalls founders with no cities. var score_fn: Callable if not clear_of_enemies: - var nearest: Unit = _nearest_enemy_unit(unit.position, enemy_units) + var nearest: Variant = _nearest_enemy_unit(unit.position, enemy_units) if nearest != null: score_fn = _score_away_from_pos(nearest.position) else: @@ -235,14 +235,14 @@ static func _score_away_from_own(own: Array[Vector2i]) -> Callable: static func _decide_military_action( idx: int, - unit: Unit, + unit: Variant, player: RefCounted, enemy_units: Array, enemy_city_positions: Array[Vector2i], personality: Dictionary, ) -> Dictionary: var hp_frac: float = float(unit.hp) / maxf(1.0, float(unit.max_hp)) - var nearest_enemy: Unit = _nearest_enemy_unit(unit.position, enemy_units) + var nearest_enemy: Variant = _nearest_enemy_unit(unit.position, enemy_units) # Retreat if wounded and a threat is within reach. if hp_frac <= RETREAT_HP_FRACTION and nearest_enemy != null: @@ -317,7 +317,7 @@ static func _decide_production( city_index: int, player: RefCounted ) -> Dictionary: var military_count: int = 0 - for u: Unit in player.units: + for u: Variant in player.units: if u == null or not u.is_alive(): continue if u.unit_type in MILITARY_COMBAT_TYPES: @@ -426,7 +426,7 @@ static func _min_distance(pos: Vector2i, others: Array[Vector2i]) -> int: static func _min_distance_to_units(pos: Vector2i, units: Array) -> int: var best: int = INF_DISTANCE - for u: Unit in units: + for u: Variant in units: var d: int = HexUtilsScript.hex_distance(pos, u.position) if d < best: best = d diff --git a/src/game/engine/src/modules/management/rust_fauna_bridge.gd b/src/game/engine/src/modules/management/rust_fauna_bridge.gd index f793bfed..8844e9b8 100644 --- a/src/game/engine/src/modules/management/rust_fauna_bridge.gd +++ b/src/game/engine/src/modules/management/rust_fauna_bridge.gd @@ -38,7 +38,7 @@ const UnitScript: GDScript = preload("res://engine/src/entities/unit.gd") ## the blank grid with a clone of this real one static func build_state( axes: Dictionary, - units: Array[Unit], + units: Array, cities: Array[Vector2i], grid_size: Vector2i, gridstate: RefCounted = null, @@ -57,7 +57,7 @@ static func build_state( state.call("set_player_cities_from_array", pi, cities) var unit_dicts: Array[Dictionary] = [] - for u: Unit in units: + for u: Variant in units: unit_dicts.append(u.to_bridge_dict()) state.call("set_player_units_from_dicts", pi, unit_dicts) return state @@ -99,7 +99,7 @@ static func stamp_lairs(state: RefCounted, lairs: Array) -> int: static func resolve_fauna_encounters( processor: RefCounted, state: RefCounted, - live_units: Array[Unit], + live_units: Array, ) -> Array: if processor == null or state == null: return [] @@ -108,7 +108,7 @@ static func resolve_fauna_encounters( # Build a position → live Unit lookup so we can resolve deaths in O(1). var by_pos: Dictionary = {} - for u: Unit in live_units: + for u: Variant in live_units: if u != null and u.is_alive(): by_pos[u.position] = u @@ -119,7 +119,7 @@ static func resolve_fauna_encounters( var unit_row: int = int(ev.get("unit_row", -1)) var lair_tier: int = int(ev.get("lair_tier", 0)) var key: Vector2i = Vector2i(unit_col, unit_row) - var dead: Unit = by_pos.get(key, null) as Unit + var dead: Variant = by_pos.get(key, null) if dead == null: continue # Killing the unit and emitting the signal once per death. diff --git a/src/game/engine/src/modules/management/rust_fauna_integration.gd b/src/game/engine/src/modules/management/rust_fauna_integration.gd index 0279bd3b..36f1c8c0 100644 --- a/src/game/engine/src/modules/management/rust_fauna_integration.gd +++ b/src/game/engine/src/modules/management/rust_fauna_integration.gd @@ -1,5 +1,6 @@ class_name RustFaunaIntegration extends RefCounted +const UnitScript = preload("res://engine/src/entities/unit.gd") ## Iter 7k — gated parallel Rust fauna encounter pass. ## ## When `RUST_FAUNA_ENCOUNTERS` is enabled in EnvConfig (typically via @@ -111,9 +112,9 @@ static func _run_for_player( lairs: Array, grid_size: Vector2i, ) -> void: - var live_units: Array[Unit] = [] + var live_units: Array = [] for u: Variant in player.units: - if u is Unit and u.is_alive(): + if u is UnitScript and u.is_alive(): live_units.append(u) if live_units.is_empty(): return diff --git a/src/simulator/api-gdext/src/lib.rs b/src/simulator/api-gdext/src/lib.rs index 16077598..428ba718 100644 --- a/src/simulator/api-gdext/src/lib.rs +++ b/src/simulator/api-gdext/src/lib.rs @@ -6,6 +6,7 @@ //! instance methods on a wrapper that owns the underlying Rust struct, so the //! `from_*` naming refers to "construct state from JSON" not "convert self to T". #![allow(clippy::wrong_self_convention)] +#![allow(clippy::result_large_err)] use godot::prelude::*;