From d91e3b4aa2daf160693fc1f0dedc39a5a000d026 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:32:18 +0000 Subject: [PATCH 01/39] Bump motion from 12.23.12 to 12.23.24 Bumps [motion](https://github.com/motiondivision/motion) from 12.23.12 to 12.23.24. - [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/motiondivision/motion/compare/v12.23.12...v12.23.24) --- updated-dependencies: - dependency-name: motion dependency-version: 12.23.24 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 44 +++++++++++++++++++++++++------------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index b39dd309d..69ffdd7f1 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "lucia": "^2.7.7", "lucide-react": "^0.545.0", "luxon": "^3.7.2", - "motion": "^12.18.1", + "motion": "^12.23.24", "next": "^14.2.32", "nuqs": "^1.20.0", "ohash": "^1.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddbdfbf42..3e1534cb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -141,8 +141,8 @@ importers: specifier: ^3.7.2 version: 3.7.2 motion: - specifier: ^12.18.1 - version: 12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^12.23.24 + version: 12.23.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.32 version: 14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2) @@ -1049,8 +1049,8 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bufbuild/protobuf@2.8.0': - resolution: {integrity: sha512-r1/0w5C9dkbcdjyxY8ZHsC5AOWg4Pnzhm2zu7LO4UHSounp2tMm6Y+oioV9zlGbLveE7YaWRDUk48WLxRDgoqg==} + '@bufbuild/protobuf@2.9.0': + resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==} '@codaco/analytics@7.0.0': resolution: {integrity: sha512-Cig7fyEC6rFFlkMXHw5+wFFl8f1Wj2qwv2+af/ugn/8f0jHoq5UABPnAivLyTjOWq52vyvzjNmxDdrywoulGPA==} @@ -4504,8 +4504,8 @@ packages: engines: {node: '>=18.3.0'} hasBin: true - framer-motion@12.23.12: - resolution: {integrity: sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==} + framer-motion@12.23.24: + resolution: {integrity: sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -4789,6 +4789,9 @@ packages: immutable@5.1.3: resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -5633,14 +5636,14 @@ packages: engines: {node: '>=10'} hasBin: true - motion-dom@12.23.12: - resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==} + motion-dom@12.23.23: + resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} motion-utils@12.23.6: resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} - motion@12.23.12: - resolution: {integrity: sha512-8jCD8uW5GD1csOoqh1WhH1A6j5APHVE15nuBkFeRiMzYBdRwyAHmSP/oXSuW0WJPZRXTFdBoG4hY9TFWNhhwng==} + motion@12.23.24: + resolution: {integrity: sha512-Rc5E7oe2YZ72N//S3QXGzbnXgqNrTESv8KKxABR20q2FLch9gHLo0JLyYo2hZ238bZ9Gx6cWhj9VO0IgwbMjCw==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -8490,7 +8493,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bufbuild/protobuf@2.8.0': + '@bufbuild/protobuf@2.9.0': optional: true '@codaco/analytics@7.0.0(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))': @@ -12211,9 +12214,9 @@ snapshots: dependencies: fd-package-json: 2.0.0 - framer-motion@12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.23.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 12.23.12 + motion-dom: 12.23.23 motion-utils: 12.23.6 tslib: 2.8.1 optionalDependencies: @@ -12550,6 +12553,9 @@ snapshots: immutable@5.1.3: {} + immutable@5.1.4: + optional: true + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -13717,15 +13723,15 @@ snapshots: mkdirp@3.0.1: {} - motion-dom@12.23.12: + motion-dom@12.23.23: dependencies: motion-utils: 12.23.6 motion-utils@12.23.6: {} - motion@12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + motion@12.23.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - framer-motion: 12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 12.23.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 optionalDependencies: react: 18.3.1 @@ -14780,10 +14786,10 @@ snapshots: sass-embedded@1.92.1: dependencies: - '@bufbuild/protobuf': 2.8.0 + '@bufbuild/protobuf': 2.9.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 - immutable: 5.1.3 + immutable: 5.1.4 rxjs: 7.8.2 supports-color: 8.1.1 sync-child-process: 1.0.2 @@ -14820,7 +14826,7 @@ snapshots: sass@1.92.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 From b49a8686800ca690c3651e9891e4e649ff6c9295 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:34:05 +0000 Subject: [PATCH 02/39] Bump es-toolkit from 1.39.10 to 1.40.0 Bumps [es-toolkit](https://github.com/toss/es-toolkit) from 1.39.10 to 1.40.0. - [Release notes](https://github.com/toss/es-toolkit/releases) - [Changelog](https://github.com/toss/es-toolkit/blob/main/CHANGELOG.md) - [Commits](https://github.com/toss/es-toolkit/compare/v1.39.10...v1.40.0) --- updated-dependencies: - dependency-name: es-toolkit dependency-version: 1.40.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index b39dd309d..572ed7a83 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "csvtojson": "^2.0.10", "d3-interpolate-path": "^2.3.0", "dotenv": "^17.2.1", - "es-toolkit": "^1.39.8", + "es-toolkit": "^1.40.0", "fuse.js": "^7.1.0", "jssha": "^3.3.1", "jszip": "^3.10.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddbdfbf42..4fc369fbd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,8 +120,8 @@ importers: specifier: ^17.2.1 version: 17.2.2 es-toolkit: - specifier: ^1.39.8 - version: 1.39.10 + specifier: ^1.40.0 + version: 1.40.0 fuse.js: specifier: ^7.1.0 version: 7.1.0 @@ -1049,8 +1049,8 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bufbuild/protobuf@2.8.0': - resolution: {integrity: sha512-r1/0w5C9dkbcdjyxY8ZHsC5AOWg4Pnzhm2zu7LO4UHSounp2tMm6Y+oioV9zlGbLveE7YaWRDUk48WLxRDgoqg==} + '@bufbuild/protobuf@2.9.0': + resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==} '@codaco/analytics@7.0.0': resolution: {integrity: sha512-Cig7fyEC6rFFlkMXHw5+wFFl8f1Wj2qwv2+af/ugn/8f0jHoq5UABPnAivLyTjOWq52vyvzjNmxDdrywoulGPA==} @@ -4165,8 +4165,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.39.10: - resolution: {integrity: sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==} + es-toolkit@1.40.0: + resolution: {integrity: sha512-8o6w0KFmU0CiIl0/Q/BCEOabF2IJaELM1T2PWj6e8KqzHv1gdx+7JtFnDwOx1kJH/isJ5NwlDG1nCr1HrRF94Q==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -4789,6 +4789,9 @@ packages: immutable@5.1.3: resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -8490,7 +8493,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bufbuild/protobuf@2.8.0': + '@bufbuild/protobuf@2.9.0': optional: true '@codaco/analytics@7.0.0(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))': @@ -11748,7 +11751,7 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.39.10: {} + es-toolkit@1.40.0: {} es6-error@4.1.1: {} @@ -12550,6 +12553,9 @@ snapshots: immutable@5.1.3: {} + immutable@5.1.4: + optional: true + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -14780,10 +14786,10 @@ snapshots: sass-embedded@1.92.1: dependencies: - '@bufbuild/protobuf': 2.8.0 + '@bufbuild/protobuf': 2.9.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 - immutable: 5.1.3 + immutable: 5.1.4 rxjs: 7.8.2 supports-color: 8.1.1 sync-child-process: 1.0.2 @@ -14820,7 +14826,7 @@ snapshots: sass@1.92.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 From 8818f9b953b953d85c7d4955e3e48b8ddf09fe38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:35:55 +0000 Subject: [PATCH 03/39] Bump prettier-plugin-tailwindcss from 0.6.14 to 0.7.1 Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.6.14 to 0.7.1. - [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.14...v0.7.1) --- updated-dependencies: - dependency-name: prettier-plugin-tailwindcss dependency-version: 0.7.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index b39dd309d..3c29592da 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "jsdom": "^27.0.0", "knip": "^5.63.1", "prettier": "^3.6.0", - "prettier-plugin-tailwindcss": "^0.6.14", + "prettier-plugin-tailwindcss": "^0.7.1", "prisma": "^6.16.3", "sass": "^1.93.2", "storybook": "^9.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddbdfbf42..074d06ee2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -352,8 +352,8 @@ importers: specifier: ^3.6.0 version: 3.6.2 prettier-plugin-tailwindcss: - specifier: ^0.6.14 - version: 0.6.14(prettier@3.6.2) + specifier: ^0.7.1 + version: 0.7.1(prettier@3.6.2) prisma: specifier: ^6.16.3 version: 6.17.1(magicast@0.3.5)(typescript@5.8.3) @@ -1049,8 +1049,8 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bufbuild/protobuf@2.8.0': - resolution: {integrity: sha512-r1/0w5C9dkbcdjyxY8ZHsC5AOWg4Pnzhm2zu7LO4UHSounp2tMm6Y+oioV9zlGbLveE7YaWRDUk48WLxRDgoqg==} + '@bufbuild/protobuf@2.9.0': + resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==} '@codaco/analytics@7.0.0': resolution: {integrity: sha512-Cig7fyEC6rFFlkMXHw5+wFFl8f1Wj2qwv2+af/ugn/8f0jHoq5UABPnAivLyTjOWq52vyvzjNmxDdrywoulGPA==} @@ -4789,6 +4789,9 @@ packages: immutable@5.1.3: resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -6021,9 +6024,9 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.14: - resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} - engines: {node: '>=14.21.3'} + prettier-plugin-tailwindcss@0.7.1: + resolution: {integrity: sha512-Bzv1LZcuiR1Sk02iJTS1QzlFNp/o5l2p3xkopwOrbPmtMeh3fK9rVW5M3neBQzHq+kGKj/4LGQMTNcTH4NGPtQ==} + engines: {node: '>=20.19'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' '@prettier/plugin-hermes': '*' @@ -6035,14 +6038,12 @@ packages: prettier: ^3.0 prettier-plugin-astro: '*' prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' prettier-plugin-jsdoc: '*' prettier-plugin-marko: '*' prettier-plugin-multiline-arrays: '*' prettier-plugin-organize-attributes: '*' prettier-plugin-organize-imports: '*' prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' prettier-plugin-svelte: '*' peerDependenciesMeta: '@ianvs/prettier-plugin-sort-imports': @@ -6063,8 +6064,6 @@ packages: optional: true prettier-plugin-css-order: optional: true - prettier-plugin-import-sort: - optional: true prettier-plugin-jsdoc: optional: true prettier-plugin-marko: @@ -6077,8 +6076,6 @@ packages: optional: true prettier-plugin-sort-imports: optional: true - prettier-plugin-style-order: - optional: true prettier-plugin-svelte: optional: true @@ -8490,7 +8487,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bufbuild/protobuf@2.8.0': + '@bufbuild/protobuf@2.9.0': optional: true '@codaco/analytics@7.0.0(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))': @@ -12550,6 +12547,9 @@ snapshots: immutable@5.1.3: {} + immutable@5.1.4: + optional: true + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -14163,7 +14163,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.14(prettier@3.6.2): + prettier-plugin-tailwindcss@0.7.1(prettier@3.6.2): dependencies: prettier: 3.6.2 @@ -14780,10 +14780,10 @@ snapshots: sass-embedded@1.92.1: dependencies: - '@bufbuild/protobuf': 2.8.0 + '@bufbuild/protobuf': 2.9.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 - immutable: 5.1.3 + immutable: 5.1.4 rxjs: 7.8.2 supports-color: 8.1.1 sync-child-process: 1.0.2 @@ -14820,7 +14820,7 @@ snapshots: sass@1.92.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 From aeb7fe0d70dfbe72f947213bb3405c14dd917415 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 13:00:28 +0000 Subject: [PATCH 04/39] Bump jsdom from 27.0.0 to 27.0.1 Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.0.0 to 27.0.1. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](https://github.com/jsdom/jsdom/compare/27.0.0...27.0.1) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.0.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 53 +++++++++++++++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index b39dd309d..ee1a37cf1 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "eslint-config-prettier": "^10.1.8", "eslint-plugin-storybook": "^9.1.4", "jest": "^30.1.3", - "jsdom": "^27.0.0", + "jsdom": "^27.0.1", "knip": "^5.63.1", "prettier": "^3.6.0", "prettier-plugin-tailwindcss": "^0.6.14", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddbdfbf42..b7ac41abe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -343,8 +343,8 @@ importers: specifier: ^30.1.3 version: 30.2.0(@types/node@22.18.3)(esbuild-register@3.6.0(esbuild@0.25.9)) jsdom: - specifier: ^27.0.0 - version: 27.0.0(postcss@8.5.6) + specifier: ^27.0.1 + version: 27.0.1(postcss@8.5.6) knip: specifier: ^5.63.1 version: 5.63.1(@types/node@22.18.3)(typescript@5.8.3) @@ -377,7 +377,7 @@ importers: version: 5.1.4(typescript@5.8.3)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) packages: @@ -395,8 +395,8 @@ packages: '@asamuzakjp/css-color@4.0.5': resolution: {integrity: sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==} - '@asamuzakjp/dom-selector@6.6.2': - resolution: {integrity: sha512-+AG0jN9HTwfDLBhjhX1FKi6zlIAc/YGgEHlN/OMaHD1pOPFsC5CpYQpLkPX0aFjyaVmoq9330cQDCU4qnSL1qA==} + '@asamuzakjp/dom-selector@6.7.2': + resolution: {integrity: sha512-ccKogJI+0aiDhOahdjANIc9SDixSud1gbwdVrhn7kMopAtLXqsz9MKmQQtIl6Y5aC2IYq+j4dz/oedL2AVMmVQ==} '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} @@ -1049,8 +1049,8 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bufbuild/protobuf@2.8.0': - resolution: {integrity: sha512-r1/0w5C9dkbcdjyxY8ZHsC5AOWg4Pnzhm2zu7LO4UHSounp2tMm6Y+oioV9zlGbLveE7YaWRDUk48WLxRDgoqg==} + '@bufbuild/protobuf@2.9.0': + resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==} '@codaco/analytics@7.0.0': resolution: {integrity: sha512-Cig7fyEC6rFFlkMXHw5+wFFl8f1Wj2qwv2+af/ugn/8f0jHoq5UABPnAivLyTjOWq52vyvzjNmxDdrywoulGPA==} @@ -4789,6 +4789,9 @@ packages: immutable@5.1.3: resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -5203,8 +5206,8 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdom@27.0.0: - resolution: {integrity: sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==} + jsdom@27.0.1: + resolution: {integrity: sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==} engines: {node: '>=20'} peerDependencies: canvas: ^3.0.0 @@ -5881,6 +5884,9 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@8.0.0: + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -7654,7 +7660,7 @@ snapshots: '@csstools/css-tokenizer': 3.0.4 lru-cache: 11.2.2 - '@asamuzakjp/dom-selector@6.6.2': + '@asamuzakjp/dom-selector@6.7.2': dependencies: '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 @@ -8490,7 +8496,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bufbuild/protobuf@2.8.0': + '@bufbuild/protobuf@2.9.0': optional: true '@codaco/analytics@7.0.0(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))': @@ -10519,7 +10525,7 @@ snapshots: magic-string: 0.30.19 sirv: 3.0.2 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) ws: 8.18.3 transitivePeerDependencies: - bufferutil @@ -12550,6 +12556,9 @@ snapshots: immutable@5.1.3: {} + immutable@5.1.4: + optional: true + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -13173,9 +13182,9 @@ snapshots: dependencies: argparse: 2.0.1 - jsdom@27.0.0(postcss@8.5.6): + jsdom@27.0.1(postcss@8.5.6): dependencies: - '@asamuzakjp/dom-selector': 6.6.2 + '@asamuzakjp/dom-selector': 6.7.2 cssstyle: 5.3.1(postcss@8.5.6) data-urls: 6.0.0 decimal.js: 10.6.0 @@ -13183,7 +13192,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - parse5: 7.3.0 + parse5: 8.0.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -14040,6 +14049,10 @@ snapshots: dependencies: entities: 6.0.1 + parse5@8.0.0: + dependencies: + entities: 6.0.1 + pascal-case@3.1.2: dependencies: no-case: 3.0.4 @@ -14780,10 +14793,10 @@ snapshots: sass-embedded@1.92.1: dependencies: - '@bufbuild/protobuf': 2.8.0 + '@bufbuild/protobuf': 2.9.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 - immutable: 5.1.3 + immutable: 5.1.4 rxjs: 7.8.2 supports-color: 8.1.1 sync-child-process: 1.0.2 @@ -14820,7 +14833,7 @@ snapshots: sass@1.92.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 @@ -15661,7 +15674,7 @@ snapshots: sass-embedded: 1.92.1 terser: 5.44.0 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 @@ -15690,7 +15703,7 @@ snapshots: '@types/debug': 4.1.12 '@types/node': 22.18.3 '@vitest/browser': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))(vitest@3.2.4) - jsdom: 27.0.0(postcss@8.5.6) + jsdom: 27.0.1(postcss@8.5.6) transitivePeerDependencies: - jiti - less From f407266fe0951a89cd6a48af896884c01d270ff5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 19:40:45 +0000 Subject: [PATCH 05/39] Bump knip from 5.63.1 to 5.66.1 Bumps [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) from 5.63.1 to 5.66.1. - [Release notes](https://github.com/webpro-nl/knip/releases) - [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json) - [Commits](https://github.com/webpro-nl/knip/commits/5.66.1/packages/knip) --- updated-dependencies: - dependency-name: knip dependency-version: 5.66.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 314 ++++++++++++++++++++++++------------------------- 2 files changed, 154 insertions(+), 162 deletions(-) diff --git a/package.json b/package.json index 02fa2a313..10a7d4747 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "eslint-plugin-storybook": "^9.1.4", "jest": "^30.1.3", "jsdom": "^27.0.1", - "knip": "^5.63.1", + "knip": "^5.66.2", "prettier": "^3.6.0", "prettier-plugin-tailwindcss": "^0.7.1", "prisma": "^6.16.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f7089bd2..00dd50037 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -260,7 +260,7 @@ importers: version: 6.17.1(prisma@6.17.1(magicast@0.3.5)(typescript@5.8.3))(typescript@5.8.3) '@storybook/nextjs': specifier: ^9.1.4 - version: 9.1.6(esbuild@0.25.9)(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass-embedded@1.92.1)(sass@1.93.2)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.101.3(esbuild@0.25.9)) + version: 9.1.6(esbuild@0.25.9)(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass-embedded@1.92.1)(sass@1.93.2)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.101.3(esbuild@0.25.9)) '@t3-oss/env-nextjs': specifier: ^0.13.8 version: 0.13.8(typescript@5.8.3)(zod@3.25.76) @@ -326,7 +326,7 @@ importers: version: 8.46.1(eslint@8.57.1)(typescript@5.8.3) '@vitejs/plugin-react': specifier: ^5.0.4 - version: 5.0.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + version: 5.0.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) eslint: specifier: ^8.57.1 version: 8.57.1 @@ -338,7 +338,7 @@ importers: version: 10.1.8(eslint@8.57.1) eslint-plugin-storybook: specifier: ^9.1.4 - version: 9.1.6(eslint@8.57.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) + version: 9.1.6(eslint@8.57.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) jest: specifier: ^30.1.3 version: 30.2.0(@types/node@22.18.3)(esbuild-register@3.6.0(esbuild@0.25.9)) @@ -346,8 +346,8 @@ importers: specifier: ^27.0.1 version: 27.0.1(postcss@8.5.6) knip: - specifier: ^5.63.1 - version: 5.63.1(@types/node@22.18.3)(typescript@5.8.3) + specifier: ^5.66.2 + version: 5.66.2(@types/node@22.18.3)(typescript@5.8.3) prettier: specifier: ^3.6.0 version: 3.6.2 @@ -362,7 +362,7 @@ importers: version: 1.93.2 storybook: specifier: ^9.1.5 - version: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + version: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) tailwindcss: specifier: 4.1.13 version: 4.1.13 @@ -374,10 +374,10 @@ importers: version: 5.8.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + version: 5.1.4(typescript@5.8.3)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) packages: @@ -1049,8 +1049,8 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bufbuild/protobuf@2.9.0': - resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==} + '@bufbuild/protobuf@2.10.0': + resolution: {integrity: sha512-fdRs9PSrBF7QUntpZpq6BTw58fhgGJojgg39m9oFOJGZT+nip9b0so5cYY1oWl5pvemDLr0cPPsH46vwThEbpQ==} '@codaco/analytics@7.0.0': resolution: {integrity: sha512-Cig7fyEC6rFFlkMXHw5+wFFl8f1Wj2qwv2+af/ugn/8f0jHoq5UABPnAivLyTjOWq52vyvzjNmxDdrywoulGPA==} @@ -1609,8 +1609,8 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.0.5': - resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} + '@napi-rs/wasm-runtime@1.0.7': + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} '@next/env@14.2.32': resolution: {integrity: sha512-n9mQdigI6iZ/DF6pCTwMKeWgF2e8lg7qgt5M7HXMLtyhZYMnf/u905M18sSpPmHL9MKp9JHo56C6jrD2EvWxng==} @@ -1696,98 +1696,98 @@ packages: resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} - '@oxc-resolver/binding-android-arm-eabi@11.8.0': - resolution: {integrity: sha512-St1Muhuw4EVprhV3/D7M9KmKZZiOUTrRu1UTRKFjJAzuec9eCq4OAEk3bPRXCJlKtdmS2ijvywTN++bjJUmYvg==} + '@oxc-resolver/binding-android-arm-eabi@11.11.0': + resolution: {integrity: sha512-aN0UJg1xr0N1dADQ135z4p3bP9AYAUN1Ey2VvLMK6IwWYIJGWpKT+cr1l3AiyBeLK8QZyFDb4IDU8LHgjO9TDQ==} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.8.0': - resolution: {integrity: sha512-aNq7fIcJN1+hdWL2vTLd8E/MNIaYa8hL6L2TFwIEo0VuIuaaYxk4/GiZK8w50z7QLDbD5GUMlXwb2ccI5RqL7A==} + '@oxc-resolver/binding-android-arm64@11.11.0': + resolution: {integrity: sha512-FckvvMclo8CSJqQjKpHueIIbKrg9L638NKWQTiJQaD8W9F61h8hTjF8+QFLlCHh6R9RcE5roVHdkkiBKHlB2Zw==} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.8.0': - resolution: {integrity: sha512-/mX3v6M9gyyAyV1VZSCbo5A5cJE32zrST5Qs3QxK+S9gc/8d1uNTmPgkoki8E6s561OA9S3KAepeTz+AtxD62w==} + '@oxc-resolver/binding-darwin-arm64@11.11.0': + resolution: {integrity: sha512-7ZcpgaXSBnwRHM1YR8Vazq7mCTtGdYRvM7k46CscA+oipCVqmI4LbW2wLsc6HVjqX+SM/KPOfFGoGjEgmQPFTQ==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.8.0': - resolution: {integrity: sha512-OWwbNzDS0adva5xS5H/Lx5t/duek555cgP2j0cF+EdfAhQOEEm5ObSEBJmwipzyq/wAA+pjk5m5XEpFVrXDm5A==} + '@oxc-resolver/binding-darwin-x64@11.11.0': + resolution: {integrity: sha512-Wsd1JWORokMmOKrR4t4jxpwYEWG11+AHWu9bdzjCO5EIyi0AuNpPIAEcEFCP9FNd0h8c+VUYbMRU/GooD2zOIg==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.8.0': - resolution: {integrity: sha512-G6NDJ1WbndODtMAvTOeW5PnF0GkGWUjBR5WdkR+MLn54mSwhCu/y+TqXs9QPoTBUlvU9qxCAfA2i9DFfQQFxlQ==} + '@oxc-resolver/binding-freebsd-x64@11.11.0': + resolution: {integrity: sha512-YX+W10kHrMouu/+Y+rqJdCWO3dFBKM1DIils30PHsmXWp1v+ZZvhibaST2BP6zrWkWquZ8pMmsObD6N10lLgiA==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.0': - resolution: {integrity: sha512-/ZazyRR+K0DsJDdzEg8LfgQ8L93oG2nqw388VoAuMW9pP6c8eZpvuqw3z7gwFur7QUb6ZMS6lrUneiPFERbAew==} + '@oxc-resolver/binding-linux-arm-gnueabihf@11.11.0': + resolution: {integrity: sha512-UAhlhVkW2ui98bClmEkDLKQz4XBSccxMahG7rMeX2RepS2QByAWxYFFThaNbHtBSB+B4Rc1hudkihq8grQkU3g==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.8.0': - resolution: {integrity: sha512-qWreuwBb7+d8oxcqkgyq1lRT3YPsL9Z69LFC6zIrE/evTcYHAbOa6reSQzpVNsivbVZUYwMY12rAl/lWBP3FpA==} + '@oxc-resolver/binding-linux-arm-musleabihf@11.11.0': + resolution: {integrity: sha512-5pEliabSEiimXz/YyPxzyBST82q8PbM6BoEMS8kOyaDbEBuzTr7pWU1U0F7ILGBFjJmHaj3N7IAhQgeXdpdySg==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.8.0': - resolution: {integrity: sha512-m3p8ujvcjf7UOqI1AmOqMRmwhDQBXB/Z99FSCW5U4PY8f0CHBBX+o7uqirOsb7+iIwW7jyDQ7EoqSw79dQMvkA==} + '@oxc-resolver/binding-linux-arm64-gnu@11.11.0': + resolution: {integrity: sha512-CiyufPFIOJrW/HovAMGsH0AbV7BSCb0oE0KDtt7z1+e+qsDo7HRlTSnqE3JbNuhJRg3Cz/j7qEYzgGqco9SE4Q==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-arm64-musl@11.8.0': - resolution: {integrity: sha512-YuZQpvoRxUU+6pbqAZmvvKvhYtfOlCc6wunBrIau62xW0oD2xA67KVdq6E9FpvHFjnpgVZW7gcu5PrucgkiEXQ==} + '@oxc-resolver/binding-linux-arm64-musl@11.11.0': + resolution: {integrity: sha512-w07MfGtDLZV0rISdXl2cGASxD/sRrrR93Qd4q27O2Hsky4MGbLw94trbzhmAkc7OKoJI0iDg1217i3jfxmVk1Q==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-ppc64-gnu@11.8.0': - resolution: {integrity: sha512-O9JETvqjywxeM0VZZaRz8HLSQcC94JBTFT668xaeKIyFDG1QCos8RZC5jJ6u2RJIM2h28pf3LkinINBfayZYOg==} + '@oxc-resolver/binding-linux-ppc64-gnu@11.11.0': + resolution: {integrity: sha512-gzM+ZfIjfcCofwX/m1eLCoTT+3T70QLWaKDOW5Hf3+ddLlxMEVRIQtUoRsp0e/VFanr7u7VKS57TxhkRubseNg==} cpu: [ppc64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-gnu@11.8.0': - resolution: {integrity: sha512-aaaqf/lbiQBquj/OO56Z0eFnlLHtmwaJ6gCJs9a4koobv2KII8XOb+0f/cn04Ix2elWFmRetKpOoDofhCoYvug==} + '@oxc-resolver/binding-linux-riscv64-gnu@11.11.0': + resolution: {integrity: sha512-oCR0ImJQhIwmqwNShsRT0tGIgKF5/H4nhtIEkQAQ9bLzMgjtRqIrZ3DtGHqd7w58zhXWfIZdyPNF9IrSm+J/fQ==} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-musl@11.8.0': - resolution: {integrity: sha512-xFYcrvf6J+PWwmqNyA7ktnVTGid0SNkd8Ru+Uv7CxVMK9TF9nIEqTMM+66f8XxcWxWsczwqV7YYnRonIU+Wpyg==} + '@oxc-resolver/binding-linux-riscv64-musl@11.11.0': + resolution: {integrity: sha512-MjCEqsUzXMfWPfsEUX+UXttzXz6xiNU11r7sj00C5og/UCyqYw1OjrbC/B1f/dloDpTn0rd4xy6c/LTvVQl2tg==} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-s390x-gnu@11.8.0': - resolution: {integrity: sha512-wvZQyx4FjCBf4IvFnR5k3H0BW7aiBAkqxYlHV+C6n4zaEHhhaVSCrXgLsvtVt7ma4Cgay1NQGEA0fXx5W2YiWA==} + '@oxc-resolver/binding-linux-s390x-gnu@11.11.0': + resolution: {integrity: sha512-4TaTX7gT3357vWQsTe3IfDtWyJNe0FejypQ4ngwxB3v1IVaW6KAUt0huSvx/tmj+YWxd3zzXdWd8AzW0jo6dpg==} cpu: [s390x] os: [linux] - '@oxc-resolver/binding-linux-x64-gnu@11.8.0': - resolution: {integrity: sha512-Ihvel1igcoP9BFiVmiwy/CSqCIQzF9ROpdxRLWn1DbZKXNC5TjfiQJjlWrjECc8cPGZwv9yGDZR80oAOgHTE3Q==} + '@oxc-resolver/binding-linux-x64-gnu@11.11.0': + resolution: {integrity: sha512-ch1o3+tBra9vmrgXqrufVmYnvRPFlyUb7JWs/VXndBmyNSuP2KP+guAUrC0fr2aSGoOQOasAiZza7MTFU7Vrxg==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-linux-x64-musl@11.8.0': - resolution: {integrity: sha512-GSa6/PSd5JTq/h1IIagWiKEMkWOtFJn5mpbbGsoOYEBml4FPIZ6WTZPzKOzOWnVfYDzM+8+xba6QTyIBP4bifg==} + '@oxc-resolver/binding-linux-x64-musl@11.11.0': + resolution: {integrity: sha512-llTdl2gJAqXaGV7iV1w5BVlqXACcoT1YD3o840pCQx1ZmKKAAz7ydPnTjYVdkGImXNWPOIWJixHW0ryDm4Mx7w==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-wasm32-wasi@11.8.0': - resolution: {integrity: sha512-z4S+KT5Yfyv+nhimBHKYEi/4ZgkkxRlXkk839g+p9r347RavGUo9hzm3qHkzTxacrDFcGhXLBLN+kSt5B1AWeQ==} + '@oxc-resolver/binding-wasm32-wasi@11.11.0': + resolution: {integrity: sha512-cROavohP0nX91NtIVVgOTugqoxlUSNxI9j7MD+B7fmD3gEFl8CVyTamR0/p6loDxLv51bQYTHRKn/ZYTd3ENzw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.8.0': - resolution: {integrity: sha512-BnoBbPHuin8n0fqi1y+Psvur3Y1q6WrJUxKmmBJ2QxQFFq3aaegph5uYINP+i91bokHgwetV9lZMqBmYpu+Itg==} + '@oxc-resolver/binding-win32-arm64-msvc@11.11.0': + resolution: {integrity: sha512-6amVs34yHmxE6Q3CtTPXnSvIYGqwQJ/lVVRYccLzg9smge3WJ1knyBV5jpKKayp0n316uPYzB4EgEbgcuRvrPw==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-ia32-msvc@11.8.0': - resolution: {integrity: sha512-SUfay8dZz10OJFOtD7GCkr3/7cKvC6vC00+NI5iVSGOTtzyo6vfXXU9SXyX7D/V/9gX8IkbeEOcN+JuYtwVETA==} + '@oxc-resolver/binding-win32-ia32-msvc@11.11.0': + resolution: {integrity: sha512-v/IZ5s2/3auHUoi0t6Ea1CDsWxrE9BvgvbDcJ04QX+nEbmTBazWPZeLsH8vWkRAh8EUKCZHXxjQsPhEH5Yk5pQ==} cpu: [ia32] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.8.0': - resolution: {integrity: sha512-FA6zw1RV8SsEP4oYJvK6RhTMDpf0Inw5w9/+8ihT0dzOZCIb1hzWcCe5EzDyRvV/Wyqqu43LqVydAYAK3l+rLw==} + '@oxc-resolver/binding-win32-x64-msvc@11.11.0': + resolution: {integrity: sha512-qvm+IQ6r2q4HZitSV69O+OmvCD1y4pH7SbhR6lPwLsfZS5QRHS8V20VHxmG1jJzSPPw7S8Bb1rdNcxDSqc4bYA==} cpu: [x64] os: [win32] @@ -5188,8 +5188,8 @@ packages: node-notifier: optional: true - jiti@2.5.1: - resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true js-tokens@4.0.0: @@ -5265,13 +5265,13 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - knip@5.63.1: - resolution: {integrity: sha512-wSznedUAzcU4o9e0O2WPqDnP7Jttu8cesq/R23eregRY8QYQ9NLJ3aGt9fadJfRzPBoU4tRyutwVQu6chhGDlA==} + knip@5.66.2: + resolution: {integrity: sha512-5wvsdc17C5bMxjuGfN9KVS/tW5KIvzP1RClfpTMdLYm8IXIsfWsiHlFkTvZIca9skwoVDyTyXmbRq4w1Poim+A==} engines: {node: '>=18.18.0'} hasBin: true peerDependencies: '@types/node': '>=18' - typescript: '>=5.0.4' + typescript: '>=5.0.4 <7' language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -5823,8 +5823,8 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-resolver@11.8.0: - resolution: {integrity: sha512-iTBXOucxbG40DGURl0cXChZn1WbvXteW4F/U3SZNbhlixFhd3+ZoHU8cmavOSS+Ob9GUPEUoZhGpj1empxwAiQ==} + oxc-resolver@11.11.0: + resolution: {integrity: sha512-vVeBJf77zBeqOA/LBCTO/pr0/ETHGSleCRsI5Kmsf2OsfB5opzhhZptt6VxkqjKWZH+eF1se88fYDG5DGRLjkg==} p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} @@ -7623,15 +7623,12 @@ packages: peerDependencies: zod: '>= 3.11.0' - zod-validation-error@3.5.3: - resolution: {integrity: sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zod@4.1.12: + resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -8490,7 +8487,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bufbuild/protobuf@2.9.0': + '@bufbuild/protobuf@2.10.0': optional: true '@codaco/analytics@7.0.0(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))': @@ -9043,7 +9040,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.0.5': + '@napi-rs/wasm-runtime@1.0.7': dependencies: '@emnapi/core': 1.5.0 '@emnapi/runtime': 1.5.0 @@ -9101,63 +9098,63 @@ snapshots: '@opentelemetry/semantic-conventions@1.37.0': {} - '@oxc-resolver/binding-android-arm-eabi@11.8.0': + '@oxc-resolver/binding-android-arm-eabi@11.11.0': optional: true - '@oxc-resolver/binding-android-arm64@11.8.0': + '@oxc-resolver/binding-android-arm64@11.11.0': optional: true - '@oxc-resolver/binding-darwin-arm64@11.8.0': + '@oxc-resolver/binding-darwin-arm64@11.11.0': optional: true - '@oxc-resolver/binding-darwin-x64@11.8.0': + '@oxc-resolver/binding-darwin-x64@11.11.0': optional: true - '@oxc-resolver/binding-freebsd-x64@11.8.0': + '@oxc-resolver/binding-freebsd-x64@11.11.0': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.0': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.11.0': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.8.0': + '@oxc-resolver/binding-linux-arm-musleabihf@11.11.0': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.8.0': + '@oxc-resolver/binding-linux-arm64-gnu@11.11.0': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.8.0': + '@oxc-resolver/binding-linux-arm64-musl@11.11.0': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.8.0': + '@oxc-resolver/binding-linux-ppc64-gnu@11.11.0': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.8.0': + '@oxc-resolver/binding-linux-riscv64-gnu@11.11.0': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.8.0': + '@oxc-resolver/binding-linux-riscv64-musl@11.11.0': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.8.0': + '@oxc-resolver/binding-linux-s390x-gnu@11.11.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.8.0': + '@oxc-resolver/binding-linux-x64-gnu@11.11.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.8.0': + '@oxc-resolver/binding-linux-x64-musl@11.11.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.8.0': + '@oxc-resolver/binding-wasm32-wasi@11.11.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.5 + '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.8.0': + '@oxc-resolver/binding-win32-arm64-msvc@11.11.0': optional: true - '@oxc-resolver/binding-win32-ia32-msvc@11.8.0': + '@oxc-resolver/binding-win32-ia32-msvc@11.11.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.8.0': + '@oxc-resolver/binding-win32-x64-msvc@11.11.0': optional: true '@paralleldrive/cuid2@2.2.2': @@ -9840,9 +9837,9 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@storybook/builder-webpack5@9.1.6(esbuild@0.25.9)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3)': + '@storybook/builder-webpack5@9.1.6(esbuild@0.25.9)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3)': dependencies: - '@storybook/core-webpack': 9.1.6(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))) + '@storybook/core-webpack': 9.1.6(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 css-loader: 6.11.0(webpack@5.101.3(esbuild@0.25.9)) @@ -9850,7 +9847,7 @@ snapshots: fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.101.3(esbuild@0.25.9)) html-webpack-plugin: 5.6.4(webpack@5.101.3(esbuild@0.25.9)) magic-string: 0.30.19 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) style-loader: 3.3.4(webpack@5.101.3(esbuild@0.25.9)) terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.3(esbuild@0.25.9)) ts-dedent: 2.2.0 @@ -9867,14 +9864,14 @@ snapshots: - uglify-js - webpack-cli - '@storybook/core-webpack@9.1.6(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))': + '@storybook/core-webpack@9.1.6(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))': dependencies: - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) ts-dedent: 2.2.0 '@storybook/global@5.0.0': {} - '@storybook/nextjs@9.1.6(esbuild@0.25.9)(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass-embedded@1.92.1)(sass@1.93.2)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.101.3(esbuild@0.25.9))': + '@storybook/nextjs@9.1.6(esbuild@0.25.9)(next@14.2.32(@babel/core@7.28.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.93.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass-embedded@1.92.1)(sass@1.93.2)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.101.3(esbuild@0.25.9))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) @@ -9890,9 +9887,9 @@ snapshots: '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) '@babel/runtime': 7.28.4 '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-hot-middleware@2.26.1)(webpack@5.101.3(esbuild@0.25.9)) - '@storybook/builder-webpack5': 9.1.6(esbuild@0.25.9)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) - '@storybook/preset-react-webpack': 9.1.6(esbuild@0.25.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) - '@storybook/react': 9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) + '@storybook/builder-webpack5': 9.1.6(esbuild@0.25.9)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) + '@storybook/preset-react-webpack': 9.1.6(esbuild@0.25.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) + '@storybook/react': 9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3) '@types/semver': 7.7.1 babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.101.3(esbuild@0.25.9)) css-loader: 6.11.0(webpack@5.101.3(esbuild@0.25.9)) @@ -9908,7 +9905,7 @@ snapshots: resolve-url-loader: 5.0.0 sass-loader: 16.0.5(sass-embedded@1.92.1)(sass@1.93.2)(webpack@5.101.3(esbuild@0.25.9)) semver: 7.7.2 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) style-loader: 3.3.4(webpack@5.101.3(esbuild@0.25.9)) styled-jsx: 5.1.7(@babel/core@7.28.4)(react@18.3.1) tsconfig-paths: 4.2.0 @@ -9934,9 +9931,9 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@9.1.6(esbuild@0.25.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3)': + '@storybook/preset-react-webpack@9.1.6(esbuild@0.25.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3)': dependencies: - '@storybook/core-webpack': 9.1.6(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))) + '@storybook/core-webpack': 9.1.6(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.101.3(esbuild@0.25.9)) '@types/semver': 7.7.1 find-up: 7.0.0 @@ -9946,7 +9943,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) resolve: 1.22.10 semver: 7.7.2 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) tsconfig-paths: 4.2.0 webpack: 5.101.3(esbuild@0.25.9) optionalDependencies: @@ -9972,19 +9969,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))': + '@storybook/react-dom-shim@9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) - '@storybook/react@9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3)': + '@storybook/react@9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))) + '@storybook/react-dom-shim': 9.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) optionalDependencies: typescript: 5.8.3 @@ -10024,7 +10021,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.3 - jiti: 2.5.1 + jiti: 2.6.1 lightningcss: 1.30.1 magic-string: 0.30.19 source-map-js: 1.2.1 @@ -10498,7 +10495,7 @@ snapshots: effect: 3.17.7 sqids: 0.3.0 - '@vitejs/plugin-react@5.0.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))': + '@vitejs/plugin-react@5.0.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -10506,20 +10503,20 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - '@vitest/browser@3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))(vitest@3.2.4)': + '@vitest/browser@3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) '@vitest/utils': 3.2.4 magic-string: 0.30.19 sirv: 3.0.2 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) ws: 8.18.3 transitivePeerDependencies: - bufferutil @@ -10536,13 +10533,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -11088,7 +11085,7 @@ snapshots: dotenv: 16.6.1 exsolve: 1.0.7 giget: 2.0.0 - jiti: 2.5.1 + jiti: 2.6.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -11928,11 +11925,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@9.1.6(eslint@8.57.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3): + eslint-plugin-storybook@9.1.6(eslint@8.57.1)(storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)))(typescript@5.8.3): dependencies: '@typescript-eslint/utils': 8.43.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 - storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) transitivePeerDependencies: - supports-color - typescript @@ -13161,7 +13158,7 @@ snapshots: - supports-color - ts-node - jiti@2.5.1: {} + jiti@2.6.1: {} js-tokens@4.0.0: {} @@ -13250,23 +13247,22 @@ snapshots: dependencies: json-buffer: 3.0.1 - knip@5.63.1(@types/node@22.18.3)(typescript@5.8.3): + knip@5.66.2(@types/node@22.18.3)(typescript@5.8.3): dependencies: '@nodelib/fs.walk': 1.2.8 '@types/node': 22.18.3 fast-glob: 3.3.3 formatly: 0.3.0 - jiti: 2.5.1 + jiti: 2.6.1 js-yaml: 4.1.0 minimist: 1.2.8 - oxc-resolver: 11.8.0 + oxc-resolver: 11.11.0 picocolors: 1.1.1 picomatch: 4.0.3 smol-toml: 1.4.2 strip-json-comments: 5.0.2 typescript: 5.8.3 - zod: 3.25.76 - zod-validation-error: 3.5.3(zod@3.25.76) + zod: 4.1.12 language-subtag-registry@0.3.23: {} @@ -13948,29 +13944,27 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-resolver@11.8.0: - dependencies: - napi-postinstall: 0.3.3 + oxc-resolver@11.11.0: optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.8.0 - '@oxc-resolver/binding-android-arm64': 11.8.0 - '@oxc-resolver/binding-darwin-arm64': 11.8.0 - '@oxc-resolver/binding-darwin-x64': 11.8.0 - '@oxc-resolver/binding-freebsd-x64': 11.8.0 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.8.0 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.8.0 - '@oxc-resolver/binding-linux-arm64-gnu': 11.8.0 - '@oxc-resolver/binding-linux-arm64-musl': 11.8.0 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.8.0 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.8.0 - '@oxc-resolver/binding-linux-riscv64-musl': 11.8.0 - '@oxc-resolver/binding-linux-s390x-gnu': 11.8.0 - '@oxc-resolver/binding-linux-x64-gnu': 11.8.0 - '@oxc-resolver/binding-linux-x64-musl': 11.8.0 - '@oxc-resolver/binding-wasm32-wasi': 11.8.0 - '@oxc-resolver/binding-win32-arm64-msvc': 11.8.0 - '@oxc-resolver/binding-win32-ia32-msvc': 11.8.0 - '@oxc-resolver/binding-win32-x64-msvc': 11.8.0 + '@oxc-resolver/binding-android-arm-eabi': 11.11.0 + '@oxc-resolver/binding-android-arm64': 11.11.0 + '@oxc-resolver/binding-darwin-arm64': 11.11.0 + '@oxc-resolver/binding-darwin-x64': 11.11.0 + '@oxc-resolver/binding-freebsd-x64': 11.11.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.11.0 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.11.0 + '@oxc-resolver/binding-linux-arm64-gnu': 11.11.0 + '@oxc-resolver/binding-linux-arm64-musl': 11.11.0 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.11.0 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.11.0 + '@oxc-resolver/binding-linux-riscv64-musl': 11.11.0 + '@oxc-resolver/binding-linux-s390x-gnu': 11.11.0 + '@oxc-resolver/binding-linux-x64-gnu': 11.11.0 + '@oxc-resolver/binding-linux-x64-musl': 11.11.0 + '@oxc-resolver/binding-wasm32-wasi': 11.11.0 + '@oxc-resolver/binding-win32-arm64-msvc': 11.11.0 + '@oxc-resolver/binding-win32-ia32-msvc': 11.11.0 + '@oxc-resolver/binding-win32-x64-msvc': 11.11.0 p-limit@2.3.0: dependencies: @@ -14115,7 +14109,7 @@ snapshots: postcss-loader@8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.101.3(esbuild@0.25.9)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.3) - jiti: 2.5.1 + jiti: 2.6.1 postcss: 8.5.6 semver: 7.7.2 optionalDependencies: @@ -14787,7 +14781,7 @@ snapshots: sass-embedded@1.92.1: dependencies: - '@bufbuild/protobuf': 2.9.0 + '@bufbuild/protobuf': 2.10.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 immutable: 5.1.4 @@ -15027,13 +15021,13 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)): + storybook@9.1.6(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.8.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.25.9 @@ -15619,13 +15613,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): + vite-node@3.2.4(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - '@types/node' - jiti @@ -15640,18 +15634,18 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.8.3) optionalDependencies: - vite: 7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - typescript - vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): + vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -15662,17 +15656,17 @@ snapshots: optionalDependencies: '@types/node': 22.18.3 fsevents: 2.3.3 - jiti: 2.5.1 + jiti: 2.6.1 lightningcss: 1.30.1 sass: 1.93.2 sass-embedded: 1.92.1 terser: 5.44.0 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.5.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.3)(@vitest/browser@3.2.4)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -15690,13 +15684,13 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) - vite-node: 3.2.4(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) + vite-node: 3.2.4(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 '@types/node': 22.18.3 - '@vitest/browser': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))(vitest@3.2.4) + '@vitest/browser': 3.2.4(vite@7.1.5(@types/node@22.18.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.93.2)(terser@5.44.0))(vitest@3.2.4) jsdom: 27.0.1(postcss@8.5.6) transitivePeerDependencies: - jiti @@ -15914,10 +15908,8 @@ snapshots: '@rvf/set-get': 7.0.1 zod: 3.25.76 - zod-validation-error@3.5.3(zod@3.25.76): - dependencies: - zod: 3.25.76 - zod@3.25.76: {} + zod@4.1.12: {} + zwitch@2.0.4: {} From ad70db2e43977a0d331c02fc39729497052de6cc Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 14:51:52 -0500 Subject: [PATCH 06/39] wip network col on table move icons and reduce text size in other cols to make space --- .../_components/InterviewsTable/Columns.tsx | 160 +++++++++++++----- 1 file changed, 118 insertions(+), 42 deletions(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index a15c0e2e9..dcac0ed7e 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -1,13 +1,15 @@ 'use client'; +import type { Codebook, NcNetwork, Stage } from '@codaco/shared-consts'; import { type ColumnDef } from '@tanstack/react-table'; -import { Checkbox } from '~/components/ui/checkbox'; +import Image from 'next/image'; import { DataTableColumnHeader } from '~/components/DataTable/ColumnHeader'; -import { Progress } from '~/components/ui/progress'; -import type { Stage } from '@codaco/shared-consts'; import { Badge } from '~/components/ui/badge'; +import { Checkbox } from '~/components/ui/checkbox'; +import { Progress } from '~/components/ui/progress'; import TimeAgo from '~/components/ui/TimeAgo'; -import Image from 'next/image'; +import { Node } from '~/lib/ui/components'; +import Icon from '~/lib/ui/components/Icon'; import type { GetInterviewsReturnType } from '~/queries/interviews'; export const InterviewColumns = (): ColumnDef< @@ -32,30 +34,24 @@ export const InterviewColumns = (): ColumnDef< enableSorting: false, enableHiding: false, }, - // { - // accessorKey: 'id', - // header: ({ column }) => { - // return ; - // }, - // }, - // { - // accessorKey: 'finishTime', - // header: 'Finish Time', - // cell: ({ row }) => { - // // finishTime is optional - // if (!row.original.finishTime) { - // return 'Not completed'; - // } - // const date = new Date(row.original.finishTime); - // return date.toLocaleString(); - // }, - // }, { id: 'identifier', accessorKey: 'participant.identifier', header: ({ column }) => { return ( - +
+ Protocol icon + +
); }, cell: ({ row }) => { @@ -64,13 +60,6 @@ export const InterviewColumns = (): ColumnDef< className="flex items-center gap-2" title={row.original.participant.identifier} > - Protocol icon {row.original.participant.identifier} @@ -83,31 +72,44 @@ export const InterviewColumns = (): ColumnDef< { accessorKey: 'protocol.name', header: ({ column }) => { - return ; + return ( +
+ Protocol icon + +
+ ); }, cell: ({ row }) => { + const protocolFileName = row.original.protocol.name; + const protocolName = protocolFileName.replace(/\.netcanvas/g, ''); return (
- Protocol icon - {row.original.protocol.name} + {protocolName}
); }, }, { accessorKey: 'startTime', - header: 'Started', + header: ({ column }) => { + return ; + }, cell: ({ row }) => { const date = new Date(row.original.startTime); - return ; + return ( +
+ +
+ ); }, }, { @@ -117,7 +119,11 @@ export const InterviewColumns = (): ColumnDef< }, cell: ({ row }) => { const date = new Date(row.original.lastUpdated); - return ; + return ( +
+ +
+ ); }, }, { @@ -136,6 +142,72 @@ export const InterviewColumns = (): ColumnDef< ); }, }, + { + accessorKey: 'network', + header: ({ column }) => { + return ; + }, + cell: ({ row }) => { + const network = row.original.network as NcNetwork; + const codebook = row.original.protocol.codebook as Codebook; + + if (!network || !codebook) { + return
No network data
; + } + + // group nodes by type + const nodeTypeCount: Record = {}; + network.nodes?.forEach((node) => { + nodeTypeCount[node.type] = (nodeTypeCount[node.type] ?? 0) + 1; + }); + + // group edges by type + const edgeTypeCount: Record = {}; + network.edges.forEach((edge) => { + edgeTypeCount[edge.type] = (edgeTypeCount[edge.type] ?? 0) + 1; + }); + + return ( +
+
+ {Object.entries(nodeTypeCount).map(([nodeType, count]) => { + const nodeInfo = codebook.node?.[nodeType] ?? { + color: 'node-color-seq-1', + name: 'Node', + }; + return ( +
+
+ +
+ {nodeInfo.name} +
+ ); + })} +
+ +
+ {Object.entries(edgeTypeCount).map(([edgeType, count]) => { + const edgeInfo = codebook.edge?.[edgeType] ?? { + color: 'edge-color-seq-1', + name: 'Edge', + }; + return ( +
+
+ +
+ + {edgeInfo.name} ({count}) + +
+ ); + })} +
+
+ ); + }, + }, { accessorKey: 'exportTime', header: ({ column }) => { @@ -146,7 +218,11 @@ export const InterviewColumns = (): ColumnDef< return Not exported; } - return ; + return ( +
+ +
+ ); }, }, ]; From a33fe36777f73981274d2a18229ee3c754f5cf1c Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 15:10:09 -0500 Subject: [PATCH 07/39] fix progress sort --- app/dashboard/_components/InterviewsTable/Columns.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index dcac0ed7e..25acbf8d8 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -70,6 +70,7 @@ export const InterviewColumns = (): ColumnDef< }, }, { + id: 'protocolName', accessorKey: 'protocol.name', header: ({ column }) => { return ( @@ -99,6 +100,7 @@ export const InterviewColumns = (): ColumnDef< }, }, { + id: 'startTime', accessorKey: 'startTime', header: ({ column }) => { return ; @@ -113,6 +115,7 @@ export const InterviewColumns = (): ColumnDef< }, }, { + id: 'lastUpdated', accessorKey: 'lastUpdated', header: ({ column }) => { return ; @@ -128,6 +131,12 @@ export const InterviewColumns = (): ColumnDef< }, { id: 'progress', + accessorFn: (row) => { + const stages = row.protocol.stages; + return Array.isArray(stages) + ? (row.currentStep / stages.length) * 100 + : 0; + }, header: ({ column }) => { return ; }, @@ -143,7 +152,7 @@ export const InterviewColumns = (): ColumnDef< }, }, { - accessorKey: 'network', + id: 'network', header: ({ column }) => { return ; }, From eaf0089249d4b93850ffb7df2eaac5d7eb7db546 Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 15:13:23 -0500 Subject: [PATCH 08/39] sort network by total nodes+edges --- app/dashboard/_components/InterviewsTable/Columns.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index 25acbf8d8..3e88f90ac 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -153,6 +153,12 @@ export const InterviewColumns = (): ColumnDef< }, { id: 'network', + accessorFn: (row) => { + const network = row.network as NcNetwork; + const nodeCount = network?.nodes?.length ?? 0; + const edgeCount = network?.edges?.length ?? 0; + return nodeCount + edgeCount; + }, header: ({ column }) => { return ; }, From df105af646d2c170ea5a4dfd808853305ca9b583 Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 15:19:16 -0500 Subject: [PATCH 09/39] dont redirect to finished if there is a session allows researchers to enter completed interviews --- app/(interview)/interview/[interviewId]/page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/(interview)/interview/[interviewId]/page.tsx b/app/(interview)/interview/[interviewId]/page.tsx index 455a8df7b..e1e03afc6 100644 --- a/app/(interview)/interview/[interviewId]/page.tsx +++ b/app/(interview)/interview/[interviewId]/page.tsx @@ -36,8 +36,8 @@ export default async function Page({ redirect('/interview/finished'); } - // If the interview is finished, redirect to the finish page - if (!session && interview?.finishTime) { + // If the interview is finished and there is no session, redirect to the finish page + if (interview?.finishTime && !session) { redirect('/interview/finished'); } From 7b66db5484c7c70c1d66f780b055433e5d6c7d7d Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 15:23:55 -0500 Subject: [PATCH 10/39] handle no nodes or edges --- app/dashboard/_components/InterviewsTable/Columns.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index 3e88f90ac..9d3ad50fa 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -167,7 +167,7 @@ export const InterviewColumns = (): ColumnDef< const codebook = row.original.protocol.codebook as Codebook; if (!network || !codebook) { - return
No network data
; + return
No network data
; } // group nodes by type @@ -182,6 +182,13 @@ export const InterviewColumns = (): ColumnDef< edgeTypeCount[edge.type] = (edgeTypeCount[edge.type] ?? 0) + 1; }); + if ( + Object.keys(nodeTypeCount).length == 0 && + Object.keys(edgeTypeCount).length == 0 + ) { + return
No nodes or edges
; + } + return (
From 16856d47adf6ec780679086ccbcee83f6bebb5c6 Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 15:39:34 -0500 Subject: [PATCH 11/39] increase table width --- app/dashboard/_components/InterviewsTable/Columns.tsx | 2 +- app/dashboard/interviews/page.tsx | 2 +- components/ResponsiveContainer.tsx | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index 9d3ad50fa..40ec0be8c 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -42,7 +42,7 @@ export const InterviewColumns = (): ColumnDef<
Protocol icon - +
diff --git a/components/ResponsiveContainer.tsx b/components/ResponsiveContainer.tsx index 0a25cc19b..0eb87c2b2 100644 --- a/components/ResponsiveContainer.tsx +++ b/components/ResponsiveContainer.tsx @@ -10,6 +10,7 @@ const containerVariants = cva('mx-auto flex flex-col my-6 md:my-10 ', { '5xl': 'max-w-5xl', '6xl': 'max-w-6xl', '7xl': 'max-w-7xl', + '8xl': 'max-w-8xl', }, baseSize: { '60%': 'w-[60%]', From 0d6ec90bb4b4de45f729c69a93c3845403e909da Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 16:37:35 -0500 Subject: [PATCH 12/39] manually create node circle, use links svg hard coded fill colors --- .../_components/InterviewsTable/Columns.tsx | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index 40ec0be8c..e09f762c8 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -8,8 +8,6 @@ import { Badge } from '~/components/ui/badge'; import { Checkbox } from '~/components/ui/checkbox'; import { Progress } from '~/components/ui/progress'; import TimeAgo from '~/components/ui/TimeAgo'; -import { Node } from '~/lib/ui/components'; -import Icon from '~/lib/ui/components/Icon'; import type { GetInterviewsReturnType } from '~/queries/interviews'; export const InterviewColumns = (): ColumnDef< @@ -191,7 +189,7 @@ export const InterviewColumns = (): ColumnDef< return (
-
+
{Object.entries(nodeTypeCount).map(([nodeType, count]) => { const nodeInfo = codebook.node?.[nodeType] ?? { color: 'node-color-seq-1', @@ -199,8 +197,19 @@ export const InterviewColumns = (): ColumnDef< }; return (
-
- +
+ {count}
{nodeInfo.name}
@@ -216,8 +225,47 @@ export const InterviewColumns = (): ColumnDef< }; return (
-
- +
+ + + + + + + + + + + +
{edgeInfo.name} ({count}) From e7bf239e82e3299d56a93dab9e3b3d2635501cfa Mon Sep 17 00:00:00 2001 From: buckhalt Date: Thu, 17 Apr 2025 17:43:59 -0500 Subject: [PATCH 13/39] add color vars, hard code them --- .../_components/InterviewsTable/Columns.tsx | 55 ++++++++++++++----- styles/globals.css | 38 +++++++++++++ 2 files changed, 79 insertions(+), 14 deletions(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index e09f762c8..644df9390 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -195,21 +195,28 @@ export const InterviewColumns = (): ColumnDef< color: 'node-color-seq-1', name: 'Node', }; + const color = codebook.node?.[nodeType]?.color; + const nodeColor = `var(--${color})`; + const nodeColorDark = `var(--${color}-dark)`; + + console.log('node colors:', nodeColor, nodeColorDark); return (
- {count} + + {count} +
{nodeInfo.name}
@@ -223,6 +230,11 @@ export const InterviewColumns = (): ColumnDef< color: 'edge-color-seq-1', name: 'Edge', }; + const edgeColor = `var(--${edgeInfo.color})`; + const edgeColorDark = `var(--${edgeInfo.color}-dark)`; + + console.log(edgeColor, edgeColorDark); + return (
@@ -233,16 +245,31 @@ export const InterviewColumns = (): ColumnDef< height="24" > - - - + + + diff --git a/styles/globals.css b/styles/globals.css index 14878368d..92b2eca8d 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -103,6 +103,44 @@ --color-border: hsl(var(--border)); --color-link: hsl(var(--link)); + /* interviewer - node sequence colors */ + --node-color-seq-1: var(--color-neon-coral); + --node-color-seq-1-dark: var(--color-neon-coral-dark); + --node-color-seq-2: var(--color-sea-serpent); + --node-color-seq-2-dark: var(--color-sea-serpent-dark); + --node-color-seq-3: var(--color-purple-pizazz); + --node-color-seq-3-dark: var(--color-purple-pizazz-dark); + --node-color-seq-4: var(--color-neon-carrot); + --node-color-seq-4-dark: var(--color-neon-carrot-dark); + --node-color-seq-5: var(--color-kiwi); + --node-color-seq-5-dark: var(--color-kiwi-dark); + --node-color-seq-6: var(--color-cerulean-blue); + --node-color-seq-6-dark: var(--color-cerulean-blue-dark); + --node-color-seq-7: var(--color-paradise-pink); + --node-color-seq-7-dark: var(--color-paradise-pink-dark); + --node-color-seq-8: var(--color-mustard); + --node-color-seq-8-dark: var(--color-mustard-dark); + + /* edge sequence colors */ + --edge-color-seq-1: var(--color-mustard); + --edge-color-seq-1-dark: var(--color-mustard-dark); + --edge-color-seq-2: var(--color-neon-coral); + --edge-color-seq-2-dark: var(--color-neon-coral-dark); + --edge-color-seq-3: var(--color-kiwi); + --edge-color-seq-3-dark: var(--color-kiwi-dark); + --edge-color-seq-4: var(--color-paradise-pink); + --edge-color-seq-4-dark: var(--color-paradise-pink-dark); + --edge-color-seq-5: var(--color-tomato); + --edge-color-seq-5-dark: var(--color-tomato-dark); + --edge-color-seq-6: var(--color-sea-serpent); + --edge-color-seq-6-dark: var(--color-sea-serpent-dark); + --edge-color-seq-7: var(--color-slate-blue); + --edge-color-seq-7-dark: var(--color-slate-blue-dark); + --edge-color-seq-8: var(--color-sea-green); + --edge-color-seq-8-dark: var(--color-sea-green-dark); + --edge-color-seq-9: var(--color-cerulean-blue); + --edge-color-seq-9-dark: var(--color-cerulean-blue-dark); + --radius-*: initial; --radius-none: 0px; --radius-sm: 0.125rem; From 7f518fc8d70f006b4a4b57de785b34eb06819e74 Mon Sep 17 00:00:00 2001 From: buckhalt Date: Mon, 21 Apr 2025 09:14:54 -0700 Subject: [PATCH 14/39] correctly getting css vars as strings move NetworkVisualization to seperate component for readability --- .../_components/InterviewsTable/Columns.tsx | 141 +----------------- .../InterviewsTable/NetworkVisualization.tsx | 135 +++++++++++++++++ styles/globals.css | 15 ++ 3 files changed, 152 insertions(+), 139 deletions(-) create mode 100644 app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index 644df9390..c41643060 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -9,6 +9,7 @@ import { Checkbox } from '~/components/ui/checkbox'; import { Progress } from '~/components/ui/progress'; import TimeAgo from '~/components/ui/TimeAgo'; import type { GetInterviewsReturnType } from '~/queries/interviews'; +import NetworkVisualization from './NetworkVisualization'; export const InterviewColumns = (): ColumnDef< Awaited[0] @@ -164,145 +165,7 @@ export const InterviewColumns = (): ColumnDef< const network = row.original.network as NcNetwork; const codebook = row.original.protocol.codebook as Codebook; - if (!network || !codebook) { - return
No network data
; - } - - // group nodes by type - const nodeTypeCount: Record = {}; - network.nodes?.forEach((node) => { - nodeTypeCount[node.type] = (nodeTypeCount[node.type] ?? 0) + 1; - }); - - // group edges by type - const edgeTypeCount: Record = {}; - network.edges.forEach((edge) => { - edgeTypeCount[edge.type] = (edgeTypeCount[edge.type] ?? 0) + 1; - }); - - if ( - Object.keys(nodeTypeCount).length == 0 && - Object.keys(edgeTypeCount).length == 0 - ) { - return
No nodes or edges
; - } - - return ( -
-
- {Object.entries(nodeTypeCount).map(([nodeType, count]) => { - const nodeInfo = codebook.node?.[nodeType] ?? { - color: 'node-color-seq-1', - name: 'Node', - }; - const color = codebook.node?.[nodeType]?.color; - const nodeColor = `var(--${color})`; - const nodeColorDark = `var(--${color}-dark)`; - - console.log('node colors:', nodeColor, nodeColorDark); - return ( -
-
- - {count} - -
- {nodeInfo.name} -
- ); - })} -
- -
- {Object.entries(edgeTypeCount).map(([edgeType, count]) => { - const edgeInfo = codebook.edge?.[edgeType] ?? { - color: 'edge-color-seq-1', - name: 'Edge', - }; - const edgeColor = `var(--${edgeInfo.color})`; - const edgeColorDark = `var(--${edgeInfo.color}-dark)`; - - console.log(edgeColor, edgeColorDark); - - return ( -
-
- - - - - - - - - - - - -
- - {edgeInfo.name} ({count}) - -
- ); - })} -
-
- ); + return ; }, }, { diff --git a/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx b/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx new file mode 100644 index 000000000..1058af3b8 --- /dev/null +++ b/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx @@ -0,0 +1,135 @@ +import type { Codebook, NcNetwork } from '@codaco/shared-consts'; +import { getCSSVariableAsString } from '~/lib/ui/utils/CSSVariables'; + +const NetworkVisualization = ({ + network, + codebook, +}: { + network: NcNetwork | null; + codebook: Codebook | null; +}) => { + if (!network || !codebook) { + return
No interview data
; + } + + const nodeTypeCount: Record = {}; + network.nodes?.forEach((node) => { + nodeTypeCount[node.type] = (nodeTypeCount[node.type] ?? 0) + 1; + }); + + const edgeTypeCount: Record = {}; + network.edges?.forEach((edge) => { + edgeTypeCount[edge.type] = (edgeTypeCount[edge.type] ?? 0) + 1; + }); + + if ( + Object.keys(nodeTypeCount).length === 0 && + Object.keys(edgeTypeCount).length === 0 + ) { + return
No nodes or edges
; + } + + return ( +
+
+ {Object.entries(nodeTypeCount).map(([nodeType, count]) => { + const color = getCSSVariableAsString( + `--${codebook.node?.[nodeType]?.color ?? 'node-color-seq-1'}`, + ); + const colorDark = getCSSVariableAsString( + `--${codebook.node?.[nodeType]?.color ?? 'node-color-seq-1'}-dark`, + ); + const nodeInfo = codebook.node?.[nodeType] ?? { name: 'Node' }; + + return ( +
+
+ + {count} + +
+ {nodeInfo.name} +
+ ); + })} +
+ +
+ {Object.entries(edgeTypeCount).map(([edgeType, count]) => { + const color = + getCSSVariableAsString( + `--${codebook.edge?.[edgeType]?.color ?? 'edge-color-seq-1'}`, + ) ?? '#E1B100'; + const colorDark = + getCSSVariableAsString( + `--${codebook.edge?.[edgeType]?.color ?? 'edge-color-seq-1'}-dark`, + ) ?? '#A98600'; + const edgeInfo = codebook.edge?.[edgeType] ?? { name: 'Edge' }; + + return ( +
+
+ + + + + + + + + + + + +
+ + {edgeInfo.name} ({count}) + +
+ ); + })} +
+
+ ); +}; + +export default NetworkVisualization; diff --git a/styles/globals.css b/styles/globals.css index 92b2eca8d..fdeb0a9ff 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -106,38 +106,53 @@ /* interviewer - node sequence colors */ --node-color-seq-1: var(--color-neon-coral); --node-color-seq-1-dark: var(--color-neon-coral-dark); + --node-color-seq-2: var(--color-sea-serpent); --node-color-seq-2-dark: var(--color-sea-serpent-dark); + --node-color-seq-3: var(--color-purple-pizazz); --node-color-seq-3-dark: var(--color-purple-pizazz-dark); + --node-color-seq-4: var(--color-neon-carrot); --node-color-seq-4-dark: var(--color-neon-carrot-dark); + --node-color-seq-5: var(--color-kiwi); --node-color-seq-5-dark: var(--color-kiwi-dark); + --node-color-seq-6: var(--color-cerulean-blue); --node-color-seq-6-dark: var(--color-cerulean-blue-dark); + --node-color-seq-7: var(--color-paradise-pink); --node-color-seq-7-dark: var(--color-paradise-pink-dark); + --node-color-seq-8: var(--color-mustard); --node-color-seq-8-dark: var(--color-mustard-dark); /* edge sequence colors */ --edge-color-seq-1: var(--color-mustard); --edge-color-seq-1-dark: var(--color-mustard-dark); + --edge-color-seq-2: var(--color-neon-coral); --edge-color-seq-2-dark: var(--color-neon-coral-dark); + --edge-color-seq-3: var(--color-kiwi); --edge-color-seq-3-dark: var(--color-kiwi-dark); + --edge-color-seq-4: var(--color-paradise-pink); --edge-color-seq-4-dark: var(--color-paradise-pink-dark); + --edge-color-seq-5: var(--color-tomato); --edge-color-seq-5-dark: var(--color-tomato-dark); + --edge-color-seq-6: var(--color-sea-serpent); --edge-color-seq-6-dark: var(--color-sea-serpent-dark); + --edge-color-seq-7: var(--color-slate-blue); --edge-color-seq-7-dark: var(--color-slate-blue-dark); + --edge-color-seq-8: var(--color-sea-green); --edge-color-seq-8-dark: var(--color-sea-green-dark); + --edge-color-seq-9: var(--color-cerulean-blue); --edge-color-seq-9-dark: var(--color-cerulean-blue-dark); From 225322ef38fb2d8ef2614ce5d136d184c81ad129 Mon Sep 17 00:00:00 2001 From: buckhalt Date: Mon, 21 Apr 2025 09:26:39 -0700 Subject: [PATCH 15/39] fix getCSSVariableAsString called before DOM is ready --- .../InterviewsTable/NetworkVisualization.tsx | 65 +++++++++++++++---- 1 file changed, 51 insertions(+), 14 deletions(-) diff --git a/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx b/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx index 1058af3b8..dce5be1e7 100644 --- a/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx +++ b/app/dashboard/_components/InterviewsTable/NetworkVisualization.tsx @@ -1,6 +1,12 @@ import type { Codebook, NcNetwork } from '@codaco/shared-consts'; +import { useEffect, useState } from 'react'; import { getCSSVariableAsString } from '~/lib/ui/utils/CSSVariables'; +const NODE_COLOR_FALLBACK = 'hsl(342, 76.9%, 50.8%)'; // neon coral +const NODE_COLOR_DARK_FALLBACK = 'hsl(342, 76.9%, 45.8%)'; // neon coral dark +const EDGE_COLOR_FALLBACK = 'hsl(46, 100%, 47%)'; // mustard +const EDGE_COLOR_DARK_FALLBACK = 'hsl(46, 100%, 42%)'; // mustard dark + const NetworkVisualization = ({ network, codebook, @@ -8,6 +14,43 @@ const NetworkVisualization = ({ network: NcNetwork | null; codebook: Codebook | null; }) => { + const [colors, setColors] = useState< + Record + >({}); + + useEffect(() => { + if (network && codebook) { + const newColors: Record = + {}; + + Object.keys(codebook.node ?? {}).forEach((nodeType) => { + const color = + getCSSVariableAsString( + `--${codebook.node?.[nodeType]?.color ?? 'node-color-seq-1'}`, + ) ?? NODE_COLOR_FALLBACK; + const colorDark = + getCSSVariableAsString( + `--${codebook.node?.[nodeType]?.color ?? 'node-color-seq-1'}-dark`, + ) ?? NODE_COLOR_DARK_FALLBACK; + newColors[nodeType] = { color, colorDark }; + }); + + Object.keys(codebook.edge ?? {}).forEach((edgeType) => { + const color = + getCSSVariableAsString( + `--${codebook.edge?.[edgeType]?.color ?? 'edge-color-seq-1'}`, + ) ?? EDGE_COLOR_FALLBACK; + const colorDark = + getCSSVariableAsString( + `--${codebook.edge?.[edgeType]?.color ?? 'edge-color-seq-1'}-dark`, + ) ?? EDGE_COLOR_DARK_FALLBACK; + newColors[edgeType] = { color, colorDark }; + }); + + setColors(newColors); + } + }, [network, codebook]); + if (!network || !codebook) { return
No interview data
; } @@ -33,12 +76,10 @@ const NetworkVisualization = ({
{Object.entries(nodeTypeCount).map(([nodeType, count]) => { - const color = getCSSVariableAsString( - `--${codebook.node?.[nodeType]?.color ?? 'node-color-seq-1'}`, - ); - const colorDark = getCSSVariableAsString( - `--${codebook.node?.[nodeType]?.color ?? 'node-color-seq-1'}-dark`, - ); + const { color, colorDark } = colors[nodeType] ?? { + color: NODE_COLOR_FALLBACK, + colorDark: NODE_COLOR_DARK_FALLBACK, + }; const nodeInfo = codebook.node?.[nodeType] ?? { name: 'Node' }; return ( @@ -67,14 +108,10 @@ const NetworkVisualization = ({
{Object.entries(edgeTypeCount).map(([edgeType, count]) => { - const color = - getCSSVariableAsString( - `--${codebook.edge?.[edgeType]?.color ?? 'edge-color-seq-1'}`, - ) ?? '#E1B100'; - const colorDark = - getCSSVariableAsString( - `--${codebook.edge?.[edgeType]?.color ?? 'edge-color-seq-1'}-dark`, - ) ?? '#A98600'; + const { color, colorDark } = colors[edgeType] ?? { + color: EDGE_COLOR_FALLBACK, + colorDark: EDGE_COLOR_DARK_FALLBACK, + }; const edgeInfo = codebook.edge?.[edgeType] ?? { name: 'Edge' }; return ( From 62721ae246d29a81313b621c4705a29073ef4dfb Mon Sep 17 00:00:00 2001 From: buckhalt Date: Mon, 21 Apr 2025 09:51:40 -0700 Subject: [PATCH 16/39] use $ anchor for removing .netcanvas suffix --- app/dashboard/_components/InterviewsTable/Columns.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index c41643060..6064f03dc 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -87,7 +87,7 @@ export const InterviewColumns = (): ColumnDef< }, cell: ({ row }) => { const protocolFileName = row.original.protocol.name; - const protocolName = protocolFileName.replace(/\.netcanvas/g, ''); + const protocolName = protocolFileName.replace(/\.netcanvas$/, ''); return (
Date: Mon, 28 Apr 2025 07:35:06 -0700 Subject: [PATCH 17/39] add classNames prop to TimeAgo, remove wrapping it with classes --- .../_components/InterviewsTable/Columns.tsx | 12 ++---------- components/ui/TimeAgo.tsx | 7 ++++--- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/app/dashboard/_components/InterviewsTable/Columns.tsx b/app/dashboard/_components/InterviewsTable/Columns.tsx index 6064f03dc..3753223ac 100644 --- a/app/dashboard/_components/InterviewsTable/Columns.tsx +++ b/app/dashboard/_components/InterviewsTable/Columns.tsx @@ -106,11 +106,7 @@ export const InterviewColumns = (): ColumnDef< }, cell: ({ row }) => { const date = new Date(row.original.startTime); - return ( -
- -
- ); + return ; }, }, { @@ -121,11 +117,7 @@ export const InterviewColumns = (): ColumnDef< }, cell: ({ row }) => { const date = new Date(row.original.lastUpdated); - return ( -
- -
- ); + return ; }, }, { diff --git a/components/ui/TimeAgo.tsx b/components/ui/TimeAgo.tsx index 84674cd97..83975be89 100644 --- a/components/ui/TimeAgo.tsx +++ b/components/ui/TimeAgo.tsx @@ -1,12 +1,13 @@ -import React, { useState, useEffect, useMemo } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { dateOptions } from '~/fresco.config'; import { withNoSSRWrapper } from '~/utils/NoSSRWrapper'; type TimeAgoProps = { date: Date | string | number; + className?: string; }; -const TimeAgo: React.FC = ({ date: dateProp }) => { +const TimeAgo: React.FC = ({ date: dateProp, className }) => { const date = useMemo(() => new Date(dateProp), [dateProp]); const localisedDate = new Intl.DateTimeFormat( navigator.language, @@ -49,7 +50,7 @@ const TimeAgo: React.FC = ({ date: dateProp }) => { }, [date, localisedDate]); return ( -