From e54e18dce2c7b3c09d2d2b7eae3938df5397cb38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:44:29 -0600 Subject: [PATCH 01/18] chore(deps): bump @radix-ui/react-checkbox in /components/table (#21) Bumps [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) from 1.3.5 to 1.3.11. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox) --- updated-dependencies: - dependency-name: "@radix-ui/react-checkbox" dependency-version: 1.3.11 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- components/table/package-lock.json | 209 +++++++++++++++++++++++++---- components/table/package.json | 2 +- 2 files changed, 183 insertions(+), 28 deletions(-) diff --git a/components/table/package-lock.json b/components/table/package-lock.json index c6aa152..d7362fb 100644 --- a/components/table/package-lock.json +++ b/components/table/package-lock.json @@ -9,7 +9,7 @@ "version": "2.6.0", "license": "MIT", "dependencies": { - "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-checkbox": "^1.3.11", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-slot": "^1.2.4", "@tanstack/react-table": "^8.21.3", @@ -930,19 +930,77 @@ } }, "node_modules/@radix-ui/react-checkbox": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.5.tgz", - "integrity": "sha512-pREzrmNnVwGvYaBoM64huTRK7B3lrTRuwj8A9nwhPiEtMb+yudiWh6zWAqEtP0Dzd5+iBa1Ki7V1pCxV8ExMdA==", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.11.tgz", + "integrity": "sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.4", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.1.4", - "@radix-ui/react-presence": "1.1.6", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-controllable-state": "1.2.3", - "@radix-ui/react-use-previous": "1.1.2", - "@radix-ui/react-use-size": "1.1.2" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/primitive": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", + "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-context": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", + "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-presence": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -959,6 +1017,118 @@ } } }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", + "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", + "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-size": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", + "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-collection": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.10.tgz", @@ -1420,21 +1590,6 @@ } } }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.2.tgz", - "integrity": "sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-rect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.2.tgz", diff --git a/components/table/package.json b/components/table/package.json index 4d76e5a..905e348 100644 --- a/components/table/package.json +++ b/components/table/package.json @@ -38,7 +38,7 @@ "lint": "tsc --noEmit" }, "dependencies": { - "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-checkbox": "^1.3.11", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-slot": "^1.2.4", "@tanstack/react-table": "^8.21.3", From ebee30b4eea8215d2886a2ada9157b65caee1062 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:44:35 -0600 Subject: [PATCH 02/18] chore(deps): bump @radix-ui/react-slot in /components/table (#18) Bumps [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) from 1.3.0 to 1.3.3. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot) --- updated-dependencies: - dependency-name: "@radix-ui/react-slot" dependency-version: 1.3.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- components/table/package-lock.json | 79 ++++++++++++++++++++++++++++-- components/table/package.json | 2 +- 2 files changed, 75 insertions(+), 6 deletions(-) diff --git a/components/table/package-lock.json b/components/table/package-lock.json index d7362fb..a839270 100644 --- a/components/table/package-lock.json +++ b/components/table/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@radix-ui/react-checkbox": "^1.3.11", "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-slot": "^1.3.3", "@tanstack/react-table": "^8.21.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -1155,6 +1155,24 @@ } } }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", @@ -1354,6 +1372,24 @@ } } }, + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popper": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.1.tgz", @@ -1456,6 +1492,24 @@ } } }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.13.tgz", @@ -1488,12 +1542,12 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", + "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" + "@radix-ui/react-compose-refs": "1.1.5" }, "peerDependencies": { "@types/react": "*", @@ -1505,6 +1559,21 @@ } } }, + "node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz", diff --git a/components/table/package.json b/components/table/package.json index 905e348..bf6f9dd 100644 --- a/components/table/package.json +++ b/components/table/package.json @@ -40,7 +40,7 @@ "dependencies": { "@radix-ui/react-checkbox": "^1.3.11", "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-slot": "^1.3.3", "@tanstack/react-table": "^8.21.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", From f40e0fe2db2bb378c2bd3602f74cde18cb7781c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:44:39 -0600 Subject: [PATCH 03/18] chore(deps): bump @radix-ui/react-slot in /components/action-buttons (#17) Bumps [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) from 1.3.0 to 1.3.3. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot) --- updated-dependencies: - dependency-name: "@radix-ui/react-slot" dependency-version: 1.3.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- components/action-buttons/package-lock.json | 79 +++++++++++++++++++-- components/action-buttons/package.json | 2 +- 2 files changed, 75 insertions(+), 6 deletions(-) diff --git a/components/action-buttons/package-lock.json b/components/action-buttons/package-lock.json index 1c9cb43..e250072 100644 --- a/components/action-buttons/package-lock.json +++ b/components/action-buttons/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-slot": "^1.3.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "tailwind-merge": "^3.6.0" @@ -1006,6 +1006,24 @@ } } }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", @@ -1205,6 +1223,24 @@ } } }, + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popper": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.3.tgz", @@ -1307,6 +1343,24 @@ } } }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.15.tgz", @@ -1341,13 +1395,28 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", + "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" + "@radix-ui/react-compose-refs": "1.1.5" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" diff --git a/components/action-buttons/package.json b/components/action-buttons/package.json index cb37be0..6f67a79 100644 --- a/components/action-buttons/package.json +++ b/components/action-buttons/package.json @@ -40,7 +40,7 @@ }, "dependencies": { "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-slot": "^1.3.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "tailwind-merge": "^3.6.0" From 641eee0d222f8f919f81e276ecf42316c87e563d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:44:45 -0600 Subject: [PATCH 04/18] chore(deps): bump react-router-dom from 7.18.1 to 7.18.2 in /apps/demo (#15) Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.18.1 to 7.18.2. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.2/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.2/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-version: 7.18.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- apps/demo/package-lock.json | 57 +++++++++++++++++++++++-------------- apps/demo/package.json | 2 +- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/apps/demo/package-lock.json b/apps/demo/package-lock.json index 8bfc9d4..9c23554 100644 --- a/apps/demo/package-lock.json +++ b/apps/demo/package-lock.json @@ -25,7 +25,7 @@ "lucide-react": "^1.21.0", "react": "^19.2.7", "react-dom": "^19.2.7", - "react-router-dom": "^7.18.0", + "react-router-dom": "^7.18.2", "tailwind-merge": "^3.6.0" }, "devDependencies": { @@ -41,7 +41,7 @@ }, "../../components/action-buttons": { "name": "@jooservices/react-action-buttons", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -57,6 +57,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -75,7 +76,7 @@ }, "../../components/ai-waiting": { "name": "@jooservices/react-ai-waiting", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -86,6 +87,7 @@ "@testing-library/react": "^16.3.0", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "react": "^19.2.7", "react-dom": "^19.2.7", @@ -101,7 +103,7 @@ }, "../../components/card": { "name": "@jooservices/react-card", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -114,6 +116,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -132,18 +135,20 @@ }, "../../components/config": { "name": "@jooservices/react-config", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", "tailwind-merge": "^3.6.0" }, "devDependencies": { + "@jooservices/react-ui": "file:../ui", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -153,6 +158,7 @@ "vitest": "^4.0.16" }, "peerDependencies": { + "@jooservices/react-ui": ">=2.6.0", "lucide-react": ">=0.400.0", "react": ">=18.0.0", "react-dom": ">=18.0.0", @@ -161,7 +167,7 @@ }, "../../components/content": { "name": "@jooservices/react-content", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "class-variance-authority": "^0.7.1", @@ -173,6 +179,7 @@ "@testing-library/react": "^16.3.0", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -190,7 +197,7 @@ }, "../../components/layout": { "name": "@jooservices/react-layout", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -202,6 +209,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -219,7 +227,7 @@ }, "../../components/login": { "name": "@jooservices/react-login", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -231,6 +239,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -248,7 +257,7 @@ }, "../../components/media": { "name": "@jooservices/react-media", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -260,6 +269,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -277,7 +287,7 @@ }, "../../components/modal": { "name": "@jooservices/react-modal", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -288,6 +298,7 @@ "@testing-library/react": "^16.3.0", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -305,7 +316,7 @@ }, "../../components/notifications": { "name": "@jooservices/react-notifications", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -317,6 +328,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -334,7 +346,7 @@ }, "../../components/table": { "name": "@jooservices/react-table", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "@radix-ui/react-checkbox": "^1.3.3", @@ -352,6 +364,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -370,7 +383,7 @@ }, "../../components/toast": { "name": "@jooservices/react-toast", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -381,6 +394,7 @@ "@testing-library/react": "^16.3.0", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -398,7 +412,7 @@ }, "../../components/ui": { "name": "@jooservices/react-ui", - "version": "2.5.0", + "version": "2.6.0", "license": "MIT", "dependencies": { "@radix-ui/react-tooltip": "^1.2.16", @@ -412,6 +426,7 @@ "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", @@ -1710,9 +1725,9 @@ } }, "node_modules/react-router": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.1.tgz", - "integrity": "sha512-GDLgg3i3uM0aeJO3Fm+TCS+sDQ7gu12T6x0qdTEzcwqEfleci7JwugVNIF3U//0FWKnJT7ptG+20B2jfDqnZAg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.2.tgz", + "integrity": "sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -1732,12 +1747,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.1.tgz", - "integrity": "sha512-KaZh+X/6UtEp28x51AUYZDMg9NGoz2ja3dNHa+ta/tk40vCzKhQ/RypCWBMLbmDr6//E24Vv5uPsrqXFozdkAg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.2.tgz", + "integrity": "sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==", "license": "MIT", "dependencies": { - "react-router": "7.18.1" + "react-router": "7.18.2" }, "engines": { "node": ">=20.0.0" diff --git a/apps/demo/package.json b/apps/demo/package.json index 816596d..2925571 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -30,7 +30,7 @@ "lucide-react": "^1.21.0", "react": "^19.2.7", "react-dom": "^19.2.7", - "react-router-dom": "^7.18.0", + "react-router-dom": "^7.18.2", "tailwind-merge": "^3.6.0", "@jooservices/react-media": "file:../../components/media" }, From fac1ff480008bd118acb449498f8cfeef248834b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:44:52 -0600 Subject: [PATCH 05/18] ci(deps): bump actions/labeler from 5 to 7 (#12) Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 7. - [Release notes](https://github.com/actions/labeler/releases) - [Commits](https://github.com/actions/labeler/compare/v5...v7) --- updated-dependencies: - dependency-name: actions/labeler dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pr-labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index d999fd2..ad662fa 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -21,6 +21,6 @@ jobs: uses: actions/checkout@v4 - name: Label PR - uses: actions/labeler@v5 + uses: actions/labeler@v7 with: repo-token: ${{ secrets.GITHUB_TOKEN }} From 633cdd2d9f4b8f115f6f4a8dda5660c16a8c5642 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:44:58 -0600 Subject: [PATCH 06/18] ci(deps): bump github/codeql-action from 3 to 4 (#10) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index ab50d95..2a4649a 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -34,6 +34,6 @@ jobs: publish_results: true - name: Upload SARIF results - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: results.sarif From 1a882ab11eb959b8235693e2727cacaaf7de26dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 11:06:27 -0600 Subject: [PATCH 07/18] chore(deps): bump @radix-ui/react-dropdown-menu (#16) Bumps [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) from 2.1.20 to 2.1.24. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu) --- updated-dependencies: - dependency-name: "@radix-ui/react-dropdown-menu" dependency-version: 2.1.24 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- components/action-buttons/package-lock.json | 354 ++++++++------------ components/action-buttons/package.json | 2 +- 2 files changed, 144 insertions(+), 212 deletions(-) diff --git a/components/action-buttons/package-lock.json b/components/action-buttons/package-lock.json index e250072..f7bf349 100644 --- a/components/action-buttons/package-lock.json +++ b/components/action-buttons/package-lock.json @@ -9,7 +9,7 @@ "version": "2.6.0", "license": "MIT", "dependencies": { - "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-dropdown-menu": "^2.1.24", "@radix-ui/react-slot": "^1.3.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -952,18 +952,18 @@ } }, "node_modules/@radix-ui/primitive": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.5.tgz", - "integrity": "sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", + "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", "license": "MIT" }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.11.tgz", - "integrity": "sha512-Kdil9BB1rIFC/khmf4hC35bn8701AJcizTU7G7cUbEbk5XqqbjDuHW60uUfKqO5WojjZcbAW51Q7P0hRmMLw8A==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.15.tgz", + "integrity": "sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.7" + "@radix-ui/react-primitive": "2.1.10" }, "peerDependencies": { "@types/react": "*", @@ -981,15 +981,15 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.12.tgz", - "integrity": "sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", + "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.2.0", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-slot": "1.3.0" + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3" }, "peerDependencies": { "@types/react": "*", @@ -1006,28 +1006,10 @@ } } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", - "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1040,9 +1022,9 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.0.tgz", - "integrity": "sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", + "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1055,9 +1037,9 @@ } }, "node_modules/@radix-ui/react-direction": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz", - "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.4.tgz", + "integrity": "sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1070,16 +1052,16 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.15.tgz", - "integrity": "sha512-b0XaRlzn2QKuo10XyNgi2DAJDf5XC9d1nD3FJcuvCjbR7+4Ad28zmZsLsqx+hvDEzMnRuZaZxZm9gYObV6RmRA==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.19.tgz", + "integrity": "sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.5", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-use-callback-ref": "1.1.2", - "@radix-ui/react-use-effect-event": "0.0.3" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-effect-event": "0.0.5" }, "peerDependencies": { "@types/react": "*", @@ -1097,18 +1079,18 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.20.tgz", - "integrity": "sha512-slfm+rRaZRuQBvHq60lXvSVUPhid0IPtjSZzIuUlWZMUs01iYZNlGS3mJgRD3ChLQVBAYlKiL/tFyWGX+dz8Xw==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.24.tgz", + "integrity": "sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.5", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.2.0", - "@radix-ui/react-id": "1.1.2", - "@radix-ui/react-menu": "2.1.20", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-use-controllable-state": "1.2.3" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" }, "peerDependencies": { "@types/react": "*", @@ -1126,9 +1108,9 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz", - "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.6.tgz", + "integrity": "sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1141,14 +1123,14 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.12.tgz", - "integrity": "sha512-jjk/lqTeNL0azUx5ZYzVrl4NgaDIrdzTNE4mABV9yBFI7FQqN7pIgzV1bTleUezP2QiTGA1BFTqY8MegDgWX9A==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.16.tgz", + "integrity": "sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-use-callback-ref": "1.1.2" + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1166,12 +1148,12 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz", - "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", + "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1184,27 +1166,27 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.20.tgz", - "integrity": "sha512-VsUrXxFe9d2ScbZF0fR/oPR1+qjyeLs5p0jzG8h90puMoA9bq4SirYlXbE+USRg9Q2qTeJSFNqjw2nts8jJe4w==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.24.tgz", + "integrity": "sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.5", - "@radix-ui/react-collection": "1.1.12", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.2.0", - "@radix-ui/react-direction": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.15", - "@radix-ui/react-focus-guards": "1.1.4", - "@radix-ui/react-focus-scope": "1.1.12", - "@radix-ui/react-id": "1.1.2", - "@radix-ui/react-popper": "1.3.3", - "@radix-ui/react-portal": "1.1.13", - "@radix-ui/react-presence": "1.1.7", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-roving-focus": "1.1.15", - "@radix-ui/react-slot": "1.3.0", - "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-callback-ref": "1.1.4", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, @@ -1223,40 +1205,22 @@ } } }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-popper": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.3.tgz", - "integrity": "sha512-mS7dGpyjv6b+gsDjLF7e0ia1W4Im1B1hSCy2yuXlHuvnZxHKagfDaobt/KAKt27EpZMit2pss8eJBVyVjEWM+g==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.11", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.2.0", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-use-callback-ref": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.2", - "@radix-ui/react-use-rect": "1.1.2", - "@radix-ui/react-use-size": "1.1.2", - "@radix-ui/rect": "1.1.2" + "@radix-ui/react-arrow": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-rect": "1.1.4", + "@radix-ui/react-use-size": "1.1.4", + "@radix-ui/rect": "1.1.3" }, "peerDependencies": { "@types/react": "*", @@ -1274,13 +1238,13 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.13.tgz", - "integrity": "sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==", + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.17.tgz", + "integrity": "sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1298,12 +1262,12 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.7.tgz", - "integrity": "sha512-zBZ4QM5XG3JRanDmqXYf3MD6th4AFXFmgU6KNMFzUaV6F3uw9I5/zjMUvFriSEn5ewo1nxuibvyxJdmLlDcslA==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1321,12 +1285,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.7.tgz", - "integrity": "sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.3.0" + "@radix-ui/react-slot": "1.3.3" }, "peerDependencies": { "@types/react": "*", @@ -1343,41 +1307,23 @@ } } }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.15.tgz", - "integrity": "sha512-40svmmugfM3mUN7VUDGVE1tQGOhyi8enlGD0CNJEcMM36C1f71PKM21DFgNHUfem0XnA+d8H8oN3Z9ZpJjSslg==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", + "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.5", - "@radix-ui/react-collection": "1.1.12", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.2.0", - "@radix-ui/react-direction": "1.1.2", - "@radix-ui/react-id": "1.1.2", - "@radix-ui/react-primitive": "2.1.7", - "@radix-ui/react-use-callback-ref": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.2.3", - "@radix-ui/react-use-is-hydrated": "0.1.1", - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1412,25 +1358,10 @@ } } }, - "node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", - "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz", - "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", + "integrity": "sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1443,13 +1374,14 @@ } }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz", - "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", + "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.3", - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1462,12 +1394,12 @@ } }, "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz", - "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1480,9 +1412,9 @@ } }, "node_modules/@radix-ui/react-use-is-hydrated": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.1.tgz", - "integrity": "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.3.tgz", + "integrity": "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1495,9 +1427,9 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz", - "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1510,12 +1442,12 @@ } }, "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.2.tgz", - "integrity": "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.4.tgz", + "integrity": "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==", "license": "MIT", "dependencies": { - "@radix-ui/rect": "1.1.2" + "@radix-ui/rect": "1.1.3" }, "peerDependencies": { "@types/react": "*", @@ -1528,12 +1460,12 @@ } }, "node_modules/@radix-ui/react-use-size": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.2.tgz", - "integrity": "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", + "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1546,9 +1478,9 @@ } }, "node_modules/@radix-ui/rect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.2.tgz", - "integrity": "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.3.tgz", + "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==", "license": "MIT" }, "node_modules/@rolldown/binding-android-arm64": { diff --git a/components/action-buttons/package.json b/components/action-buttons/package.json index 6f67a79..be52b11 100644 --- a/components/action-buttons/package.json +++ b/components/action-buttons/package.json @@ -39,7 +39,7 @@ "lint": "tsc --noEmit" }, "dependencies": { - "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-dropdown-menu": "^2.1.24", "@radix-ui/react-slot": "^1.3.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", From 64847fbd23c01d3c1e7b5202d5c91061d6762f41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 11:35:31 -0600 Subject: [PATCH 08/18] chore(deps): bump @radix-ui/react-dropdown-menu from 2.1.18 to 2.1.24 in /components/table (#20) * chore(deps): bump @radix-ui/react-dropdown-menu in /components/table Bumps [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) from 2.1.18 to 2.1.24. - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu) --- updated-dependencies: - dependency-name: "@radix-ui/react-dropdown-menu" dependency-version: 2.1.24 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): regenerate lockfile after merge with main --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viet Vu --- components/table/package-lock.json | 560 +++++++++-------------------- components/table/package.json | 2 +- package-lock.json | 14 + 3 files changed, 175 insertions(+), 401 deletions(-) create mode 100644 package-lock.json diff --git a/components/table/package-lock.json b/components/table/package-lock.json index a839270..6761011 100644 --- a/components/table/package-lock.json +++ b/components/table/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@radix-ui/react-checkbox": "^1.3.11", - "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-dropdown-menu": "^2.1.24", "@radix-ui/react-slot": "^1.3.3", "@tanstack/react-table": "^8.21.3", "class-variance-authority": "^0.7.1", @@ -810,31 +810,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", - "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.11" + "@floating-ui/utils": "^0.2.12" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", - "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", + "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.5", - "@floating-ui/utils": "^0.2.11" + "@floating-ui/core": "^1.8.0", + "@floating-ui/utils": "^0.2.12" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", - "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz", + "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.7.6" + "@floating-ui/dom": "^1.8.0" }, "peerDependencies": { "react": ">=16.8.0", @@ -842,9 +842,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", - "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", "license": "MIT" }, "node_modules/@jooservices/react-ui": { @@ -901,18 +901,18 @@ } }, "node_modules/@radix-ui/primitive": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.4.tgz", - "integrity": "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", + "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", "license": "MIT" }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.10.tgz", - "integrity": "sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.15.tgz", + "integrity": "sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.6" + "@radix-ui/react-primitive": "2.1.10" }, "peerDependencies": { "@types/react": "*", @@ -958,187 +958,16 @@ } } }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/primitive": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", - "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", - "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-context": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", - "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-presence": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", - "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", - "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.3.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", - "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.5" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", - "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-use-effect-event": "0.0.5", - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", - "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", - "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-size": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", - "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.10.tgz", - "integrity": "sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", + "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.1.4", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-slot": "1.3.0" + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3" }, "peerDependencies": { "@types/react": "*", @@ -1155,28 +984,10 @@ } } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", - "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1189,9 +1000,9 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.4.tgz", - "integrity": "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", + "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1204,9 +1015,9 @@ } }, "node_modules/@radix-ui/react-direction": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz", - "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.4.tgz", + "integrity": "sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1219,16 +1030,16 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.13.tgz", - "integrity": "sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.19.tgz", + "integrity": "sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.4", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-callback-ref": "1.1.2", - "@radix-ui/react-use-escape-keydown": "1.1.2" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-effect-event": "0.0.5" }, "peerDependencies": { "@types/react": "*", @@ -1246,18 +1057,18 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.18.tgz", - "integrity": "sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.24.tgz", + "integrity": "sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.4", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.1.4", - "@radix-ui/react-id": "1.1.2", - "@radix-ui/react-menu": "2.1.18", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-controllable-state": "1.2.3" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" }, "peerDependencies": { "@types/react": "*", @@ -1275,9 +1086,9 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz", - "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.6.tgz", + "integrity": "sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1290,14 +1101,14 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.10.tgz", - "integrity": "sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.16.tgz", + "integrity": "sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-callback-ref": "1.1.2" + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1315,12 +1126,12 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz", - "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", + "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1333,27 +1144,27 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.18.tgz", - "integrity": "sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.24.tgz", + "integrity": "sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.4", - "@radix-ui/react-collection": "1.1.10", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.1.4", - "@radix-ui/react-direction": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.13", - "@radix-ui/react-focus-guards": "1.1.4", - "@radix-ui/react-focus-scope": "1.1.10", - "@radix-ui/react-id": "1.1.2", - "@radix-ui/react-popper": "1.3.1", - "@radix-ui/react-portal": "1.1.12", - "@radix-ui/react-presence": "1.1.6", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-roving-focus": "1.1.13", - "@radix-ui/react-slot": "1.3.0", - "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-callback-ref": "1.1.4", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, @@ -1372,40 +1183,22 @@ } } }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-popper": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.1.tgz", - "integrity": "sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.10", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.1.4", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-callback-ref": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.2", - "@radix-ui/react-use-rect": "1.1.2", - "@radix-ui/react-use-size": "1.1.2", - "@radix-ui/rect": "1.1.2" + "@radix-ui/react-arrow": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-rect": "1.1.4", + "@radix-ui/react-use-size": "1.1.4", + "@radix-ui/rect": "1.1.3" }, "peerDependencies": { "@types/react": "*", @@ -1423,13 +1216,13 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.12.tgz", - "integrity": "sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==", + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.17.tgz", + "integrity": "sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1447,12 +1240,12 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.6.tgz", - "integrity": "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1470,12 +1263,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.6.tgz", - "integrity": "sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.3.0" + "@radix-ui/react-slot": "1.3.3" }, "peerDependencies": { "@types/react": "*", @@ -1492,39 +1285,23 @@ } } }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", - "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.13.tgz", - "integrity": "sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", + "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.4", - "@radix-ui/react-collection": "1.1.10", - "@radix-ui/react-compose-refs": "1.1.3", - "@radix-ui/react-context": "1.1.4", - "@radix-ui/react-direction": "1.1.2", - "@radix-ui/react-id": "1.1.2", - "@radix-ui/react-primitive": "2.1.6", - "@radix-ui/react-use-callback-ref": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.2.3" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1559,25 +1336,10 @@ } } }, - "node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", - "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz", - "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", + "integrity": "sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1590,13 +1352,14 @@ } }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz", - "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", + "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.3", - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1609,12 +1372,12 @@ } }, "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz", - "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1626,14 +1389,11 @@ } } }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.2.tgz", - "integrity": "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==", + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.3.tgz", + "integrity": "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==", "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.2" - }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1645,9 +1405,9 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz", - "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1660,12 +1420,12 @@ } }, "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.2.tgz", - "integrity": "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.4.tgz", + "integrity": "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==", "license": "MIT", "dependencies": { - "@radix-ui/rect": "1.1.2" + "@radix-ui/rect": "1.1.3" }, "peerDependencies": { "@types/react": "*", @@ -1678,12 +1438,12 @@ } }, "node_modules/@radix-ui/react-use-size": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.2.tgz", - "integrity": "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", + "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -1696,9 +1456,9 @@ } }, "node_modules/@radix-ui/rect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.2.tgz", - "integrity": "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.3.tgz", + "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==", "license": "MIT" }, "node_modules/@rolldown/binding-android-arm64": { diff --git a/components/table/package.json b/components/table/package.json index bf6f9dd..be69620 100644 --- a/components/table/package.json +++ b/components/table/package.json @@ -39,7 +39,7 @@ }, "dependencies": { "@radix-ui/react-checkbox": "^1.3.11", - "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-dropdown-menu": "^2.1.24", "@radix-ui/react-slot": "^1.3.3", "@tanstack/react-table": "^8.21.3", "class-variance-authority": "^0.7.1", diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e1192ba --- /dev/null +++ b/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "@jooservices/react", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@jooservices/react", + "license": "MIT", + "engines": { + "node": ">=18" + } + } + } +} From e878c9f56c228242ed22d4eb891d11e4c41951a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 11:37:22 -0600 Subject: [PATCH 09/18] chore(deps-dev): bump the dev-dependencies group across 10 directories with 14 updates (#14) Bumps the dev-dependencies group with 4 updates in the /apps/demo directory: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Bumps the dev-dependencies group with 7 updates in the /components/ai-waiting directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | Bumps the dev-dependencies group with 8 updates in the /components/content directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.21.0` | `1.28.0` | Bumps the dev-dependencies group with 9 updates in the /components/layout directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.21.0` | `1.28.0` | | [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` | Bumps the dev-dependencies group with 7 updates in the /components/login directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.26.0` | `1.28.0` | | [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` | Bumps the dev-dependencies group with 7 updates in the /components/media directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.27.0` | `1.28.0` | | [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` | Bumps the dev-dependencies group with 8 updates in the /components/modal directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.24.0` | `1.28.0` | Bumps the dev-dependencies group with 3 updates in the /components/notifications directory: [@testing-library/jest-dom](https://github.com/testing-library/jest-dom), [jsdom](https://github.com/jsdom/jsdom) and [typescript](https://github.com/microsoft/TypeScript). Bumps the dev-dependencies group with 8 updates in the /components/toast directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.24.0` | `1.28.0` | Bumps the dev-dependencies group with 9 updates in the /components/ui directory: | Package | From | To | | --- | --- | --- | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.21.0` | `1.28.0` | | [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` | Updates `@tailwindcss/vite` from 4.3.2 to 4.3.3 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite) Updates `@types/node` from 24.13.3 to 26.1.2 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.5 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react) Updates `tailwindcss` from 4.3.2 to 4.3.3 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/tailwindcss) Updates `vite` from 8.1.4 to 8.2.0 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/create-vite@8.2.0/packages/vite) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.21.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.21.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/user-event` from 14.6.1 to 14.6.3 - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v14.6.1...v14.6.3) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.26.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/user-event` from 14.6.1 to 14.6.3 - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v14.6.1...v14.6.3) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.27.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/user-event` from 14.6.1 to 14.6.3 - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v14.6.1...v14.6.3) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.24.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.24.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.9.1...v7.0.0) Updates `jsdom` from 27.4.0 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v30.0.1) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `@types/react` from 19.2.17 to 19.2.18 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) Updates `@types/react-dom` from 19.2.3 to 19.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `typescript` from 5.9.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) Updates `lucide-react` from 1.21.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `@testing-library/user-event` from 14.6.1 to 14.6.3 - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v14.6.1...v14.6.3) --- updated-dependencies: - dependency-name: "@tailwindcss/vite" dependency-version: 4.3.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/node" dependency-version: 26.1.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@vitejs/plugin-react" dependency-version: 6.0.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: tailwindcss dependency-version: 4.3.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: vite dependency-version: 8.2.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/user-event" dependency-version: 14.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/user-event" dependency-version: 14.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/user-event" dependency-version: 14.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.2.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@testing-library/user-event" dependency-version: 14.6.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viet Vu --- apps/demo/package-lock.json | 749 +++++++++----- apps/demo/package.json | 8 +- components/action-buttons/package-lock.json | 332 +++--- components/ai-waiting/package-lock.json | 913 ++++++++++------- components/ai-waiting/package.json | 14 +- components/card/package-lock.json | 340 +++---- components/content/package-lock.json | 701 +++++++++---- components/content/package.json | 16 +- components/layout/package-lock.json | 709 +++++++++---- components/layout/package.json | 18 +- components/login/package-lock.json | 891 ++++++++++------ components/login/package.json | 14 +- components/media/package-lock.json | 917 ++++++++++------- components/media/package.json | 14 +- components/modal/package-lock.json | 1015 +++++++++++-------- components/modal/package.json | 16 +- components/notifications/package-lock.json | 613 ++++++++--- components/notifications/package.json | 6 +- components/toast/package-lock.json | 1015 +++++++++++-------- components/toast/package.json | 16 +- components/ui/package-lock.json | 709 +++++++++---- components/ui/package.json | 18 +- 22 files changed, 5698 insertions(+), 3346 deletions(-) diff --git a/apps/demo/package-lock.json b/apps/demo/package-lock.json index 9c23554..ae3ac1a 100644 --- a/apps/demo/package-lock.json +++ b/apps/demo/package-lock.json @@ -29,14 +29,14 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@tailwindcss/vite": "^4.3.1", - "@types/node": "^24.13.2", + "@tailwindcss/vite": "^4.3.3", + "@types/node": "^26.1.2", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.2", + "@vitejs/plugin-react": "^6.0.5", "tailwindcss": "^4.3.1", "typescript": "~5.9.3", - "vite": "^8.1.0" + "vite": "^8.2.0" } }, "../../components/action-buttons": { @@ -442,40 +442,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@jooservices/react-action-buttons": { "resolved": "../../components/action-buttons", "link": true @@ -578,29 +544,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -608,9 +555,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -625,9 +572,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -642,9 +589,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -659,9 +606,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -676,9 +623,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -693,9 +640,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -713,9 +660,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -733,9 +680,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -753,9 +700,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -773,9 +720,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -793,9 +740,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -813,9 +760,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -829,29 +776,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -866,9 +794,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -890,49 +818,49 @@ "license": "MIT" }, "node_modules/@tailwindcss/node": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", - "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "5.21.6", + "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.2" + "tailwindcss": "4.3.3" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", - "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.2", - "@tailwindcss/oxide-darwin-arm64": "4.3.2", - "@tailwindcss/oxide-darwin-x64": "4.3.2", - "@tailwindcss/oxide-freebsd-x64": "4.3.2", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", - "@tailwindcss/oxide-linux-x64-musl": "4.3.2", - "@tailwindcss/oxide-wasm32-wasi": "4.3.2", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", - "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", "cpu": [ "arm64" ], @@ -947,9 +875,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", - "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", "cpu": [ "arm64" ], @@ -964,9 +892,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", - "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", "cpu": [ "x64" ], @@ -981,9 +909,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", - "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", "cpu": [ "x64" ], @@ -998,9 +926,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", - "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", "cpu": [ "arm" ], @@ -1015,9 +943,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", - "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", "cpu": [ "arm64" ], @@ -1035,9 +963,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", - "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", "cpu": [ "arm64" ], @@ -1055,9 +983,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", - "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", "cpu": [ "x64" ], @@ -1075,9 +1003,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", - "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", "cpu": [ "x64" ], @@ -1095,9 +1023,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", - "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -1124,10 +1052,76 @@ "node": ">=14.0.0" } }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.1", + "dev": true, + "inBundle": true, + "license": "0BSD", + "optional": true + }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", - "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", "cpu": [ "arm64" ], @@ -1142,9 +1136,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", - "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", "cpu": [ "x64" ], @@ -1159,39 +1153,28 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.2.tgz", - "integrity": "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.2", - "@tailwindcss/oxide": "4.3.2", - "tailwindcss": "4.3.2" + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/node": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", - "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==", + "version": "26.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", + "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~8.3.0" } }, "node_modules/@types/react": { @@ -1215,9 +1198,9 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.3.tgz", - "integrity": "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz", + "integrity": "sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==", "dev": true, "license": "MIT", "dependencies": { @@ -1280,9 +1263,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.21.6", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", - "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", "dev": true, "license": "MIT", "dependencies": { @@ -1636,9 +1619,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -1675,9 +1658,9 @@ } }, "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -1695,7 +1678,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -1763,13 +1746,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -1779,21 +1762,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/scheduler": { @@ -1829,9 +1811,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", - "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", "dev": true, "license": "MIT" }, @@ -1866,14 +1848,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -1889,23 +1863,23 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "dev": true, "license": "MIT" }, "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", + "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", + "postcss": "^8.5.23", + "rolldown": "~1.2.0", "tinyglobby": "^0.2.17" }, "bin": { @@ -1922,7 +1896,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -1972,6 +1946,279 @@ "optional": true } } + }, + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } } } } diff --git a/apps/demo/package.json b/apps/demo/package.json index 2925571..3144d5b 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -35,13 +35,13 @@ "@jooservices/react-media": "file:../../components/media" }, "devDependencies": { - "@tailwindcss/vite": "^4.3.1", - "@types/node": "^24.13.2", + "@tailwindcss/vite": "^4.3.3", + "@types/node": "^26.1.2", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.2", + "@vitejs/plugin-react": "^6.0.5", "tailwindcss": "^4.3.1", "typescript": "~5.9.3", - "vite": "^8.1.0" + "vite": "^8.2.0" } } diff --git a/components/action-buttons/package-lock.json b/components/action-buttons/package-lock.json index f7bf349..140491f 100644 --- a/components/action-buttons/package-lock.json +++ b/components/action-buttons/package-lock.json @@ -347,40 +347,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -922,29 +888,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -1484,9 +1431,9 @@ "license": "MIT" }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -1501,9 +1448,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -1518,9 +1465,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -1535,9 +1482,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -1552,9 +1499,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -1569,9 +1516,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -1589,9 +1536,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -1609,9 +1556,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1629,9 +1576,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1649,9 +1596,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1669,9 +1616,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1689,9 +1636,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1705,29 +1652,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1742,9 +1670,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -2251,17 +2179,6 @@ "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -3118,9 +3035,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -3134,23 +3051,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -3169,9 +3086,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -3190,9 +3107,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -3211,9 +3128,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -3232,9 +3149,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -3253,9 +3170,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -3277,9 +3194,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -3301,9 +3218,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -3325,9 +3242,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -3349,9 +3266,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -3370,9 +3287,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -3539,9 +3456,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -3644,9 +3561,9 @@ } }, "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -3664,7 +3581,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3888,13 +3805,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3904,21 +3821,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -4363,16 +4279,16 @@ } }, "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -4389,7 +4305,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", diff --git a/components/ai-waiting/package-lock.json b/components/ai-waiting/package-lock.json index 646f44f..d02640e 100644 --- a/components/ai-waiting/package-lock.json +++ b/components/ai-waiting/package-lock.json @@ -13,16 +13,16 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -31,13 +31,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -46,40 +39,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -166,6 +157,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -187,9 +191,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -211,9 +215,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", "dev": true, "funding": [ { @@ -228,7 +232,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -262,9 +266,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz", - "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -306,40 +310,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -839,29 +809,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -869,9 +820,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -886,9 +837,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -903,9 +854,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -920,9 +871,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -937,9 +888,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -954,9 +905,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -974,9 +925,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -994,9 +945,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1014,9 +965,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1034,9 +985,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1054,9 +1005,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1074,9 +1025,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1090,29 +1041,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1127,9 +1059,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -1568,9 +1500,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1582,9 +1514,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1622,17 +1557,6 @@ } } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -1667,9 +1591,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1677,15 +1601,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1843,16 +2107,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2050,22 +2304,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2074,27 +2312,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2307,34 +2550,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2410,38 +2625,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2861,9 +3077,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -2966,9 +3182,9 @@ } }, "node_modules/postcss": { - "version": "8.5.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.20.tgz", - "integrity": "sha512-lW616l85ucIQL+FocMmL7pQFPqBmwejrCMg+iPxyImlrANNJG9NHq/RkyCZopDhd8C3LA03PHRJDjkbGu8vvug==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -2986,7 +3202,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.16", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3064,9 +3280,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3074,16 +3290,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { @@ -3143,13 +3359,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3159,21 +3375,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -3495,14 +3710,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -3557,17 +3764,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3577,17 +3805,27 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", - "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.17", - "rolldown": "~1.1.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -3604,7 +3842,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -3779,27 +4017,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3819,28 +4058,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.1.tgz", - "integrity": "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/ai-waiting/package.json b/components/ai-waiting/package.json index 24be7eb..b477f40 100644 --- a/components/ai-waiting/package.json +++ b/components/ai-waiting/package.json @@ -48,16 +48,16 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/card/package-lock.json b/components/card/package-lock.json index 8c702ab..202801d 100644 --- a/components/card/package-lock.json +++ b/components/card/package-lock.json @@ -344,40 +344,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -881,29 +847,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -911,9 +858,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -928,9 +875,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -945,9 +892,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -962,9 +909,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -979,9 +926,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -996,9 +943,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -1016,9 +963,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -1036,9 +983,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1056,9 +1003,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1076,9 +1023,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1096,9 +1043,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1116,9 +1063,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1132,29 +1079,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1169,9 +1097,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -1678,17 +1606,6 @@ "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -2506,9 +2423,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -2522,23 +2439,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -2557,9 +2474,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -2578,9 +2495,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -2599,9 +2516,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -2620,9 +2537,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -2641,9 +2558,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -2665,9 +2582,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -2689,9 +2606,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -2713,9 +2630,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -2737,9 +2654,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -2758,9 +2675,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -2927,9 +2844,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -3032,9 +2949,9 @@ } }, "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -3052,7 +2969,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3209,13 +3126,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3225,21 +3142,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -3561,14 +3477,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -3644,16 +3552,16 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -3670,7 +3578,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", diff --git a/components/content/package-lock.json b/components/content/package-lock.json index 1fd961e..67bab9c 100644 --- a/components/content/package-lock.json +++ b/components/content/package-lock.json @@ -14,17 +14,17 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -34,13 +34,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -49,40 +42,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -169,6 +160,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -190,9 +194,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -214,9 +218,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", "dev": true, "funding": [ { @@ -231,7 +235,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -265,9 +269,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz", - "integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -1499,9 +1503,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1513,9 +1517,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1587,9 +1594,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1597,15 +1604,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1763,16 +2110,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1982,22 +2319,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2006,27 +2327,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2239,34 +2565,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2342,38 +2640,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2685,9 +2984,9 @@ } }, "node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2695,9 +2994,9 @@ } }, "node_modules/lucide-react": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.21.0.tgz", - "integrity": "sha512-reEZMXq8Qdd5jg5XYkQ5TR1fB/GiQ7ih4vcrthYDtgjSDwh0i6/YLiGjsWsIwgN49gpAnd4J2elSNzncMEEUUQ==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -3006,9 +3305,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3016,16 +3315,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { @@ -3374,29 +3673,29 @@ } }, "node_modules/tldts": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz", - "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.10.tgz", + "integrity": "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.4.4" + "tldts-core": "^7.4.10" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz", - "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.10.tgz", + "integrity": "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==", "dev": true, "license": "MIT" }, "node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3490,17 +3789,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3510,6 +3830,16 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", @@ -3712,27 +4042,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3752,28 +4083,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/content/package.json b/components/content/package.json index b77d595..2ac3257 100644 --- a/components/content/package.json +++ b/components/content/package.json @@ -49,17 +49,17 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/layout/package-lock.json b/components/layout/package-lock.json index 1932bd4..75ca59f 100644 --- a/components/layout/package-lock.json +++ b/components/layout/package-lock.json @@ -13,18 +13,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -34,13 +34,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -49,40 +42,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -169,6 +160,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -190,9 +194,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -214,9 +218,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", "dev": true, "funding": [ { @@ -231,7 +235,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -265,9 +269,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz", - "integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -1499,9 +1503,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1513,9 +1517,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1554,9 +1561,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "version": "14.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.3.tgz", + "integrity": "sha512-6dBq67jT8lE+JTE8Exm02Kt6ze43hz1jdiSpSJwtTZiT1xQQ6b7nZYTTQ9njdArdU8XklOwaDp/AbT/eYSKF4g==", "dev": true, "license": "MIT", "engines": { @@ -1601,9 +1608,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1611,15 +1618,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1777,16 +2124,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1984,22 +2321,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2008,27 +2329,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2241,34 +2567,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2344,38 +2642,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2687,9 +2986,9 @@ } }, "node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2697,9 +2996,9 @@ } }, "node_modules/lucide-react": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.21.0.tgz", - "integrity": "sha512-reEZMXq8Qdd5jg5XYkQ5TR1fB/GiQ7ih4vcrthYDtgjSDwh0i6/YLiGjsWsIwgN49gpAnd4J2elSNzncMEEUUQ==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -3008,9 +3307,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3018,16 +3317,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { @@ -3376,29 +3675,29 @@ } }, "node_modules/tldts": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz", - "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.10.tgz", + "integrity": "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.4.4" + "tldts-core": "^7.4.10" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz", - "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.10.tgz", + "integrity": "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==", "dev": true, "license": "MIT" }, "node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3492,17 +3791,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3512,6 +3832,16 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", @@ -3714,27 +4044,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3754,28 +4085,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/layout/package.json b/components/layout/package.json index cef2a78..e1a580b 100644 --- a/components/layout/package.json +++ b/components/layout/package.json @@ -49,18 +49,18 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/login/package-lock.json b/components/login/package-lock.json index bd19d0c..5b324e3 100644 --- a/components/login/package-lock.json +++ b/components/login/package-lock.json @@ -13,18 +13,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -34,13 +34,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -49,40 +42,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -169,6 +160,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -309,40 +313,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -842,29 +812,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -872,9 +823,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -889,9 +840,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -906,9 +857,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -923,9 +874,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -940,9 +891,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -957,9 +908,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -977,9 +928,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -997,9 +948,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1017,9 +968,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1037,9 +988,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1057,9 +1008,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1077,9 +1028,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1093,29 +1044,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1130,9 +1062,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -1571,9 +1503,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1585,9 +1517,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1626,9 +1561,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "version": "14.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.3.tgz", + "integrity": "sha512-6dBq67jT8lE+JTE8Exm02Kt6ze43hz1jdiSpSJwtTZiT1xQQ6b7nZYTTQ9njdArdU8XklOwaDp/AbT/eYSKF4g==", "dev": true, "license": "MIT", "engines": { @@ -1639,17 +1574,6 @@ "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -1684,9 +1608,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1694,15 +1618,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1860,16 +2124,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2067,22 +2321,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2091,27 +2329,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2324,34 +2567,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2427,38 +2642,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2780,9 +2996,9 @@ } }, "node_modules/lucide-react": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.26.0.tgz", - "integrity": "sha512-raglYVR2+VkMfJL158krjVmE+rV5ST2lzA/KQm1FRSjMHT4MnWaegHxoVEpmc2So3nOEhp9oGejJwAPX8MoAjg==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -2888,9 +3104,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -2993,9 +3209,9 @@ } }, "node_modules/postcss": { - "version": "8.5.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", - "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -3013,7 +3229,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.16", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3170,13 +3386,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3186,21 +3402,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -3522,14 +3737,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -3584,17 +3791,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3604,17 +3832,27 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", - "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.17", - "rolldown": "~1.1.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -3631,7 +3869,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -3806,27 +4044,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3846,28 +4085,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.1.tgz", - "integrity": "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/login/package.json b/components/login/package.json index a885101..e618d61 100644 --- a/components/login/package.json +++ b/components/login/package.json @@ -49,18 +49,18 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/media/package-lock.json b/components/media/package-lock.json index cf75a8e..ca27e72 100644 --- a/components/media/package-lock.json +++ b/components/media/package-lock.json @@ -13,18 +13,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -34,13 +34,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -49,40 +42,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -169,6 +160,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -309,43 +313,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "2.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-2.0.0-alpha.3.tgz", - "integrity": "sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "2.0.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "2.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-2.0.0-alpha.3.tgz", - "integrity": "sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-2.0.1.tgz", - "integrity": "sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -845,32 +812,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.0.tgz", - "integrity": "sha512-kDoONqMa+VnZ4vvvu/ZUurpJ4gkZU57e7g69qpNgWhYcZFPUHZM2CEMKm+cG6ufDVALbjMvfmMjFVqaK7uEMnA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=23.5.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^2.0.0-alpha.3", - "@emnapi/runtime": "^2.0.0-alpha.3" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -878,9 +823,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -895,9 +840,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -912,9 +857,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -929,9 +874,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -946,9 +891,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -963,9 +908,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -983,9 +928,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -1003,9 +948,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1023,9 +968,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1043,9 +988,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1063,9 +1008,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1083,9 +1028,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1099,63 +1044,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1170,9 +1062,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -1611,9 +1503,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1625,9 +1517,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1666,9 +1561,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "version": "14.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.3.tgz", + "integrity": "sha512-6dBq67jT8lE+JTE8Exm02Kt6ze43hz1jdiSpSJwtTZiT1xQQ6b7nZYTTQ9njdArdU8XklOwaDp/AbT/eYSKF4g==", "dev": true, "license": "MIT", "engines": { @@ -1679,17 +1574,6 @@ "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -1724,9 +1608,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1734,15 +1618,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1900,16 +2124,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2107,22 +2321,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2131,27 +2329,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2364,34 +2567,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2467,38 +2642,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2820,9 +2996,9 @@ } }, "node_modules/lucide-react": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.27.0.tgz", - "integrity": "sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -3210,13 +3386,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3226,21 +3402,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -3562,14 +3737,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -3624,17 +3791,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3644,17 +3832,27 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", - "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.17", - "rolldown": "~1.1.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -3671,7 +3869,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -3846,27 +4044,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3886,28 +4085,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.1.tgz", - "integrity": "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/media/package.json b/components/media/package.json index ef8c382..b8e0417 100644 --- a/components/media/package.json +++ b/components/media/package.json @@ -49,18 +49,18 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/modal/package-lock.json b/components/modal/package-lock.json index ff4ba57..df4fc0b 100644 --- a/components/modal/package-lock.json +++ b/components/modal/package-lock.json @@ -13,17 +13,17 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -33,13 +33,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -48,40 +41,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -168,6 +159,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -189,9 +193,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -213,9 +217,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", "dev": true, "funding": [ { @@ -230,7 +234,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -264,9 +268,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz", - "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -308,40 +312,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -841,29 +811,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -871,9 +822,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -888,9 +839,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -905,9 +856,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -922,9 +873,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -939,9 +890,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -956,9 +907,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -976,9 +927,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -996,9 +947,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1016,9 +967,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1036,9 +987,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1056,9 +1007,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1076,9 +1027,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1092,29 +1043,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1129,9 +1061,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -1570,9 +1502,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1584,9 +1516,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1624,17 +1559,6 @@ } } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -1669,9 +1593,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1679,15 +1603,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1845,16 +2109,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2052,22 +2306,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2076,27 +2314,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2309,34 +2552,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2412,38 +2627,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2452,9 +2668,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -2468,23 +2684,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -2503,9 +2719,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -2524,9 +2740,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -2545,9 +2761,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -2566,9 +2782,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -2587,9 +2803,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -2611,9 +2827,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -2635,9 +2851,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -2659,9 +2875,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -2683,9 +2899,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -2704,9 +2920,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -2765,9 +2981,9 @@ } }, "node_modules/lucide-react": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.24.0.tgz", - "integrity": "sha512-YT6mBD8lGKkg4nM39enlm94/sfJIiW0YKUT60fBy4YK8tai31ylg1VhGNWxkpSKHo9UagfnZqwIff3HTDQwXeA==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -2873,9 +3089,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -2978,9 +3194,9 @@ } }, "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -2998,7 +3214,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3076,9 +3292,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3086,16 +3302,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { @@ -3155,13 +3371,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3171,21 +3387,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -3507,14 +3722,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -3569,17 +3776,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3589,17 +3817,27 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -3616,7 +3854,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -3791,27 +4029,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3831,28 +4070,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.1.tgz", - "integrity": "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/modal/package.json b/components/modal/package.json index 378dad0..dff55a4 100644 --- a/components/modal/package.json +++ b/components/modal/package.json @@ -48,17 +48,17 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/notifications/package-lock.json b/components/notifications/package-lock.json index bdf915e..00b86eb 100644 --- a/components/notifications/package-lock.json +++ b/components/notifications/package-lock.json @@ -13,18 +13,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", + "jsdom": "^30.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -34,13 +34,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -49,40 +42,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -169,6 +160,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -1519,9 +1523,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1533,9 +1537,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1640,6 +1647,346 @@ "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1797,16 +2144,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2004,22 +2341,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2028,27 +2349,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2261,34 +2587,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2364,38 +2662,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -3513,17 +3812,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3533,6 +3853,16 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", @@ -3735,27 +4065,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3775,28 +4106,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz", - "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/notifications/package.json b/components/notifications/package.json index ea4aeb0..b6c4031 100644 --- a/components/notifications/package.json +++ b/components/notifications/package.json @@ -48,18 +48,18 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", + "jsdom": "^30.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/toast/package-lock.json b/components/toast/package-lock.json index a640f75..82d6f02 100644 --- a/components/toast/package-lock.json +++ b/components/toast/package-lock.json @@ -13,17 +13,17 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -33,13 +33,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -48,40 +41,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -168,6 +159,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -189,9 +193,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -213,9 +217,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", "dev": true, "funding": [ { @@ -230,7 +234,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -264,9 +268,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz", - "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -308,40 +312,6 @@ "node": ">=20.19.0" } }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", @@ -841,29 +811,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "dev": true, "license": "MIT", "funding": { @@ -871,9 +822,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -888,9 +839,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -905,9 +856,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -922,9 +873,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -939,9 +890,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -956,9 +907,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -976,9 +927,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -996,9 +947,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -1016,9 +967,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -1036,9 +987,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -1056,9 +1007,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -1076,9 +1027,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -1092,29 +1043,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -1129,9 +1061,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -1570,9 +1502,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1584,9 +1516,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1624,17 +1559,6 @@ } } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -1669,9 +1593,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1679,15 +1603,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -1845,16 +2109,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2052,22 +2306,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2076,27 +2314,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2309,34 +2552,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2412,38 +2627,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -2452,9 +2668,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -2468,23 +2684,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -2503,9 +2719,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -2524,9 +2740,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -2545,9 +2761,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -2566,9 +2782,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -2587,9 +2803,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -2611,9 +2827,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -2635,9 +2851,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -2659,9 +2875,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -2683,9 +2899,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -2704,9 +2920,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -2765,9 +2981,9 @@ } }, "node_modules/lucide-react": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.24.0.tgz", - "integrity": "sha512-YT6mBD8lGKkg4nM39enlm94/sfJIiW0YKUT60fBy4YK8tai31ylg1VhGNWxkpSKHo9UagfnZqwIff3HTDQwXeA==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -2873,9 +3089,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -2978,9 +3194,9 @@ } }, "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -2998,7 +3214,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3076,9 +3292,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3086,16 +3302,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { @@ -3155,13 +3371,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.139.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -3171,21 +3387,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/rollup": { @@ -3507,14 +3722,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -3569,17 +3776,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3589,17 +3817,27 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -3616,7 +3854,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -3791,27 +4029,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -3831,28 +4070,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.1.tgz", - "integrity": "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/toast/package.json b/components/toast/package.json index 8ecc908..4986fc6 100644 --- a/components/toast/package.json +++ b/components/toast/package.json @@ -48,17 +48,17 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/ui/package-lock.json b/components/ui/package-lock.json index 72df46c..fe19fe5 100644 --- a/components/ui/package-lock.json +++ b/components/ui/package-lock.json @@ -15,18 +15,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -36,13 +36,6 @@ "tailwindcss": "^4.0.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", - "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", @@ -51,40 +44,38 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", - "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.0.0", - "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.5" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", - "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", + "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -171,6 +162,19 @@ "node": ">=18" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", @@ -192,9 +196,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -216,9 +220,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", "dev": true, "funding": [ { @@ -233,7 +237,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -267,9 +271,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz", - "integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -1931,9 +1935,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.0.tgz", + "integrity": "sha512-HKAH9C6mBo5yBG6yRO5i43L2iisencAo5z+o5P/saHUoY+miC5ivXRxHBJcFyB5ypPNxHJdK3BoF/3O4DIptMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1945,9 +1949,12 @@ "redent": "^3.0.0" }, "engines": { - "node": ">=14", + "node": ">=22", "npm": ">=6", "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11" } }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { @@ -1986,9 +1993,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "version": "14.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.3.tgz", + "integrity": "sha512-6dBq67jT8lE+JTE8Exm02Kt6ze43hz1jdiSpSJwtTZiT1xQQ6b7nZYTTQ9njdArdU8XklOwaDp/AbT/eYSKF4g==", "dev": true, "license": "MIT", "engines": { @@ -2033,9 +2040,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "devOptional": true, "license": "MIT", "dependencies": { @@ -2043,15 +2050,355 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -2209,16 +2556,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2428,22 +2765,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2452,27 +2773,32 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", - "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^15.1.0" + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debug": { @@ -2685,34 +3011,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -2788,38 +3086,39 @@ "peer": true }, "node_modules/jsdom": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", - "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", "dev": true, "license": "MIT", "dependencies": { - "@acemir/cssom": "^0.9.28", - "@asamuzakjp/dom-selector": "^6.7.6", - "@exodus/bytes": "^1.6.0", - "cssstyle": "^5.3.4", - "data-urls": "^6.0.0", + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "canvas": "^3.0.0" + "canvas": "^3.2.3" }, "peerDependenciesMeta": { "canvas": { @@ -3131,9 +3430,9 @@ } }, "node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -3141,9 +3440,9 @@ } }, "node_modules/lucide-react": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.21.0.tgz", - "integrity": "sha512-reEZMXq8Qdd5jg5XYkQ5TR1fB/GiQ7ih4vcrthYDtgjSDwh0i6/YLiGjsWsIwgN49gpAnd4J2elSNzncMEEUUQ==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", "dev": true, "license": "ISC", "peerDependencies": { @@ -3452,24 +3751,24 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { @@ -3817,29 +4116,29 @@ } }, "node_modules/tldts": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz", - "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.10.tgz", + "integrity": "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.4.4" + "tldts-core": "^7.4.10" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz", - "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.10.tgz", + "integrity": "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==", "dev": true, "license": "MIT" }, "node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3933,17 +4232,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { @@ -3953,6 +4273,16 @@ "dev": true, "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/vite": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", @@ -4155,27 +4485,28 @@ } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", "dev": true, "license": "MIT", "dependencies": { + "@exodus/bytes": "^1.15.1", "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/why-is-node-running": { @@ -4195,28 +4526,6 @@ "node": ">=8" } }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", diff --git a/components/ui/package.json b/components/ui/package.json index 350746a..ae55285 100644 --- a/components/ui/package.json +++ b/components/ui/package.json @@ -54,18 +54,18 @@ "tailwindcss": "^4.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { From 5d48d646901348d71d773d865588013ffce36498 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 11:37:30 -0600 Subject: [PATCH 10/18] ci(deps): bump actions/checkout from 4 to 7 (#11) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- .github/workflows/pr-labeler.yml | 2 +- .github/workflows/scorecard.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4611a20..114a119 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: - name: Install git and curl run: apt-get update && apt-get install -y --no-install-recommends git ca-certificates curl && rm -rf /var/lib/apt/lists/* - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install package dependencies run: | diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index ad662fa..a906df6 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -18,7 +18,7 @@ jobs: runs-on: [self-hosted, linux, x64] steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Label PR uses: actions/labeler@v7 diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 2a4649a..e4f0029 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -22,7 +22,7 @@ jobs: actions: read steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 From 4d9039e393ed36c29f994a58e15015661e2d45b5 Mon Sep 17 00:00:00 2001 From: Viet Vu Date: Thu, 13 Aug 2026 12:45:51 -0600 Subject: [PATCH 11/18] build: upgrade to TypeScript 7 - All packages + demo devDeps: typescript ^5.9.3 -> ^7.0.2 - .d.ts generation: tsup dts plugin (incompatible with TS7 compiler API) -> tsc --emitDeclarationOnly - apps/demo tsconfig: remove deprecated baseUrl, paths relative to tsconfig - CI: node:20 -> node:22 (jsdom 30 / undici 8 require >=20.18) - Rebuild all dist/ with new pipeline --- .github/workflows/ci.yml | 2 +- CHANGELOG.md | 4 + apps/demo/package-lock.json | 525 +++++++++++++++--- apps/demo/package.json | 2 +- apps/demo/tsconfig.app.json | 3 +- .../dist/ActionButtons.test.d.ts | 1 + .../dist/components/ActionBar.d.ts | 2 + .../dist/components/ActionIcon.d.ts | 5 + .../dist/components/ActionMenu.d.ts | 10 + .../dist/components/Actions.d.ts | 2 + .../dist/components/Button.d.ts | 9 + .../dist/components/SplitButton.d.ts | 2 + .../dist/components/ui/dropdown-menu.d.ts | 14 + components/action-buttons/dist/index.d.ts | 198 +------ components/action-buttons/dist/intent.d.ts | 50 ++ components/action-buttons/dist/lib/cn.d.ts | 2 + components/action-buttons/dist/types.d.ts | 119 ++++ components/action-buttons/package-lock.json | 393 ++++++++++++- components/action-buttons/package.json | 6 +- components/action-buttons/tsup.config.ts | 2 +- .../ai-waiting/dist/components/AiWaiting.d.ts | 10 + .../dist/components/AiWaiting.test.d.ts | 1 + .../dist/components/BaseWaiting.d.ts | 8 + .../dist/components/BaseWaiting.test.d.ts | 1 + .../dist/hooks/useEstimatedProgress.d.ts | 6 + components/ai-waiting/dist/index.d.ts | 78 +-- components/ai-waiting/dist/lib/cn.d.ts | 2 + components/ai-waiting/dist/types.d.ts | 46 ++ components/ai-waiting/package.json | 4 +- components/ai-waiting/tsup.config.ts | 2 +- components/card/dist/Card.test.d.ts | 1 + components/card/dist/components/BaseCard.d.ts | 2 + components/card/dist/components/StatCard.d.ts | 2 + components/card/dist/index.d.ts | 53 +- components/card/dist/lib/cn.d.ts | 2 + components/card/dist/types.d.ts | 42 ++ components/card/package-lock.json | 393 ++++++++++++- components/card/package.json | 6 +- components/card/tsup.config.ts | 2 +- .../config/dist/components/ConfigPanel.d.ts | 2 + .../dist/components/ConfigRecordForm.d.ts | 2 + .../dist/components/ConfigTreeBrowser.d.ts | 2 + .../config/dist/components/ui/Badge.d.ts | 6 + .../config/dist/components/ui/Button.d.ts | 8 + .../config/dist/components/ui/Dialog.d.ts | 7 + .../config/dist/components/ui/EmptyState.d.ts | 6 + .../config/dist/components/ui/Input.d.ts | 2 + components/config/dist/config-utils.test.d.ts | 1 + components/config/dist/index.d.ts | 181 +----- components/config/dist/lib/cn.d.ts | 2 + components/config/dist/lib/config-utils.d.ts | 18 + components/config/dist/types.d.ts | 151 +++++ components/config/package-lock.json | 393 ++++++++++++- components/config/package.json | 6 +- components/config/tsup.config.ts | 2 +- components/content/dist/PageShell.test.d.ts | 1 + .../content/dist/components/PageShell.d.ts | 19 + components/content/dist/index.d.ts | 88 +-- components/content/dist/lib/cn.d.ts | 2 + components/content/dist/types.d.ts | 63 +++ components/content/package.json | 4 +- components/content/tsup.config.ts | 2 +- components/layout/dist/AppShell.test.d.ts | 1 + .../layout/dist/components/AppShell.d.ts | 44 ++ .../layout/dist/components/FooterBar.d.ts | 6 + .../layout/dist/components/HeaderBar.d.ts | 2 + .../layout/dist/components/NavMenu.d.ts | 33 ++ .../layout/dist/components/SearchForm.d.ts | 9 + .../layout/dist/components/ShellBar.d.ts | 17 + .../layout/dist/components/SidebarNav.d.ts | 13 + components/layout/dist/context.d.ts | 3 + components/layout/dist/index.d.ts | 213 +------ components/layout/dist/lib/cn.d.ts | 2 + components/layout/dist/types.d.ts | 150 +++++ components/layout/package.json | 4 +- components/layout/tsup.config.ts | 2 +- components/login/dist/Login.test.d.ts | 1 + .../login/dist/components/LoginForm.d.ts | 2 + .../login/dist/components/LoginPage.d.ts | 2 + .../login/dist/components/LoginShell.d.ts | 6 + components/login/dist/index.d.ts | 177 +----- components/login/dist/lib/cn.d.ts | 2 + components/login/dist/types.d.ts | 159 ++++++ components/login/package.json | 4 +- components/login/tsup.config.ts | 2 +- components/media/dist/Media.test.d.ts | 1 + .../media/dist/components/MediaGrid.d.ts | 2 + .../media/dist/components/MediaItem.d.ts | 2 + .../media/dist/components/MediaLightbox.d.ts | 2 + .../dist/components/media-grid-context.d.ts | 11 + components/media/dist/index.d.ts | 86 +-- components/media/dist/lib/cn.d.ts | 2 + components/media/dist/lib/columns.d.ts | 6 + components/media/dist/types.d.ts | 72 +++ components/media/package.json | 4 +- components/media/tsup.config.ts | 2 +- components/modal/dist/Modal.test.d.ts | 1 + components/modal/dist/components/Modal.d.ts | 12 + .../modal/dist/components/ModalBody.d.ts | 2 + .../modal/dist/components/ModalFooter.d.ts | 2 + .../modal/dist/components/ModalHeader.d.ts | 2 + .../modal/dist/components/modal-context.d.ts | 7 + components/modal/dist/index.d.ts | 57 +- components/modal/dist/lib/cn.d.ts | 2 + components/modal/dist/types.d.ts | 34 ++ components/modal/package.json | 4 +- components/modal/tsup.config.ts | 2 +- .../dist/components/NotificationBell.d.ts | 2 + .../dist/components/NotificationDropdown.d.ts | 2 + components/notifications/dist/index.d.ts | 44 +- components/notifications/dist/lib/cn.d.ts | 2 + .../dist/notifications.test.d.ts | 1 + components/notifications/dist/types.d.ts | 33 ++ components/notifications/package.json | 2 +- components/notifications/tsup.config.ts | 2 +- components/table/dist/DataTable.test.d.ts | 1 + .../table/dist/components/ActionBar.d.ts | 5 + .../table/dist/components/DataTable.d.ts | 2 + .../dist/components/TableActionButton.d.ts | 10 + .../components/TableActionButton.test.d.ts | 1 + .../table/dist/components/ui/button.d.ts | 16 + .../table/dist/components/ui/checkbox.d.ts | 4 + .../dist/components/ui/dropdown-menu.d.ts | 14 + .../table/dist/components/ui/table.d.ts | 7 + components/table/dist/index.d.ts | 160 +----- components/table/dist/lib/cn.d.ts | 2 + components/table/dist/types.d.ts | 97 ++++ components/table/package-lock.json | 393 ++++++++++++- components/table/package.json | 6 +- components/table/tsup.config.ts | 2 +- components/toast/dist/components/Toaster.d.ts | 2 + components/toast/dist/index.d.ts | 86 +-- components/toast/dist/lib/cn.d.ts | 2 + components/toast/dist/store.d.ts | 24 + components/toast/dist/toast.test.d.ts | 1 + components/toast/dist/types.d.ts | 57 ++ components/toast/package.json | 4 +- components/toast/tsup.config.ts | 2 +- components/ui/dist/components/Badge.d.ts | 2 + components/ui/dist/components/BusyRegion.d.ts | 7 + components/ui/dist/components/EmptyState.d.ts | 2 + .../ui/dist/components/FilterChipGroup.d.ts | 2 + components/ui/dist/components/Input.d.ts | 6 + .../ui/dist/components/LoadingIndicator.d.ts | 8 + components/ui/dist/components/Pagination.d.ts | 2 + .../ui/dist/components/ProgressBar.d.ts | 2 + components/ui/dist/components/RadioGroup.d.ts | 2 + .../dist/components/RemovableFilterChips.d.ts | 2 + .../ui/dist/components/ResultsMeta.d.ts | 2 + .../ui/dist/components/SearchField.d.ts | 6 + .../ui/dist/components/SegmentedControl.d.ts | 2 + components/ui/dist/components/SelectList.d.ts | 2 + .../ui/dist/components/SelectList.test.d.ts | 1 + components/ui/dist/components/Shimmer.d.ts | 2 + components/ui/dist/components/Skeleton.d.ts | 2 + .../ui/dist/components/StatusBadge.d.ts | 2 + .../ui/dist/components/StatusIndicator.d.ts | 4 + .../ui/dist/components/StatusToggle.d.ts | 2 + .../ui/dist/components/StatusToggle.test.d.ts | 1 + components/ui/dist/components/Switch.d.ts | 2 + components/ui/dist/components/TabNav.d.ts | 2 + components/ui/dist/components/Tabs.d.ts | 11 + components/ui/dist/components/Tooltip.d.ts | 3 + .../ui/dist/components/Tooltip.test.d.ts | 1 + .../dist/components/ui-primitives.test.d.ts | 1 + components/ui/dist/index.d.ts | 374 +------------ components/ui/dist/lib/cn.d.ts | 2 + components/ui/dist/lib/selectListSearch.d.ts | 10 + components/ui/dist/lib/tones.d.ts | 9 + components/ui/dist/types.d.ts | 261 +++++++++ components/ui/package.json | 4 +- components/ui/tsup.config.ts | 2 +- docs/00-architecture/03-tech-stack.md | 2 +- docs/04-development/04-building-packages.md | 2 +- 174 files changed, 3969 insertions(+), 1913 deletions(-) create mode 100644 components/action-buttons/dist/ActionButtons.test.d.ts create mode 100644 components/action-buttons/dist/components/ActionBar.d.ts create mode 100644 components/action-buttons/dist/components/ActionIcon.d.ts create mode 100644 components/action-buttons/dist/components/ActionMenu.d.ts create mode 100644 components/action-buttons/dist/components/Actions.d.ts create mode 100644 components/action-buttons/dist/components/Button.d.ts create mode 100644 components/action-buttons/dist/components/SplitButton.d.ts create mode 100644 components/action-buttons/dist/components/ui/dropdown-menu.d.ts create mode 100644 components/action-buttons/dist/intent.d.ts create mode 100644 components/action-buttons/dist/lib/cn.d.ts create mode 100644 components/action-buttons/dist/types.d.ts create mode 100644 components/ai-waiting/dist/components/AiWaiting.d.ts create mode 100644 components/ai-waiting/dist/components/AiWaiting.test.d.ts create mode 100644 components/ai-waiting/dist/components/BaseWaiting.d.ts create mode 100644 components/ai-waiting/dist/components/BaseWaiting.test.d.ts create mode 100644 components/ai-waiting/dist/hooks/useEstimatedProgress.d.ts create mode 100644 components/ai-waiting/dist/lib/cn.d.ts create mode 100644 components/ai-waiting/dist/types.d.ts create mode 100644 components/card/dist/Card.test.d.ts create mode 100644 components/card/dist/components/BaseCard.d.ts create mode 100644 components/card/dist/components/StatCard.d.ts create mode 100644 components/card/dist/lib/cn.d.ts create mode 100644 components/card/dist/types.d.ts create mode 100644 components/config/dist/components/ConfigPanel.d.ts create mode 100644 components/config/dist/components/ConfigRecordForm.d.ts create mode 100644 components/config/dist/components/ConfigTreeBrowser.d.ts create mode 100644 components/config/dist/components/ui/Badge.d.ts create mode 100644 components/config/dist/components/ui/Button.d.ts create mode 100644 components/config/dist/components/ui/Dialog.d.ts create mode 100644 components/config/dist/components/ui/EmptyState.d.ts create mode 100644 components/config/dist/components/ui/Input.d.ts create mode 100644 components/config/dist/config-utils.test.d.ts create mode 100644 components/config/dist/lib/cn.d.ts create mode 100644 components/config/dist/lib/config-utils.d.ts create mode 100644 components/config/dist/types.d.ts create mode 100644 components/content/dist/PageShell.test.d.ts create mode 100644 components/content/dist/components/PageShell.d.ts create mode 100644 components/content/dist/lib/cn.d.ts create mode 100644 components/content/dist/types.d.ts create mode 100644 components/layout/dist/AppShell.test.d.ts create mode 100644 components/layout/dist/components/AppShell.d.ts create mode 100644 components/layout/dist/components/FooterBar.d.ts create mode 100644 components/layout/dist/components/HeaderBar.d.ts create mode 100644 components/layout/dist/components/NavMenu.d.ts create mode 100644 components/layout/dist/components/SearchForm.d.ts create mode 100644 components/layout/dist/components/ShellBar.d.ts create mode 100644 components/layout/dist/components/SidebarNav.d.ts create mode 100644 components/layout/dist/context.d.ts create mode 100644 components/layout/dist/lib/cn.d.ts create mode 100644 components/layout/dist/types.d.ts create mode 100644 components/login/dist/Login.test.d.ts create mode 100644 components/login/dist/components/LoginForm.d.ts create mode 100644 components/login/dist/components/LoginPage.d.ts create mode 100644 components/login/dist/components/LoginShell.d.ts create mode 100644 components/login/dist/lib/cn.d.ts create mode 100644 components/login/dist/types.d.ts create mode 100644 components/media/dist/Media.test.d.ts create mode 100644 components/media/dist/components/MediaGrid.d.ts create mode 100644 components/media/dist/components/MediaItem.d.ts create mode 100644 components/media/dist/components/MediaLightbox.d.ts create mode 100644 components/media/dist/components/media-grid-context.d.ts create mode 100644 components/media/dist/lib/cn.d.ts create mode 100644 components/media/dist/lib/columns.d.ts create mode 100644 components/media/dist/types.d.ts create mode 100644 components/modal/dist/Modal.test.d.ts create mode 100644 components/modal/dist/components/Modal.d.ts create mode 100644 components/modal/dist/components/ModalBody.d.ts create mode 100644 components/modal/dist/components/ModalFooter.d.ts create mode 100644 components/modal/dist/components/ModalHeader.d.ts create mode 100644 components/modal/dist/components/modal-context.d.ts create mode 100644 components/modal/dist/lib/cn.d.ts create mode 100644 components/modal/dist/types.d.ts create mode 100644 components/notifications/dist/components/NotificationBell.d.ts create mode 100644 components/notifications/dist/components/NotificationDropdown.d.ts create mode 100644 components/notifications/dist/lib/cn.d.ts create mode 100644 components/notifications/dist/notifications.test.d.ts create mode 100644 components/notifications/dist/types.d.ts create mode 100644 components/table/dist/DataTable.test.d.ts create mode 100644 components/table/dist/components/ActionBar.d.ts create mode 100644 components/table/dist/components/DataTable.d.ts create mode 100644 components/table/dist/components/TableActionButton.d.ts create mode 100644 components/table/dist/components/TableActionButton.test.d.ts create mode 100644 components/table/dist/components/ui/button.d.ts create mode 100644 components/table/dist/components/ui/checkbox.d.ts create mode 100644 components/table/dist/components/ui/dropdown-menu.d.ts create mode 100644 components/table/dist/components/ui/table.d.ts create mode 100644 components/table/dist/lib/cn.d.ts create mode 100644 components/table/dist/types.d.ts create mode 100644 components/toast/dist/components/Toaster.d.ts create mode 100644 components/toast/dist/lib/cn.d.ts create mode 100644 components/toast/dist/store.d.ts create mode 100644 components/toast/dist/toast.test.d.ts create mode 100644 components/toast/dist/types.d.ts create mode 100644 components/ui/dist/components/Badge.d.ts create mode 100644 components/ui/dist/components/BusyRegion.d.ts create mode 100644 components/ui/dist/components/EmptyState.d.ts create mode 100644 components/ui/dist/components/FilterChipGroup.d.ts create mode 100644 components/ui/dist/components/Input.d.ts create mode 100644 components/ui/dist/components/LoadingIndicator.d.ts create mode 100644 components/ui/dist/components/Pagination.d.ts create mode 100644 components/ui/dist/components/ProgressBar.d.ts create mode 100644 components/ui/dist/components/RadioGroup.d.ts create mode 100644 components/ui/dist/components/RemovableFilterChips.d.ts create mode 100644 components/ui/dist/components/ResultsMeta.d.ts create mode 100644 components/ui/dist/components/SearchField.d.ts create mode 100644 components/ui/dist/components/SegmentedControl.d.ts create mode 100644 components/ui/dist/components/SelectList.d.ts create mode 100644 components/ui/dist/components/SelectList.test.d.ts create mode 100644 components/ui/dist/components/Shimmer.d.ts create mode 100644 components/ui/dist/components/Skeleton.d.ts create mode 100644 components/ui/dist/components/StatusBadge.d.ts create mode 100644 components/ui/dist/components/StatusIndicator.d.ts create mode 100644 components/ui/dist/components/StatusToggle.d.ts create mode 100644 components/ui/dist/components/StatusToggle.test.d.ts create mode 100644 components/ui/dist/components/Switch.d.ts create mode 100644 components/ui/dist/components/TabNav.d.ts create mode 100644 components/ui/dist/components/Tabs.d.ts create mode 100644 components/ui/dist/components/Tooltip.d.ts create mode 100644 components/ui/dist/components/Tooltip.test.d.ts create mode 100644 components/ui/dist/components/ui-primitives.test.d.ts create mode 100644 components/ui/dist/lib/cn.d.ts create mode 100644 components/ui/dist/lib/selectListSearch.d.ts create mode 100644 components/ui/dist/lib/tones.d.ts create mode 100644 components/ui/dist/types.d.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 114a119..dd6b9ed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: name: Lint · typecheck · test · build runs-on: [self-hosted, linux, x64] container: - image: node:20 + image: node:22 timeout-minutes: 30 defaults: run: diff --git a/CHANGELOG.md b/CHANGELOG.md index 512bf15..b1f9da8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- **TypeScript 7.0** — all packages and the demo build with TypeScript 7. `.d.ts` generation moves from tsup's bundled dts plugin to `tsc --emitDeclarationOnly` (TS7 drops the compiler API the plugin depended on); demo `tsconfig` drops deprecated `baseUrl`; CI container moves to `node:22` (required by jsdom 30 / undici 8). Published API and consumer TypeScript compatibility are unchanged. + ## [2.6.0] - 2026-08-12 ### Added diff --git a/apps/demo/package-lock.json b/apps/demo/package-lock.json index ae3ac1a..0c49c66 100644 --- a/apps/demo/package-lock.json +++ b/apps/demo/package-lock.json @@ -35,7 +35,7 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.5", "tailwindcss": "^4.3.1", - "typescript": "~5.9.3", + "typescript": "^7.0.2", "vite": "^8.2.0" } }, @@ -44,8 +44,8 @@ "version": "2.6.0", "license": "MIT", "dependencies": { - "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-dropdown-menu": "^2.1.24", + "@radix-ui/react-slot": "^1.3.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "tailwind-merge": "^3.6.0" @@ -63,7 +63,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -83,16 +83,16 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -122,7 +122,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -154,7 +154,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -175,17 +175,17 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -204,18 +204,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -234,18 +234,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -264,18 +264,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -294,17 +294,17 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -323,18 +323,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", + "jsdom": "^30.0.1", "lucide-react": "^1.21.0", "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -349,9 +349,9 @@ "version": "2.6.0", "license": "MIT", "dependencies": { - "@radix-ui/react-checkbox": "^1.3.3", - "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-checkbox": "^1.3.11", + "@radix-ui/react-dropdown-menu": "^2.1.24", + "@radix-ui/react-slot": "^1.3.3", "@tanstack/react-table": "^8.21.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -370,7 +370,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -390,17 +390,17 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -421,18 +421,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -1197,6 +1197,346 @@ "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitejs/plugin-react": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz", @@ -1849,17 +2189,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/undici-types": { diff --git a/apps/demo/package.json b/apps/demo/package.json index 3144d5b..d932a4d 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -41,7 +41,7 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.5", "tailwindcss": "^4.3.1", - "typescript": "~5.9.3", + "typescript": "^7.0.2", "vite": "^8.2.0" } } diff --git a/apps/demo/tsconfig.app.json b/apps/demo/tsconfig.app.json index 4e5ed1c..1f41023 100644 --- a/apps/demo/tsconfig.app.json +++ b/apps/demo/tsconfig.app.json @@ -7,9 +7,8 @@ "types": ["vite/client"], "skipLibCheck": true, "strict": true, - "baseUrl": ".", "paths": { - "@/*": ["src/*"] + "@/*": ["./src/*"] }, "moduleResolution": "bundler", "allowImportingTsExtensions": true, diff --git a/components/action-buttons/dist/ActionButtons.test.d.ts b/components/action-buttons/dist/ActionButtons.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/action-buttons/dist/ActionButtons.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/action-buttons/dist/components/ActionBar.d.ts b/components/action-buttons/dist/components/ActionBar.d.ts new file mode 100644 index 0000000..ebf14d5 --- /dev/null +++ b/components/action-buttons/dist/components/ActionBar.d.ts @@ -0,0 +1,2 @@ +import type { ActionBarProps } from "../types"; +export declare function ActionBar({ children, layout, className }: ActionBarProps): import("react").JSX.Element; diff --git a/components/action-buttons/dist/components/ActionIcon.d.ts b/components/action-buttons/dist/components/ActionIcon.d.ts new file mode 100644 index 0000000..9491431 --- /dev/null +++ b/components/action-buttons/dist/components/ActionIcon.d.ts @@ -0,0 +1,5 @@ +import type { ReactNode } from "react"; +export declare function ActionIcon({ icon, className }: { + icon: ReactNode | null; + className?: string; +}): import("react").JSX.Element; diff --git a/components/action-buttons/dist/components/ActionMenu.d.ts b/components/action-buttons/dist/components/ActionMenu.d.ts new file mode 100644 index 0000000..91d6f5b --- /dev/null +++ b/components/action-buttons/dist/components/ActionMenu.d.ts @@ -0,0 +1,10 @@ +import type { ReactNode } from "react"; +import type { ActionItem, ActionMenuProps } from "../types"; +export type MenuItemsProps = { + items: ActionItem[]; + menuLabel?: string; + menuFooter?: ReactNode; +}; +declare function MenuItems({ items, menuLabel, menuFooter }: MenuItemsProps): import("react").JSX.Element; +export declare function ActionMenu({ label, items, icon, disabled, intent, variant, size, className, menuLabel, menuFooter, tooltip, }: ActionMenuProps): import("react").JSX.Element; +export { MenuItems }; diff --git a/components/action-buttons/dist/components/Actions.d.ts b/components/action-buttons/dist/components/Actions.d.ts new file mode 100644 index 0000000..f9b3796 --- /dev/null +++ b/components/action-buttons/dist/components/Actions.d.ts @@ -0,0 +1,2 @@ +import type { ActionsProps } from "../types"; +export declare function Actions({ items, layout, className }: ActionsProps): import("react").JSX.Element | null; diff --git a/components/action-buttons/dist/components/Button.d.ts b/components/action-buttons/dist/components/Button.d.ts new file mode 100644 index 0000000..e04c315 --- /dev/null +++ b/components/action-buttons/dist/components/Button.d.ts @@ -0,0 +1,9 @@ +export declare const Button: import("react").ForwardRefExoticComponent & { + intent?: import("..").ActionIntent; + variant?: import("..").ButtonVariant; + size?: import("..").ButtonSize; + icon?: import("react").ReactNode; + tooltip?: import("react").ReactNode; + asChild?: boolean; + className?: string; +} & import("react").RefAttributes>; diff --git a/components/action-buttons/dist/components/SplitButton.d.ts b/components/action-buttons/dist/components/SplitButton.d.ts new file mode 100644 index 0000000..386b70c --- /dev/null +++ b/components/action-buttons/dist/components/SplitButton.d.ts @@ -0,0 +1,2 @@ +import type { SplitButtonProps } from "../types"; +export declare function SplitButton({ label, onClick, items, icon, disabled, intent, variant, size, className, menuLabel, menuFooter, }: SplitButtonProps): import("react").JSX.Element; diff --git a/components/action-buttons/dist/components/ui/dropdown-menu.d.ts b/components/action-buttons/dist/components/ui/dropdown-menu.d.ts new file mode 100644 index 0000000..ee0f8c3 --- /dev/null +++ b/components/action-buttons/dist/components/ui/dropdown-menu.d.ts @@ -0,0 +1,14 @@ +import * as React from "react"; +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; +export declare const DropdownMenu: React.FC; +export declare const DropdownMenuTrigger: React.ForwardRefExoticComponent>; +export declare const DropdownMenuGroup: React.ForwardRefExoticComponent>; +export declare const DropdownMenuPortal: React.FC; +export declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; +export declare function DropdownMenuLabel({ className, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; +export declare function DropdownMenuSeparator({ className, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; +export declare function DropdownMenuFooter({ className, ...props }: React.ComponentPropsWithoutRef<"div">): React.JSX.Element; +export declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentPropsWithoutRef & { + inset?: boolean; + variant?: "default" | "destructive"; +}): React.JSX.Element; diff --git a/components/action-buttons/dist/index.d.ts b/components/action-buttons/dist/index.d.ts index 514a707..efad25f 100644 --- a/components/action-buttons/dist/index.d.ts +++ b/components/action-buttons/dist/index.d.ts @@ -1,190 +1,8 @@ -import * as react from 'react'; -import { ReactNode, ButtonHTMLAttributes } from 'react'; - -/** Semantic action hint — see `ACTION_COLOR_GUIDE` (guidance only). */ -type ActionIntent = "create" | "save" | "edit" | "export" | "cancel" | "more" | "view" | "apply" | "publish" | "delete" | "remove"; -type ActionItemVariant = "default" | "danger" | "destructive"; -/** Menu entry — either a clickable row or a horizontal separator. */ -type ActionItem = { - type?: "item"; - label: string; - icon?: ReactNode; - onClick: () => void; - disabled?: boolean; - /** Suggested action kind (color guide). Overridden by `variant` when set. */ - intent?: ActionIntent; - variant?: ActionItemVariant; -} | { - type: "separator"; -}; -/** - * Bootstrap-inspired solid colors (JOO-tuned) plus outline/ghost utilities. - * Gallery order: primary → secondary → success → danger → warning → info → light → dark → outline → ghost - */ -type ButtonVariant = "primary" | "secondary" | "success" | "danger" | "warning" | "info" | "light" | "dark" | "outline" | "ghost" -/** @deprecated Prefer `danger` */ - | "destructive"; -type ButtonSize = "sm" | "md" | "icon"; -type ActionBarLayout = "separate" | "group"; -type ActionBarProps = { - children: ReactNode; - layout?: ActionBarLayout; - className?: string; -}; -type ButtonProps = ButtonHTMLAttributes & { - /** - * Optional action hint for developers / docs. When `variant` is omitted, - * color defaults from `ACTION_COLOR_GUIDE`. Explicit `variant` always wins. - */ - intent?: ActionIntent; - /** Explicit color. Always wins over `intent` when provided. */ - variant?: ButtonVariant; - size?: ButtonSize; - /** Leading icon (Lucide or custom). Shown beside label; alone when `size="icon"`. */ - icon?: ReactNode; - /** - * Accessible hover/focus tip via `@jooservices/react-ui` `Tooltip`. - * Prefer this over native `title` (especially for `size="icon"`). - */ - tooltip?: ReactNode; - asChild?: boolean; - className?: string; -}; -type ActionMenuProps = { - /** Accessible name / trigger label (not shown as an in-menu heading unless `menuLabel` is set). */ - label: string; - items: ActionItem[]; - icon?: ReactNode; - disabled?: boolean; - intent?: ActionIntent; - variant?: ButtonVariant; - size?: ButtonSize; - className?: string; - /** Optional heading inside the dropdown (above a separator). Omit for items-only menus. */ - menuLabel?: string; - /** Optional footer slot below items (preceded by a separator when set). */ - menuFooter?: ReactNode; - /** - * Hover/focus tip on the trigger via `Button` / react-ui Tooltip. - * Defaults to `label` when `size="icon"`. - */ - tooltip?: ReactNode; -}; -type SplitButtonProps = { - label: string; - onClick: () => void; - items: ActionItem[]; - icon?: ReactNode; - disabled?: boolean; - intent?: ActionIntent; - variant?: ButtonVariant; - size?: Exclude; - className?: string; - menuLabel?: string; - /** Optional footer below overflow items (preceded by a separator when set). */ - menuFooter?: ReactNode; -}; -type ActionDescriptorBase = { - label: string; - icon?: ReactNode; - disabled?: boolean; - intent?: ActionIntent; - variant?: ButtonVariant; - /** Hover/focus tip; icon-only singles default to `label` when omitted. */ - tooltip?: ReactNode; -}; -type ActionDescriptor = (ActionDescriptorBase & { - type: "single"; - onClick: () => void; - size?: ButtonSize; -}) | (ActionDescriptorBase & { - type: "menu"; - items: ActionItem[]; - size?: ButtonSize; - menuLabel?: string; - menuFooter?: ReactNode; -}) | (ActionDescriptorBase & { - type: "split"; - onClick: () => void; - items: ActionItem[]; - size?: Exclude; - menuLabel?: string; - menuFooter?: ReactNode; -}); -type ActionsProps = { - items: ActionDescriptor[]; - layout?: ActionBarLayout; - className?: string; -}; -/** All variants shown in demos / docs (Bootstrap-like + outline/ghost). */ -declare const BUTTON_VARIANTS: ButtonVariant[]; - -declare function ActionBar({ children, layout, className }: ActionBarProps): react.JSX.Element; - -declare function Actions({ items, layout, className }: ActionsProps): react.JSX.Element | null; - -declare function ActionMenu({ label, items, icon, disabled, intent, variant, size, className, menuLabel, menuFooter, tooltip, }: ActionMenuProps): react.JSX.Element; - -declare const Button: react.ForwardRefExoticComponent & { - intent?: ActionIntent; - variant?: ButtonVariant; - size?: ButtonSize; - icon?: react.ReactNode; - tooltip?: react.ReactNode; - asChild?: boolean; - className?: string; -} & react.RefAttributes>; - -declare function SplitButton({ label, onClick, items, icon, disabled, intent, variant, size, className, menuLabel, menuFooter, }: SplitButtonProps): react.JSX.Element; - -/** - * Developer guide — recommended action → color. - * Not enforced: pass `variant` explicitly to override. - * - * | Intent | Suggested color | Typical use | - * |------------------------|-----------------|--------------------------------| - * | `create`, `save` | primary | Add / persist (cyan brand CTA) | - * | `edit` | secondary | Soft gray modify | - * | `export`, `cancel` | outline | Bordered alternate | - * | `more`, `view` | ghost | Quiet / overflow | - * | `apply`, `publish` | dark | Strong neutral CTA (near-black)| - * | `delete`, `remove` | danger | Irreversible remove | - */ -declare const ACTION_COLOR_GUIDE: { - readonly create: "primary"; - readonly save: "primary"; - readonly edit: "secondary"; - readonly export: "outline"; - readonly cancel: "outline"; - readonly more: "ghost"; - readonly view: "ghost"; - readonly apply: "dark"; - readonly publish: "dark"; - readonly delete: "danger"; - readonly remove: "danger"; -}; -/** @deprecated Use `ACTION_COLOR_GUIDE` — same map, guidance only. */ -declare const ACTION_INTENT_VARIANT: { - readonly create: "primary"; - readonly save: "primary"; - readonly edit: "secondary"; - readonly export: "outline"; - readonly cancel: "outline"; - readonly more: "ghost"; - readonly view: "ghost"; - readonly apply: "dark"; - readonly publish: "dark"; - readonly delete: "danger"; - readonly remove: "danger"; -}; -/** - * Resolve button color: explicit `variant` always wins. - * `intent` only suggests a default when `variant` is omitted. - */ -declare function resolveButtonVariant(intent: ActionIntent | undefined, variant: ButtonVariant | undefined, fallback?: ButtonVariant): ButtonVariant; -/** - * Menu row tone: explicit `variant` wins; `intent` suggests danger for delete/remove. - */ -declare function resolveMenuItemVariant(intent: ActionIntent | undefined, variant: "default" | "danger" | "destructive" | undefined): "default" | "destructive"; - -export { ACTION_COLOR_GUIDE, ACTION_INTENT_VARIANT, ActionBar, type ActionBarLayout, type ActionBarProps, type ActionDescriptor, type ActionIntent, type ActionItem, type ActionItemVariant, ActionMenu, type ActionMenuProps, Actions, type ActionsProps, BUTTON_VARIANTS, Button, type ButtonProps, type ButtonSize, type ButtonVariant, SplitButton, type SplitButtonProps, resolveButtonVariant, resolveMenuItemVariant }; +export { ActionBar } from "./components/ActionBar"; +export { Actions } from "./components/Actions"; +export { ActionMenu } from "./components/ActionMenu"; +export { Button } from "./components/Button"; +export { SplitButton } from "./components/SplitButton"; +export { ACTION_COLOR_GUIDE, ACTION_INTENT_VARIANT, resolveButtonVariant, resolveMenuItemVariant, } from "./intent"; +export { BUTTON_VARIANTS } from "./types"; +export type { ActionBarLayout, ActionBarProps, ActionDescriptor, ActionIntent, ActionItem, ActionItemVariant, ActionMenuProps, ActionsProps, ButtonProps, ButtonSize, ButtonVariant, SplitButtonProps, } from "./types"; diff --git a/components/action-buttons/dist/intent.d.ts b/components/action-buttons/dist/intent.d.ts new file mode 100644 index 0000000..44e8533 --- /dev/null +++ b/components/action-buttons/dist/intent.d.ts @@ -0,0 +1,50 @@ +import type { ActionIntent, ButtonVariant } from "./types"; +/** + * Developer guide — recommended action → color. + * Not enforced: pass `variant` explicitly to override. + * + * | Intent | Suggested color | Typical use | + * |------------------------|-----------------|--------------------------------| + * | `create`, `save` | primary | Add / persist (cyan brand CTA) | + * | `edit` | secondary | Soft gray modify | + * | `export`, `cancel` | outline | Bordered alternate | + * | `more`, `view` | ghost | Quiet / overflow | + * | `apply`, `publish` | dark | Strong neutral CTA (near-black)| + * | `delete`, `remove` | danger | Irreversible remove | + */ +export declare const ACTION_COLOR_GUIDE: { + readonly create: "primary"; + readonly save: "primary"; + readonly edit: "secondary"; + readonly export: "outline"; + readonly cancel: "outline"; + readonly more: "ghost"; + readonly view: "ghost"; + readonly apply: "dark"; + readonly publish: "dark"; + readonly delete: "danger"; + readonly remove: "danger"; +}; +/** @deprecated Use `ACTION_COLOR_GUIDE` — same map, guidance only. */ +export declare const ACTION_INTENT_VARIANT: { + readonly create: "primary"; + readonly save: "primary"; + readonly edit: "secondary"; + readonly export: "outline"; + readonly cancel: "outline"; + readonly more: "ghost"; + readonly view: "ghost"; + readonly apply: "dark"; + readonly publish: "dark"; + readonly delete: "danger"; + readonly remove: "danger"; +}; +/** + * Resolve button color: explicit `variant` always wins. + * `intent` only suggests a default when `variant` is omitted. + */ +export declare function resolveButtonVariant(intent: ActionIntent | undefined, variant: ButtonVariant | undefined, fallback?: ButtonVariant): ButtonVariant; +/** + * Menu row tone: explicit `variant` wins; `intent` suggests danger for delete/remove. + */ +export declare function resolveMenuItemVariant(intent: ActionIntent | undefined, variant: "default" | "danger" | "destructive" | undefined): "default" | "destructive"; diff --git a/components/action-buttons/dist/lib/cn.d.ts b/components/action-buttons/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/action-buttons/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/action-buttons/dist/types.d.ts b/components/action-buttons/dist/types.d.ts new file mode 100644 index 0000000..895929a --- /dev/null +++ b/components/action-buttons/dist/types.d.ts @@ -0,0 +1,119 @@ +import type { ButtonHTMLAttributes, ReactNode } from "react"; +/** Semantic action hint — see `ACTION_COLOR_GUIDE` (guidance only). */ +export type ActionIntent = "create" | "save" | "edit" | "export" | "cancel" | "more" | "view" | "apply" | "publish" | "delete" | "remove"; +export type ActionItemVariant = "default" | "danger" | "destructive"; +/** Menu entry — either a clickable row or a horizontal separator. */ +export type ActionItem = { + type?: "item"; + label: string; + icon?: ReactNode; + onClick: () => void; + disabled?: boolean; + /** Suggested action kind (color guide). Overridden by `variant` when set. */ + intent?: ActionIntent; + variant?: ActionItemVariant; +} | { + type: "separator"; +}; +/** + * Bootstrap-inspired solid colors (JOO-tuned) plus outline/ghost utilities. + * Gallery order: primary → secondary → success → danger → warning → info → light → dark → outline → ghost + */ +export type ButtonVariant = "primary" | "secondary" | "success" | "danger" | "warning" | "info" | "light" | "dark" | "outline" | "ghost" +/** @deprecated Prefer `danger` */ + | "destructive"; +export type ButtonSize = "sm" | "md" | "icon"; +export type ActionBarLayout = "separate" | "group"; +export type ActionBarProps = { + children: ReactNode; + layout?: ActionBarLayout; + className?: string; +}; +export type ButtonProps = ButtonHTMLAttributes & { + /** + * Optional action hint for developers / docs. When `variant` is omitted, + * color defaults from `ACTION_COLOR_GUIDE`. Explicit `variant` always wins. + */ + intent?: ActionIntent; + /** Explicit color. Always wins over `intent` when provided. */ + variant?: ButtonVariant; + size?: ButtonSize; + /** Leading icon (Lucide or custom). Shown beside label; alone when `size="icon"`. */ + icon?: ReactNode; + /** + * Accessible hover/focus tip via `@jooservices/react-ui` `Tooltip`. + * Prefer this over native `title` (especially for `size="icon"`). + */ + tooltip?: ReactNode; + asChild?: boolean; + className?: string; +}; +export type ActionMenuProps = { + /** Accessible name / trigger label (not shown as an in-menu heading unless `menuLabel` is set). */ + label: string; + items: ActionItem[]; + icon?: ReactNode; + disabled?: boolean; + intent?: ActionIntent; + variant?: ButtonVariant; + size?: ButtonSize; + className?: string; + /** Optional heading inside the dropdown (above a separator). Omit for items-only menus. */ + menuLabel?: string; + /** Optional footer slot below items (preceded by a separator when set). */ + menuFooter?: ReactNode; + /** + * Hover/focus tip on the trigger via `Button` / react-ui Tooltip. + * Defaults to `label` when `size="icon"`. + */ + tooltip?: ReactNode; +}; +export type SplitButtonProps = { + label: string; + onClick: () => void; + items: ActionItem[]; + icon?: ReactNode; + disabled?: boolean; + intent?: ActionIntent; + variant?: ButtonVariant; + size?: Exclude; + className?: string; + menuLabel?: string; + /** Optional footer below overflow items (preceded by a separator when set). */ + menuFooter?: ReactNode; +}; +type ActionDescriptorBase = { + label: string; + icon?: ReactNode; + disabled?: boolean; + intent?: ActionIntent; + variant?: ButtonVariant; + /** Hover/focus tip; icon-only singles default to `label` when omitted. */ + tooltip?: ReactNode; +}; +export type ActionDescriptor = (ActionDescriptorBase & { + type: "single"; + onClick: () => void; + size?: ButtonSize; +}) | (ActionDescriptorBase & { + type: "menu"; + items: ActionItem[]; + size?: ButtonSize; + menuLabel?: string; + menuFooter?: ReactNode; +}) | (ActionDescriptorBase & { + type: "split"; + onClick: () => void; + items: ActionItem[]; + size?: Exclude; + menuLabel?: string; + menuFooter?: ReactNode; +}); +export type ActionsProps = { + items: ActionDescriptor[]; + layout?: ActionBarLayout; + className?: string; +}; +/** All variants shown in demos / docs (Bootstrap-like + outline/ghost). */ +export declare const BUTTON_VARIANTS: ButtonVariant[]; +export {}; diff --git a/components/action-buttons/package-lock.json b/components/action-buttons/package-lock.json index 140491f..8145919 100644 --- a/components/action-buttons/package-lock.json +++ b/components/action-buttons/package-lock.json @@ -28,7 +28,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -51,18 +51,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -2232,6 +2232,346 @@ "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -4215,17 +4555,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { diff --git a/components/action-buttons/package.json b/components/action-buttons/package.json index be52b11..7c1ff25 100644 --- a/components/action-buttons/package.json +++ b/components/action-buttons/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-action-buttons", "version": "2.6.0", - "description": "Shared action button primitives for React — bars, menus, and split buttons", + "description": "Shared action button primitives for React \u2014 bars, menus, and split buttons", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", @@ -65,7 +65,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/action-buttons/tsup.config.ts b/components/action-buttons/tsup.config.ts index e7aec1f..0ee3184 100644 --- a/components/action-buttons/tsup.config.ts +++ b/components/action-buttons/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react", "@jooservices/react-ui"], diff --git a/components/ai-waiting/dist/components/AiWaiting.d.ts b/components/ai-waiting/dist/components/AiWaiting.d.ts new file mode 100644 index 0000000..d26ce26 --- /dev/null +++ b/components/ai-waiting/dist/components/AiWaiting.d.ts @@ -0,0 +1,10 @@ +import type { AiWaitingProps } from "../types"; +/** + * Panel-local AI wait card with progress bar + percent. + * Provide only `name` for the standard “Generating with {name}…” chrome; + * progress is estimated automatically unless you pass a controlled `progress`. + * + * Parent should be `relative` when `overlay` is true (default). + * For non-AI long jobs, use {@link BaseWaiting} with an explicit `title`. + */ +export declare function AiWaiting({ name, title, ...rest }: AiWaitingProps): import("react").JSX.Element; diff --git a/components/ai-waiting/dist/components/AiWaiting.test.d.ts b/components/ai-waiting/dist/components/AiWaiting.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/ai-waiting/dist/components/AiWaiting.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/ai-waiting/dist/components/BaseWaiting.d.ts b/components/ai-waiting/dist/components/BaseWaiting.d.ts new file mode 100644 index 0000000..841686a --- /dev/null +++ b/components/ai-waiting/dist/components/BaseWaiting.d.ts @@ -0,0 +1,8 @@ +import type { BaseWaitingProps } from "../types"; +/** + * Panel-local progress wait card (title + bar + percent). + * Use for any long-running job; prefer {@link AiWaiting} when the job is AI generation. + * + * Parent should be `relative` when `overlay` is true (default). + */ +export declare function BaseWaiting({ title, progress: controlledProgress, status, extra, progressLabel, overlay, className, cardClassName, }: BaseWaitingProps): import("react").JSX.Element; diff --git a/components/ai-waiting/dist/components/BaseWaiting.test.d.ts b/components/ai-waiting/dist/components/BaseWaiting.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/ai-waiting/dist/components/BaseWaiting.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/ai-waiting/dist/hooks/useEstimatedProgress.d.ts b/components/ai-waiting/dist/hooks/useEstimatedProgress.d.ts new file mode 100644 index 0000000..9dd70b2 --- /dev/null +++ b/components/ai-waiting/dist/hooks/useEstimatedProgress.d.ts @@ -0,0 +1,6 @@ +import type { EstimatedProgressOptions } from "../types"; +/** + * Estimated (non-deterministic) progress for long AI / async waits. + * Matches the stories-builder assist pattern: starts low, asymptotes toward `ceiling`. + */ +export declare function useEstimatedProgress({ active, initial, ceiling, intervalMs, }?: EstimatedProgressOptions): number; diff --git a/components/ai-waiting/dist/index.d.ts b/components/ai-waiting/dist/index.d.ts index 3ce436b..15f1af3 100644 --- a/components/ai-waiting/dist/index.d.ts +++ b/components/ai-waiting/dist/index.d.ts @@ -1,74 +1,4 @@ -import * as react from 'react'; -import { ReactNode } from 'react'; - -type EstimatedProgressOptions = { - /** When false, progress resets to `initial` and the timer stops. Default true. */ - active?: boolean; - /** Starting percent when a run begins. Default 8. */ - initial?: number; - /** Soft cap for estimated progress (real completion is app-owned). Default 90. */ - ceiling?: number; - /** Tick interval in ms. Default 700. */ - intervalMs?: number; -}; -type BaseWaitingProps = { - /** Primary heading shown above the progress bar. */ - title: string; - /** - * Controlled progress 0–100. - * When omitted, progress is estimated automatically while mounted - * (stories-builder assist curve: start ~8%, soft-cap ~90%). - */ - progress?: number; - /** Optional secondary status line (e.g. current chapter). */ - status?: ReactNode; - /** Optional content under the progress bar (links, cancel, etc.). */ - extra?: ReactNode; - /** - * Progress caption under the bar. - * Default: `Estimated progress: {percent}%` - */ - progressLabel?: string | ((percent: number) => string); - /** - * When true (default), render as an absolute overlay over a `relative` parent. - * Set false for inline / static presentation (e.g. demos). - */ - overlay?: boolean; - className?: string; - cardClassName?: string; -}; -type AiWaitingProps = { - /** - * AI provider / product name shown in the default title. - * Example: `"Ollama"` → “Generating with Ollama…” - */ - name: string; - /** Override the title. Default: `Generating with {name}…` */ - title?: string; -} & Omit; - -/** - * Panel-local AI wait card with progress bar + percent. - * Provide only `name` for the standard “Generating with {name}…” chrome; - * progress is estimated automatically unless you pass a controlled `progress`. - * - * Parent should be `relative` when `overlay` is true (default). - * For non-AI long jobs, use {@link BaseWaiting} with an explicit `title`. - */ -declare function AiWaiting({ name, title, ...rest }: AiWaitingProps): react.JSX.Element; - -/** - * Panel-local progress wait card (title + bar + percent). - * Use for any long-running job; prefer {@link AiWaiting} when the job is AI generation. - * - * Parent should be `relative` when `overlay` is true (default). - */ -declare function BaseWaiting({ title, progress: controlledProgress, status, extra, progressLabel, overlay, className, cardClassName, }: BaseWaitingProps): react.JSX.Element; - -/** - * Estimated (non-deterministic) progress for long AI / async waits. - * Matches the stories-builder assist pattern: starts low, asymptotes toward `ceiling`. - */ -declare function useEstimatedProgress({ active, initial, ceiling, intervalMs, }?: EstimatedProgressOptions): number; - -export { AiWaiting, type AiWaitingProps, BaseWaiting, type BaseWaitingProps, type EstimatedProgressOptions, useEstimatedProgress }; +export { AiWaiting } from "./components/AiWaiting"; +export { BaseWaiting } from "./components/BaseWaiting"; +export { useEstimatedProgress } from "./hooks/useEstimatedProgress"; +export type { AiWaitingProps, BaseWaitingProps, EstimatedProgressOptions, } from "./types"; diff --git a/components/ai-waiting/dist/lib/cn.d.ts b/components/ai-waiting/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/ai-waiting/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/ai-waiting/dist/types.d.ts b/components/ai-waiting/dist/types.d.ts new file mode 100644 index 0000000..1802be3 --- /dev/null +++ b/components/ai-waiting/dist/types.d.ts @@ -0,0 +1,46 @@ +import type { ReactNode } from "react"; +export type EstimatedProgressOptions = { + /** When false, progress resets to `initial` and the timer stops. Default true. */ + active?: boolean; + /** Starting percent when a run begins. Default 8. */ + initial?: number; + /** Soft cap for estimated progress (real completion is app-owned). Default 90. */ + ceiling?: number; + /** Tick interval in ms. Default 700. */ + intervalMs?: number; +}; +export type BaseWaitingProps = { + /** Primary heading shown above the progress bar. */ + title: string; + /** + * Controlled progress 0–100. + * When omitted, progress is estimated automatically while mounted + * (stories-builder assist curve: start ~8%, soft-cap ~90%). + */ + progress?: number; + /** Optional secondary status line (e.g. current chapter). */ + status?: ReactNode; + /** Optional content under the progress bar (links, cancel, etc.). */ + extra?: ReactNode; + /** + * Progress caption under the bar. + * Default: `Estimated progress: {percent}%` + */ + progressLabel?: string | ((percent: number) => string); + /** + * When true (default), render as an absolute overlay over a `relative` parent. + * Set false for inline / static presentation (e.g. demos). + */ + overlay?: boolean; + className?: string; + cardClassName?: string; +}; +export type AiWaitingProps = { + /** + * AI provider / product name shown in the default title. + * Example: `"Ollama"` → “Generating with Ollama…” + */ + name: string; + /** Override the title. Default: `Generating with {name}…` */ + title?: string; +} & Omit; diff --git a/components/ai-waiting/package.json b/components/ai-waiting/package.json index b477f40..4d50b71 100644 --- a/components/ai-waiting/package.json +++ b/components/ai-waiting/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-ai-waiting", "version": "2.6.0", - "description": "AI wait overlay for React — provide an AI name; progress and percent chrome are shared", + "description": "AI wait overlay for React \u2014 provide an AI name; progress and percent chrome are shared", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/ai-waiting/tsup.config.ts b/components/ai-waiting/tsup.config.ts index f4bf859..5bb70f3 100644 --- a/components/ai-waiting/tsup.config.ts +++ b/components/ai-waiting/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom"], diff --git a/components/card/dist/Card.test.d.ts b/components/card/dist/Card.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/card/dist/Card.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/card/dist/components/BaseCard.d.ts b/components/card/dist/components/BaseCard.d.ts new file mode 100644 index 0000000..2e7d534 --- /dev/null +++ b/components/card/dist/components/BaseCard.d.ts @@ -0,0 +1,2 @@ +import type { BaseCardProps } from "../types"; +export declare function BaseCard({ as: Component, icon, title, subtitle, actions, children, footer, shadow, className, ...props }: BaseCardProps): import("react").JSX.Element; diff --git a/components/card/dist/components/StatCard.d.ts b/components/card/dist/components/StatCard.d.ts new file mode 100644 index 0000000..8134962 --- /dev/null +++ b/components/card/dist/components/StatCard.d.ts @@ -0,0 +1,2 @@ +import type { StatCardProps } from "../types"; +export declare function StatCard({ label, value, subtext, icon, info, actions, footer, tone, className, }: StatCardProps): import("react").JSX.Element; diff --git a/components/card/dist/index.d.ts b/components/card/dist/index.d.ts index 50a8794..7b2dd1f 100644 --- a/components/card/dist/index.d.ts +++ b/components/card/dist/index.d.ts @@ -1,50 +1,3 @@ -import * as react from 'react'; -import { HTMLAttributes, ReactNode } from 'react'; - -type CardTone = "slate" | "cyan" | "amber" | "emerald" | "rose"; -type BaseCardProps = Omit, "title"> & { - /** Element tag for the card root. */ - as?: "article" | "section" | "div"; - /** Optional leading icon in the header. */ - icon?: ReactNode; - /** Header title (left). */ - title?: ReactNode; - /** Optional supporting line under the title. */ - subtitle?: ReactNode; - /** Optional header actions (right). Prefer ghost/icon controls. */ - actions?: ReactNode; - /** Main body. */ - children?: ReactNode; - /** Optional footer below a divider. */ - footer?: ReactNode; - /** Soft shadow (default true). */ - shadow?: boolean; - className?: string; -}; -type StatCardProps = { - /** Metric label (header). */ - label: string; - /** Large primary value (number or short text). */ - value: ReactNode; - /** Supporting line under the value. */ - subtext?: ReactNode; - /** Optional leading header icon. */ - icon?: ReactNode; - /** - * Metric definition shown via the info control in the header actions slot. - * Renders a CircleHelp / Info button with accessible tooltip. - */ - info?: string; - /** Extra header actions (merged after the built-in info control when `info` is set). */ - actions?: ReactNode; - footer?: ReactNode; - /** Colors the large value. */ - tone?: CardTone; - className?: string; -}; - -declare function BaseCard({ as: Component, icon, title, subtitle, actions, children, footer, shadow, className, ...props }: BaseCardProps): react.JSX.Element; - -declare function StatCard({ label, value, subtext, icon, info, actions, footer, tone, className, }: StatCardProps): react.JSX.Element; - -export { BaseCard, type BaseCardProps, type CardTone, StatCard, type StatCardProps }; +export { BaseCard } from "./components/BaseCard"; +export { StatCard } from "./components/StatCard"; +export type { BaseCardProps, CardTone, StatCardProps } from "./types"; diff --git a/components/card/dist/lib/cn.d.ts b/components/card/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/card/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/card/dist/types.d.ts b/components/card/dist/types.d.ts new file mode 100644 index 0000000..15b549d --- /dev/null +++ b/components/card/dist/types.d.ts @@ -0,0 +1,42 @@ +import type { HTMLAttributes, ReactNode } from "react"; +export type CardTone = "slate" | "cyan" | "amber" | "emerald" | "rose"; +export type BaseCardProps = Omit, "title"> & { + /** Element tag for the card root. */ + as?: "article" | "section" | "div"; + /** Optional leading icon in the header. */ + icon?: ReactNode; + /** Header title (left). */ + title?: ReactNode; + /** Optional supporting line under the title. */ + subtitle?: ReactNode; + /** Optional header actions (right). Prefer ghost/icon controls. */ + actions?: ReactNode; + /** Main body. */ + children?: ReactNode; + /** Optional footer below a divider. */ + footer?: ReactNode; + /** Soft shadow (default true). */ + shadow?: boolean; + className?: string; +}; +export type StatCardProps = { + /** Metric label (header). */ + label: string; + /** Large primary value (number or short text). */ + value: ReactNode; + /** Supporting line under the value. */ + subtext?: ReactNode; + /** Optional leading header icon. */ + icon?: ReactNode; + /** + * Metric definition shown via the info control in the header actions slot. + * Renders a CircleHelp / Info button with accessible tooltip. + */ + info?: string; + /** Extra header actions (merged after the built-in info control when `info` is set). */ + actions?: ReactNode; + footer?: ReactNode; + /** Colors the large value. */ + tone?: CardTone; + className?: string; +}; diff --git a/components/card/package-lock.json b/components/card/package-lock.json index 202801d..e5aa572 100644 --- a/components/card/package-lock.json +++ b/components/card/package-lock.json @@ -25,7 +25,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -48,18 +48,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -1659,6 +1659,346 @@ "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -3531,17 +3871,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { diff --git a/components/card/package.json b/components/card/package.json index d2f234c..732fe19 100644 --- a/components/card/package.json +++ b/components/card/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-card", "version": "2.6.0", - "description": "Shared card primitives for React — BaseCard shell and StatCard metrics", + "description": "Shared card primitives for React \u2014 BaseCard shell and StatCard metrics", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", @@ -62,7 +62,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/card/tsup.config.ts b/components/card/tsup.config.ts index e7aec1f..0ee3184 100644 --- a/components/card/tsup.config.ts +++ b/components/card/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react", "@jooservices/react-ui"], diff --git a/components/config/dist/components/ConfigPanel.d.ts b/components/config/dist/components/ConfigPanel.d.ts new file mode 100644 index 0000000..0d67dfb --- /dev/null +++ b/components/config/dist/components/ConfigPanel.d.ts @@ -0,0 +1,2 @@ +import type { ConfigPanelHandle, ConfigPanelProps } from "../types"; +export declare const ConfigPanel: import("react").ForwardRefExoticComponent>; diff --git a/components/config/dist/components/ConfigRecordForm.d.ts b/components/config/dist/components/ConfigRecordForm.d.ts new file mode 100644 index 0000000..787f9e0 --- /dev/null +++ b/components/config/dist/components/ConfigRecordForm.d.ts @@ -0,0 +1,2 @@ +import type { ConfigRecordFormProps } from "../types"; +export declare function ConfigRecordForm({ editing, types, path, type, value, errors, processing, onPathChange, onTypeChange, onValueChange, onSubmit, onCancel, }: ConfigRecordFormProps): import("react").JSX.Element; diff --git a/components/config/dist/components/ConfigTreeBrowser.d.ts b/components/config/dist/components/ConfigTreeBrowser.d.ts new file mode 100644 index 0000000..525aaac --- /dev/null +++ b/components/config/dist/components/ConfigTreeBrowser.d.ts @@ -0,0 +1,2 @@ +import type { ConfigTreeBrowserProps } from "../types"; +export declare function ConfigTreeBrowser({ entries, searchEntries, rawEntries, sites, activeTab, rawTabIds, showExpert, showTechnicalKeys, normalizedQuery, isSearching, siteOverridePanel, showSiteOverridePanel, tabLabel, resolveTabId, onEdit, onRemove, onNavigateEntry, onNavigateSite, onClearSearch, onToggleGroup, isGroupCollapsed, }: ConfigTreeBrowserProps): import("react").JSX.Element; diff --git a/components/config/dist/components/ui/Badge.d.ts b/components/config/dist/components/ui/Badge.d.ts new file mode 100644 index 0000000..21056f9 --- /dev/null +++ b/components/config/dist/components/ui/Badge.d.ts @@ -0,0 +1,6 @@ +import type { ReactNode } from "react"; +export declare function Badge({ children, tone, className, }: { + children: ReactNode; + tone?: "slate" | "cyan" | "amber"; + className?: string; +}): import("react").JSX.Element; diff --git a/components/config/dist/components/ui/Button.d.ts b/components/config/dist/components/ui/Button.d.ts new file mode 100644 index 0000000..90aab4b --- /dev/null +++ b/components/config/dist/components/ui/Button.d.ts @@ -0,0 +1,8 @@ +import type { ButtonHTMLAttributes, ReactNode } from "react"; +type Variant = "primary" | "secondary" | "ghost" | "danger"; +export declare function Button({ className, variant, iconOnly, children, type, ...props }: ButtonHTMLAttributes & { + variant?: Variant; + iconOnly?: boolean; + children?: ReactNode; +}): import("react").JSX.Element; +export {}; diff --git a/components/config/dist/components/ui/Dialog.d.ts b/components/config/dist/components/ui/Dialog.d.ts new file mode 100644 index 0000000..fad3438 --- /dev/null +++ b/components/config/dist/components/ui/Dialog.d.ts @@ -0,0 +1,7 @@ +import { type ReactNode } from "react"; +export declare function Dialog({ open, title, children, onClose, }: { + open: boolean; + title: string; + children?: ReactNode; + onClose: () => void; +}): import("react").JSX.Element | null; diff --git a/components/config/dist/components/ui/EmptyState.d.ts b/components/config/dist/components/ui/EmptyState.d.ts new file mode 100644 index 0000000..b5ad574 --- /dev/null +++ b/components/config/dist/components/ui/EmptyState.d.ts @@ -0,0 +1,6 @@ +import type { ReactNode } from "react"; +export declare function EmptyState({ title, message, action, }: { + title: string; + message?: string; + action?: ReactNode; +}): import("react").JSX.Element; diff --git a/components/config/dist/components/ui/Input.d.ts b/components/config/dist/components/ui/Input.d.ts new file mode 100644 index 0000000..93038b0 --- /dev/null +++ b/components/config/dist/components/ui/Input.d.ts @@ -0,0 +1,2 @@ +import type { InputHTMLAttributes } from "react"; +export declare function Input({ className, ...props }: InputHTMLAttributes): import("react").JSX.Element; diff --git a/components/config/dist/config-utils.test.d.ts b/components/config/dist/config-utils.test.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/components/config/dist/config-utils.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/components/config/dist/index.d.ts b/components/config/dist/index.d.ts index 9302af0..58fcd99 100644 --- a/components/config/dist/index.d.ts +++ b/components/config/dist/index.d.ts @@ -1,176 +1,5 @@ -import * as react from 'react'; -import { ReactNode, FormEventHandler } from 'react'; - -type ConfigValueType = "string" | "int" | "float" | "bool" | "array" | "json" | "null"; -type ConfigTier = "operational" | "expert" | string; -type ConfigEntry = { - path: string; - label: string; - description: string; - group_label: string; - type: ConfigValueType; - tier?: ConfigTier; - sort?: number; - sensitive?: boolean; - effective_value: unknown; - source: string; - stored: boolean; - /** Optional metadata for consumer filters (section, scope, site_slug, …). */ - meta?: Record; -}; -type ConfigRecord = { - id: string; - path: string; - type: ConfigValueType; - value: unknown; - updated_at?: string | null; -}; -type ConfigSiteOverride = { - key: string; - label: string; - description: string; - type: ConfigValueType; - effective_value: unknown; - effective_source: string; - has_site_value?: boolean; - runtime_stored?: boolean; -}; -type ConfigSiteContext = { - slug: string; - name: string; - overrides: ConfigSiteOverride[]; -}; -type ConfigTabDef = { - id: string; - label: string; - icon?: ReactNode; - /** Match entries whose group_label is listed here. */ - groups?: string[]; - /** Custom matcher; runs before group matching. */ - filter?: (entry: ConfigEntry) => boolean; - /** Raw Mongo/config-store rows (separate from curated entries). */ - mode?: "curated" | "raw"; -}; -type ConfigFormData = { - path: string; - type: ConfigValueType; - value: string; -}; -type ConfigPanelFeatures = { - search?: boolean; - expertToggle?: boolean; - technicalKeysToggle?: boolean; -}; -/** Imperative helpers for PageShell Identity primary actions (create / open editor). */ -type ConfigPanelHandle = { - openCreate: () => void; -}; -type ConfigGeneralTabDef = { - id?: string; - label?: string; - /** Hide the general tab when it has no orphan entries. Default true. */ - hideWhenEmpty?: boolean; -}; -type SiteOverridePanelProps = { - sites: ConfigSiteContext[]; - selectedSiteSlug: string; - renderEditLink: (site: ConfigSiteContext) => ReactNode; -}; -type ConfigPanelProps = { - tabs: ConfigTabDef[]; - generalTab?: boolean | ConfigGeneralTabDef; - entries: ConfigEntry[]; - rawEntries?: ConfigRecord[]; - valueTypes?: ConfigValueType[]; - features?: ConfigPanelFeatures; - contextBar?: ReactNode | ((activeTab: string) => ReactNode); - /** Local / non-primary chrome only — do not put Create / view CTAs here; use PageShellIdentity + `ConfigPanelHandle`. */ - headerActions?: ReactNode; - siteOverridePanel?: SiteOverridePanelProps | null; - showSiteOverridePanel?: boolean; - tab?: string; - defaultTab?: string; - onTabChange?: (tabId: string) => void; - query?: string; - defaultQuery?: string; - onQueryChange?: (query: string) => void; - showExpert?: boolean; - defaultShowExpert?: boolean; - onShowExpertChange?: (value: boolean) => void; - showTechnicalKeys?: boolean; - defaultShowTechnicalKeys?: boolean; - onShowTechnicalKeysChange?: (value: boolean) => void; - onSave: (payload: { - path: string; - type: ConfigValueType; - value: unknown; - editing: ConfigEntry | ConfigRecord | null; - }) => Promise; - onDelete?: (path: string) => Promise; - onNavigateSite?: (siteSlug: string) => void; - processing?: boolean; - errors?: Partial>; - searchPlaceholder?: string; - className?: string; -}; -type ConfigRecordFormProps = { - editing: ConfigEntry | ConfigRecord | null; - types: ConfigValueType[]; - path: string; - type: ConfigValueType; - value: string; - errors: Partial>; - processing: boolean; - onPathChange: (path: string) => void; - onTypeChange: (type: ConfigValueType) => void; - onValueChange: (value: string) => void; - onSubmit: FormEventHandler; - onCancel: () => void; -}; -type ConfigTreeBrowserProps = { - entries: ConfigEntry[]; - searchEntries?: ConfigEntry[]; - rawEntries: ConfigRecord[]; - sites: ConfigSiteContext[]; - activeTab: string; - generalTabId: string; - rawTabIds: string[]; - showExpert: boolean; - showTechnicalKeys: boolean; - normalizedQuery: string; - isSearching: boolean; - siteOverridePanel?: SiteOverridePanelProps | null; - showSiteOverridePanel?: boolean; - tabLabel: (tabId: string) => string; - resolveTabId?: (entry: ConfigEntry) => string; - onEdit: (config: ConfigEntry | ConfigRecord) => void; - onRemove: (path: string) => void; - onNavigateEntry: (entry: ConfigEntry, tabId: string) => void; - onNavigateSite: (siteSlug: string) => void; - onClearSearch: () => void; - onToggleGroup: (group: string) => void; - isGroupCollapsed: (group: string, tier: ConfigTier) => boolean; -}; - -declare const ConfigPanel: react.ForwardRefExoticComponent>; - -declare function ConfigTreeBrowser({ entries, searchEntries, rawEntries, sites, activeTab, rawTabIds, showExpert, showTechnicalKeys, normalizedQuery, isSearching, siteOverridePanel, showSiteOverridePanel, tabLabel, resolveTabId, onEdit, onRemove, onNavigateEntry, onNavigateSite, onClearSearch, onToggleGroup, isGroupCollapsed, }: ConfigTreeBrowserProps): react.JSX.Element; - -declare function ConfigRecordForm({ editing, types, path, type, value, errors, processing, onPathChange, onTypeChange, onValueChange, onSubmit, onCancel, }: ConfigRecordFormProps): react.JSX.Element; - -declare function isConfigEntry(config: ConfigEntry | ConfigRecord | null): config is ConfigEntry; -declare function valueToText(value: unknown, type?: ConfigValueType): string; -declare function parseValue(raw: string, type: ConfigValueType): unknown; -declare function displayValue(value: unknown, type?: ConfigValueType, sensitive?: boolean): string; -declare function formatConfigDate(iso: string | null | undefined): string; -declare function generalTabId(generalTab?: boolean | { - id?: string; -}): string; -declare function resolveEntryTabId(entry: ConfigEntry, tabs: ConfigTabDef[]): string | null; -declare function partitionEntriesByTab(entries: ConfigEntry[], tabs: ConfigTabDef[], generalTabIdValue: string): Map; -declare function entryBreadcrumb(entry: ConfigEntry, tabLabel: string, sites: { - slug: string; - name: string; -}[]): string; - -export { type ConfigEntry, type ConfigFormData, type ConfigGeneralTabDef, ConfigPanel, type ConfigPanelFeatures, type ConfigPanelHandle, type ConfigPanelProps, type ConfigRecord, ConfigRecordForm, type ConfigRecordFormProps, type ConfigSiteContext, type ConfigSiteOverride, type ConfigTabDef, type ConfigTier, ConfigTreeBrowser, type ConfigTreeBrowserProps, type ConfigValueType, type SiteOverridePanelProps, displayValue, entryBreadcrumb, formatConfigDate, generalTabId, isConfigEntry, parseValue, partitionEntriesByTab, resolveEntryTabId, valueToText }; +export { ConfigPanel } from "./components/ConfigPanel"; +export { ConfigTreeBrowser } from "./components/ConfigTreeBrowser"; +export { ConfigRecordForm } from "./components/ConfigRecordForm"; +export type { ConfigEntry, ConfigFormData, ConfigGeneralTabDef, ConfigPanelFeatures, ConfigPanelHandle, ConfigPanelProps, ConfigRecord, ConfigRecordFormProps, ConfigSiteContext, ConfigSiteOverride, ConfigTabDef, ConfigTier, ConfigTreeBrowserProps, ConfigValueType, SiteOverridePanelProps, } from "./types"; +export { displayValue, entryBreadcrumb, formatConfigDate, generalTabId, isConfigEntry, parseValue, partitionEntriesByTab, resolveEntryTabId, valueToText, } from "./lib/config-utils"; diff --git a/components/config/dist/lib/cn.d.ts b/components/config/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/config/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/config/dist/lib/config-utils.d.ts b/components/config/dist/lib/config-utils.d.ts new file mode 100644 index 0000000..9846a66 --- /dev/null +++ b/components/config/dist/lib/config-utils.d.ts @@ -0,0 +1,18 @@ +import type { ConfigEntry, ConfigRecord, ConfigTabDef, ConfigValueType } from "../types"; +export type { ConfigFormData } from "../types"; +export declare function isConfigEntry(config: ConfigEntry | ConfigRecord | null): config is ConfigEntry; +export declare function valueToText(value: unknown, type?: ConfigValueType): string; +export declare function parseValue(raw: string, type: ConfigValueType): unknown; +export declare function displayValue(value: unknown, type?: ConfigValueType, sensitive?: boolean): string; +export declare function formatConfigDate(iso: string | null | undefined): string; +export declare function generalTabId(generalTab?: boolean | { + id?: string; +}): string; +export declare function curatedTabs(tabs: ConfigTabDef[]): ConfigTabDef[]; +export declare function rawTabs(tabs: ConfigTabDef[]): ConfigTabDef[]; +export declare function resolveEntryTabId(entry: ConfigEntry, tabs: ConfigTabDef[]): string | null; +export declare function partitionEntriesByTab(entries: ConfigEntry[], tabs: ConfigTabDef[], generalTabIdValue: string): Map; +export declare function entryBreadcrumb(entry: ConfigEntry, tabLabel: string, sites: { + slug: string; + name: string; +}[]): string; diff --git a/components/config/dist/types.d.ts b/components/config/dist/types.d.ts new file mode 100644 index 0000000..981b0d5 --- /dev/null +++ b/components/config/dist/types.d.ts @@ -0,0 +1,151 @@ +import type { FormEventHandler, ReactNode } from "react"; +export type ConfigValueType = "string" | "int" | "float" | "bool" | "array" | "json" | "null"; +export type ConfigTier = "operational" | "expert" | string; +export type ConfigEntry = { + path: string; + label: string; + description: string; + group_label: string; + type: ConfigValueType; + tier?: ConfigTier; + sort?: number; + sensitive?: boolean; + effective_value: unknown; + source: string; + stored: boolean; + /** Optional metadata for consumer filters (section, scope, site_slug, …). */ + meta?: Record; +}; +export type ConfigRecord = { + id: string; + path: string; + type: ConfigValueType; + value: unknown; + updated_at?: string | null; +}; +export type ConfigSiteOverride = { + key: string; + label: string; + description: string; + type: ConfigValueType; + effective_value: unknown; + effective_source: string; + has_site_value?: boolean; + runtime_stored?: boolean; +}; +export type ConfigSiteContext = { + slug: string; + name: string; + overrides: ConfigSiteOverride[]; +}; +export type ConfigTabDef = { + id: string; + label: string; + icon?: ReactNode; + /** Match entries whose group_label is listed here. */ + groups?: string[]; + /** Custom matcher; runs before group matching. */ + filter?: (entry: ConfigEntry) => boolean; + /** Raw Mongo/config-store rows (separate from curated entries). */ + mode?: "curated" | "raw"; +}; +export type ConfigFormData = { + path: string; + type: ConfigValueType; + value: string; +}; +export type ConfigPanelFeatures = { + search?: boolean; + expertToggle?: boolean; + technicalKeysToggle?: boolean; +}; +/** Imperative helpers for PageShell Identity primary actions (create / open editor). */ +export type ConfigPanelHandle = { + openCreate: () => void; +}; +export type ConfigGeneralTabDef = { + id?: string; + label?: string; + /** Hide the general tab when it has no orphan entries. Default true. */ + hideWhenEmpty?: boolean; +}; +export type SiteOverridePanelProps = { + sites: ConfigSiteContext[]; + selectedSiteSlug: string; + renderEditLink: (site: ConfigSiteContext) => ReactNode; +}; +export type ConfigPanelProps = { + tabs: ConfigTabDef[]; + generalTab?: boolean | ConfigGeneralTabDef; + entries: ConfigEntry[]; + rawEntries?: ConfigRecord[]; + valueTypes?: ConfigValueType[]; + features?: ConfigPanelFeatures; + contextBar?: ReactNode | ((activeTab: string) => ReactNode); + /** Local / non-primary chrome only — do not put Create / view CTAs here; use PageShellIdentity + `ConfigPanelHandle`. */ + headerActions?: ReactNode; + siteOverridePanel?: SiteOverridePanelProps | null; + showSiteOverridePanel?: boolean; + tab?: string; + defaultTab?: string; + onTabChange?: (tabId: string) => void; + query?: string; + defaultQuery?: string; + onQueryChange?: (query: string) => void; + showExpert?: boolean; + defaultShowExpert?: boolean; + onShowExpertChange?: (value: boolean) => void; + showTechnicalKeys?: boolean; + defaultShowTechnicalKeys?: boolean; + onShowTechnicalKeysChange?: (value: boolean) => void; + onSave: (payload: { + path: string; + type: ConfigValueType; + value: unknown; + editing: ConfigEntry | ConfigRecord | null; + }) => Promise; + onDelete?: (path: string) => Promise; + onNavigateSite?: (siteSlug: string) => void; + processing?: boolean; + errors?: Partial>; + searchPlaceholder?: string; + className?: string; +}; +export type ConfigRecordFormProps = { + editing: ConfigEntry | ConfigRecord | null; + types: ConfigValueType[]; + path: string; + type: ConfigValueType; + value: string; + errors: Partial>; + processing: boolean; + onPathChange: (path: string) => void; + onTypeChange: (type: ConfigValueType) => void; + onValueChange: (value: string) => void; + onSubmit: FormEventHandler; + onCancel: () => void; +}; +export type ConfigTreeBrowserProps = { + entries: ConfigEntry[]; + searchEntries?: ConfigEntry[]; + rawEntries: ConfigRecord[]; + sites: ConfigSiteContext[]; + activeTab: string; + generalTabId: string; + rawTabIds: string[]; + showExpert: boolean; + showTechnicalKeys: boolean; + normalizedQuery: string; + isSearching: boolean; + siteOverridePanel?: SiteOverridePanelProps | null; + showSiteOverridePanel?: boolean; + tabLabel: (tabId: string) => string; + resolveTabId?: (entry: ConfigEntry) => string; + onEdit: (config: ConfigEntry | ConfigRecord) => void; + onRemove: (path: string) => void; + onNavigateEntry: (entry: ConfigEntry, tabId: string) => void; + onNavigateSite: (siteSlug: string) => void; + onClearSearch: () => void; + onToggleGroup: (group: string) => void; + isGroupCollapsed: (group: string, tier: ConfigTier) => boolean; +}; diff --git a/components/config/package-lock.json b/components/config/package-lock.json index 33fc8fe..698ad0c 100644 --- a/components/config/package-lock.json +++ b/components/config/package-lock.json @@ -25,7 +25,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -48,18 +48,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -1659,6 +1659,346 @@ "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -3531,17 +3871,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { diff --git a/components/config/package.json b/components/config/package.json index fa96dc5..48035ec 100644 --- a/components/config/package.json +++ b/components/config/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-config", "version": "2.6.0", - "description": "Schema-driven configuration panel for React — tabs, grouped browse, modal editor", + "description": "Schema-driven configuration panel for React \u2014 tabs, grouped browse, modal editor", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", @@ -62,7 +62,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/config/tsup.config.ts b/components/config/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/config/tsup.config.ts +++ b/components/config/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/content/dist/PageShell.test.d.ts b/components/content/dist/PageShell.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/content/dist/PageShell.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/content/dist/components/PageShell.d.ts b/components/content/dist/components/PageShell.d.ts new file mode 100644 index 0000000..7258ff4 --- /dev/null +++ b/components/content/dist/components/PageShell.d.ts @@ -0,0 +1,19 @@ +import type { PageShellAdvancedProps, PageShellBannerProps, PageShellCanvasProps, PageShellContextBarProps, PageShellControlBarProps, PageShellFooterProps, PageShellIdentityProps, PageShellProps, PageShellToolbarProps } from "../types"; +export declare function PageShell({ children, className }: PageShellProps): import("react").JSX.Element; +/** Page-scoped flash / notice — place first under PageShell (below app HeaderBar). */ +export declare function PageShellBanner({ children, className }: PageShellBannerProps): import("react").JSX.Element; +export declare function PageShellIdentity({ title, subtitle, actions, breadcrumbs, className, }: PageShellIdentityProps): import("react").JSX.Element; +export declare function PageShellControlBar({ tabs, filters, actions, className }: PageShellControlBarProps): import("react").JSX.Element; +export declare function PageShellToolbar({ leading, trailing, onSubmit, onClear, submitLabel, clearLabel, className, }: PageShellToolbarProps): import("react").JSX.Element; +export declare function PageShellAdvanced({ children, label, defaultOpen, className, }: PageShellAdvancedProps): import("react").JSX.Element; +export declare function PageShellContextBar({ children, className }: PageShellContextBarProps): import("react").JSX.Element; +export declare function PageShellCanvas({ children, className, variant, loading, loadingState, error, empty, emptyState, }: PageShellCanvasProps): import("react").JSX.Element; +/** Alias for PageShellCanvas */ +export declare const PageContent: typeof PageShellCanvas; +export declare function PageShellFooter({ children, className }: PageShellFooterProps): import("react").JSX.Element; +/** Aliases aligned with XFlickr-style naming */ +export declare const PageBanner: typeof PageShellBanner; +export declare const PageIdentity: typeof PageShellIdentity; +export declare const PageToolbar: typeof PageShellToolbar; +export declare const PageAdvanced: typeof PageShellAdvanced; +export declare const PageFooter: typeof PageShellFooter; diff --git a/components/content/dist/index.d.ts b/components/content/dist/index.d.ts index 0699ce3..0f7ee25 100644 --- a/components/content/dist/index.d.ts +++ b/components/content/dist/index.d.ts @@ -1,86 +1,2 @@ -import * as react from 'react'; -import { ReactNode } from 'react'; - -type PageContentVariant = "plain" | "card" | "flush"; -type PageShellBreadcrumbItem = { - label: string; - href?: string; - /** Optional leading icon (typically a Lucide element). */ - icon?: ReactNode; -}; -type PageShellProps = { - children: ReactNode; - className?: string; -}; -/** Page-scoped flash / notice slot (place as first child of PageShell, under app header). */ -type PageShellBannerProps = { - children: ReactNode; - className?: string; -}; -type PageShellIdentityProps = { - title: string; - subtitle?: string; - actions?: ReactNode; - breadcrumbs?: PageShellBreadcrumbItem[]; - className?: string; -}; -type PageShellControlBarProps = { - tabs?: ReactNode; - filters?: ReactNode; - actions?: ReactNode; - className?: string; -}; -type PageShellToolbarProps = { - leading?: ReactNode; - trailing?: ReactNode; - onSubmit?: () => void; - onClear?: () => void; - submitLabel?: string; - clearLabel?: string; - className?: string; -}; -type PageShellAdvancedProps = { - children: ReactNode; - label?: string; - defaultOpen?: boolean; - className?: string; -}; -type PageShellCanvasProps = { - children: ReactNode; - className?: string; - variant?: PageContentVariant; - loading?: boolean; - loadingState?: ReactNode; - error?: ReactNode; - empty?: boolean; - emptyState?: ReactNode; -}; -type PageShellContextBarProps = { - children: ReactNode; - className?: string; -}; -type PageShellFooterProps = { - children: ReactNode; - className?: string; -}; - -declare function PageShell({ children, className }: PageShellProps): react.JSX.Element; -/** Page-scoped flash / notice — place first under PageShell (below app HeaderBar). */ -declare function PageShellBanner({ children, className }: PageShellBannerProps): react.JSX.Element; -declare function PageShellIdentity({ title, subtitle, actions, breadcrumbs, className, }: PageShellIdentityProps): react.JSX.Element; -declare function PageShellControlBar({ tabs, filters, actions, className }: PageShellControlBarProps): react.JSX.Element; -declare function PageShellToolbar({ leading, trailing, onSubmit, onClear, submitLabel, clearLabel, className, }: PageShellToolbarProps): react.JSX.Element; -declare function PageShellAdvanced({ children, label, defaultOpen, className, }: PageShellAdvancedProps): react.JSX.Element; -declare function PageShellContextBar({ children, className }: PageShellContextBarProps): react.JSX.Element; -declare function PageShellCanvas({ children, className, variant, loading, loadingState, error, empty, emptyState, }: PageShellCanvasProps): react.JSX.Element; -/** Alias for PageShellCanvas */ -declare const PageContent: typeof PageShellCanvas; -declare function PageShellFooter({ children, className }: PageShellFooterProps): react.JSX.Element; -/** Aliases aligned with XFlickr-style naming */ -declare const PageBanner: typeof PageShellBanner; -declare const PageIdentity: typeof PageShellIdentity; -declare const PageToolbar: typeof PageShellToolbar; -declare const PageAdvanced: typeof PageShellAdvanced; -declare const PageFooter: typeof PageShellFooter; - -export { PageAdvanced, PageBanner, PageContent, type PageContentVariant, PageFooter, PageIdentity, PageShell, PageShellAdvanced, type PageShellAdvancedProps, PageShellBanner, type PageShellBannerProps, type PageShellBreadcrumbItem, PageShellCanvas, type PageShellCanvasProps, PageShellContextBar, type PageShellContextBarProps, PageShellControlBar, type PageShellControlBarProps, PageShellFooter, type PageShellFooterProps, PageShellIdentity, type PageShellIdentityProps, type PageShellProps, PageShellToolbar, type PageShellToolbarProps, PageToolbar }; +export { PageShell, PageShellBanner, PageShellIdentity, PageShellControlBar, PageShellToolbar, PageShellAdvanced, PageShellContextBar, PageShellCanvas, PageContent, PageShellFooter, PageBanner, PageIdentity, PageToolbar, PageAdvanced, PageFooter, } from "./components/PageShell"; +export type { PageContentVariant, PageShellBreadcrumbItem, PageShellProps, PageShellBannerProps, PageShellIdentityProps, PageShellControlBarProps, PageShellToolbarProps, PageShellAdvancedProps, PageShellCanvasProps, PageShellContextBarProps, PageShellFooterProps, } from "./types"; diff --git a/components/content/dist/lib/cn.d.ts b/components/content/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/content/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/content/dist/types.d.ts b/components/content/dist/types.d.ts new file mode 100644 index 0000000..241c76b --- /dev/null +++ b/components/content/dist/types.d.ts @@ -0,0 +1,63 @@ +import type { ReactNode } from "react"; +export type PageContentVariant = "plain" | "card" | "flush"; +export type PageShellBreadcrumbItem = { + label: string; + href?: string; + /** Optional leading icon (typically a Lucide element). */ + icon?: ReactNode; +}; +export type PageShellProps = { + children: ReactNode; + className?: string; +}; +/** Page-scoped flash / notice slot (place as first child of PageShell, under app header). */ +export type PageShellBannerProps = { + children: ReactNode; + className?: string; +}; +export type PageShellIdentityProps = { + title: string; + subtitle?: string; + actions?: ReactNode; + breadcrumbs?: PageShellBreadcrumbItem[]; + className?: string; +}; +export type PageShellControlBarProps = { + tabs?: ReactNode; + filters?: ReactNode; + actions?: ReactNode; + className?: string; +}; +export type PageShellToolbarProps = { + leading?: ReactNode; + trailing?: ReactNode; + onSubmit?: () => void; + onClear?: () => void; + submitLabel?: string; + clearLabel?: string; + className?: string; +}; +export type PageShellAdvancedProps = { + children: ReactNode; + label?: string; + defaultOpen?: boolean; + className?: string; +}; +export type PageShellCanvasProps = { + children: ReactNode; + className?: string; + variant?: PageContentVariant; + loading?: boolean; + loadingState?: ReactNode; + error?: ReactNode; + empty?: boolean; + emptyState?: ReactNode; +}; +export type PageShellContextBarProps = { + children: ReactNode; + className?: string; +}; +export type PageShellFooterProps = { + children: ReactNode; + className?: string; +}; diff --git a/components/content/package.json b/components/content/package.json index 2ac3257..7570dc0 100644 --- a/components/content/package.json +++ b/components/content/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-content", "version": "2.6.0", - "description": "Composable page layout shell for React — identity, toolbar, advanced filters, content, footer", + "description": "Composable page layout shell for React \u2014 identity, toolbar, advanced filters, content, footer", "type": "module", "license": "MIT", "author": "JOOservices", @@ -31,7 +31,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/content/tsup.config.ts b/components/content/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/content/tsup.config.ts +++ b/components/content/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/layout/dist/AppShell.test.d.ts b/components/layout/dist/AppShell.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/layout/dist/AppShell.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/layout/dist/components/AppShell.d.ts b/components/layout/dist/components/AppShell.d.ts new file mode 100644 index 0000000..9baaef8 --- /dev/null +++ b/components/layout/dist/components/AppShell.d.ts @@ -0,0 +1,44 @@ +import { type ComponentPropsWithoutRef } from "react"; +import { AppShellContext, useAppShell } from "../context"; +import type { AppShellBannerProps, AppShellBodyProps, AppShellBrandProps, AppShellHeaderActionsProps, AppShellHeaderCenterProps, AppShellHeaderMainProps, AppShellHeaderMobileProps, AppShellHeaderNavProps, AppShellHeaderProps, AppShellHeaderRowProps, AppShellMainFrameProps, AppShellMainProps, AppShellProps, AppShellSidebarProps } from "../types"; +import { AppShellHeaderBar } from "./HeaderBar"; +import { AppShellFooterBar } from "./FooterBar"; +import { AppShellSidebarNav, AppShellSidebarNavSection } from "./SidebarNav"; +export { AppShellContext, useAppShell }; +export { AppShellHeaderBar }; +export { AppShellFooterBar }; +export { AppShellSidebarNav, AppShellSidebarNavSection }; +export declare function AppShellRoot({ children, sidebarWidth, className }: AppShellProps): import("react").JSX.Element; +export declare function AppShellBanner({ children, className }: AppShellBannerProps): import("react").JSX.Element; +export declare function AppShellHeader({ children, className }: AppShellHeaderProps): import("react").JSX.Element; +export declare function AppShellHeaderRow({ children, className }: AppShellHeaderRowProps): import("react").JSX.Element; +export declare function AppShellBrand({ children, className }: AppShellBrandProps): import("react").JSX.Element; +export declare function AppShellHeaderMain({ children, className }: AppShellHeaderMainProps): import("react").JSX.Element; +export declare function AppShellHeaderNav({ children, className, ...props }: AppShellHeaderNavProps & ComponentPropsWithoutRef<"nav">): import("react").JSX.Element; +export declare function AppShellHeaderCenter({ children, className, ...props }: AppShellHeaderCenterProps & ComponentPropsWithoutRef<"div">): import("react").JSX.Element; +export declare function AppShellHeaderActions({ children, className }: AppShellHeaderActionsProps): import("react").JSX.Element; +export declare function AppShellHeaderMobile({ children, className }: AppShellHeaderMobileProps): import("react").JSX.Element; +export declare function AppShellBody({ children, className }: AppShellBodyProps): import("react").JSX.Element; +export declare function AppShellSidebar({ children, className, footer }: AppShellSidebarProps): import("react").JSX.Element; +export declare function AppShellMain({ children, className }: AppShellMainProps): import("react").JSX.Element; +export declare function AppShellMainFrame({ children, className }: AppShellMainFrameProps): import("react").JSX.Element; +type AppShellCompound = typeof AppShellRoot & { + Banner: typeof AppShellBanner; + Header: typeof AppShellHeader; + HeaderBar: typeof AppShellHeaderBar; + HeaderRow: typeof AppShellHeaderRow; + Brand: typeof AppShellBrand; + HeaderMain: typeof AppShellHeaderMain; + HeaderNav: typeof AppShellHeaderNav; + HeaderCenter: typeof AppShellHeaderCenter; + HeaderActions: typeof AppShellHeaderActions; + HeaderMobile: typeof AppShellHeaderMobile; + Body: typeof AppShellBody; + Sidebar: typeof AppShellSidebar; + SidebarNav: typeof AppShellSidebarNav; + SidebarNavSection: typeof AppShellSidebarNavSection; + Main: typeof AppShellMain; + MainFrame: typeof AppShellMainFrame; + FooterBar: typeof AppShellFooterBar; +}; +export declare const AppShell: AppShellCompound; diff --git a/components/layout/dist/components/FooterBar.d.ts b/components/layout/dist/components/FooterBar.d.ts new file mode 100644 index 0000000..7f39bfc --- /dev/null +++ b/components/layout/dist/components/FooterBar.d.ts @@ -0,0 +1,6 @@ +import type { AppShellFooterBarProps } from "../types"; +/** + * Exact HeaderBar chrome at the bottom of Main (brand | nav | search | actions + user). + * Dropdowns open upward. + */ +export declare function AppShellFooterBar({ className, ...props }: AppShellFooterBarProps): import("react").JSX.Element; diff --git a/components/layout/dist/components/HeaderBar.d.ts b/components/layout/dist/components/HeaderBar.d.ts new file mode 100644 index 0000000..ea167d2 --- /dev/null +++ b/components/layout/dist/components/HeaderBar.d.ts @@ -0,0 +1,2 @@ +import type { AppShellHeaderBarProps } from "../types"; +export declare function AppShellHeaderBar(props: AppShellHeaderBarProps): import("react").JSX.Element; diff --git a/components/layout/dist/components/NavMenu.d.ts b/components/layout/dist/components/NavMenu.d.ts new file mode 100644 index 0000000..47f63d2 --- /dev/null +++ b/components/layout/dist/components/NavMenu.d.ts @@ -0,0 +1,33 @@ +import { type ReactNode } from "react"; +import type { AppShellLinkComponent, AppShellNavItem } from "../types"; +declare function DefaultLink({ href, className, children, onClick, "data-demo": dataDemo, }: { + href: string; + className?: string; + children: React.ReactNode; + onClick?: () => void; + "data-demo"?: string; +}): import("react").JSX.Element; +export declare function NavItemLabel({ label, icon }: { + label: string; + icon?: ReactNode; +}): import("react").JSX.Element; +type NavItemControlProps = { + item: AppShellNavItem; + LinkComponent: AppShellLinkComponent; + variant?: "nav" | "menu" | "action"; + /** Footer menus open upward so they stay on-screen. */ + menuPlacement?: "down" | "up"; + /** Align popup to the end edge (right) — useful for footer/header actions. */ + menuAlign?: "start" | "end"; +}; +export declare function NavItemControl({ item, LinkComponent, variant, menuPlacement, menuAlign, }: NavItemControlProps): import("react").JSX.Element; +type NavItemListProps = { + items: AppShellNavItem[]; + LinkComponent?: AppShellLinkComponent; + variant?: "nav" | "action"; + menuPlacement?: "down" | "up"; + menuAlign?: "start" | "end"; + className?: string; +}; +export declare function NavItemList({ items, LinkComponent, variant, menuPlacement, menuAlign, className, }: NavItemListProps): import("react").JSX.Element; +export { DefaultLink }; diff --git a/components/layout/dist/components/SearchForm.d.ts b/components/layout/dist/components/SearchForm.d.ts new file mode 100644 index 0000000..5f560f7 --- /dev/null +++ b/components/layout/dist/components/SearchForm.d.ts @@ -0,0 +1,9 @@ +export type SearchFormProps = { + value: string; + onChange: (value: string) => void; + onSubmit?: (value: string) => void; + placeholder?: string; + className?: string; + id?: string; +}; +export declare function SearchForm({ value, onChange, onSubmit, placeholder, className, id, }: SearchFormProps): import("react").JSX.Element; diff --git a/components/layout/dist/components/ShellBar.d.ts b/components/layout/dist/components/ShellBar.d.ts new file mode 100644 index 0000000..45c420c --- /dev/null +++ b/components/layout/dist/components/ShellBar.d.ts @@ -0,0 +1,17 @@ +import type { AppShellHeaderBarProps, AppShellDropdownItem, AppShellLinkComponent } from "../types"; +export type ShellBarUserMenuProps = { + name: string; + avatarUrl?: string; + items: AppShellDropdownItem[]; + LinkComponent: AppShellLinkComponent; + menuPlacement?: "down" | "up"; + dataDemo?: string; +}; +export declare function ShellBarUserMenu({ name, avatarUrl, items, LinkComponent, menuPlacement, dataDemo, }: ShellBarUserMenuProps): import("react").JSX.Element; +export type ShellBarProps = Omit & { + brand?: AppShellHeaderBarProps["brand"]; + /** Opening direction for nav / action / user dropdowns. */ + menuPlacement?: "down" | "up"; +}; +/** Shared HeaderBar / FooterBar chrome (optional brand | nav | search | actions + user). */ +export declare function ShellBar({ brand, nav, search, beforeActions, actions, beforeUser, user, guest, linkComponent: LinkComponent, className, menuPlacement, }: ShellBarProps): import("react").JSX.Element; diff --git a/components/layout/dist/components/SidebarNav.d.ts b/components/layout/dist/components/SidebarNav.d.ts new file mode 100644 index 0000000..453fd09 --- /dev/null +++ b/components/layout/dist/components/SidebarNav.d.ts @@ -0,0 +1,13 @@ +import { type ReactNode } from "react"; +import type { AppShellSidebarNavProps } from "../types"; +/** + * Vertical sidebar nav. Items with `children` expand inline (accordion), not as popups. + * Auto-opens groups when any descendant is `active`. Closes the mobile drawer on leaf navigate. + */ +export declare function AppShellSidebarNav({ items, linkComponent: LinkComponent, className, onNavigate, }: AppShellSidebarNavProps): import("react").JSX.Element; +/** Optional section heading above a nav cluster (host-owned copy). */ +export declare function AppShellSidebarNavSection({ title, children, className, }: { + title: string; + children: ReactNode; + className?: string; +}): import("react").JSX.Element; diff --git a/components/layout/dist/context.d.ts b/components/layout/dist/context.d.ts new file mode 100644 index 0000000..9702f3d --- /dev/null +++ b/components/layout/dist/context.d.ts @@ -0,0 +1,3 @@ +import type { AppShellContextValue } from "./types"; +export declare const AppShellContext: import("react").Context; +export declare function useAppShell(): AppShellContextValue; diff --git a/components/layout/dist/index.d.ts b/components/layout/dist/index.d.ts index ed1e0e1..9c5ebad 100644 --- a/components/layout/dist/index.d.ts +++ b/components/layout/dist/index.d.ts @@ -1,211 +1,2 @@ -import * as react from 'react'; -import { ReactNode, ComponentType, ComponentPropsWithoutRef } from 'react'; - -type AppShellContextValue = { - mobileOpen: boolean; - setMobileOpen: (open: boolean) => void; - sidebarWidth: string; -}; -/** Router-agnostic link; apps wrap React Router / Inertia Link. */ -type AppShellLinkComponent = ComponentType<{ - href: string; - className?: string; - children: ReactNode; - onClick?: () => void; - "data-demo"?: string; -}>; -/** A navigable or actionable item. This is the default `AppShellNavItem` variant. */ -type AppShellNavItem = { - id?: string; - type?: "item"; - label: string; - /** - * Optional leading icon. Prefer a Lucide element, e.g. ``. - * Typed as ReactNode so consumers aren’t blocked by duplicate lucide/`@types/react` identities. - */ - icon?: ReactNode; - href?: string; - onClick?: () => void; - children?: AppShellDropdownItem[]; - active?: boolean; - /** Product-tour / demo spotlight id → rendered as `data-demo`. */ - dataDemo?: string; -}; -/** Non-interactive label used to group items inside a HeaderBar or FooterBar dropdown. */ -type AppShellNavMenuHeader = { - id?: string; - type: "header"; - label: string; -}; -/** Visual and semantic division between items inside a HeaderBar or FooterBar dropdown. */ -type AppShellNavMenuSeparator = { - id?: string; - type: "separator"; -}; -/** An entry allowed inside a HeaderBar / FooterBar dropdown or account menu. */ -type AppShellDropdownItem = AppShellNavItem | AppShellNavMenuHeader | AppShellNavMenuSeparator; -type AppShellHeaderBarBrand = { - href?: string; - logo?: ReactNode; - title?: string; -}; -type AppShellHeaderBarSearch = { - value: string; - onChange: (value: string) => void; - onSubmit?: (value: string) => void; - placeholder?: string; -}; -type AppShellHeaderBarUser = { - name: string; - avatarUrl?: string; - items: AppShellDropdownItem[]; - /** Product-tour / demo spotlight id on the account menu trigger → `data-demo`. */ - dataDemo?: string; -}; -type AppShellHeaderBarProps = { - brand: AppShellHeaderBarBrand; - nav: AppShellNavItem[]; - search: AppShellHeaderBarSearch; - /** Rendered before utility actions (e.g. a notification bell before a Docs menu). */ - beforeActions?: ReactNode; - actions?: AppShellNavItem[]; - /** Rendered after actions and before the user menu (e.g. notification bell). */ - beforeUser?: ReactNode; - user?: AppShellHeaderBarUser | null; - guest?: ReactNode; - linkComponent?: AppShellLinkComponent; - className?: string; -}; -/** - * Same chrome as HeaderBar (nav / search / actions / user), menus open up. - * `brand` is optional — omit it when the footer sits under Main (no logo column). - */ -type AppShellFooterBarProps = Omit & { - brand?: AppShellHeaderBarBrand; -}; -type AppShellProps = { - children: ReactNode; - /** CSS length for brand column and sidebar (default 16rem / w-64) */ - sidebarWidth?: string; - className?: string; -}; -type AppShellBannerProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderRowProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderProps = { - children: ReactNode; - className?: string; -}; -type AppShellBrandProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderMainProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderNavProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderCenterProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderActionsProps = { - children: ReactNode; - className?: string; -}; -type AppShellHeaderMobileProps = { - children: ReactNode; - className?: string; -}; -type AppShellBodyProps = { - children: ReactNode; - className?: string; -}; -type AppShellSidebarProps = { - children: ReactNode; - className?: string; - footer?: ReactNode; -}; -/** Vertical sidebar nav — `children` nest as inline accordion (not header popups). */ -type AppShellSidebarNavProps = { - items: AppShellNavItem[]; - linkComponent?: AppShellLinkComponent; - className?: string; - /** Extra callback after a leaf navigates (mobile drawer already closes). */ - onNavigate?: () => void; -}; -type AppShellMainProps = { - children: ReactNode; - className?: string; -}; -type AppShellMainFrameProps = { - children: ReactNode; - className?: string; -}; - -declare function useAppShell(): AppShellContextValue; - -declare function AppShellHeaderBar(props: AppShellHeaderBarProps): react.JSX.Element; - -/** - * Exact HeaderBar chrome at the bottom of Main (brand | nav | search | actions + user). - * Dropdowns open upward. - */ -declare function AppShellFooterBar({ className, ...props }: AppShellFooterBarProps): react.JSX.Element; - -/** - * Vertical sidebar nav. Items with `children` expand inline (accordion), not as popups. - * Auto-opens groups when any descendant is `active`. Closes the mobile drawer on leaf navigate. - */ -declare function AppShellSidebarNav({ items, linkComponent: LinkComponent, className, onNavigate, }: AppShellSidebarNavProps): react.JSX.Element; -/** Optional section heading above a nav cluster (host-owned copy). */ -declare function AppShellSidebarNavSection({ title, children, className, }: { - title: string; - children: ReactNode; - className?: string; -}): react.JSX.Element; - -declare function AppShellRoot({ children, sidebarWidth, className }: AppShellProps): react.JSX.Element; -declare function AppShellBanner({ children, className }: AppShellBannerProps): react.JSX.Element; -declare function AppShellHeader({ children, className }: AppShellHeaderProps): react.JSX.Element; -declare function AppShellHeaderRow({ children, className }: AppShellHeaderRowProps): react.JSX.Element; -declare function AppShellBrand({ children, className }: AppShellBrandProps): react.JSX.Element; -declare function AppShellHeaderMain({ children, className }: AppShellHeaderMainProps): react.JSX.Element; -declare function AppShellHeaderNav({ children, className, ...props }: AppShellHeaderNavProps & ComponentPropsWithoutRef<"nav">): react.JSX.Element; -declare function AppShellHeaderCenter({ children, className, ...props }: AppShellHeaderCenterProps & ComponentPropsWithoutRef<"div">): react.JSX.Element; -declare function AppShellHeaderActions({ children, className }: AppShellHeaderActionsProps): react.JSX.Element; -declare function AppShellHeaderMobile({ children, className }: AppShellHeaderMobileProps): react.JSX.Element; -declare function AppShellBody({ children, className }: AppShellBodyProps): react.JSX.Element; -declare function AppShellSidebar({ children, className, footer }: AppShellSidebarProps): react.JSX.Element; -declare function AppShellMain({ children, className }: AppShellMainProps): react.JSX.Element; -declare function AppShellMainFrame({ children, className }: AppShellMainFrameProps): react.JSX.Element; -type AppShellCompound = typeof AppShellRoot & { - Banner: typeof AppShellBanner; - Header: typeof AppShellHeader; - HeaderBar: typeof AppShellHeaderBar; - HeaderRow: typeof AppShellHeaderRow; - Brand: typeof AppShellBrand; - HeaderMain: typeof AppShellHeaderMain; - HeaderNav: typeof AppShellHeaderNav; - HeaderCenter: typeof AppShellHeaderCenter; - HeaderActions: typeof AppShellHeaderActions; - HeaderMobile: typeof AppShellHeaderMobile; - Body: typeof AppShellBody; - Sidebar: typeof AppShellSidebar; - SidebarNav: typeof AppShellSidebarNav; - SidebarNavSection: typeof AppShellSidebarNavSection; - Main: typeof AppShellMain; - MainFrame: typeof AppShellMainFrame; - FooterBar: typeof AppShellFooterBar; -}; -declare const AppShell: AppShellCompound; - -export { AppShell, AppShellBanner, type AppShellBannerProps, AppShellBody, type AppShellBodyProps, AppShellBrand, type AppShellBrandProps, type AppShellContextValue, type AppShellDropdownItem, AppShellFooterBar, type AppShellFooterBarProps, AppShellHeader, AppShellHeaderActions, type AppShellHeaderActionsProps, AppShellHeaderBar, type AppShellHeaderBarBrand, type AppShellHeaderBarProps, type AppShellHeaderBarSearch, type AppShellHeaderBarUser, AppShellHeaderCenter, type AppShellHeaderCenterProps, AppShellHeaderMain, type AppShellHeaderMainProps, AppShellHeaderMobile, type AppShellHeaderMobileProps, AppShellHeaderNav, type AppShellHeaderNavProps, type AppShellHeaderProps, AppShellHeaderRow, type AppShellHeaderRowProps, type AppShellLinkComponent, AppShellMain, AppShellMainFrame, type AppShellMainFrameProps, type AppShellMainProps, type AppShellNavItem, type AppShellNavMenuHeader, type AppShellNavMenuSeparator, type AppShellProps, AppShellSidebar, AppShellSidebarNav, type AppShellSidebarNavProps, AppShellSidebarNavSection, type AppShellSidebarProps, useAppShell }; +export { AppShell, AppShellBanner, AppShellBody, AppShellBrand, AppShellFooterBar, AppShellHeader, AppShellHeaderActions, AppShellHeaderBar, AppShellHeaderCenter, AppShellHeaderMain, AppShellHeaderMobile, AppShellHeaderNav, AppShellHeaderRow, AppShellMain, AppShellMainFrame, AppShellSidebar, AppShellSidebarNav, AppShellSidebarNavSection, useAppShell, } from "./components/AppShell"; +export type { AppShellBannerProps, AppShellBodyProps, AppShellBrandProps, AppShellContextValue, AppShellDropdownItem, AppShellFooterBarProps, AppShellHeaderActionsProps, AppShellHeaderBarBrand, AppShellHeaderBarProps, AppShellHeaderBarSearch, AppShellHeaderBarUser, AppShellHeaderCenterProps, AppShellHeaderMainProps, AppShellHeaderMobileProps, AppShellHeaderNavProps, AppShellHeaderProps, AppShellHeaderRowProps, AppShellLinkComponent, AppShellMainFrameProps, AppShellMainProps, AppShellNavMenuHeader, AppShellNavMenuSeparator, AppShellNavItem, AppShellProps, AppShellSidebarNavProps, AppShellSidebarProps, } from "./types"; diff --git a/components/layout/dist/lib/cn.d.ts b/components/layout/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/layout/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/layout/dist/types.d.ts b/components/layout/dist/types.d.ts new file mode 100644 index 0000000..7f2a10e --- /dev/null +++ b/components/layout/dist/types.d.ts @@ -0,0 +1,150 @@ +import type { ComponentType, ReactNode } from "react"; +export type AppShellContextValue = { + mobileOpen: boolean; + setMobileOpen: (open: boolean) => void; + sidebarWidth: string; +}; +/** Router-agnostic link; apps wrap React Router / Inertia Link. */ +export type AppShellLinkComponent = ComponentType<{ + href: string; + className?: string; + children: ReactNode; + onClick?: () => void; + "data-demo"?: string; +}>; +/** A navigable or actionable item. This is the default `AppShellNavItem` variant. */ +export type AppShellNavItem = { + id?: string; + type?: "item"; + label: string; + /** + * Optional leading icon. Prefer a Lucide element, e.g. ``. + * Typed as ReactNode so consumers aren’t blocked by duplicate lucide/`@types/react` identities. + */ + icon?: ReactNode; + href?: string; + onClick?: () => void; + children?: AppShellDropdownItem[]; + active?: boolean; + /** Product-tour / demo spotlight id → rendered as `data-demo`. */ + dataDemo?: string; +}; +/** Non-interactive label used to group items inside a HeaderBar or FooterBar dropdown. */ +export type AppShellNavMenuHeader = { + id?: string; + type: "header"; + label: string; +}; +/** Visual and semantic division between items inside a HeaderBar or FooterBar dropdown. */ +export type AppShellNavMenuSeparator = { + id?: string; + type: "separator"; +}; +/** An entry allowed inside a HeaderBar / FooterBar dropdown or account menu. */ +export type AppShellDropdownItem = AppShellNavItem | AppShellNavMenuHeader | AppShellNavMenuSeparator; +export type AppShellHeaderBarBrand = { + href?: string; + logo?: ReactNode; + title?: string; +}; +export type AppShellHeaderBarSearch = { + value: string; + onChange: (value: string) => void; + onSubmit?: (value: string) => void; + placeholder?: string; +}; +export type AppShellHeaderBarUser = { + name: string; + avatarUrl?: string; + items: AppShellDropdownItem[]; + /** Product-tour / demo spotlight id on the account menu trigger → `data-demo`. */ + dataDemo?: string; +}; +export type AppShellHeaderBarProps = { + brand: AppShellHeaderBarBrand; + nav: AppShellNavItem[]; + search: AppShellHeaderBarSearch; + /** Rendered before utility actions (e.g. a notification bell before a Docs menu). */ + beforeActions?: ReactNode; + actions?: AppShellNavItem[]; + /** Rendered after actions and before the user menu (e.g. notification bell). */ + beforeUser?: ReactNode; + user?: AppShellHeaderBarUser | null; + guest?: ReactNode; + linkComponent?: AppShellLinkComponent; + className?: string; +}; +/** + * Same chrome as HeaderBar (nav / search / actions / user), menus open up. + * `brand` is optional — omit it when the footer sits under Main (no logo column). + */ +export type AppShellFooterBarProps = Omit & { + brand?: AppShellHeaderBarBrand; +}; +export type AppShellProps = { + children: ReactNode; + /** CSS length for brand column and sidebar (default 16rem / w-64) */ + sidebarWidth?: string; + className?: string; +}; +export type AppShellBannerProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderRowProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderProps = { + children: ReactNode; + className?: string; +}; +export type AppShellBrandProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderMainProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderNavProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderCenterProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderActionsProps = { + children: ReactNode; + className?: string; +}; +export type AppShellHeaderMobileProps = { + children: ReactNode; + className?: string; +}; +export type AppShellBodyProps = { + children: ReactNode; + className?: string; +}; +export type AppShellSidebarProps = { + children: ReactNode; + className?: string; + footer?: ReactNode; +}; +/** Vertical sidebar nav — `children` nest as inline accordion (not header popups). */ +export type AppShellSidebarNavProps = { + items: AppShellNavItem[]; + linkComponent?: AppShellLinkComponent; + className?: string; + /** Extra callback after a leaf navigates (mobile drawer already closes). */ + onNavigate?: () => void; +}; +export type AppShellMainProps = { + children: ReactNode; + className?: string; +}; +export type AppShellMainFrameProps = { + children: ReactNode; + className?: string; +}; diff --git a/components/layout/package.json b/components/layout/package.json index e1a580b..a7d7e7c 100644 --- a/components/layout/package.json +++ b/components/layout/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-layout", "version": "2.6.0", - "description": "Master app shell for React — aligned top bar, sidebar, and main content (XFlickr-style grid)", + "description": "Master app shell for React \u2014 aligned top bar, sidebar, and main content (XFlickr-style grid)", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/layout/tsup.config.ts b/components/layout/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/layout/tsup.config.ts +++ b/components/layout/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/login/dist/Login.test.d.ts b/components/login/dist/Login.test.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/components/login/dist/Login.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/components/login/dist/components/LoginForm.d.ts b/components/login/dist/components/LoginForm.d.ts new file mode 100644 index 0000000..21f6409 --- /dev/null +++ b/components/login/dist/components/LoginForm.d.ts @@ -0,0 +1,2 @@ +import type { LoginFormProps } from "../types"; +export declare function LoginForm({ email, password, remember, onEmailChange, onPasswordChange, onRememberChange, onSubmit, fieldErrors, error, isSubmitting, showRemember, labels: labelsProp, heading, description, className, formClassName, }: LoginFormProps): import("react").JSX.Element; diff --git a/components/login/dist/components/LoginPage.d.ts b/components/login/dist/components/LoginPage.d.ts new file mode 100644 index 0000000..35d8ea5 --- /dev/null +++ b/components/login/dist/components/LoginPage.d.ts @@ -0,0 +1,2 @@ +import type { LoginPageProps } from "../types"; +export declare function LoginPage({ variant, brand, hero, banner, footer, onSubmit, fieldErrors, error, isSubmitting, showRemember, defaultRemember, labels, heading, description, className, initialEmail, }: LoginPageProps): import("react").JSX.Element; diff --git a/components/login/dist/components/LoginShell.d.ts b/components/login/dist/components/LoginShell.d.ts new file mode 100644 index 0000000..146f86a --- /dev/null +++ b/components/login/dist/components/LoginShell.d.ts @@ -0,0 +1,6 @@ +import type { LoginShellProps } from "../types"; +/** Default gallery decorative slabs — export for host composition. */ +export declare function LoginGalleryMedia(): import("react").JSX.Element; +/** Default split floating photo-stack — export for host composition. */ +export declare function LoginSplitMedia(): import("react").JSX.Element; +export declare function LoginShell({ variant, ...props }: LoginShellProps): import("react").JSX.Element; diff --git a/components/login/dist/index.d.ts b/components/login/dist/index.d.ts index 2e85963..5c287a8 100644 --- a/components/login/dist/index.d.ts +++ b/components/login/dist/index.d.ts @@ -1,173 +1,4 @@ -import * as react from 'react'; -import { ReactNode, FormEvent } from 'react'; - -type LoginShellVariant = "split" | "gallery" | "card"; -type LoginCredentials = { - email: string; - password: string; - remember: boolean; -}; -type LoginFieldErrors = { - email?: string; - password?: string; -}; -type LoginFormLabels = { - email: string; - password: string; - remember: string; - submit: string; - submitting: string; - emailPlaceholder: string; - passwordPlaceholder: string; - showPassword: string; - hidePassword: string; -}; -type LoginBrand = { - /** Product / app name (default form + hero layouts). */ - name?: ReactNode; - /** Short supporting line (form under name; gallery hero pill by default). */ - tagline?: ReactNode; - /** Optional mark / logo (icon or image) on form brand block. */ - mark?: ReactNode; - /** - * Show brand block above the form (before heading). - * Default: `true` for `split` / `card`, `false` for `gallery`. - */ - showOnForm?: boolean; - /** - * Custom form-side brand content. When set (and `showOnForm` is true), - * replaces the default mark + name + tagline layout. - */ - formContent?: ReactNode; - /** - * Show brand on the hero panel (gallery top bar; split has no separate hero brand row). - * Default: `true`. - */ - showOnHero?: boolean; - /** - * Custom hero-side brand row. When set (and `showOnHero` is true), - * replaces the default gallery name + tagline pill. - */ - heroContent?: ReactNode; -}; -type LoginHeroFeature = { - icon?: ReactNode; - title: ReactNode; - description?: ReactNode; -}; -type LoginHero = { - /** Small pill above the title. */ - eyebrow?: ReactNode; - /** When false, hide eyebrow even if content is set. Default true. */ - showEyebrow?: boolean; - title?: ReactNode; - /** When false, hide title. Default true. */ - showTitle?: boolean; - subtitle?: ReactNode; - /** When false, hide subtitle. Default true. */ - showSubtitle?: boolean; - /** Split variant feature list. */ - features?: LoginHeroFeature[]; - /** When false, hide features list. Default true. */ - showFeatures?: boolean; - /** - * Decorative media (gallery color slabs / split photo stack). - * - omit → package default media (when `showMedia` is true) - * - `null` → render nothing - * - `ReactNode` → custom media - */ - media?: ReactNode | null; - /** - * Show decorative media region. - * When false, nothing is rendered (defaults and `media` ignored). Default true. - */ - showMedia?: boolean; - /** - * Replace the entire hero foreground (eyebrow / title / subtitle / features / media). - * Background still uses package defaults unless `background` is set. - */ - content?: ReactNode; - /** - * Custom hero background layer (absolute). When set, replaces the default - * gradients / grid for that variant’s hero panel. - */ - background?: ReactNode | null; - /** When false, no background layer. Default true. */ - showBackground?: boolean; -}; -type LoginFormProps = { - email: string; - password: string; - remember?: boolean; - onEmailChange: (value: string) => void; - onPasswordChange: (value: string) => void; - onRememberChange?: (value: boolean) => void; - /** - * Called with credentials after preventDefault. - * Host maps API errors into `fieldErrors` / `error`. - */ - onSubmit: (credentials: LoginCredentials) => void | Promise; - fieldErrors?: LoginFieldErrors; - /** Form-level alert (when field errors are absent). */ - error?: string | null; - isSubmitting?: boolean; - showRemember?: boolean; - /** Defaults to true. */ - defaultRemember?: boolean; - labels?: Partial; - /** Optional title block above the fields (inside the form card for split/gallery). */ - heading?: ReactNode; - description?: ReactNode; - className?: string; - formClassName?: string; -}; -type LoginShellProps = { - variant?: LoginShellVariant; - brand?: LoginBrand; - hero?: LoginHero; - /** Optional top banner (demo notice, env warning). */ - banner?: ReactNode; - /** Footer under the form (legal, links). */ - footer?: ReactNode; - /** Typically ``. */ - children: ReactNode; - className?: string; -}; -type LoginPageProps = { - variant?: LoginShellVariant; - brand?: LoginBrand; - hero?: LoginHero; - banner?: ReactNode; - footer?: ReactNode; - /** - * Host auth submit. Throw or reject to leave handling to the host via - * `fieldErrors` / `error` props (controlled errors). - */ - onSubmit: (credentials: LoginCredentials) => void | Promise; - fieldErrors?: LoginFieldErrors; - error?: string | null; - isSubmitting?: boolean; - showRemember?: boolean; - /** Initial remember checkbox (default true). */ - defaultRemember?: boolean; - labels?: Partial; - /** Form card heading (defaults by variant). */ - heading?: ReactNode; - description?: ReactNode; - className?: string; - /** Initial email (uncontrolled field state after mount). */ - initialEmail?: string; - onFormEvent?: (event: FormEvent) => void; -}; - -declare function LoginForm({ email, password, remember, onEmailChange, onPasswordChange, onRememberChange, onSubmit, fieldErrors, error, isSubmitting, showRemember, labels: labelsProp, heading, description, className, formClassName, }: LoginFormProps): react.JSX.Element; - -/** Default gallery decorative slabs — export for host composition. */ -declare function LoginGalleryMedia(): react.JSX.Element; -/** Default split floating photo-stack — export for host composition. */ -declare function LoginSplitMedia(): react.JSX.Element; -declare function LoginShell({ variant, ...props }: LoginShellProps): react.JSX.Element; - -declare function LoginPage({ variant, brand, hero, banner, footer, onSubmit, fieldErrors, error, isSubmitting, showRemember, defaultRemember, labels, heading, description, className, initialEmail, }: LoginPageProps): react.JSX.Element; - -export { type LoginBrand, type LoginCredentials, type LoginFieldErrors, LoginForm, type LoginFormLabels, type LoginFormProps, LoginGalleryMedia, type LoginHero, type LoginHeroFeature, LoginPage, type LoginPageProps, LoginShell, type LoginShellProps, type LoginShellVariant, LoginSplitMedia }; +export { LoginForm } from "./components/LoginForm"; +export { LoginShell, LoginGalleryMedia, LoginSplitMedia, } from "./components/LoginShell"; +export { LoginPage } from "./components/LoginPage"; +export type { LoginBrand, LoginCredentials, LoginFieldErrors, LoginFormLabels, LoginFormProps, LoginHero, LoginHeroFeature, LoginPageProps, LoginShellProps, LoginShellVariant, } from "./types"; diff --git a/components/login/dist/lib/cn.d.ts b/components/login/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/login/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/login/dist/types.d.ts b/components/login/dist/types.d.ts new file mode 100644 index 0000000..94c4c50 --- /dev/null +++ b/components/login/dist/types.d.ts @@ -0,0 +1,159 @@ +import type { FormEvent, ReactNode } from "react"; +export type LoginShellVariant = "split" | "gallery" | "card"; +export type LoginCredentials = { + email: string; + password: string; + remember: boolean; +}; +export type LoginFieldErrors = { + email?: string; + password?: string; +}; +export type LoginFormLabels = { + email: string; + password: string; + remember: string; + submit: string; + submitting: string; + emailPlaceholder: string; + passwordPlaceholder: string; + showPassword: string; + hidePassword: string; +}; +export type LoginBrand = { + /** Product / app name (default form + hero layouts). */ + name?: ReactNode; + /** Short supporting line (form under name; gallery hero pill by default). */ + tagline?: ReactNode; + /** Optional mark / logo (icon or image) on form brand block. */ + mark?: ReactNode; + /** + * Show brand block above the form (before heading). + * Default: `true` for `split` / `card`, `false` for `gallery`. + */ + showOnForm?: boolean; + /** + * Custom form-side brand content. When set (and `showOnForm` is true), + * replaces the default mark + name + tagline layout. + */ + formContent?: ReactNode; + /** + * Show brand on the hero panel (gallery top bar; split has no separate hero brand row). + * Default: `true`. + */ + showOnHero?: boolean; + /** + * Custom hero-side brand row. When set (and `showOnHero` is true), + * replaces the default gallery name + tagline pill. + */ + heroContent?: ReactNode; +}; +export type LoginHeroFeature = { + icon?: ReactNode; + title: ReactNode; + description?: ReactNode; +}; +export type LoginHero = { + /** Small pill above the title. */ + eyebrow?: ReactNode; + /** When false, hide eyebrow even if content is set. Default true. */ + showEyebrow?: boolean; + title?: ReactNode; + /** When false, hide title. Default true. */ + showTitle?: boolean; + subtitle?: ReactNode; + /** When false, hide subtitle. Default true. */ + showSubtitle?: boolean; + /** Split variant feature list. */ + features?: LoginHeroFeature[]; + /** When false, hide features list. Default true. */ + showFeatures?: boolean; + /** + * Decorative media (gallery color slabs / split photo stack). + * - omit → package default media (when `showMedia` is true) + * - `null` → render nothing + * - `ReactNode` → custom media + */ + media?: ReactNode | null; + /** + * Show decorative media region. + * When false, nothing is rendered (defaults and `media` ignored). Default true. + */ + showMedia?: boolean; + /** + * Replace the entire hero foreground (eyebrow / title / subtitle / features / media). + * Background still uses package defaults unless `background` is set. + */ + content?: ReactNode; + /** + * Custom hero background layer (absolute). When set, replaces the default + * gradients / grid for that variant’s hero panel. + */ + background?: ReactNode | null; + /** When false, no background layer. Default true. */ + showBackground?: boolean; +}; +export type LoginFormProps = { + email: string; + password: string; + remember?: boolean; + onEmailChange: (value: string) => void; + onPasswordChange: (value: string) => void; + onRememberChange?: (value: boolean) => void; + /** + * Called with credentials after preventDefault. + * Host maps API errors into `fieldErrors` / `error`. + */ + onSubmit: (credentials: LoginCredentials) => void | Promise; + fieldErrors?: LoginFieldErrors; + /** Form-level alert (when field errors are absent). */ + error?: string | null; + isSubmitting?: boolean; + showRemember?: boolean; + /** Defaults to true. */ + defaultRemember?: boolean; + labels?: Partial; + /** Optional title block above the fields (inside the form card for split/gallery). */ + heading?: ReactNode; + description?: ReactNode; + className?: string; + formClassName?: string; +}; +export type LoginShellProps = { + variant?: LoginShellVariant; + brand?: LoginBrand; + hero?: LoginHero; + /** Optional top banner (demo notice, env warning). */ + banner?: ReactNode; + /** Footer under the form (legal, links). */ + footer?: ReactNode; + /** Typically ``. */ + children: ReactNode; + className?: string; +}; +export type LoginPageProps = { + variant?: LoginShellVariant; + brand?: LoginBrand; + hero?: LoginHero; + banner?: ReactNode; + footer?: ReactNode; + /** + * Host auth submit. Throw or reject to leave handling to the host via + * `fieldErrors` / `error` props (controlled errors). + */ + onSubmit: (credentials: LoginCredentials) => void | Promise; + fieldErrors?: LoginFieldErrors; + error?: string | null; + isSubmitting?: boolean; + showRemember?: boolean; + /** Initial remember checkbox (default true). */ + defaultRemember?: boolean; + labels?: Partial; + /** Form card heading (defaults by variant). */ + heading?: ReactNode; + description?: ReactNode; + className?: string; + /** Initial email (uncontrolled field state after mount). */ + initialEmail?: string; + onFormEvent?: (event: FormEvent) => void; +}; diff --git a/components/login/package.json b/components/login/package.json index e618d61..d310821 100644 --- a/components/login/package.json +++ b/components/login/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-login", "version": "2.6.0", - "description": "Shared login page shells and form for React — presentational auth UI for host apps", + "description": "Shared login page shells and form for React \u2014 presentational auth UI for host apps", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/login/tsup.config.ts b/components/login/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/login/tsup.config.ts +++ b/components/login/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/media/dist/Media.test.d.ts b/components/media/dist/Media.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/media/dist/Media.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/media/dist/components/MediaGrid.d.ts b/components/media/dist/components/MediaGrid.d.ts new file mode 100644 index 0000000..cd159cd --- /dev/null +++ b/components/media/dist/components/MediaGrid.d.ts @@ -0,0 +1,2 @@ +import type { MediaGridProps } from "../types"; +export declare function MediaGrid({ layout, columns, gap, aspect, children, className, ...props }: MediaGridProps): import("react").JSX.Element; diff --git a/components/media/dist/components/MediaItem.d.ts b/components/media/dist/components/MediaItem.d.ts new file mode 100644 index 0000000..56b3b0d --- /dev/null +++ b/components/media/dist/components/MediaItem.d.ts @@ -0,0 +1,2 @@ +import type { MediaItemProps } from "../types"; +export declare function MediaItem({ src, alt, header, footer, placeholder, href, external, onOpen, aspect: aspectProp, className, ...props }: MediaItemProps): import("react").JSX.Element; diff --git a/components/media/dist/components/MediaLightbox.d.ts b/components/media/dist/components/MediaLightbox.d.ts new file mode 100644 index 0000000..748a8c3 --- /dev/null +++ b/components/media/dist/components/MediaLightbox.d.ts @@ -0,0 +1,2 @@ +import type { MediaLightboxProps } from "../types"; +export declare function MediaLightbox({ items, index, title, onClose, onChangeIndex, showDownload, className, zIndexClassName, }: MediaLightboxProps): import("react").ReactPortal | null; diff --git a/components/media/dist/components/media-grid-context.d.ts b/components/media/dist/components/media-grid-context.d.ts new file mode 100644 index 0000000..8ff9100 --- /dev/null +++ b/components/media/dist/components/media-grid-context.d.ts @@ -0,0 +1,11 @@ +import { type ReactNode } from "react"; +import type { MediaGridAspect, MediaGridLayout } from "../types"; +export type MediaGridContextValue = { + layout: MediaGridLayout; + aspect: MediaGridAspect; +}; +export declare function MediaGridProvider({ value, children, }: { + value: MediaGridContextValue; + children: ReactNode; +}): import("react").JSX.Element; +export declare function useMediaGridContext(): MediaGridContextValue; diff --git a/components/media/dist/index.d.ts b/components/media/dist/index.d.ts index 38f03d2..95683e3 100644 --- a/components/media/dist/index.d.ts +++ b/components/media/dist/index.d.ts @@ -1,82 +1,4 @@ -import * as react from 'react'; -import { HTMLAttributes, ReactNode } from 'react'; - -/** Column count breakpoints (1–6). Static Tailwind classes are resolved from these. */ -type MediaColumnCount = 1 | 2 | 3 | 4 | 5 | 6; -type MediaGridColumns = { - base?: MediaColumnCount; - sm?: MediaColumnCount; - md?: MediaColumnCount; - lg?: MediaColumnCount; - xl?: MediaColumnCount; -}; -type MediaGridLayout = "masonry" | "grid"; -/** Uniform cell aspect for `layout="grid"` only. Masonry always uses natural height. */ -type MediaGridAspect = "auto" | "square" | "video"; -type MediaGridProps = HTMLAttributes & { - /** `masonry` = CSS multi-column (variable height). `grid` = equal cells. */ - layout?: MediaGridLayout; - /** Responsive column counts. Defaults: masonry 2/3/4/5; grid 2/3. */ - columns?: MediaGridColumns; - /** Gap between items (`gap-*` Tailwind). Default 3. */ - gap?: 2 | 3 | 4 | 5 | 6; - /** Cell aspect when `layout="grid"`. Default `video`. Ignored for masonry. */ - aspect?: MediaGridAspect; - children?: ReactNode; - className?: string; -}; -type MediaItemProps = Omit, "onClick"> & { - /** Image URL. Omit to show placeholder. */ - src?: string | null; - /** Accessible alt text for the image. */ - alt: string; - /** Optional caption / meta above the image. */ - header?: ReactNode; - /** Optional caption / meta below the image. */ - footer?: ReactNode; - /** Placeholder when `src` is missing. */ - placeholder?: ReactNode; - /** - * Navigate to this URL when the media is activated. - * Mutually exclusive with `onOpen` for the media surface (prefer one). - */ - href?: string; - /** Open in a new tab when `href` is set. */ - external?: boolean; - /** Called when the media surface is activated (button). Use for lightbox. */ - onOpen?: () => void; - /** Aspect override for this item when parent grid uses uniform cells. */ - aspect?: MediaGridAspect; - className?: string; -}; -type MediaLightboxItem = { - /** Full-size image URL shown in the lightbox. */ - src: string; - /** Accessible alt / caption fragment. */ - alt?: string; - /** Optional download URL (defaults to `src`). */ - downloadUrl?: string; - /** Optional 1-based position label override. */ - position?: number; -}; -type MediaLightboxProps = { - items: MediaLightboxItem[]; - /** Active index, or `null` when closed. */ - index: number | null; - /** Dialog title (prefix for “N of M”). */ - title?: string; - onClose: () => void; - onChangeIndex: (index: number) => void; - /** Show download control. Default true. */ - showDownload?: boolean; - className?: string; - zIndexClassName?: string; -}; - -declare function MediaGrid({ layout, columns, gap, aspect, children, className, ...props }: MediaGridProps): react.JSX.Element; - -declare function MediaItem({ src, alt, header, footer, placeholder, href, external, onOpen, aspect: aspectProp, className, ...props }: MediaItemProps): react.JSX.Element; - -declare function MediaLightbox({ items, index, title, onClose, onChangeIndex, showDownload, className, zIndexClassName, }: MediaLightboxProps): react.ReactPortal | null; - -export { type MediaColumnCount, MediaGrid, type MediaGridAspect, type MediaGridColumns, type MediaGridLayout, type MediaGridProps, MediaItem, type MediaItemProps, MediaLightbox, type MediaLightboxItem, type MediaLightboxProps }; +export { MediaGrid } from "./components/MediaGrid"; +export { MediaItem } from "./components/MediaItem"; +export { MediaLightbox } from "./components/MediaLightbox"; +export type { MediaColumnCount, MediaGridAspect, MediaGridColumns, MediaGridLayout, MediaGridProps, MediaItemProps, MediaLightboxItem, MediaLightboxProps, } from "./types"; diff --git a/components/media/dist/lib/cn.d.ts b/components/media/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/media/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/media/dist/lib/columns.d.ts b/components/media/dist/lib/columns.d.ts new file mode 100644 index 0000000..a96ab7f --- /dev/null +++ b/components/media/dist/lib/columns.d.ts @@ -0,0 +1,6 @@ +import type { MediaGridColumns } from "../types"; +type Gap = 2 | 3 | 4 | 5 | 6; +export declare function gapClassName(gap?: Gap): string; +export declare function masonryClassName(columns?: MediaGridColumns): string; +export declare function gridClassName(columns?: MediaGridColumns): string; +export {}; diff --git a/components/media/dist/types.d.ts b/components/media/dist/types.d.ts new file mode 100644 index 0000000..229b6b4 --- /dev/null +++ b/components/media/dist/types.d.ts @@ -0,0 +1,72 @@ +import type { HTMLAttributes, ReactNode } from "react"; +/** Column count breakpoints (1–6). Static Tailwind classes are resolved from these. */ +export type MediaColumnCount = 1 | 2 | 3 | 4 | 5 | 6; +export type MediaGridColumns = { + base?: MediaColumnCount; + sm?: MediaColumnCount; + md?: MediaColumnCount; + lg?: MediaColumnCount; + xl?: MediaColumnCount; +}; +export type MediaGridLayout = "masonry" | "grid"; +/** Uniform cell aspect for `layout="grid"` only. Masonry always uses natural height. */ +export type MediaGridAspect = "auto" | "square" | "video"; +export type MediaGridProps = HTMLAttributes & { + /** `masonry` = CSS multi-column (variable height). `grid` = equal cells. */ + layout?: MediaGridLayout; + /** Responsive column counts. Defaults: masonry 2/3/4/5; grid 2/3. */ + columns?: MediaGridColumns; + /** Gap between items (`gap-*` Tailwind). Default 3. */ + gap?: 2 | 3 | 4 | 5 | 6; + /** Cell aspect when `layout="grid"`. Default `video`. Ignored for masonry. */ + aspect?: MediaGridAspect; + children?: ReactNode; + className?: string; +}; +export type MediaItemProps = Omit, "onClick"> & { + /** Image URL. Omit to show placeholder. */ + src?: string | null; + /** Accessible alt text for the image. */ + alt: string; + /** Optional caption / meta above the image. */ + header?: ReactNode; + /** Optional caption / meta below the image. */ + footer?: ReactNode; + /** Placeholder when `src` is missing. */ + placeholder?: ReactNode; + /** + * Navigate to this URL when the media is activated. + * Mutually exclusive with `onOpen` for the media surface (prefer one). + */ + href?: string; + /** Open in a new tab when `href` is set. */ + external?: boolean; + /** Called when the media surface is activated (button). Use for lightbox. */ + onOpen?: () => void; + /** Aspect override for this item when parent grid uses uniform cells. */ + aspect?: MediaGridAspect; + className?: string; +}; +export type MediaLightboxItem = { + /** Full-size image URL shown in the lightbox. */ + src: string; + /** Accessible alt / caption fragment. */ + alt?: string; + /** Optional download URL (defaults to `src`). */ + downloadUrl?: string; + /** Optional 1-based position label override. */ + position?: number; +}; +export type MediaLightboxProps = { + items: MediaLightboxItem[]; + /** Active index, or `null` when closed. */ + index: number | null; + /** Dialog title (prefix for “N of M”). */ + title?: string; + onClose: () => void; + onChangeIndex: (index: number) => void; + /** Show download control. Default true. */ + showDownload?: boolean; + className?: string; + zIndexClassName?: string; +}; diff --git a/components/media/package.json b/components/media/package.json index b8e0417..f7bfc01 100644 --- a/components/media/package.json +++ b/components/media/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-media", "version": "2.6.0", - "description": "Shared media gallery primitives for React — MediaGrid (masonry/grid), MediaItem, MediaLightbox", + "description": "Shared media gallery primitives for React \u2014 MediaGrid (masonry/grid), MediaItem, MediaLightbox", "type": "module", "license": "MIT", "author": "JOOservices", @@ -32,7 +32,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/media/tsup.config.ts b/components/media/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/media/tsup.config.ts +++ b/components/media/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/modal/dist/Modal.test.d.ts b/components/modal/dist/Modal.test.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/components/modal/dist/Modal.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/components/modal/dist/components/Modal.d.ts b/components/modal/dist/components/Modal.d.ts new file mode 100644 index 0000000..9016a7a --- /dev/null +++ b/components/modal/dist/components/Modal.d.ts @@ -0,0 +1,12 @@ +import type { ModalProps } from "../types"; +import { ModalBody } from "./ModalBody"; +import { ModalFooter } from "./ModalFooter"; +import { ModalHeader } from "./ModalHeader"; +declare function ModalRoot({ open, children, onClose, closeDisabled, closeOnBackdropClick, closeOnEscape, size, className, panelClassName, titleId, zIndexClassName, }: ModalProps): import("react").ReactPortal | null; +type ModalCompound = typeof ModalRoot & { + Header: typeof ModalHeader; + Body: typeof ModalBody; + Footer: typeof ModalFooter; +}; +export declare const Modal: ModalCompound; +export {}; diff --git a/components/modal/dist/components/ModalBody.d.ts b/components/modal/dist/components/ModalBody.d.ts new file mode 100644 index 0000000..427aa99 --- /dev/null +++ b/components/modal/dist/components/ModalBody.d.ts @@ -0,0 +1,2 @@ +import type { ModalBodyProps } from "../types"; +export declare function ModalBody({ children, className }: ModalBodyProps): import("react").JSX.Element; diff --git a/components/modal/dist/components/ModalFooter.d.ts b/components/modal/dist/components/ModalFooter.d.ts new file mode 100644 index 0000000..cecc3ab --- /dev/null +++ b/components/modal/dist/components/ModalFooter.d.ts @@ -0,0 +1,2 @@ +import type { ModalFooterProps } from "../types"; +export declare function ModalFooter({ children, className }: ModalFooterProps): import("react").JSX.Element; diff --git a/components/modal/dist/components/ModalHeader.d.ts b/components/modal/dist/components/ModalHeader.d.ts new file mode 100644 index 0000000..4a92577 --- /dev/null +++ b/components/modal/dist/components/ModalHeader.d.ts @@ -0,0 +1,2 @@ +import type { ModalHeaderProps } from "../types"; +export declare function ModalHeader({ title, center, actions, children, className, showClose, }: ModalHeaderProps): import("react").JSX.Element; diff --git a/components/modal/dist/components/modal-context.d.ts b/components/modal/dist/components/modal-context.d.ts new file mode 100644 index 0000000..58d71dd --- /dev/null +++ b/components/modal/dist/components/modal-context.d.ts @@ -0,0 +1,7 @@ +export type ModalContextValue = { + onClose?: () => void; + closeDisabled: boolean; + titleId?: string; +}; +export declare const ModalContext: import("react").Context; +export declare function useModalContext(): ModalContextValue; diff --git a/components/modal/dist/index.d.ts b/components/modal/dist/index.d.ts index db4ca11..c256328 100644 --- a/components/modal/dist/index.d.ts +++ b/components/modal/dist/index.d.ts @@ -1,52 +1,5 @@ -import * as react from 'react'; -import { ReactNode } from 'react'; - -type ModalSize = "sm" | "md" | "lg" | "xl"; -type ModalProps = { - open: boolean; - children: ReactNode; - onClose?: () => void; - closeDisabled?: boolean; - /** When false, backdrop clicks do not call `onClose`. Default true. */ - closeOnBackdropClick?: boolean; - /** When false, Escape does not call `onClose`. Default true. */ - closeOnEscape?: boolean; - size?: ModalSize; - className?: string; - panelClassName?: string; - titleId?: string; - /** Extra class on the overlay for stacking (e.g. Tailwind `z-[120]`). */ - zIndexClassName?: string; -}; -type ModalHeaderProps = { - title?: ReactNode; - center?: ReactNode; - actions?: ReactNode; - children?: ReactNode; - className?: string; - showClose?: boolean; -}; -type ModalBodyProps = { - children: ReactNode; - className?: string; -}; -type ModalFooterProps = { - children: ReactNode; - className?: string; -}; - -declare function ModalBody({ children, className }: ModalBodyProps): react.JSX.Element; - -declare function ModalFooter({ children, className }: ModalFooterProps): react.JSX.Element; - -declare function ModalHeader({ title, center, actions, children, className, showClose, }: ModalHeaderProps): react.JSX.Element; - -declare function ModalRoot({ open, children, onClose, closeDisabled, closeOnBackdropClick, closeOnEscape, size, className, panelClassName, titleId, zIndexClassName, }: ModalProps): react.ReactPortal | null; -type ModalCompound = typeof ModalRoot & { - Header: typeof ModalHeader; - Body: typeof ModalBody; - Footer: typeof ModalFooter; -}; -declare const Modal: ModalCompound; - -export { Modal, ModalBody, type ModalBodyProps, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, type ModalProps, type ModalSize }; +export { Modal } from "./components/Modal"; +export { ModalHeader } from "./components/ModalHeader"; +export { ModalBody } from "./components/ModalBody"; +export { ModalFooter } from "./components/ModalFooter"; +export type { ModalBodyProps, ModalFooterProps, ModalHeaderProps, ModalProps, ModalSize, } from "./types"; diff --git a/components/modal/dist/lib/cn.d.ts b/components/modal/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/modal/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/modal/dist/types.d.ts b/components/modal/dist/types.d.ts new file mode 100644 index 0000000..85cd913 --- /dev/null +++ b/components/modal/dist/types.d.ts @@ -0,0 +1,34 @@ +import type { ReactNode } from "react"; +export type ModalSize = "sm" | "md" | "lg" | "xl"; +export type ModalProps = { + open: boolean; + children: ReactNode; + onClose?: () => void; + closeDisabled?: boolean; + /** When false, backdrop clicks do not call `onClose`. Default true. */ + closeOnBackdropClick?: boolean; + /** When false, Escape does not call `onClose`. Default true. */ + closeOnEscape?: boolean; + size?: ModalSize; + className?: string; + panelClassName?: string; + titleId?: string; + /** Extra class on the overlay for stacking (e.g. Tailwind `z-[120]`). */ + zIndexClassName?: string; +}; +export type ModalHeaderProps = { + title?: ReactNode; + center?: ReactNode; + actions?: ReactNode; + children?: ReactNode; + className?: string; + showClose?: boolean; +}; +export type ModalBodyProps = { + children: ReactNode; + className?: string; +}; +export type ModalFooterProps = { + children: ReactNode; + className?: string; +}; diff --git a/components/modal/package.json b/components/modal/package.json index dff55a4..71def6b 100644 --- a/components/modal/package.json +++ b/components/modal/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-modal", "version": "2.6.0", - "description": "Shared modal dialog primitives for React — compound Modal with Header, Body, and Footer", + "description": "Shared modal dialog primitives for React \u2014 compound Modal with Header, Body, and Footer", "type": "module", "license": "MIT", "author": "JOOservices", @@ -31,7 +31,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/modal/tsup.config.ts b/components/modal/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/modal/tsup.config.ts +++ b/components/modal/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/notifications/dist/components/NotificationBell.d.ts b/components/notifications/dist/components/NotificationBell.d.ts new file mode 100644 index 0000000..6f86059 --- /dev/null +++ b/components/notifications/dist/components/NotificationBell.d.ts @@ -0,0 +1,2 @@ +import type { NotificationBellProps } from "../types"; +export declare function NotificationBell({ items, unreadCount, open, defaultOpen, onOpenChange, ariaLabel, className, dropdownClassName, onSelect, ...dropdownProps }: NotificationBellProps): import("react").JSX.Element; diff --git a/components/notifications/dist/components/NotificationDropdown.d.ts b/components/notifications/dist/components/NotificationDropdown.d.ts new file mode 100644 index 0000000..63a81cf --- /dev/null +++ b/components/notifications/dist/components/NotificationDropdown.d.ts @@ -0,0 +1,2 @@ +import type { NotificationDropdownProps } from "../types"; +export declare function NotificationDropdown({ items, loading, title, emptyMessage, onSelect, selectLabel, onAcknowledge, acknowledgeLabel, className }: NotificationDropdownProps): import("react").JSX.Element; diff --git a/components/notifications/dist/index.d.ts b/components/notifications/dist/index.d.ts index c3f1728..f8a35b0 100644 --- a/components/notifications/dist/index.d.ts +++ b/components/notifications/dist/index.d.ts @@ -1,41 +1,3 @@ -import * as react from 'react'; -import { ReactNode } from 'react'; - -type NotificationTone = "neutral" | "info" | "success" | "warning" | "danger"; -type NotificationItem = { - id: string; - title: ReactNode; - message?: ReactNode; - timestamp?: ReactNode; - icon?: ReactNode; - tone?: NotificationTone; - unread?: boolean; - acknowledged?: boolean; -}; -type NotificationDropdownProps = { - items: NotificationItem[]; - loading?: boolean; - title?: ReactNode; - emptyMessage?: ReactNode; - onSelect?: (item: NotificationItem) => void; - /** Visible label for the optional select/open action. */ - selectLabel?: string; - onAcknowledge?: (item: NotificationItem) => void; - acknowledgeLabel?: string; - className?: string; -}; -type NotificationBellProps = NotificationDropdownProps & { - unreadCount?: number; - open?: boolean; - defaultOpen?: boolean; - onOpenChange?: (open: boolean) => void; - ariaLabel?: string; - className?: string; - dropdownClassName?: string; -}; - -declare function NotificationBell({ items, unreadCount, open, defaultOpen, onOpenChange, ariaLabel, className, dropdownClassName, onSelect, ...dropdownProps }: NotificationBellProps): react.JSX.Element; - -declare function NotificationDropdown({ items, loading, title, emptyMessage, onSelect, selectLabel, onAcknowledge, acknowledgeLabel, className }: NotificationDropdownProps): react.JSX.Element; - -export { NotificationBell, type NotificationBellProps, NotificationDropdown, type NotificationDropdownProps, type NotificationItem, type NotificationTone }; +export { NotificationBell } from "./components/NotificationBell"; +export { NotificationDropdown } from "./components/NotificationDropdown"; +export type { NotificationBellProps, NotificationDropdownProps, NotificationItem, NotificationTone } from "./types"; diff --git a/components/notifications/dist/lib/cn.d.ts b/components/notifications/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/notifications/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/notifications/dist/notifications.test.d.ts b/components/notifications/dist/notifications.test.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/components/notifications/dist/notifications.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/components/notifications/dist/types.d.ts b/components/notifications/dist/types.d.ts new file mode 100644 index 0000000..a819062 --- /dev/null +++ b/components/notifications/dist/types.d.ts @@ -0,0 +1,33 @@ +import type { ReactNode } from "react"; +export type NotificationTone = "neutral" | "info" | "success" | "warning" | "danger"; +export type NotificationItem = { + id: string; + title: ReactNode; + message?: ReactNode; + timestamp?: ReactNode; + icon?: ReactNode; + tone?: NotificationTone; + unread?: boolean; + acknowledged?: boolean; +}; +export type NotificationDropdownProps = { + items: NotificationItem[]; + loading?: boolean; + title?: ReactNode; + emptyMessage?: ReactNode; + onSelect?: (item: NotificationItem) => void; + /** Visible label for the optional select/open action. */ + selectLabel?: string; + onAcknowledge?: (item: NotificationItem) => void; + acknowledgeLabel?: string; + className?: string; +}; +export type NotificationBellProps = NotificationDropdownProps & { + unreadCount?: number; + open?: boolean; + defaultOpen?: boolean; + onOpenChange?: (open: boolean) => void; + ariaLabel?: string; + className?: string; + dropdownClassName?: string; +}; diff --git a/components/notifications/package.json b/components/notifications/package.json index b6c4031..63fece2 100644 --- a/components/notifications/package.json +++ b/components/notifications/package.json @@ -31,7 +31,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/notifications/tsup.config.ts b/components/notifications/tsup.config.ts index 1f82dae..f9193e5 100644 --- a/components/notifications/tsup.config.ts +++ b/components/notifications/tsup.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "tsup"; export default defineConfig({ - entry: ["src/index.ts"], format: ["esm"], dts: true, sourcemap: true, clean: true, + entry: ["src/index.ts"], format: ["esm"], dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], treeshake: true, }); diff --git a/components/table/dist/DataTable.test.d.ts b/components/table/dist/DataTable.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/table/dist/DataTable.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/table/dist/components/ActionBar.d.ts b/components/table/dist/components/ActionBar.d.ts new file mode 100644 index 0000000..d1bdcef --- /dev/null +++ b/components/table/dist/components/ActionBar.d.ts @@ -0,0 +1,5 @@ +import type { ReactNode } from "react"; +export declare function ActionBar({ children, className }: { + children: ReactNode; + className?: string; +}): import("react").JSX.Element; diff --git a/components/table/dist/components/DataTable.d.ts b/components/table/dist/components/DataTable.d.ts new file mode 100644 index 0000000..c23c585 --- /dev/null +++ b/components/table/dist/components/DataTable.d.ts @@ -0,0 +1,2 @@ +import type { DataTableProps } from "../types"; +export declare function DataTable({ title, subtitle, headerActions, toolbar, columns, data, rowKey, rowActions, actionsLabel, selection, sort, pagination, emptyMessage, loading, className, footer, }: DataTableProps): import("react").JSX.Element; diff --git a/components/table/dist/components/TableActionButton.d.ts b/components/table/dist/components/TableActionButton.d.ts new file mode 100644 index 0000000..3b123af --- /dev/null +++ b/components/table/dist/components/TableActionButton.d.ts @@ -0,0 +1,10 @@ +import type { TableAction } from "../types"; +export declare function TableActions({ actions }: { + actions: TableAction[]; +}): import("react").JSX.Element | null; +export declare function TableActionButton({ action }: { + action: TableAction; +}): import("react").JSX.Element; +export declare function TableHeaderIconAction({ action }: { + action: TableAction; +}): import("react").JSX.Element; diff --git a/components/table/dist/components/TableActionButton.test.d.ts b/components/table/dist/components/TableActionButton.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/table/dist/components/TableActionButton.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/table/dist/components/ui/button.d.ts b/components/table/dist/components/ui/button.d.ts new file mode 100644 index 0000000..379dfd3 --- /dev/null +++ b/components/table/dist/components/ui/button.d.ts @@ -0,0 +1,16 @@ +import * as React from "react"; +import { type VariantProps } from "class-variance-authority"; +declare const buttonVariants: (props?: ({ + variant?: "default" | "destructive" | "ghost" | "secondary" | null | undefined; + size?: "icon" | "sm" | null | undefined; +} & import("class-variance-authority/types").ClassProp) | undefined) => string; +export type ButtonProps = React.ButtonHTMLAttributes & VariantProps & { + asChild?: boolean; +}; +export declare const Button: React.ForwardRefExoticComponent & VariantProps<(props?: ({ + variant?: "default" | "destructive" | "ghost" | "secondary" | null | undefined; + size?: "icon" | "sm" | null | undefined; +} & import("class-variance-authority/types").ClassProp) | undefined) => string> & { + asChild?: boolean; +} & React.RefAttributes>; +export { buttonVariants }; diff --git a/components/table/dist/components/ui/checkbox.d.ts b/components/table/dist/components/ui/checkbox.d.ts new file mode 100644 index 0000000..f688fd4 --- /dev/null +++ b/components/table/dist/components/ui/checkbox.d.ts @@ -0,0 +1,4 @@ +import * as React from "react"; +import * as CheckboxPrimitive from "@radix-ui/react-checkbox"; +export type CheckboxProps = React.ComponentPropsWithoutRef; +export declare function Checkbox({ className, ...props }: CheckboxProps): React.JSX.Element; diff --git a/components/table/dist/components/ui/dropdown-menu.d.ts b/components/table/dist/components/ui/dropdown-menu.d.ts new file mode 100644 index 0000000..9434ed7 --- /dev/null +++ b/components/table/dist/components/ui/dropdown-menu.d.ts @@ -0,0 +1,14 @@ +import * as React from "react"; +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; +export declare const DropdownMenu: React.FC; +export declare const DropdownMenuTrigger: React.ForwardRefExoticComponent>; +export declare const DropdownMenuGroup: React.ForwardRefExoticComponent>; +export declare const DropdownMenuPortal: React.FC; +export declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; +export declare function DropdownMenuLabel({ className, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; +export declare function DropdownMenuSeparator({ className, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; +export declare function DropdownMenuFooter({ className, ...props }: React.ComponentPropsWithoutRef<"div">): React.JSX.Element; +export declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentPropsWithoutRef & { + inset?: boolean; + variant?: "default" | "danger"; +}): React.JSX.Element; diff --git a/components/table/dist/components/ui/table.d.ts b/components/table/dist/components/ui/table.d.ts new file mode 100644 index 0000000..8805f2b --- /dev/null +++ b/components/table/dist/components/ui/table.d.ts @@ -0,0 +1,7 @@ +import * as React from "react"; +export declare function Table({ className, ...props }: React.HTMLAttributes): React.JSX.Element; +export declare function TableHeader({ className, ...props }: React.HTMLAttributes): React.JSX.Element; +export declare function TableBody({ className, ...props }: React.HTMLAttributes): React.JSX.Element; +export declare function TableRow({ className, ...props }: React.HTMLAttributes): React.JSX.Element; +export declare function TableHead({ className, ...props }: React.ThHTMLAttributes): React.JSX.Element; +export declare function TableCell({ className, ...props }: React.TdHTMLAttributes): React.JSX.Element; diff --git a/components/table/dist/index.d.ts b/components/table/dist/index.d.ts index 940e584..1acb3fa 100644 --- a/components/table/dist/index.d.ts +++ b/components/table/dist/index.d.ts @@ -1,152 +1,8 @@ -import * as React from 'react'; -import { ReactNode } from 'react'; -import * as class_variance_authority_types from 'class-variance-authority/types'; -import { VariantProps } from 'class-variance-authority'; -import * as CheckboxPrimitive from '@radix-ui/react-checkbox'; -import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; - -type SortDirection = "asc" | "desc"; -type TableActionItem = { - type?: "item"; - label: string; - icon?: ReactNode; - onClick: () => void; - disabled?: boolean; - variant?: "default" | "danger"; -} | { - type: "separator"; -}; -type TableAction = { - type: "single"; - label: string; - icon?: ReactNode; - onClick: () => void; - disabled?: boolean; - variant?: "default" | "secondary" | "ghost" | "destructive"; - /** - * Hover/focus tip via `@jooservices/react-ui` `Tooltip`. - * Defaults to `label`. Pass `null` to disable. - */ - tooltip?: string | null; -} | { - type: "multi"; - label: string; - icon?: ReactNode; - items: TableActionItem[]; - /** Optional in-menu heading (omit for items-only menus). */ - menuLabel?: string; - /** Optional footer below items (preceded by a separator when set). */ - menuFooter?: ReactNode; - disabled?: boolean; - variant?: "default" | "secondary" | "ghost" | "destructive"; - /** Same as single — defaults to `label`; `null` disables. */ - tooltip?: string | null; -}; -type DataTableColumn = { - key: string; - label: string; - sortable?: boolean; - align?: "left" | "right" | "center"; - className?: string; - render: (row: T) => ReactNode; -}; -type DataTablePagination = { - page: number; - lastPage: number; - total?: number; - onPageChange: (page: number) => void; -}; -type DataTableSort = { - key: string; - direction: SortDirection; - onChange: (key: string, direction: SortDirection) => void; -}; -type DataTableSelection = { - selectedKeys: Set; - onChange: (keys: Set) => void; - isRowSelectable?: (row: T) => boolean; - rowLabel?: (row: T) => string; -}; -type DataTableProps = { - title?: string; - subtitle?: ReactNode; - /** - * Header trailing slot — compose with `@jooservices/react-action-buttons` - * (`ActionBar` / `Button` / `ActionMenu`) or table `TableHeaderIconAction`. - */ - headerActions?: ReactNode; - toolbar?: ReactNode; - columns: DataTableColumn[]; - data: T[]; - rowKey: (row: T) => string; - /** - * Last column cell — return action-buttons (`ActionBar` + `Button` / `ActionMenu`) - * or table `TableActions` helpers. - */ - rowActions?: (row: T) => ReactNode; - actionsLabel?: string; - selection?: DataTableSelection; - sort?: DataTableSort; - pagination?: DataTablePagination; - emptyMessage?: ReactNode; - loading?: boolean; - className?: string; - footer?: ReactNode; -}; -type PaginatedMeta = { - current_page: number; - last_page: number; - per_page: number; - total: number; - sort?: string; - direction?: SortDirection; -}; - -declare function DataTable({ title, subtitle, headerActions, toolbar, columns, data, rowKey, rowActions, actionsLabel, selection, sort, pagination, emptyMessage, loading, className, footer, }: DataTableProps): React.JSX.Element; - -declare function ActionBar({ children, className }: { - children: ReactNode; - className?: string; -}): React.JSX.Element; - -declare function TableActions({ actions }: { - actions: TableAction[]; -}): React.JSX.Element | null; -declare function TableActionButton({ action }: { - action: TableAction; -}): React.JSX.Element; -declare function TableHeaderIconAction({ action }: { - action: TableAction; -}): React.JSX.Element; - -declare const Button: React.ForwardRefExoticComponent & VariantProps<(props?: ({ - variant?: "default" | "secondary" | "ghost" | "destructive" | null | undefined; - size?: "sm" | "icon" | null | undefined; -} & class_variance_authority_types.ClassProp) | undefined) => string> & { - asChild?: boolean; -} & React.RefAttributes>; - -type CheckboxProps = React.ComponentPropsWithoutRef; -declare function Checkbox({ className, ...props }: CheckboxProps): React.JSX.Element; - -declare const DropdownMenu: React.FC; -declare const DropdownMenuTrigger: React.ForwardRefExoticComponent>; -declare const DropdownMenuGroup: React.ForwardRefExoticComponent>; -declare const DropdownMenuPortal: React.FC; -declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; -declare function DropdownMenuLabel({ className, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; -declare function DropdownMenuSeparator({ className, ...props }: React.ComponentPropsWithoutRef): React.JSX.Element; -declare function DropdownMenuFooter({ className, ...props }: React.ComponentPropsWithoutRef<"div">): React.JSX.Element; -declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentPropsWithoutRef & { - inset?: boolean; - variant?: "default" | "danger"; -}): React.JSX.Element; - -declare function Table({ className, ...props }: React.HTMLAttributes): React.JSX.Element; -declare function TableHeader({ className, ...props }: React.HTMLAttributes): React.JSX.Element; -declare function TableBody({ className, ...props }: React.HTMLAttributes): React.JSX.Element; -declare function TableRow({ className, ...props }: React.HTMLAttributes): React.JSX.Element; -declare function TableHead({ className, ...props }: React.ThHTMLAttributes): React.JSX.Element; -declare function TableCell({ className, ...props }: React.TdHTMLAttributes): React.JSX.Element; - -export { ActionBar, Button, Checkbox, DataTable, type DataTableColumn, type DataTablePagination, type DataTableProps, type DataTableSelection, type DataTableSort, DropdownMenu, DropdownMenuContent, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuTrigger, type PaginatedMeta, type SortDirection, Table, type TableAction, TableActionButton, type TableActionItem, TableActions, TableBody, TableCell, TableHead, TableHeader, TableHeaderIconAction, TableRow }; +export { DataTable } from "./components/DataTable"; +export { ActionBar } from "./components/ActionBar"; +export { TableActions, TableActionButton, TableHeaderIconAction } from "./components/TableActionButton"; +export { Button } from "./components/ui/button"; +export { Checkbox } from "./components/ui/checkbox"; +export { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuFooter, DropdownMenuTrigger, } from "./components/ui/dropdown-menu"; +export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./components/ui/table"; +export type { DataTableColumn, DataTablePagination, DataTableProps, DataTableSelection, DataTableSort, PaginatedMeta, SortDirection, TableAction, TableActionItem, } from "./types"; diff --git a/components/table/dist/lib/cn.d.ts b/components/table/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/table/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/table/dist/types.d.ts b/components/table/dist/types.d.ts new file mode 100644 index 0000000..bf0e240 --- /dev/null +++ b/components/table/dist/types.d.ts @@ -0,0 +1,97 @@ +import type { ReactNode } from "react"; +export type SortDirection = "asc" | "desc"; +export type TableActionItem = { + type?: "item"; + label: string; + icon?: ReactNode; + onClick: () => void; + disabled?: boolean; + variant?: "default" | "danger"; +} | { + type: "separator"; +}; +export type TableAction = { + type: "single"; + label: string; + icon?: ReactNode; + onClick: () => void; + disabled?: boolean; + variant?: "default" | "secondary" | "ghost" | "destructive"; + /** + * Hover/focus tip via `@jooservices/react-ui` `Tooltip`. + * Defaults to `label`. Pass `null` to disable. + */ + tooltip?: string | null; +} | { + type: "multi"; + label: string; + icon?: ReactNode; + items: TableActionItem[]; + /** Optional in-menu heading (omit for items-only menus). */ + menuLabel?: string; + /** Optional footer below items (preceded by a separator when set). */ + menuFooter?: ReactNode; + disabled?: boolean; + variant?: "default" | "secondary" | "ghost" | "destructive"; + /** Same as single — defaults to `label`; `null` disables. */ + tooltip?: string | null; +}; +export type DataTableColumn = { + key: string; + label: string; + sortable?: boolean; + align?: "left" | "right" | "center"; + className?: string; + render: (row: T) => ReactNode; +}; +export type DataTablePagination = { + page: number; + lastPage: number; + total?: number; + onPageChange: (page: number) => void; +}; +export type DataTableSort = { + key: string; + direction: SortDirection; + onChange: (key: string, direction: SortDirection) => void; +}; +export type DataTableSelection = { + selectedKeys: Set; + onChange: (keys: Set) => void; + isRowSelectable?: (row: T) => boolean; + rowLabel?: (row: T) => string; +}; +export type DataTableProps = { + title?: string; + subtitle?: ReactNode; + /** + * Header trailing slot — compose with `@jooservices/react-action-buttons` + * (`ActionBar` / `Button` / `ActionMenu`) or table `TableHeaderIconAction`. + */ + headerActions?: ReactNode; + toolbar?: ReactNode; + columns: DataTableColumn[]; + data: T[]; + rowKey: (row: T) => string; + /** + * Last column cell — return action-buttons (`ActionBar` + `Button` / `ActionMenu`) + * or table `TableActions` helpers. + */ + rowActions?: (row: T) => ReactNode; + actionsLabel?: string; + selection?: DataTableSelection; + sort?: DataTableSort; + pagination?: DataTablePagination; + emptyMessage?: ReactNode; + loading?: boolean; + className?: string; + footer?: ReactNode; +}; +export type PaginatedMeta = { + current_page: number; + last_page: number; + per_page: number; + total: number; + sort?: string; + direction?: SortDirection; +}; diff --git a/components/table/package-lock.json b/components/table/package-lock.json index 6761011..c4027ec 100644 --- a/components/table/package-lock.json +++ b/components/table/package-lock.json @@ -30,7 +30,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -53,18 +53,18 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", + "@testing-library/jest-dom": "^7.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", + "@testing-library/user-event": "^14.6.3", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.0.16", - "jsdom": "^27.0.1", - "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "jsdom": "^30.0.1", + "lucide-react": "^1.28.0", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "peerDependencies": { @@ -2296,6 +2296,346 @@ "@types/react": "^19.2.0" } }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", @@ -4279,17 +4619,38 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/ufo": { diff --git a/components/table/package.json b/components/table/package.json index be69620..c69c8cb 100644 --- a/components/table/package.json +++ b/components/table/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-table", "version": "2.6.0", - "description": "Ready-to-use DataTable for React — shadcn-style UI with TanStack Table behaviors", + "description": "Ready-to-use DataTable for React \u2014 shadcn-style UI with TanStack Table behaviors", "type": "module", "license": "MIT", "author": "JOOservices", @@ -31,7 +31,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", @@ -66,7 +66,7 @@ "react": "^19.2.7", "react-dom": "^19.2.7", "tsup": "^8.5.0", - "typescript": "^5.9.3", + "typescript": "^7.0.2", "vitest": "^4.0.16" }, "publishConfig": { diff --git a/components/table/tsup.config.ts b/components/table/tsup.config.ts index e7aec1f..0ee3184 100644 --- a/components/table/tsup.config.ts +++ b/components/table/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react", "@jooservices/react-ui"], diff --git a/components/toast/dist/components/Toaster.d.ts b/components/toast/dist/components/Toaster.d.ts new file mode 100644 index 0000000..3713621 --- /dev/null +++ b/components/toast/dist/components/Toaster.d.ts @@ -0,0 +1,2 @@ +import type { ToasterProps } from "../types"; +export declare function Toaster({ position, maxVisible, className, }: ToasterProps): import("react").JSX.Element | null; diff --git a/components/toast/dist/index.d.ts b/components/toast/dist/index.d.ts index 778890f..18b1acc 100644 --- a/components/toast/dist/index.d.ts +++ b/components/toast/dist/index.d.ts @@ -1,83 +1,3 @@ -import * as react from 'react'; -import { ReactNode } from 'react'; - -type ToastVariant = "success" | "error" | "info" | "warning" | "loading"; -type ToastPosition = "top-right" | "top-center" | "bottom-right"; - -type ToastAction = { - /** Visible text for a footer action. */ - label: ReactNode; - /** Optional leading icon beside the action text. */ - icon?: ReactNode; - ariaLabel?: string; - onClick: () => void; -} | { - /** Icon-only footer actions must have an accessible name. */ - icon: ReactNode; - ariaLabel: string; - label?: never; - onClick: () => void; -}; -type ToastOptions = { - /** Replaces an existing toast with the same id (or sets a stable id). */ - id?: string; - /** Optional heading beside the status or custom header icon. */ - title?: string; - /** Replaces the default variant icon in the toast header. */ - icon?: ReactNode; - /** - * Auto-dismiss delay in ms. - * Use `0` or `Infinity` for sticky toasts (no auto-dismiss). - */ - durationMs?: number; - /** Primary footer action. Supports visible text, optional icon, or an accessible icon-only action. */ - action?: ToastAction; - /** Secondary footer action. */ - secondaryAction?: ToastAction; -}; -type ToastItem = { - id: string; - message: string; - variant: ToastVariant; - durationMs: number; - title?: string; - icon?: ReactNode; - action?: ToastAction; - secondaryAction?: ToastAction; - createdAt: number; -}; -type ToasterProps = { - /** Viewport placement. Default `top-right`. */ - position?: ToastPosition; - /** Max visible toasts (oldest beyond the cap are dropped). Default `5`. */ - maxVisible?: number; - className?: string; -}; -type ToastPromiseMessages = { - loading: string; - success: string | ((data: T) => string); - error: string | ((error: unknown) => string); -}; - -declare function Toaster({ position, maxVisible, className, }: ToasterProps): react.JSX.Element | null; - -type ToastListener = (toasts: ToastItem[]) => void; -declare function dismissToast(id: string): void; -declare function dismissAllToasts(): void; -declare function subscribeToasts(listener: ToastListener): () => void; -declare const toast: { - success(message: string, optionsOrDuration?: number | ToastOptions): string; - error(message: string, optionsOrDuration?: number | ToastOptions): string; - info(message: string, optionsOrDuration?: number | ToastOptions): string; - warning(message: string, optionsOrDuration?: number | ToastOptions): string; - loading(message: string, optionsOrDuration?: number | ToastOptions): string; - dismiss: typeof dismissToast; - dismissAll: typeof dismissAllToasts; - promise(promise: Promise, messages: ToastPromiseMessages, options?: Omit & { - durationMs?: number; - }): Promise; -}; -/** Clears active toasts — for unit tests only. */ -declare function resetToastsForTests(): void; - -export { type ToastAction, type ToastItem, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastVariant, Toaster, type ToasterProps, dismissAllToasts, dismissToast, resetToastsForTests, subscribeToasts, toast }; +export { Toaster } from "./components/Toaster"; +export { dismissAllToasts, dismissToast, resetToastsForTests, subscribeToasts, toast, } from "./store"; +export type { ToastAction, ToastItem, ToastOptions, ToastPosition, ToastPromiseMessages, ToastVariant, ToasterProps, } from "./types"; diff --git a/components/toast/dist/lib/cn.d.ts b/components/toast/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/toast/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/toast/dist/store.d.ts b/components/toast/dist/store.d.ts new file mode 100644 index 0000000..4bace7e --- /dev/null +++ b/components/toast/dist/store.d.ts @@ -0,0 +1,24 @@ +import type { ToastItem, ToastOptions, ToastPromiseMessages } from "./types"; +type ToastListener = (toasts: ToastItem[]) => void; +export declare function dismissToast(id: string): void; +export declare function dismissAllToasts(): void; +export declare function subscribeToasts(listener: ToastListener): () => void; +/** Used by `` so the store and viewport share one cap. */ +export declare function setToastMaxVisible(next: number): void; +export declare function pauseToastTimer(id: string): void; +export declare function resumeToastTimer(id: string): void; +export declare const toast: { + success(message: string, optionsOrDuration?: number | ToastOptions): string; + error(message: string, optionsOrDuration?: number | ToastOptions): string; + info(message: string, optionsOrDuration?: number | ToastOptions): string; + warning(message: string, optionsOrDuration?: number | ToastOptions): string; + loading(message: string, optionsOrDuration?: number | ToastOptions): string; + dismiss: typeof dismissToast; + dismissAll: typeof dismissAllToasts; + promise(promise: Promise, messages: ToastPromiseMessages, options?: Omit & { + durationMs?: number; + }): Promise; +}; +/** Clears active toasts — for unit tests only. */ +export declare function resetToastsForTests(): void; +export {}; diff --git a/components/toast/dist/toast.test.d.ts b/components/toast/dist/toast.test.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/components/toast/dist/toast.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/components/toast/dist/types.d.ts b/components/toast/dist/types.d.ts new file mode 100644 index 0000000..3b88222 --- /dev/null +++ b/components/toast/dist/types.d.ts @@ -0,0 +1,57 @@ +export type ToastVariant = "success" | "error" | "info" | "warning" | "loading"; +export type ToastPosition = "top-right" | "top-center" | "bottom-right"; +import type { ReactNode } from "react"; +export type ToastAction = { + /** Visible text for a footer action. */ + label: ReactNode; + /** Optional leading icon beside the action text. */ + icon?: ReactNode; + ariaLabel?: string; + onClick: () => void; +} | { + /** Icon-only footer actions must have an accessible name. */ + icon: ReactNode; + ariaLabel: string; + label?: never; + onClick: () => void; +}; +export type ToastOptions = { + /** Replaces an existing toast with the same id (or sets a stable id). */ + id?: string; + /** Optional heading beside the status or custom header icon. */ + title?: string; + /** Replaces the default variant icon in the toast header. */ + icon?: ReactNode; + /** + * Auto-dismiss delay in ms. + * Use `0` or `Infinity` for sticky toasts (no auto-dismiss). + */ + durationMs?: number; + /** Primary footer action. Supports visible text, optional icon, or an accessible icon-only action. */ + action?: ToastAction; + /** Secondary footer action. */ + secondaryAction?: ToastAction; +}; +export type ToastItem = { + id: string; + message: string; + variant: ToastVariant; + durationMs: number; + title?: string; + icon?: ReactNode; + action?: ToastAction; + secondaryAction?: ToastAction; + createdAt: number; +}; +export type ToasterProps = { + /** Viewport placement. Default `top-right`. */ + position?: ToastPosition; + /** Max visible toasts (oldest beyond the cap are dropped). Default `5`. */ + maxVisible?: number; + className?: string; +}; +export type ToastPromiseMessages = { + loading: string; + success: string | ((data: T) => string); + error: string | ((error: unknown) => string); +}; diff --git a/components/toast/package.json b/components/toast/package.json index 4986fc6..0e4e707 100644 --- a/components/toast/package.json +++ b/components/toast/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-toast", "version": "2.6.0", - "description": "Global toast stack for React — imperative toast API and Toaster viewport", + "description": "Global toast stack for React \u2014 imperative toast API and Toaster viewport", "type": "module", "license": "MIT", "author": "JOOservices", @@ -31,7 +31,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/toast/tsup.config.ts b/components/toast/tsup.config.ts index 3f0c75c..6ab0369 100644 --- a/components/toast/tsup.config.ts +++ b/components/toast/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/components/ui/dist/components/Badge.d.ts b/components/ui/dist/components/Badge.d.ts new file mode 100644 index 0000000..78679c6 --- /dev/null +++ b/components/ui/dist/components/Badge.d.ts @@ -0,0 +1,2 @@ +import type { BadgeProps } from "../types"; +export declare function Badge({ children, tone, className }: BadgeProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/BusyRegion.d.ts b/components/ui/dist/components/BusyRegion.d.ts new file mode 100644 index 0000000..53e400d --- /dev/null +++ b/components/ui/dist/components/BusyRegion.d.ts @@ -0,0 +1,7 @@ +import type { BusyRegionProps } from "../types"; +/** + * Scoped wait for a panel, table, or card group. + * - `busy && empty` → page-style centered indicator (primary content not ready) + * - `busy && !empty` → overlay spinner; children stay visible underneath + */ +export declare function BusyRegion({ busy, empty, label, size, className, children, }: BusyRegionProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/EmptyState.d.ts b/components/ui/dist/components/EmptyState.d.ts new file mode 100644 index 0000000..852f704 --- /dev/null +++ b/components/ui/dist/components/EmptyState.d.ts @@ -0,0 +1,2 @@ +import type { EmptyStateProps } from "../types"; +export declare function EmptyState({ title, description, message, icon, action, variant, className, }: EmptyStateProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/FilterChipGroup.d.ts b/components/ui/dist/components/FilterChipGroup.d.ts new file mode 100644 index 0000000..90d5201 --- /dev/null +++ b/components/ui/dist/components/FilterChipGroup.d.ts @@ -0,0 +1,2 @@ +import type { FilterChipGroupProps } from "../types"; +export declare function FilterChipGroup({ value, options, onChange, className, "aria-label": ariaLabel, }: FilterChipGroupProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/Input.d.ts b/components/ui/dist/components/Input.d.ts new file mode 100644 index 0000000..ef62026 --- /dev/null +++ b/components/ui/dist/components/Input.d.ts @@ -0,0 +1,6 @@ +export declare const Input: import("react").ForwardRefExoticComponent, "size"> & { + label?: string; + error?: string; + size?: import("..").InputSize; + containerClassName?: string; +} & import("react").RefAttributes>; diff --git a/components/ui/dist/components/LoadingIndicator.d.ts b/components/ui/dist/components/LoadingIndicator.d.ts new file mode 100644 index 0000000..fe1d674 --- /dev/null +++ b/components/ui/dist/components/LoadingIndicator.d.ts @@ -0,0 +1,8 @@ +import type { LoadingIndicatorProps, PageLoadingProps } from "../types"; +/** + * Shared wait affordance for API / async work. + * Prefer {@link PageLoading} for empty primary content and {@link BusyRegion} for scoped groups. + */ +export declare function LoadingIndicator({ label, size, className, }: LoadingIndicatorProps): import("react").JSX.Element; +/** Page / canvas wait when primary content is empty and an API is required. */ +export declare function PageLoading({ label, size, className }: PageLoadingProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/Pagination.d.ts b/components/ui/dist/components/Pagination.d.ts new file mode 100644 index 0000000..4e0034a --- /dev/null +++ b/components/ui/dist/components/Pagination.d.ts @@ -0,0 +1,2 @@ +import type { PaginationProps } from "../types"; +export declare function Pagination({ page, lastPage, onPageChange, total, mode, itemLabel, className, }: PaginationProps): import("react").JSX.Element | null; diff --git a/components/ui/dist/components/ProgressBar.d.ts b/components/ui/dist/components/ProgressBar.d.ts new file mode 100644 index 0000000..d7c1a53 --- /dev/null +++ b/components/ui/dist/components/ProgressBar.d.ts @@ -0,0 +1,2 @@ +import type { ProgressBarProps } from "../types"; +export declare function ProgressBar({ value, max, className, showLabel, tone, }: ProgressBarProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/RadioGroup.d.ts b/components/ui/dist/components/RadioGroup.d.ts new file mode 100644 index 0000000..dc01d7a --- /dev/null +++ b/components/ui/dist/components/RadioGroup.d.ts @@ -0,0 +1,2 @@ +import type { RadioGroupProps } from "../types"; +export declare function RadioGroup({ value, options, onChange, label, error, orientation, className, }: RadioGroupProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/RemovableFilterChips.d.ts b/components/ui/dist/components/RemovableFilterChips.d.ts new file mode 100644 index 0000000..f2ae02c --- /dev/null +++ b/components/ui/dist/components/RemovableFilterChips.d.ts @@ -0,0 +1,2 @@ +import type { RemovableFilterChipsProps } from "../types"; +export declare function RemovableFilterChips({ chips, onRemove, onClearAll, className, }: RemovableFilterChipsProps): import("react").JSX.Element | null; diff --git a/components/ui/dist/components/ResultsMeta.d.ts b/components/ui/dist/components/ResultsMeta.d.ts new file mode 100644 index 0000000..2478e76 --- /dev/null +++ b/components/ui/dist/components/ResultsMeta.d.ts @@ -0,0 +1,2 @@ +import type { ResultsMetaProps } from "../types"; +export declare function ResultsMeta({ from, to, total, label, filtered, className, ...props }: ResultsMetaProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/SearchField.d.ts b/components/ui/dist/components/SearchField.d.ts new file mode 100644 index 0000000..8d9b075 --- /dev/null +++ b/components/ui/dist/components/SearchField.d.ts @@ -0,0 +1,6 @@ +export declare const SearchField: import("react").ForwardRefExoticComponent, "size"> & { + label?: string; + error?: string; + size?: import("..").InputSize; + containerClassName?: string; +} & import("react").RefAttributes>; diff --git a/components/ui/dist/components/SegmentedControl.d.ts b/components/ui/dist/components/SegmentedControl.d.ts new file mode 100644 index 0000000..0b15a2d --- /dev/null +++ b/components/ui/dist/components/SegmentedControl.d.ts @@ -0,0 +1,2 @@ +import type { SegmentedControlProps } from "../types"; +export declare function SegmentedControl({ value, options, onChange, className, size, "aria-label": ariaLabel, }: SegmentedControlProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/SelectList.d.ts b/components/ui/dist/components/SelectList.d.ts new file mode 100644 index 0000000..cbcf94e --- /dev/null +++ b/components/ui/dist/components/SelectList.d.ts @@ -0,0 +1,2 @@ +import type { SelectListProps } from "../types"; +export declare function SelectList(props: SelectListProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/SelectList.test.d.ts b/components/ui/dist/components/SelectList.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/ui/dist/components/SelectList.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/ui/dist/components/Shimmer.d.ts b/components/ui/dist/components/Shimmer.d.ts new file mode 100644 index 0000000..957b990 --- /dev/null +++ b/components/ui/dist/components/Shimmer.d.ts @@ -0,0 +1,2 @@ +import type { ShimmerProps } from "../types"; +export declare function Shimmer({ children, className }: ShimmerProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/Skeleton.d.ts b/components/ui/dist/components/Skeleton.d.ts new file mode 100644 index 0000000..115387e --- /dev/null +++ b/components/ui/dist/components/Skeleton.d.ts @@ -0,0 +1,2 @@ +import type { SkeletonProps } from "../types"; +export declare function Skeleton({ className }: SkeletonProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/StatusBadge.d.ts b/components/ui/dist/components/StatusBadge.d.ts new file mode 100644 index 0000000..b07c132 --- /dev/null +++ b/components/ui/dist/components/StatusBadge.d.ts @@ -0,0 +1,2 @@ +import type { StatusBadgeProps } from "../types"; +export declare function StatusBadge({ status, tone, label, className }: StatusBadgeProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/StatusIndicator.d.ts b/components/ui/dist/components/StatusIndicator.d.ts new file mode 100644 index 0000000..c1e51e6 --- /dev/null +++ b/components/ui/dist/components/StatusIndicator.d.ts @@ -0,0 +1,4 @@ +import type { StatusIndicatorProps, StatusValue } from "../types"; +declare const labels: Record; +export declare function StatusIndicator({ status, className }: StatusIndicatorProps): import("react").JSX.Element; +export { labels as statusLabels }; diff --git a/components/ui/dist/components/StatusToggle.d.ts b/components/ui/dist/components/StatusToggle.d.ts new file mode 100644 index 0000000..b22822f --- /dev/null +++ b/components/ui/dist/components/StatusToggle.d.ts @@ -0,0 +1,2 @@ +import type { StatusToggleProps } from "../types"; +export declare function StatusToggle({ status, pending, onActivate, onDisable, size, showLabel, className, }: StatusToggleProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/StatusToggle.test.d.ts b/components/ui/dist/components/StatusToggle.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/ui/dist/components/StatusToggle.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/ui/dist/components/Switch.d.ts b/components/ui/dist/components/Switch.d.ts new file mode 100644 index 0000000..851f494 --- /dev/null +++ b/components/ui/dist/components/Switch.d.ts @@ -0,0 +1,2 @@ +import type { SwitchProps } from "../types"; +export declare function Switch({ checked, onCheckedChange, size, disabled, label, className, }: SwitchProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/TabNav.d.ts b/components/ui/dist/components/TabNav.d.ts new file mode 100644 index 0000000..7da8a69 --- /dev/null +++ b/components/ui/dist/components/TabNav.d.ts @@ -0,0 +1,2 @@ +import type { TabNavProps } from "../types"; +export declare function TabNav({ value, options, onChange, orientation, className, bordered, "aria-label": ariaLabel, }: TabNavProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/Tabs.d.ts b/components/ui/dist/components/Tabs.d.ts new file mode 100644 index 0000000..574b5e8 --- /dev/null +++ b/components/ui/dist/components/Tabs.d.ts @@ -0,0 +1,11 @@ +import type { TabsListProps, TabsPanelProps, TabsRootProps, TabsTabProps } from "../types"; +declare function TabsRoot({ value, onChange, variant, orientation, bordered, className, children, }: TabsRootProps): import("react").JSX.Element; +declare function TabsList({ children, className, "aria-label": ariaLabel }: TabsListProps): import("react").JSX.Element; +declare function TabsTab({ value: tabValue, icon, disabled, badge, children }: TabsTabProps): import("react").JSX.Element; +declare function TabsPanel({ value: panelValue, keepMounted, className, children }: TabsPanelProps): import("react").JSX.Element | null; +export declare const Tabs: typeof TabsRoot & { + List: typeof TabsList; + Tab: typeof TabsTab; + Panel: typeof TabsPanel; +}; +export {}; diff --git a/components/ui/dist/components/Tooltip.d.ts b/components/ui/dist/components/Tooltip.d.ts new file mode 100644 index 0000000..4f992c2 --- /dev/null +++ b/components/ui/dist/components/Tooltip.d.ts @@ -0,0 +1,3 @@ +import type { TooltipProps, TooltipProviderProps } from "../types"; +export declare function TooltipProvider({ delayDuration, ...props }: TooltipProviderProps): import("react").JSX.Element; +export declare function Tooltip({ content, children, side, align, delayDuration, className, }: TooltipProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/Tooltip.test.d.ts b/components/ui/dist/components/Tooltip.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/ui/dist/components/Tooltip.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/ui/dist/components/ui-primitives.test.d.ts b/components/ui/dist/components/ui-primitives.test.d.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/components/ui/dist/components/ui-primitives.test.d.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/components/ui/dist/index.d.ts b/components/ui/dist/index.d.ts index fba019b..fd9ebf0 100644 --- a/components/ui/dist/index.d.ts +++ b/components/ui/dist/index.d.ts @@ -1,349 +1,25 @@ -import * as react from 'react'; -import { ReactNode, InputHTMLAttributes, HTMLAttributes } from 'react'; - -/** Extension / entity lifecycle status used by StatusToggle and StatusIndicator. */ -type StatusValue = "active" | "disabled" | "pending_review" | "failed"; -type StatusToggleSize = "sm" | "md"; -type StatusIndicatorProps = { - status: StatusValue; - className?: string; -}; -type StatusToggleProps = { - status: StatusValue; - pending?: boolean; - onActivate?: () => void; - onDisable?: () => void; - size?: StatusToggleSize; - showLabel?: boolean; - className?: string; -}; -/** Shared color tones for Badge, ProgressBar, and related chrome. */ -type BadgeTone = "slate" | "cyan" | "emerald" | "amber" | "rose" | "blue" | "violet"; -type BadgeProps = { - children: ReactNode; - tone?: BadgeTone; - className?: string; -}; -type StatusBadgeProps = { - /** Free-form status string (underscores become spaces in the label). */ - status: string; - /** Override automatic tone mapping. */ - tone?: BadgeTone; - /** Override the visible label (defaults to humanized `status`). */ - label?: string; - className?: string; -}; -type EmptyStateProps = { - title: string; - description?: ReactNode; - /** Alias of `description` for call sites that prefer `message`. */ - message?: ReactNode; - icon?: ReactNode; - action?: ReactNode; - /** `dashed` is a bordered empty panel; `plain` is compact centered text only. */ - variant?: "dashed" | "plain"; - className?: string; -}; -type InputSize = "sm" | "md"; -type InputProps = Omit, "size"> & { - label?: string; - error?: string; - size?: InputSize; - containerClassName?: string; -}; -type SearchFieldProps = InputProps; -/** Option row for SelectList (predefined JSON or remote results). */ -type SelectListOption = { - value: string; - label: string; - disabled?: boolean; -}; -type SelectListSharedProps = { - options: SelectListOption[]; - label?: string; - error?: string; - size?: InputSize; - placeholder?: string; - disabled?: boolean; - /** - * When local filter yields no matches, GET this URL with the query param. - * Prefer `onSearch` when the API needs auth headers or a custom response shape. - */ - searchUrl?: string; - /** Query param name for `searchUrl`. Default `"q"`. */ - searchParam?: string; - /** Custom remote search; wins over `searchUrl` when both are set. */ - onSearch?: (query: string, signal: AbortSignal) => Promise; - /** Debounce for remote calls in ms. Default `300`. */ - searchDebounceMs?: number; - emptyMessage?: string; - className?: string; - containerClassName?: string; - id?: string; - "aria-label"?: string; -}; -type SelectListSingleProps = SelectListSharedProps & { - multiple?: false; - value: string | null; - onChange: (value: string | null) => void; -}; -type SelectListMultiProps = SelectListSharedProps & { - multiple: true; - value: string[]; - onChange: (value: string[]) => void; -}; -type SelectListProps = SelectListSingleProps | SelectListMultiProps; -type LoadingIndicatorSize = "sm" | "md" | "lg"; -type LoadingIndicatorProps = { - /** Visible label; omit for icon-only (still announces “Loading” to AT). */ - label?: string; - size?: LoadingIndicatorSize; - className?: string; -}; -type PageLoadingProps = LoadingIndicatorProps; -type BusyRegionProps = { - /** When true, show a wait affordance for this region. */ - busy: boolean; - /** - * True when the region has no useful content yet. - * Uses a centered page-style wait instead of overlaying children. - */ - empty?: boolean; - label?: string; - size?: LoadingIndicatorSize; - className?: string; - children: ReactNode; -}; -type ProgressBarProps = { - value: number; - max?: number; - className?: string; - showLabel?: boolean; - tone?: BadgeTone; -}; -type PaginationMode = "simple" | "pages"; -type PaginationProps = { - page: number; - lastPage: number; - onPageChange: (page: number) => void; - /** Total item count shown beside controls (optional). */ - total?: number; - /** `simple` = prev/next; `pages` = numbered window with ellipsis. */ - mode?: PaginationMode; - itemLabel?: string; - className?: string; -}; -type OptionGroupOption = { - value: T; - label: ReactNode; - disabled?: boolean; - title?: string; -}; -type TabNavProps = { - value: T; - options: OptionGroupOption[]; - onChange: (value: T) => void; - orientation?: "horizontal" | "vertical"; - bordered?: boolean; - className?: string; - "aria-label"?: string; -}; -type SegmentedControlProps = { - value: T; - options: OptionGroupOption[]; - onChange: (value: T) => void; - size?: "sm" | "md"; - className?: string; - "aria-label"?: string; -}; -type FilterChipGroupProps = { - value: T; - options: OptionGroupOption[]; - onChange: (value: T) => void; - className?: string; - "aria-label"?: string; -}; -type TabsVariant = "underline" | "pills"; -type TabsOrientation = "horizontal" | "vertical"; -type TabsRootProps = { - value: string; - onChange: (value: string) => void; - variant?: TabsVariant; - orientation?: TabsOrientation; - bordered?: boolean; - className?: string; - children: ReactNode; -}; -type TabsListProps = { - children: ReactNode; - className?: string; - "aria-label"?: string; -}; -type TabsTabProps = { - value: string; - icon?: ReactNode; - disabled?: boolean; - badge?: number; - children: ReactNode; -}; -type TabsPanelProps = { - value: string; - children: ReactNode; - className?: string; - keepMounted?: boolean; -}; -type RemovableChip = { - key: string; - label: string; -}; -type RemovableFilterChipsProps = { - chips: RemovableChip[]; - onRemove: (key: string) => void; - onClearAll?: () => void; - className?: string; -}; -type SwitchSize = "sm" | "md"; -type SwitchProps = { - checked: boolean; - onCheckedChange: (checked: boolean) => void; - size?: SwitchSize; - disabled?: boolean; - label?: string; - className?: string; -}; -type RadioGroupOption = { - value: string; - label: ReactNode; - disabled?: boolean; - description?: ReactNode; -}; -type RadioGroupProps = { - value: string; - options: RadioGroupOption[]; - onChange: (value: string) => void; - label?: string; - error?: string; - orientation?: "vertical" | "horizontal"; - className?: string; -}; -type SkeletonProps = { - className?: string; -}; -type ShimmerProps = { - children: ReactNode; - className?: string; -}; -type ResultsMetaProps = HTMLAttributes & { - from?: number | null; - to?: number | null; - total: number; - label: string; - filtered?: boolean; -}; -type TooltipSide = "top" | "right" | "bottom" | "left"; -type TooltipAlign = "start" | "center" | "end"; -type TooltipProviderProps = { - children: ReactNode; - /** Hover/focus open delay in ms. Default 400. */ - delayDuration?: number; - skipDelayDuration?: number; - disableHoverableContent?: boolean; -}; -type TooltipProps = { - /** Tooltip body. Empty / null / false skips the tip and renders children only. */ - content: ReactNode; - children: ReactNode; - side?: TooltipSide; - align?: TooltipAlign; - /** Overrides provider delay for this tip. */ - delayDuration?: number; - /** Extra classes on the floating content. */ - className?: string; -}; - -declare function StatusToggle({ status, pending, onActivate, onDisable, size, showLabel, className, }: StatusToggleProps): react.JSX.Element; - -declare function StatusIndicator({ status, className }: StatusIndicatorProps): react.JSX.Element; - -declare function Badge({ children, tone, className }: BadgeProps): react.JSX.Element; - -declare function StatusBadge({ status, tone, label, className }: StatusBadgeProps): react.JSX.Element; - -declare function EmptyState({ title, description, message, icon, action, variant, className, }: EmptyStateProps): react.JSX.Element; - -declare const Input: react.ForwardRefExoticComponent, "size"> & { - label?: string; - error?: string; - size?: InputSize; - containerClassName?: string; -} & react.RefAttributes>; - -declare const SearchField: react.ForwardRefExoticComponent, "size"> & { - label?: string; - error?: string; - size?: InputSize; - containerClassName?: string; -} & react.RefAttributes>; - -declare function SelectList(props: SelectListProps): react.JSX.Element; - -/** - * Shared wait affordance for API / async work. - * Prefer {@link PageLoading} for empty primary content and {@link BusyRegion} for scoped groups. - */ -declare function LoadingIndicator({ label, size, className, }: LoadingIndicatorProps): react.JSX.Element; -/** Page / canvas wait when primary content is empty and an API is required. */ -declare function PageLoading({ label, size, className }: PageLoadingProps): react.JSX.Element; - -/** - * Scoped wait for a panel, table, or card group. - * - `busy && empty` → page-style centered indicator (primary content not ready) - * - `busy && !empty` → overlay spinner; children stay visible underneath - */ -declare function BusyRegion({ busy, empty, label, size, className, children, }: BusyRegionProps): react.JSX.Element; - -declare function ProgressBar({ value, max, className, showLabel, tone, }: ProgressBarProps): react.JSX.Element; - -declare function Pagination({ page, lastPage, onPageChange, total, mode, itemLabel, className, }: PaginationProps): react.JSX.Element | null; - -declare function SegmentedControl({ value, options, onChange, className, size, "aria-label": ariaLabel, }: SegmentedControlProps): react.JSX.Element; - -declare function FilterChipGroup({ value, options, onChange, className, "aria-label": ariaLabel, }: FilterChipGroupProps): react.JSX.Element; - -declare function RadioGroup({ value, options, onChange, label, error, orientation, className, }: RadioGroupProps): react.JSX.Element; - -declare function Shimmer({ children, className }: ShimmerProps): react.JSX.Element; - -declare function Skeleton({ className }: SkeletonProps): react.JSX.Element; - -declare function Switch({ checked, onCheckedChange, size, disabled, label, className, }: SwitchProps): react.JSX.Element; - -declare function TabNav({ value, options, onChange, orientation, className, bordered, "aria-label": ariaLabel, }: TabNavProps): react.JSX.Element; - -declare function TabsRoot({ value, onChange, variant, orientation, bordered, className, children, }: TabsRootProps): react.JSX.Element; -declare function TabsList({ children, className, "aria-label": ariaLabel }: TabsListProps): react.JSX.Element; -declare function TabsTab({ value: tabValue, icon, disabled, badge, children }: TabsTabProps): react.JSX.Element; -declare function TabsPanel({ value: panelValue, keepMounted, className, children }: TabsPanelProps): react.JSX.Element | null; -declare const Tabs: typeof TabsRoot & { - List: typeof TabsList; - Tab: typeof TabsTab; - Panel: typeof TabsPanel; -}; - -declare function RemovableFilterChips({ chips, onRemove, onClearAll, className, }: RemovableFilterChipsProps): react.JSX.Element | null; - -declare function ResultsMeta({ from, to, total, label, filtered, className, ...props }: ResultsMetaProps): react.JSX.Element; - -declare function TooltipProvider({ delayDuration, ...props }: TooltipProviderProps): react.JSX.Element; -declare function Tooltip({ content, children, side, align, delayDuration, className, }: TooltipProps): react.JSX.Element; - -declare const badgeToneClass: Record; -declare const progressToneClass: Record; -/** - * Map free-form job / entity status strings to a Badge tone. - * Unknown values fall back to `slate`. - */ -declare function statusBadgeTone(status: string): BadgeTone; -declare function humanizeStatus(status: string): string; - -export { Badge, type BadgeProps, type BadgeTone, BusyRegion, type BusyRegionProps, EmptyState, type EmptyStateProps, FilterChipGroup, type FilterChipGroupProps, Input, type InputProps, type InputSize, LoadingIndicator, type LoadingIndicatorProps, type LoadingIndicatorSize, type OptionGroupOption, PageLoading, type PageLoadingProps, Pagination, type PaginationMode, type PaginationProps, ProgressBar, type ProgressBarProps, RadioGroup, type RadioGroupOption, type RadioGroupProps, type RemovableChip, RemovableFilterChips, type RemovableFilterChipsProps, ResultsMeta, type ResultsMetaProps, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SelectList, type SelectListMultiProps, type SelectListOption, type SelectListProps, type SelectListSingleProps, Shimmer, type ShimmerProps, Skeleton, type SkeletonProps, StatusBadge, type StatusBadgeProps, StatusIndicator, type StatusIndicatorProps, StatusToggle, type StatusToggleProps, type StatusToggleSize, type StatusValue, Switch, type SwitchProps, type SwitchSize, TabNav, type TabNavProps, Tabs, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsRootProps, type TabsTabProps, type TabsVariant, Tooltip, type TooltipAlign, type TooltipProps, TooltipProvider, type TooltipProviderProps, type TooltipSide, badgeToneClass, humanizeStatus, progressToneClass, statusBadgeTone }; +export { StatusToggle } from "./components/StatusToggle"; +export { StatusIndicator } from "./components/StatusIndicator"; +export { Badge } from "./components/Badge"; +export { StatusBadge } from "./components/StatusBadge"; +export { EmptyState } from "./components/EmptyState"; +export { Input } from "./components/Input"; +export { SearchField } from "./components/SearchField"; +export { SelectList } from "./components/SelectList"; +export { LoadingIndicator, PageLoading } from "./components/LoadingIndicator"; +export { BusyRegion } from "./components/BusyRegion"; +export { ProgressBar } from "./components/ProgressBar"; +export { Pagination } from "./components/Pagination"; +export { SegmentedControl } from "./components/SegmentedControl"; +export { FilterChipGroup } from "./components/FilterChipGroup"; +export { RadioGroup } from "./components/RadioGroup"; +export { Shimmer } from "./components/Shimmer"; +export { Skeleton } from "./components/Skeleton"; +export { Switch } from "./components/Switch"; +export { TabNav } from "./components/TabNav"; +export { Tabs } from "./components/Tabs"; +export { RemovableFilterChips } from "./components/RemovableFilterChips"; +export { ResultsMeta } from "./components/ResultsMeta"; +export { Tooltip, TooltipProvider } from "./components/Tooltip"; +export { statusBadgeTone, humanizeStatus, badgeToneClass, progressToneClass } from "./lib/tones"; +export type { StatusValue, StatusToggleSize, StatusToggleProps, StatusIndicatorProps, BadgeTone, BadgeProps, StatusBadgeProps, EmptyStateProps, InputSize, InputProps, SearchFieldProps, SelectListOption, SelectListProps, SelectListSingleProps, SelectListMultiProps, LoadingIndicatorSize, LoadingIndicatorProps, PageLoadingProps, BusyRegionProps, ProgressBarProps, PaginationMode, PaginationProps, OptionGroupOption, TabNavProps, SegmentedControlProps, FilterChipGroupProps, RadioGroupOption, RadioGroupProps, ShimmerProps, SkeletonProps, SwitchSize, SwitchProps, TabsVariant, TabsOrientation, TabsRootProps, TabsListProps, TabsTabProps, TabsPanelProps, RemovableChip, RemovableFilterChipsProps, ResultsMetaProps, TooltipSide, TooltipAlign, TooltipProviderProps, TooltipProps, } from "./types"; diff --git a/components/ui/dist/lib/cn.d.ts b/components/ui/dist/lib/cn.d.ts new file mode 100644 index 0000000..d219a42 --- /dev/null +++ b/components/ui/dist/lib/cn.d.ts @@ -0,0 +1,2 @@ +import { type ClassValue } from "clsx"; +export declare function cn(...inputs: ClassValue[]): string; diff --git a/components/ui/dist/lib/selectListSearch.d.ts b/components/ui/dist/lib/selectListSearch.d.ts new file mode 100644 index 0000000..f1ab6dd --- /dev/null +++ b/components/ui/dist/lib/selectListSearch.d.ts @@ -0,0 +1,10 @@ +import type { SelectListOption } from "../types"; +/** Case-insensitive filter of predefined options by label or value. */ +export declare function filterSelectListOptions(options: SelectListOption[], query: string): SelectListOption[]; +/** Normalize a JSON body into `SelectListOption[]` (plain array preferred). */ +export declare function parseSelectListResponse(body: unknown): SelectListOption[]; +/** + * GET `${searchUrl}?${searchParam}=query` and parse options. + * Expects a JSON array of `{ value, label }` (or `{ data: [...] }`). + */ +export declare function fetchSelectListFromUrl(searchUrl: string, query: string, signal: AbortSignal, searchParam?: string): Promise; diff --git a/components/ui/dist/lib/tones.d.ts b/components/ui/dist/lib/tones.d.ts new file mode 100644 index 0000000..9a8590d --- /dev/null +++ b/components/ui/dist/lib/tones.d.ts @@ -0,0 +1,9 @@ +import type { BadgeTone } from "../types"; +export declare const badgeToneClass: Record; +export declare const progressToneClass: Record; +/** + * Map free-form job / entity status strings to a Badge tone. + * Unknown values fall back to `slate`. + */ +export declare function statusBadgeTone(status: string): BadgeTone; +export declare function humanizeStatus(status: string): string; diff --git a/components/ui/dist/types.d.ts b/components/ui/dist/types.d.ts new file mode 100644 index 0000000..7a009aa --- /dev/null +++ b/components/ui/dist/types.d.ts @@ -0,0 +1,261 @@ +import type { HTMLAttributes, InputHTMLAttributes, ReactNode } from "react"; +/** Extension / entity lifecycle status used by StatusToggle and StatusIndicator. */ +export type StatusValue = "active" | "disabled" | "pending_review" | "failed"; +export type StatusToggleSize = "sm" | "md"; +export type StatusIndicatorProps = { + status: StatusValue; + className?: string; +}; +export type StatusToggleProps = { + status: StatusValue; + pending?: boolean; + onActivate?: () => void; + onDisable?: () => void; + size?: StatusToggleSize; + showLabel?: boolean; + className?: string; +}; +/** Shared color tones for Badge, ProgressBar, and related chrome. */ +export type BadgeTone = "slate" | "cyan" | "emerald" | "amber" | "rose" | "blue" | "violet"; +export type BadgeProps = { + children: ReactNode; + tone?: BadgeTone; + className?: string; +}; +export type StatusBadgeProps = { + /** Free-form status string (underscores become spaces in the label). */ + status: string; + /** Override automatic tone mapping. */ + tone?: BadgeTone; + /** Override the visible label (defaults to humanized `status`). */ + label?: string; + className?: string; +}; +export type EmptyStateProps = { + title: string; + description?: ReactNode; + /** Alias of `description` for call sites that prefer `message`. */ + message?: ReactNode; + icon?: ReactNode; + action?: ReactNode; + /** `dashed` is a bordered empty panel; `plain` is compact centered text only. */ + variant?: "dashed" | "plain"; + className?: string; +}; +export type InputSize = "sm" | "md"; +export type InputProps = Omit, "size"> & { + label?: string; + error?: string; + size?: InputSize; + containerClassName?: string; +}; +export type SearchFieldProps = InputProps; +/** Option row for SelectList (predefined JSON or remote results). */ +export type SelectListOption = { + value: string; + label: string; + disabled?: boolean; +}; +type SelectListSharedProps = { + options: SelectListOption[]; + label?: string; + error?: string; + size?: InputSize; + placeholder?: string; + disabled?: boolean; + /** + * When local filter yields no matches, GET this URL with the query param. + * Prefer `onSearch` when the API needs auth headers or a custom response shape. + */ + searchUrl?: string; + /** Query param name for `searchUrl`. Default `"q"`. */ + searchParam?: string; + /** Custom remote search; wins over `searchUrl` when both are set. */ + onSearch?: (query: string, signal: AbortSignal) => Promise; + /** Debounce for remote calls in ms. Default `300`. */ + searchDebounceMs?: number; + emptyMessage?: string; + className?: string; + containerClassName?: string; + id?: string; + "aria-label"?: string; +}; +export type SelectListSingleProps = SelectListSharedProps & { + multiple?: false; + value: string | null; + onChange: (value: string | null) => void; +}; +export type SelectListMultiProps = SelectListSharedProps & { + multiple: true; + value: string[]; + onChange: (value: string[]) => void; +}; +export type SelectListProps = SelectListSingleProps | SelectListMultiProps; +export type LoadingIndicatorSize = "sm" | "md" | "lg"; +export type LoadingIndicatorProps = { + /** Visible label; omit for icon-only (still announces “Loading” to AT). */ + label?: string; + size?: LoadingIndicatorSize; + className?: string; +}; +export type PageLoadingProps = LoadingIndicatorProps; +export type BusyRegionProps = { + /** When true, show a wait affordance for this region. */ + busy: boolean; + /** + * True when the region has no useful content yet. + * Uses a centered page-style wait instead of overlaying children. + */ + empty?: boolean; + label?: string; + size?: LoadingIndicatorSize; + className?: string; + children: ReactNode; +}; +export type ProgressBarProps = { + value: number; + max?: number; + className?: string; + showLabel?: boolean; + tone?: BadgeTone; +}; +export type PaginationMode = "simple" | "pages"; +export type PaginationProps = { + page: number; + lastPage: number; + onPageChange: (page: number) => void; + /** Total item count shown beside controls (optional). */ + total?: number; + /** `simple` = prev/next; `pages` = numbered window with ellipsis. */ + mode?: PaginationMode; + itemLabel?: string; + className?: string; +}; +export type OptionGroupOption = { + value: T; + label: ReactNode; + disabled?: boolean; + title?: string; +}; +export type TabNavProps = { + value: T; + options: OptionGroupOption[]; + onChange: (value: T) => void; + orientation?: "horizontal" | "vertical"; + bordered?: boolean; + className?: string; + "aria-label"?: string; +}; +export type SegmentedControlProps = { + value: T; + options: OptionGroupOption[]; + onChange: (value: T) => void; + size?: "sm" | "md"; + className?: string; + "aria-label"?: string; +}; +export type FilterChipGroupProps = { + value: T; + options: OptionGroupOption[]; + onChange: (value: T) => void; + className?: string; + "aria-label"?: string; +}; +export type TabsVariant = "underline" | "pills"; +export type TabsOrientation = "horizontal" | "vertical"; +export type TabsRootProps = { + value: string; + onChange: (value: string) => void; + variant?: TabsVariant; + orientation?: TabsOrientation; + bordered?: boolean; + className?: string; + children: ReactNode; +}; +export type TabsListProps = { + children: ReactNode; + className?: string; + "aria-label"?: string; +}; +export type TabsTabProps = { + value: string; + icon?: ReactNode; + disabled?: boolean; + badge?: number; + children: ReactNode; +}; +export type TabsPanelProps = { + value: string; + children: ReactNode; + className?: string; + keepMounted?: boolean; +}; +export type RemovableChip = { + key: string; + label: string; +}; +export type RemovableFilterChipsProps = { + chips: RemovableChip[]; + onRemove: (key: string) => void; + onClearAll?: () => void; + className?: string; +}; +export type SwitchSize = "sm" | "md"; +export type SwitchProps = { + checked: boolean; + onCheckedChange: (checked: boolean) => void; + size?: SwitchSize; + disabled?: boolean; + label?: string; + className?: string; +}; +export type RadioGroupOption = { + value: string; + label: ReactNode; + disabled?: boolean; + description?: ReactNode; +}; +export type RadioGroupProps = { + value: string; + options: RadioGroupOption[]; + onChange: (value: string) => void; + label?: string; + error?: string; + orientation?: "vertical" | "horizontal"; + className?: string; +}; +export type SkeletonProps = { + className?: string; +}; +export type ShimmerProps = { + children: ReactNode; + className?: string; +}; +export type ResultsMetaProps = HTMLAttributes & { + from?: number | null; + to?: number | null; + total: number; + label: string; + filtered?: boolean; +}; +export type TooltipSide = "top" | "right" | "bottom" | "left"; +export type TooltipAlign = "start" | "center" | "end"; +export type TooltipProviderProps = { + children: ReactNode; + /** Hover/focus open delay in ms. Default 400. */ + delayDuration?: number; + skipDelayDuration?: number; + disableHoverableContent?: boolean; +}; +export type TooltipProps = { + /** Tooltip body. Empty / null / false skips the tip and renders children only. */ + content: ReactNode; + children: ReactNode; + side?: TooltipSide; + align?: TooltipAlign; + /** Overrides provider delay for this tip. */ + delayDuration?: number; + /** Extra classes on the floating content. */ + className?: string; +}; +export {}; diff --git a/components/ui/package.json b/components/ui/package.json index ae55285..6c7d4b8 100644 --- a/components/ui/package.json +++ b/components/ui/package.json @@ -1,7 +1,7 @@ { "name": "@jooservices/react-ui", "version": "2.6.0", - "description": "Shared UI primitives for React — status, badges, inputs, loading, filters, pagination, and tooltips", + "description": "Shared UI primitives for React \u2014 status, badges, inputs, loading, filters, pagination, and tooltips", "type": "module", "license": "MIT", "author": "JOOservices", @@ -35,7 +35,7 @@ "LICENSE" ], "scripts": { - "build": "tsup", + "build": "tsup && tsc -p tsconfig.json --declaration --emitDeclarationOnly --noEmit false --rootDir src --outDir dist", "typecheck": "tsc --noEmit", "test": "vitest run --coverage", "prepublishOnly": "npm run build", diff --git a/components/ui/tsup.config.ts b/components/ui/tsup.config.ts index 49cfd3d..179c284 100644 --- a/components/ui/tsup.config.ts +++ b/components/ui/tsup.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], format: ["esm"], - dts: true, + dts: false, sourcemap: true, clean: true, external: ["react", "react-dom", "lucide-react"], diff --git a/docs/00-architecture/03-tech-stack.md b/docs/00-architecture/03-tech-stack.md index 1ad8bc2..ea188a5 100644 --- a/docs/00-architecture/03-tech-stack.md +++ b/docs/00-architecture/03-tech-stack.md @@ -6,7 +6,7 @@ | UI | React (peer) | | Icons | lucide-react (peer) | | Styles | **Tailwind CSS v4** utilities (peer; host compiles) | -| Bundler | tsup (ESM + dts) | +| Bundler | tsup (ESM) + `tsc --emitDeclarationOnly` (`.d.ts`) | | Tests | Vitest + Testing Library | ## Related documents diff --git a/docs/04-development/04-building-packages.md b/docs/04-development/04-building-packages.md index 993b833..ac54fbc 100644 --- a/docs/04-development/04-building-packages.md +++ b/docs/04-development/04-building-packages.md @@ -12,7 +12,7 @@ cd components/media && npm run build cd components/notifications && npm run build ``` -`tsup` emits ESM + `.d.ts` into `dist/`. Tailwind utility class strings remain in the built JS for host scanners. +`tsup` emits ESM JS into `dist/`; TypeScript's `tsc --emitDeclarationOnly` emits `.d.ts` (TypeScript 7 drops the compiler API tsup's bundled dts plugin depended on). Tailwind utility class strings remain in the built JS for host scanners. **`dist/` is tracked in git** so git-based installs work. From d873848c3ac9a0fd0787fc3ca524f77277b6fd74 Mon Sep 17 00:00:00 2001 From: Viet Vu Date: Thu, 13 Aug 2026 13:02:51 -0600 Subject: [PATCH 12/18] fix(demo): align react 19.2.8 across all packages PR #14 bumped react/react-dom devDeps to ^19.2.8 in 9 packages but table/action-buttons/card/config and apps/demo stayed on 19.2.7, leaving two react copies. Vite prebundled @radix-ui/react-dropdown-menu against action-buttons' react while the app resolved react from the demo, breaking the jsx-runtime prebundle export and blank-screening the demo. - apps/demo: react + react-dom ^19.2.8 - components/{table,action-buttons,card,config}: react + react-dom ^19.2.8 - rebuild dist/ --- apps/demo/package-lock.json | 18 +++++++++--------- apps/demo/package.json | 4 ++-- components/action-buttons/package-lock.json | 18 +++++++++--------- components/action-buttons/package.json | 4 ++-- components/card/package-lock.json | 18 +++++++++--------- components/card/package.json | 4 ++-- components/config/package-lock.json | 18 +++++++++--------- components/config/package.json | 4 ++-- components/table/package-lock.json | 18 +++++++++--------- components/table/package.json | 4 ++-- 10 files changed, 55 insertions(+), 55 deletions(-) diff --git a/apps/demo/package-lock.json b/apps/demo/package-lock.json index 0c49c66..c7b5578 100644 --- a/apps/demo/package-lock.json +++ b/apps/demo/package-lock.json @@ -23,8 +23,8 @@ "@jooservices/react-ui": "file:../../components/ui", "clsx": "^2.1.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "react-router-dom": "^7.18.2", "tailwind-merge": "^3.6.0" }, @@ -2027,24 +2027,24 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-router": { diff --git a/apps/demo/package.json b/apps/demo/package.json index d932a4d..326b76a 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -28,8 +28,8 @@ "@jooservices/react-ui": "file:../../components/ui", "clsx": "^2.1.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "react-router-dom": "^7.18.2", "tailwind-merge": "^3.6.0", "@jooservices/react-media": "file:../../components/media" diff --git a/components/action-buttons/package-lock.json b/components/action-buttons/package-lock.json index 8145919..ef81638 100644 --- a/components/action-buttons/package-lock.json +++ b/components/action-buttons/package-lock.json @@ -25,8 +25,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" @@ -3999,24 +3999,24 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { diff --git a/components/action-buttons/package.json b/components/action-buttons/package.json index 7c1ff25..2c573c2 100644 --- a/components/action-buttons/package.json +++ b/components/action-buttons/package.json @@ -62,8 +62,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" diff --git a/components/card/package-lock.json b/components/card/package-lock.json index e5aa572..45ac1fc 100644 --- a/components/card/package-lock.json +++ b/components/card/package-lock.json @@ -22,8 +22,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" @@ -3387,9 +3387,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3397,16 +3397,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { diff --git a/components/card/package.json b/components/card/package.json index 732fe19..46a9a53 100644 --- a/components/card/package.json +++ b/components/card/package.json @@ -59,8 +59,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" diff --git a/components/config/package-lock.json b/components/config/package-lock.json index 698ad0c..5d6c346 100644 --- a/components/config/package-lock.json +++ b/components/config/package-lock.json @@ -22,8 +22,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" @@ -3387,9 +3387,9 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "dev": true, "license": "MIT", "engines": { @@ -3397,16 +3397,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { diff --git a/components/config/package.json b/components/config/package.json index 48035ec..ae5a3a1 100644 --- a/components/config/package.json +++ b/components/config/package.json @@ -59,8 +59,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" diff --git a/components/table/package-lock.json b/components/table/package-lock.json index c4027ec..4862694 100644 --- a/components/table/package-lock.json +++ b/components/table/package-lock.json @@ -27,8 +27,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" @@ -4063,24 +4063,24 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/react-is": { diff --git a/components/table/package.json b/components/table/package.json index c69c8cb..575828a 100644 --- a/components/table/package.json +++ b/components/table/package.json @@ -63,8 +63,8 @@ "@vitest/coverage-v8": "^4.0.16", "jsdom": "^27.0.1", "lucide-react": "^1.21.0", - "react": "^19.2.7", - "react-dom": "^19.2.7", + "react": "^19.2.8", + "react-dom": "^19.2.8", "tsup": "^8.5.0", "typescript": "^7.0.2", "vitest": "^4.0.16" From 22b26d682cf6df1445712f1384b452cf8784a30c Mon Sep 17 00:00:00 2001 From: Viet Vu Date: Thu, 13 Aug 2026 17:00:14 -0600 Subject: [PATCH 13/18] feat(ui): support id and aria passthrough on Switch and RadioGroup Field in react-form injects id, disabled, and aria-* into its single control child; Switch and RadioGroup now accept and forward them. --- components/ui/dist/components/RadioGroup.d.ts | 2 +- components/ui/dist/components/Switch.d.ts | 2 +- components/ui/dist/index.js | 29 ++++++++++---- components/ui/dist/index.js.map | 2 +- components/ui/dist/types.d.ts | 11 +++++ components/ui/src/components/RadioGroup.tsx | 17 +++++--- components/ui/src/components/Switch.tsx | 8 ++++ .../ui/src/components/ui-primitives.test.tsx | 40 +++++++++++++++++++ components/ui/src/types.ts | 11 +++++ 9 files changed, 107 insertions(+), 15 deletions(-) diff --git a/components/ui/dist/components/RadioGroup.d.ts b/components/ui/dist/components/RadioGroup.d.ts index dc01d7a..b1dbe49 100644 --- a/components/ui/dist/components/RadioGroup.d.ts +++ b/components/ui/dist/components/RadioGroup.d.ts @@ -1,2 +1,2 @@ import type { RadioGroupProps } from "../types"; -export declare function RadioGroup({ value, options, onChange, label, error, orientation, className, }: RadioGroupProps): import("react").JSX.Element; +export declare function RadioGroup({ value, options, onChange, label, error, orientation, className, id, disabled, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, }: RadioGroupProps): import("react").JSX.Element; diff --git a/components/ui/dist/components/Switch.d.ts b/components/ui/dist/components/Switch.d.ts index 851f494..25afb88 100644 --- a/components/ui/dist/components/Switch.d.ts +++ b/components/ui/dist/components/Switch.d.ts @@ -1,2 +1,2 @@ import type { SwitchProps } from "../types"; -export declare function Switch({ checked, onCheckedChange, size, disabled, label, className, }: SwitchProps): import("react").JSX.Element; +export declare function Switch({ checked, onCheckedChange, size, disabled, label, className, id, "aria-label": ariaLabel, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, }: SwitchProps): import("react").JSX.Element; diff --git a/components/ui/dist/index.js b/components/ui/dist/index.js index ef47fc2..c3a7b23 100644 --- a/components/ui/dist/index.js +++ b/components/ui/dist/index.js @@ -4768,32 +4768,39 @@ function RadioGroup({ label, error, orientation = "vertical", - className + className, + id, + disabled = false, + "aria-invalid": ariaInvalid, + "aria-describedby": ariaDescribedBy }) { const groupId = useId$1(); const errorId = useId$1(); - return /* @__PURE__ */ jsxs("fieldset", { className: cn("space-y-2", className), children: [ + const describedBy = [ariaDescribedBy, error ? errorId : void 0].filter(Boolean).join(" ") || void 0; + return /* @__PURE__ */ jsxs("fieldset", { id, className: cn("space-y-2", className), children: [ label && /* @__PURE__ */ jsx("legend", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: label }), /* @__PURE__ */ jsx( "div", { role: "radiogroup", "aria-label": label, - "aria-describedby": error ? errorId : void 0, + "aria-invalid": ariaInvalid, + "aria-describedby": describedBy, className: cn( orientation === "horizontal" ? "flex flex-wrap gap-4" : "space-y-2" ), children: options.map((option, index2) => { const checked = value === option.value; const optionId2 = `${groupId}-${index2}`; + const optionDisabled = disabled || option.disabled; return /* @__PURE__ */ jsxs( "label", { htmlFor: optionId2, className: cn( "flex items-start gap-2", - !option.disabled && "cursor-pointer", - option.disabled && "cursor-not-allowed opacity-50" + !optionDisabled && "cursor-pointer", + optionDisabled && "cursor-not-allowed opacity-50" ), children: [ /* @__PURE__ */ jsxs("div", { className: "flex h-5 items-center", children: [ @@ -4805,7 +4812,7 @@ function RadioGroup({ name: groupId, value: option.value, checked, - disabled: option.disabled, + disabled: optionDisabled, onChange: () => onChange(option.value), className: "peer sr-only" } @@ -4877,7 +4884,11 @@ function Switch({ size: size4 = "md", disabled = false, label, - className + className, + id, + "aria-label": ariaLabel, + "aria-invalid": ariaInvalid, + "aria-describedby": ariaDescribedBy }) { const { track, thumb, translate } = sizeConfig[size4]; return /* @__PURE__ */ jsxs( @@ -4893,9 +4904,13 @@ function Switch({ /* @__PURE__ */ jsx( "button", { + id, type: "button", role: "switch", "aria-checked": checked, + "aria-label": ariaLabel, + "aria-invalid": ariaInvalid, + "aria-describedby": ariaDescribedBy, disabled, onClick: () => onCheckedChange(!checked), className: cn( diff --git a/components/ui/dist/index.js.map b/components/ui/dist/index.js.map index 101a92f..82ea115 100644 --- a/components/ui/dist/index.js.map +++ b/components/ui/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/lib/cn.ts","../src/components/StatusIndicator.tsx","../node_modules/@radix-ui/primitive/src/primitive.tsx","../node_modules/@radix-ui/react-compose-refs/src/compose-refs.tsx","../node_modules/@radix-ui/react-context/src/create-context.tsx","../node_modules/@radix-ui/react-slot/src/slot.tsx","../node_modules/@radix-ui/react-primitive/src/primitive.tsx","../node_modules/@radix-ui/react-use-callback-ref/src/use-callback-ref.tsx","../node_modules/@radix-ui/react-dismissable-layer/src/dismissable-layer.tsx","../node_modules/@radix-ui/react-use-layout-effect/src/use-layout-effect.tsx","../node_modules/@radix-ui/react-id/src/id.tsx","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-use-size/src/use-size.tsx","../node_modules/@radix-ui/react-popper/src/popper.tsx","../node_modules/@radix-ui/react-portal/src/portal.tsx","../node_modules/@radix-ui/react-presence/src/use-state-machine.tsx","../node_modules/@radix-ui/react-presence/src/presence.tsx","../node_modules/@radix-ui/react-use-effect-event/src/use-effect-event.tsx","../node_modules/@radix-ui/react-use-controllable-state/src/use-controllable-state.tsx","../node_modules/@radix-ui/react-use-controllable-state/src/use-controllable-state-reducer.tsx","../node_modules/@radix-ui/react-visually-hidden/src/visually-hidden.tsx","../node_modules/@radix-ui/react-tooltip/src/tooltip.tsx","../src/components/Tooltip.tsx","../src/components/StatusToggle.tsx","../src/lib/tones.ts","../src/components/Badge.tsx","../src/components/StatusBadge.tsx","../src/components/EmptyState.tsx","../src/components/Input.tsx","../src/components/SearchField.tsx","../src/lib/selectListSearch.ts","../src/components/SelectList.tsx","../src/components/LoadingIndicator.tsx","../src/components/BusyRegion.tsx","../src/components/ProgressBar.tsx","../src/components/Pagination.tsx","../src/components/SegmentedControl.tsx","../src/components/FilterChipGroup.tsx","../src/components/RadioGroup.tsx","../src/components/Shimmer.tsx","../src/components/Skeleton.tsx","../src/components/Switch.tsx","../src/components/TabNav.tsx","../src/components/Tabs.tsx","../src/components/RemovableFilterChips.tsx","../src/components/ResultsMeta.tsx"],"names":["size","__name","React","createContext","React2","Provider","jsx","useContext","index","createScope","nextScopes","Slot","React3","Slottable","child","Node","React4","React5","React6","DismissableLayer","handleAndDispatchPointerDownOutsideEvent","useLayoutEffect","React7","React8","platform","max","offset","placements","sides","side","placement","overflow","x","y","getComputedStyle","shift","flip","hide","arrow","limitShift","computePosition","noop","React9","data","ReactDOM2","React10","React11","PopperAnchor","PopperContent","Root","React12","Portal","ReactDOM3","React13","React22","getElementRef","node","setRef","React14","React15","value","React23","state","isControlled","React16","VisuallyHidden","open","TooltipTrigger","CONTENT_NAME","TooltipContent","TooltipContentHoverable","TooltipContentImpl","jsxs","Content","TooltipProvider","Children","isValidElement","Tooltip","Fragment","forwardRef","Input","useId","SearchField","sizeClass","useRef","useState","useEffect","useMemo","useCallback","Loader2","optionId","X"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { CircleX, Clock } from \"lucide-react\";\n\nimport { cn } from \"../lib/cn\";\nimport type { StatusIndicatorProps, StatusValue } from \"../types\";\n\nconst labels: Record = {\n active: \"Active\",\n disabled: \"Disabled\",\n pending_review: \"Pending review\",\n failed: \"Failed\",\n};\n\nconst toneClass: Record = {\n active: \"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/35 dark:text-emerald-300\",\n disabled: \"bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400\",\n pending_review: \"bg-amber-100 text-amber-800 dark:bg-amber-950/35 dark:text-amber-300\",\n failed: \"bg-rose-100 text-rose-700 dark:bg-rose-950/35 dark:text-rose-300\",\n};\n\nfunction StatusIcon({ status, size }: { status: StatusValue; size: number }) {\n if (status === \"pending_review\") {\n return ;\n }\n\n if (status === \"failed\") {\n return ;\n }\n\n return null;\n}\n\nexport function StatusIndicator({ status, className }: StatusIndicatorProps) {\n const iconSize = 14;\n\n return (\n \n \n {labels[status]}\n \n );\n}\n\nexport { labels as statusLabels };\n","/* eslint-disable no-restricted-properties */\n\n/* eslint-disable no-restricted-globals */\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n/* eslint-enable no-restricted-globals */\n\nexport function composeEventHandlers(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {},\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport function getOwnerWindow(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access window outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument?.defaultView ?? window;\n}\n\nexport function getOwnerDocument(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access document outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument ?? document;\n}\n\n/**\n * Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37\n * MIT License, Copyright (c) AriaKit.\n */\nexport function getActiveElement(\n node: Node | null | undefined,\n activeDescendant = false,\n): HTMLElement | null {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n // `activeElement` might be an empty object if we're interacting with elements\n // inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute('aria-activedescendant');\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement as HTMLElement | null;\n}\n\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n return element.tagName === 'IFRAME';\n}\n","import * as React from 'react';\n\ntype PossibleRef = React.Ref | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref: PossibleRef, value: T) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs: PossibleRef[]): React.RefCallback {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == 'function') {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs: PossibleRef[]): React.RefCallback {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import * as React from 'react';\n\ntype ContextProvider = React.FC<\n ContextValueType & {\n children: React.ReactNode;\n }\n>;\n\ninterface UseAssertedContext {\n (consumerName: string): ContextValueType;\n}\n\ninterface UseContext {\n (consumerName: string): ContextValueType;\n (consumerName: string, options: { optional: true }): ContextValueType | undefined;\n}\n\nfunction createContext(\n rootComponentName: string,\n): readonly [ContextProvider, UseContext];\nfunction createContext(\n rootComponentName: string,\n defaultContext: ContextValueType,\n): readonly [ContextProvider, UseAssertedContext];\n\n/* @__NO_SIDE_EFFECTS__ */ function createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType,\n): readonly [ContextProvider, UseContext] {\n const Context = React.createContext(defaultContext);\n Context.displayName = rootComponentName + 'Context';\n\n const Provider: ContextProvider = (props) => {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return {children};\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string): ContextValueType;\n function useContext(\n consumerName: string,\n options: { optional: true },\n ): ContextValueType | undefined;\n\n function useContext(\n consumerName: string,\n options: { optional?: boolean } = {},\n ): ContextValueType | undefined {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n if (optional) return undefined;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext];\n}\n\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/\n\ntype Scope = { [scopeName: string]: React.Context[] } | undefined;\ntype ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope };\ninterface CreateScope {\n scopeName: string;\n (): ScopeHook;\n}\n\ntype ScopedContextProvider = React.FC<\n ContextValueType & {\n scope: Scope;\n children: React.ReactNode;\n }\n>;\n\ninterface UseScopedContext {\n (consumerName: string, scope: Scope): ContextValueType;\n (\n consumerName: string,\n scope: Scope,\n options: { optional?: true },\n ): ContextValueType | undefined;\n}\n\ninterface UseAssertedScopedContext {\n (consumerName: string, scope: Scope): ContextValueType;\n}\n\ninterface CreateScopedContext {\n (\n rootComponentName: string,\n ): readonly [ScopedContextProvider, UseScopedContext];\n (\n rootComponentName: string,\n defaultContext: ContextValueType,\n ): readonly [ScopedContextProvider, UseAssertedScopedContext];\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createContextScope(\n scopeName: string,\n createContextScopeDeps: CreateScope[] = [],\n): readonly [CreateScopedContext, CreateScope] {\n let defaultContexts: any[] = [];\n\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/\n\n function createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType,\n ) {\n const BaseContext = React.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + 'Context';\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n\n const Provider: ScopedContextProvider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return {children};\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(\n consumerName: string,\n scope: Scope,\n ): ContextValueType;\n function useContext(\n consumerName: string,\n scope: Scope,\n options: { optional: true },\n ): ContextValueType | undefined;\n\n function useContext(\n consumerName: string,\n scope: Scope,\n options: { optional?: boolean } = {},\n ): ContextValueType | undefined {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n if (optional) return undefined;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n }\n\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/\n\n const createScope: CreateScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope: Scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts],\n );\n };\n };\n\n createScope.scopeName = scopeName;\n return [createContext, composeContextScopes(createScope, ...createContextScopeDeps)] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/\n\nfunction composeContextScopes(...scopes: [CreateScope, ...CreateScope[]]): CreateScope {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n\n const createScope: CreateScope = () => {\n const scopeHooks = scopes.map((createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName,\n }));\n\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes, ...currentScope };\n }, {});\n\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { createContext, createContextScope };\nexport type {\n CreateScope,\n CreateScopedContext,\n Scope,\n UseAssertedContext,\n UseAssertedScopedContext,\n UseContext,\n UseScopedContext,\n};\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\n\ndeclare module 'react' {\n interface ReactElement {\n $$typeof?: symbol | string;\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\nexport type Usable = PromiseLike | React.Context;\n\ntype SlotProps> = Props & {\n children?: React.ReactNode;\n};\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot<\n Elem extends Element = HTMLElement,\n Props = React.HTMLAttributes,\n>(ownerName: string) {\n const Slot = React.forwardRef>((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement: React.ReactElement | null = null;\n let hasSlottable = false;\n const newChildren: React.ReactNode[] = [];\n\n if (isLazyComponent(children) && typeof use === 'function') {\n children = use(children._payload);\n }\n\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = 'child' in slottable.props ? slottable.props.child : slottable.props.children;\n\n if (isLazyComponent(child) && typeof use === 'function') {\n child = use(child._payload);\n }\n\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push((slottableElement?.props as any)?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, undefined, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable &&\n React.Children.count(children) === 1 &&\n React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : undefined;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n\n if (!slottableElement) {\n // Empty/falsy children (`null`, `undefined`, `false`, no children, etc.) are valid and\n // render nothing. Anything else is content we couldn't slot onto a single element, which\n // is a usage error, so we fail loudly with a clear message.\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName),\n );\n }\n return children;\n }\n\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n\n // do not pass ref to React.Fragment for React 19 compatibility\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n\n return React.cloneElement(slottableElement, mergedProps);\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol.for('radix.slottable');\n\ntype SlottableChildrenProps = { children: React.ReactNode };\ntype SlottableRenderFnProps = {\n child: React.ReactNode;\n children: (slottable: React.ReactNode) => React.ReactNode;\n};\n\ntype SlottableProps = SlottableRenderFnProps | SlottableChildrenProps;\ninterface SlottableComponent extends React.FC {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = (props) =>\n 'child' in props ? props.children(props.child) : props.children;\n\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* -------------------------------------------------------------------------------------------------\n * getSlottableElementFromSlottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst getSlottableElementFromSlottable = (slottable: SlottableElement, child: React.ReactNode) => {\n if ('child' in slottable.props) {\n const child = slottable.props.child;\n if (!React.isValidElement(child)) return null;\n return React.cloneElement(child, undefined, slottable.props.children(child.props.children));\n }\n\n return React.isValidElement(child) ? child : null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * mergeProps\n * -----------------------------------------------------------------------------------------------*/\n\ntype AnyProps = Record;\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n/* -------------------------------------------------------------------------------------------------\n * getElementRef\n * -----------------------------------------------------------------------------------------------*/\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref }).ref || (element as any).ref;\n}\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype SlottableElement = React.ReactElement;\n\nfunction isSlottable(\n child: React.ReactNode,\n): child is React.ReactElement {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nconst REACT_LAZY_TYPE = Symbol.for('react.lazy');\n\ninterface LazyReactElement extends React.ReactElement {\n $$typeof: typeof REACT_LAZY_TYPE;\n _payload: PromiseLike>>;\n}\n\nfunction isLazyComponent(element: React.ReactNode): element is LazyReactElement {\n return (\n element != null &&\n typeof element === 'object' &&\n '$$typeof' in element &&\n element.$$typeof === REACT_LAZY_TYPE &&\n '_payload' in element &&\n isPromiseLike(element._payload)\n );\n}\n\nfunction isPromiseLike(value: unknown): value is PromiseLike {\n return typeof value === 'object' && value !== null && 'then' in value;\n}\n\nconst createSlotError = (ownerName: string) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n};\n\nconst createSlottableError = (ownerName: string) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n};\n\nconst use: typeof React.use | undefined = (React as any)[' use '.trim().toString()];\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\ndeclare module 'react' {\n interface CSSProperties {\n [varName: `--radix-${string}`]: string | number | undefined | null;\n }\n}\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent };\ntype PrimitivePropsWithRef = React.ComponentPropsWithRef & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<\n E extends React.ElementType,\n> extends React.ForwardRefExoticComponent> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\n/* @__NO_SIDE_EFFECTS__ */ const Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return ;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nlet originalBodyPointerEvents: string;\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set(),\n\n // Outside elements that belong to a layer's own dismiss affordance (eg, a\n // dialog overlay). Pressing them should dismiss the layer regardless of\n // whether or not they stop propagation.\n //\n // See https://github.com/radix-ui/primitives/issues/3346\n dismissableSurfaces: new Set(),\n});\n\ntype DismissableLayerElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * When `true`, a `'pointerdown'` event outside of the layered element will\n * wait for the interaction's click event before dispatching, allowing\n * third-party code to stop propagation of later events and cancel dismissal.\n */\n deferPointerDownOutside?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = /* @__PURE__ */ React.forwardRef<\n DismissableLayerElement,\n DismissableLayerProps\n>(\n // blank line to reduce diff noise\n function DismissableLayer(props, forwardedRef) {\n const {\n disableOutsidePointerEvents = false,\n deferPointerDownOutside = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, setNode);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled,\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex =\n highestLayerWithOutsidePointerEventsDisabled\n ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled)\n : -1;\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const isDeferredPointerDownOutsideRef = React.useRef(false);\n\n const pointerDownOutside = usePointerDownOutside(\n (event) => {\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n },\n {\n ownerDocument,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces: context.dismissableSurfaces,\n shouldHandlePointerDownOutside: React.useCallback(\n (target: EventTarget | null) => {\n if (!(target instanceof Node)) {\n return false;\n }\n\n const isPointerDownOnBranch = [...context.branches].some((branch) =>\n branch.contains(target),\n );\n return isPointerEventsEnabled && !isPointerDownOnBranch;\n },\n [context.branches, isPointerEventsEnabled],\n ),\n },\n );\n\n const focusOutside = useFocusOutside((event) => {\n if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) {\n return;\n }\n\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n const isHighestLayer = node ? index === layers.length - 1 : false;\n\n // Stabilize via `useCallbackRef` rather than `useEffectEvent`: React's\n // native `useEffectEvent` returns a stale closure inside `forwardRef`\n // components on React 19.2.x, which caused escape handlers to observe\n // mount-time props/state instead of the latest values.\n //\n // We should revert this to use useEffectEvent when the fix lands in React.\n //\n // - https://github.com/radix-ui/primitives/issues/4014\n // - https://github.com/react/react/pull/34831\n const handleKeyDown = useCallbackRef((event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return;\n }\n\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n });\n\n React.useEffect(() => {\n if (!isHighestLayer) {\n return;\n }\n\n ownerDocument.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, [ownerDocument, isHighestLayer, handleKeyDown]);\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n // We must remove this layer from the disabled set whenever\n // `disableOutsidePointerEvents` becomes `false` (eg, when a modal\n // closes but stays mounted during an exit animation) and not only on\n // unmount. Otherwise the `body` `pointer-events` could be left as\n // `none` when multiple layers overlap.\n // See: https://github.com/radix-ui/primitives/issues/3645\n if (disableOutsidePointerEvents) {\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n \n );\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\ntype DismissableLayerBranchElement = React.ComponentRef;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = /* @__PURE__ */ React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>(function DismissableLayerBranch(props, forwardedRef) {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return ;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\n/**\n * Registers a node as a \"dismiss surface\" for the enclosing DismissableLayer\n */\nfunction useDismissableLayerSurface(): React.RefCallback {\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n\n React.useEffect(() => {\n if (!node) {\n return;\n }\n context.dismissableSurfaces.add(node);\n return () => {\n context.dismissableSurfaces.delete(node);\n };\n }, [node, context.dismissableSurfaces]);\n\n return setNode;\n}\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\nconst IS_TRUE = () => true;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We detect the start of the interaction on\n * `pointerdown`, then wait for `click` so external code can intercept later mouse events.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(\n onPointerDownOutside: ((event: PointerDownOutsideEvent) => void) | undefined,\n args: {\n ownerDocument: Document | undefined;\n deferPointerDownOutside: boolean;\n isDeferredPointerDownOutsideRef: React.RefObject;\n dismissableSurfaces: Set;\n shouldHandlePointerDownOutside?: (target: EventTarget | null) => boolean;\n },\n) {\n const {\n ownerDocument = globalThis?.document,\n deferPointerDownOutside = false,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside = IS_TRUE,\n } = args;\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n const isPointerDownOutsideRef = React.useRef(false);\n const interceptedOutsideInteractionEventsRef = React.useRef>(new Map());\n const handleClickRef = React.useRef(() => {});\n\n React.useEffect(() => {\n function resetOutsideInteraction() {\n isPointerDownOutsideRef.current = false;\n isDeferredPointerDownOutsideRef.current = false;\n interceptedOutsideInteractionEventsRef.current.clear();\n }\n\n function isOutsideInteractionIntercepted() {\n return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);\n }\n\n function handleInteractionCapture(event: Event) {\n if (!isPointerDownOutsideRef.current) {\n return;\n }\n\n const target = event.target;\n const isDismissableSurface =\n target instanceof Node &&\n [...dismissableSurfaces].some((surface) => surface.contains(target as Node));\n\n if (!isDismissableSurface) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, true);\n }\n\n if (event.type === 'click') {\n window.setTimeout(() => {\n if (isPointerDownOutsideRef.current) {\n handleClickRef.current();\n }\n }, 0);\n }\n }\n\n function handleInteractionBubble(event: Event) {\n if (isPointerDownOutsideRef.current) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, false);\n }\n }\n\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n if (!shouldHandlePointerDownOutside(event.target)) {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n resetOutsideInteraction();\n isPointerInsideReactTreeRef.current = false;\n return;\n }\n\n const eventDetail = { originalEvent: event };\n isPointerDownOutsideRef.current = true;\n isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && event.button === 0;\n interceptedOutsideInteractionEventsRef.current.clear();\n\n function handleAndDispatchPointerDownOutsideEvent() {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();\n resetOutsideInteraction();\n\n if (!wasOutsideInteractionIntercepted) {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true },\n );\n }\n }\n\n /**\n * When deferring, we need to wait for a click event because:\n *\n * 1. On touch devices, browsers implement a ~350ms delay between the\n * time the user stops touching the display and when the browser\n * executes events. We need to ensure we don't reactivate\n * pointer-events within this timeframe otherwise the browser may\n * execute events that should have been prevented.\n *\n * 2. Browser extensions and other third-party code may call\n * `stopPropagation` on later mouse events like `mousedown`,\n * `mouseup`, or `click`. Waiting lets those intercepted events\n * cancel the outside interaction before we dismiss the layer. See\n * https://github.com/radix-ui/primitives/issues/2055\n *\n * Additionally, this also lets us deal automatically with cancellations\n * when a click event isn't raised because the page was considered\n * scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener,\n * because we cannot be certain that it was raised, and therefore\n * cleaned-up.\n *\n * For non-primary buttons, we dispatch the event immediately because we\n * cannot be certain that the event was canceled.\n */\n if (!deferPointerDownOutside || event.button !== 0) {\n handleAndDispatchPointerDownOutsideEvent();\n } else {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, { once: true });\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n resetOutsideInteraction();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n\n const outsideInteractionEvents = [\n 'pointerup',\n 'mousedown',\n 'mouseup',\n 'touchstart',\n 'touchend',\n 'click',\n ];\n\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.addEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.addEventListener(eventName, handleInteractionBubble);\n }\n\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.removeEventListener(eventName, handleInteractionBubble);\n }\n };\n }, [\n ownerDocument,\n handlePointerDownOutside,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside,\n ]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document,\n) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false,\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return () => ownerDocument.removeEventListener('focusin', handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction handleAndDispatchCustomEvent(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent ? D : never),\n { discrete }: { discrete: boolean },\n) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n useDismissableLayerSurface,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n","import * as React from 'react';\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = globalThis?.document ? React.useLayoutEffect : () => {};\n\nexport { useLayoutEffect };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We spaces with `.trim().toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)[' useId '.trim().toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\nexport { useId };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n var _padding$top, _padding$right, _padding$bottom, _padding$left;\n return {\n top: (_padding$top = padding.top) != null ? _padding$top : 0,\n right: (_padding$right = padding.right) != null ? _padding$right : 0,\n bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,\n left: (_padding$left = padding.left) != null ? _padding$left : 0\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n const alignment = getAlignment(placement);\n if (alignment) {\n coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(minPadding, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n\n // No rects (e.g. a hidden or detached reference, or a collapsed range) —\n // keep the existing reference rect rather than resetting to an invalid\n // one with non-finite values.\n if (!nativeClientRects.length) {\n return {};\n }\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && (clientRects[0].left > clientRects[1].right || clientRects[1].left > clientRects[0].right) && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n return rectToClientRect({\n x: left,\n y: top,\n width: right - left,\n height: bottom - top\n });\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n return rectToClientRect({\n x: minLeft,\n y: top,\n width: maxRight - minLeft,\n height: bottom - top\n });\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);\n if (checkMainAxis) {\n mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);\n }\n if (checkCrossAxis) {\n crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n var _rawOffset$mainAxis, _rawOffset$crossAxis;\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,\n crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n// Method syntax keeps callback parameters bivariant, but expressing the\n// explicit `| undefined` required by `exactOptionalPropertyTypes` needs\n// property syntax, which is contravariant under `strictFunctionTypes`.\n// Extracting the function from a method position restores that bivariance so\n// consumers can still assign callbacks with narrower parameter types.\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const shiftData = state.middlewareData.shift;\n const noShift = !shiftData;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (shiftData != null && shiftData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if (shiftData != null && shiftData.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n if (isYAxis) {\n availableWidth = width - 2 * max(overflow.left, overflow.right);\n } else {\n availableHeight = height - 2 * max(overflow.top, overflow.bottom);\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return (node.ownerDocument || node).body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement && offsetParent) {\n const win = getWindow(domElement);\n const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return element.getClientRects ? Array.from(element.getClientRects()) : [];\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(html) {\n const scroll = getNodeScroll(html);\n const body = html.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(html);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy, rootBoundary) {\n if (rootBoundary === void 0) {\n rootBoundary = 'viewport';\n }\n const isLayoutViewport = rootBoundary === 'layoutViewport';\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n // Client coordinates are relative to the layout viewport, except in\n // WebKit with an `absolute` strategy, where they are relative to the\n // visual viewport.\n const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';\n if (isLayoutViewport) {\n if (!layoutRelativeClientCoords) {\n x = -visualViewport.offsetLeft;\n y = -visualViewport.offsetTop;\n }\n } else {\n width = visualViewport.width;\n height = visualViewport.height;\n if (layoutRelativeClientCoords) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // `scrollbar-gutter: stable` on the reserves gutter space that shrinks\n // the visual width but isn't reflected in `html.clientWidth`, so subtract it.\n // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also\n // reserves an empty inline-start gutter that clips nothing, so exclude just\n // the one scrollbar-side gutter — halve the measured (two-gutter) total. A\n // left-side scrollbar (`windowScrollbarX > 0`) is already handled by\n // `getHTMLOffset`/`visualViewport.width`; skip it here.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;\n if (gutter <= SCROLLBAR_MAX) {\n width -= gutter;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = getScale(element);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {\n rect = getViewportRect(element, strategy, clippingAncestor);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let lastKeptComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n // Position of the containing block chain below the current node. A fixed\n // element whose containing block hasn't been found yet is a fixed chain.\n const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';\n\n // A non-containing ancestor does not clip the element when the chain\n // below it escapes it: a fixed chain escapes all ancestors up to the\n // next containing block, an absolute chain escapes static ancestors.\n const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // The kept node carries the chain position for the next iteration.\n lastKeptComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n if (!isOffsetParentAnElement && documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove, ancestorResize) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n\n // The entry is a snapshot, so the reference may have moved since the\n // intersection was computed (under performance constraints, or between\n // consecutive frames of a multi-frame layout shift). The reported ratio\n // and the observed area are stale in that case and cannot be trusted to\n // detect subsequent movement, so refresh regardless of the ratio.\n if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n return refresh();\n }\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped in place, the ratio is 0. Throttle\n // the refresh to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle