diff --git a/.github/workflows/i18n-bot-download.yml b/.github/workflows/i18n-bot-download.yml index 3edb9370ce..a560488113 100644 --- a/.github/workflows/i18n-bot-download.yml +++ b/.github/workflows/i18n-bot-download.yml @@ -26,7 +26,7 @@ jobs: run: pnpm install --frozen-lockfile --prefer-offline - name: Download updated i18n files - uses: crowdin/github-action@v2.3.0 + uses: crowdin/github-action@v2.4.0 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/i18n-bot-upload.yml b/.github/workflows/i18n-bot-upload.yml index d06168cffd..35e38294ea 100644 --- a/.github/workflows/i18n-bot-upload.yml +++ b/.github/workflows/i18n-bot-upload.yml @@ -20,7 +20,7 @@ jobs: run: dimJSON="$(jq -S . src/locale/en.json)" && echo "${dimJSON}" > src/locale/en.json - name: Upload updated en.json to crowdin - uses: crowdin/github-action@v2.3.0 + uses: crowdin/github-action@v2.4.0 with: upload_sources: true upload_translations: false diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index aa66158935..72faf2cb32 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,18 @@ ## Next +## 8.48.0 (2024-11-24) + +## 8.47.1 (2024-11-18) + +* Fix gigantic vault engrams in single-character mode. + +## 8.47.0 (2024-11-17) + +* #Tag suggestions now use your most popular existing capitalization. +* Fixed character engram inventory wrapping on mobile. +* Fixed autocomplete not doing its job after a colon. +* Fixed checkboxes not clickable in the item sorting editor. + ## 8.46.0 (2024-11-10) ## 8.45.1 (2024-11-04) diff --git a/package.json b/package.json index 81373656ed..b906b33ed7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dim", - "version": "8.46.0", + "version": "8.48.0", "description": "An item manager for Destiny.", "main": "app/index.html", "private": true, @@ -90,8 +90,8 @@ "@babel/preset-react": "^7.25.9", "@babel/preset-typescript": "^7.26.0", "@babel/register": "^7.25.9", - "@eslint-react/eslint-plugin": "^1.16.1", - "@eslint/compat": "^1.2.2", + "@eslint-react/eslint-plugin": "^1.17.1", + "@eslint/compat": "^1.2.3", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@testing-library/react": "^16.0.1", "@types/dom-chromium-installation-events": "^101.0.4", @@ -111,8 +111,8 @@ "@types/webpack": "^5.28.5", "@types/webpack-env": "^1.18.5", "@types/webpack-stats-plugin": "^0.3.5", - "@typescript-eslint/eslint-plugin": "^8.14.0", - "@typescript-eslint/parser": "^8.14.0", + "@typescript-eslint/eslint-plugin": "^8.16.0", + "@typescript-eslint/parser": "^8.16.0", "autoprefixer": "^10.4.20", "babel-jest": "^29.7.0", "babel-loader": "^9.2.1", @@ -130,12 +130,12 @@ "eslint": "^9.10.0", "eslint-plugin-array-func": "^5.0.2", "eslint-plugin-css-modules": "^2.12.0", - "eslint-plugin-github": "^5.0.2", + "eslint-plugin-github": "^5.1.1", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-redux": "^4.2.0", - "eslint-plugin-regexp": "^2.6.0", + "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-sonarjs": "^1.0.4", "fontawesome-subset": "^4.4.0", "fork-ts-checker-notifier-webpack-plugin": "^9.0.0", @@ -144,7 +144,7 @@ "globals": "^15.12.0", "html-loader": "^5.1.0", "html-webpack-plugin": "^5.6.3", - "husky": "^9.1.6", + "husky": "^9.1.7", "i18next-scanner": "^4.6.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", @@ -154,12 +154,12 @@ "json-sort-cli": "^4.0.4", "lint-staged": "^15.2.10", "markdown-loader": "^8.0.0", - "marked": "^15.0.0", + "marked": "^15.0.2", "mini-css-extract-plugin": "^2.9.2", "mini-svg-data-uri": "^1.4.4", "mkcert": "^3.2.0", "nodemon": "^3.1.7", - "postcss": "^8.4.48", + "postcss": "^8.4.49", "postcss-assets-webpack-plugin": "^4.1.2", "postcss-loader": "^8.1.1", "postcss-sort-media-queries": "^5.2.0", @@ -167,7 +167,7 @@ "prettier-plugin-organize-imports": "^4.1.0", "react-refresh": "^0.14.2", "react-test-renderer": "^18.3.1", - "sass": "^1.80.6", + "sass": "^1.81.0", "sass-loader": "^16.0.3", "source-map-loader": "^5.0.0", "style-loader": "^4.0.0", @@ -181,9 +181,9 @@ "ts-jest": "^29.2.5", "ts-loader": "^9.5.1", "ts-unused-exports": "^10.1.0", - "tsconfig-paths-webpack-plugin": "^4.1.0", - "typescript": "^5.6.3", - "typescript-eslint": "^8.14.0", + "tsconfig-paths-webpack-plugin": "^4.2.0", + "typescript": "^5.7.2", + "typescript-eslint": "^8.16.0", "webpack": "^5.96.1", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.1.0", @@ -200,15 +200,15 @@ "@hello-pangea/dnd": "^17.0.0", "@popperjs/core": "^2.11.8", "@react-hook/resize-observer": "^2.0.2", - "@sentry/browser": "^8.37.1", - "@sentry/react": "^8.37.1", - "@sentry/types": "^8.37.1", + "@sentry/browser": "^8.40.0", + "@sentry/react": "^8.40.0", + "@sentry/types": "^8.40.0", "@tanstack/react-virtual": "^3.10.9", "@textcomplete/core": "^0.1.13", "@textcomplete/textarea": "^0.1.13", "@textcomplete/utils": "^0.1.13", "bungie-api-ts": "^5.1.0", - "caniuse-lite": "^1.0.30001680", + "caniuse-lite": "^1.0.30001684", "clsx": "^2.1.1", "comlink": "^4.4.2", "core-js": "^3.39.0", @@ -216,14 +216,14 @@ "downshift": "^9.0.8", "es-toolkit": "^1.27.0", "fast-equals": "^5.0.1", - "framer-motion": "^11.11.11", + "framer-motion": "^11.11.17", "i18next": "^23.16.5", "i18next-http-backend": "^2.6.2", "immer": "^10.1.1", "memoize-one": "^6.0.0", "papaparse": "^5.4.1", "react": "^18.3.1", - "react-aria": "^3.35.1", + "react-aria": "^3.36.0", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dnd-multi-backend": "^8.0.3", @@ -233,7 +233,7 @@ "react-redux": "^9.1.2", "react-router": "^6.28.0", "react-router-dom": "^6.28.0", - "react-textarea-autosize": "^8.5.4", + "react-textarea-autosize": "^8.5.5", "redux": "^5.0.1", "redux-thunk": "^3.1.0", "reselect": "^5.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebc5a97db7..65555ab05a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,14 +36,14 @@ dependencies: specifier: ^2.0.2 version: 2.0.2(react@18.3.1) '@sentry/browser': - specifier: ^8.37.1 - version: 8.37.1 + specifier: ^8.40.0 + version: 8.40.0 '@sentry/react': - specifier: ^8.37.1 - version: 8.37.1(react@18.3.1) + specifier: ^8.40.0 + version: 8.40.0(react@18.3.1) '@sentry/types': - specifier: ^8.37.1 - version: 8.37.1 + specifier: ^8.40.0 + version: 8.40.0 '@tanstack/react-virtual': specifier: ^3.10.9 version: 3.10.9(react-dom@18.3.1)(react@18.3.1) @@ -60,8 +60,8 @@ dependencies: specifier: ^5.1.0 version: 5.1.0 caniuse-lite: - specifier: ^1.0.30001680 - version: 1.0.30001680 + specifier: ^1.0.30001684 + version: 1.0.30001684 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -84,8 +84,8 @@ dependencies: specifier: ^5.0.1 version: 5.0.1 framer-motion: - specifier: ^11.11.11 - version: 11.11.11(react-dom@18.3.1)(react@18.3.1) + specifier: ^11.11.17 + version: 11.11.17(react-dom@18.3.1)(react@18.3.1) i18next: specifier: ^23.16.5 version: 23.16.5 @@ -105,8 +105,8 @@ dependencies: specifier: ^18.3.1 version: 18.3.1 react-aria: - specifier: ^3.35.1 - version: 3.35.1(react-dom@18.3.1)(react@18.3.1) + specifier: ^3.36.0 + version: 3.36.0(react-dom@18.3.1)(react@18.3.1) react-dnd: specifier: ^16.0.1 version: 16.0.1(@types/node@22.0.2)(@types/react@18.3.12)(react@18.3.1) @@ -135,8 +135,8 @@ dependencies: specifier: ^6.28.0 version: 6.28.0(react-dom@18.3.1)(react@18.3.1) react-textarea-autosize: - specifier: ^8.5.4 - version: 8.5.4(@types/react@18.3.12)(react@18.3.1) + specifier: ^8.5.5 + version: 8.5.5(@types/react@18.3.12)(react@18.3.1) redux: specifier: ^5.0.0 version: 5.0.1 @@ -203,11 +203,11 @@ devDependencies: specifier: ^7.25.9 version: 7.25.9(@babel/core@7.26.0) '@eslint-react/eslint-plugin': - specifier: ^1.16.1 - version: 1.16.1(eslint@9.10.0)(typescript@5.6.3) + specifier: ^1.17.1 + version: 1.17.1(eslint@9.10.0)(typescript@5.7.2) '@eslint/compat': - specifier: ^1.2.2 - version: 1.2.2(eslint@9.10.0) + specifier: ^1.2.3 + version: 1.2.3(eslint@9.10.0) '@pmmmwh/react-refresh-webpack-plugin': specifier: ^0.5.15 version: 0.5.15(@types/webpack@5.28.5)(react-refresh@0.14.2)(webpack-dev-server@5.1.0)(webpack@5.96.1) @@ -266,14 +266,14 @@ devDependencies: specifier: ^0.3.5 version: 0.3.5 '@typescript-eslint/eslint-plugin': - specifier: ^8.14.0 - version: 8.14.0(@typescript-eslint/parser@8.14.0)(eslint@9.10.0)(typescript@5.6.3) + specifier: ^8.16.0 + version: 8.16.0(@typescript-eslint/parser@8.16.0)(eslint@9.10.0)(typescript@5.7.2) '@typescript-eslint/parser': - specifier: ^8.14.0 - version: 8.14.0(eslint@9.10.0)(typescript@5.6.3) + specifier: ^8.16.0 + version: 8.16.0(eslint@9.10.0)(typescript@5.7.2) autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.48) + version: 10.4.20(postcss@8.4.49) babel-jest: specifier: ^29.7.0 version: 29.7.0(@babel/core@7.26.0) @@ -312,7 +312,7 @@ devDependencies: version: 4.0.1 cssnano: specifier: ^7.0.6 - version: 7.0.6(postcss@8.4.48) + version: 7.0.6(postcss@8.4.49) eslint: specifier: ^9.10.0 version: 9.10.0 @@ -323,8 +323,8 @@ devDependencies: specifier: ^2.12.0 version: 2.12.0(eslint@9.10.0) eslint-plugin-github: - specifier: ^5.0.2 - version: 5.0.2(eslint@9.10.0)(typescript@5.6.3) + specifier: ^5.1.1 + version: 5.1.1(@typescript-eslint/parser@8.16.0)(eslint@9.10.0)(typescript@5.7.2) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.10.0) @@ -338,8 +338,8 @@ devDependencies: specifier: ^4.2.0 version: 4.2.0(eslint-plugin-react@7.37.2)(eslint@9.10.0) eslint-plugin-regexp: - specifier: ^2.6.0 - version: 2.6.0(eslint@9.10.0) + specifier: ^2.7.0 + version: 2.7.0(eslint@9.10.0) eslint-plugin-sonarjs: specifier: ^1.0.4 version: 1.0.4(eslint@9.10.0) @@ -351,7 +351,7 @@ devDependencies: version: 9.0.0(fork-ts-checker-webpack-plugin@9.0.2) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.0.2(typescript@5.6.3)(webpack@5.96.1) + version: 9.0.2(typescript@5.7.2)(webpack@5.96.1) generate-json-webpack-plugin: specifier: ^2.0.0 version: 2.0.0 @@ -365,8 +365,8 @@ devDependencies: specifier: ^5.6.3 version: 5.6.3(webpack@5.96.1) husky: - specifier: ^9.1.6 - version: 9.1.6 + specifier: ^9.1.7 + version: 9.1.7 i18next-scanner: specifier: ^4.6.0 version: 4.6.0 @@ -395,8 +395,8 @@ devDependencies: specifier: ^8.0.0 version: 8.0.0(webpack@5.96.1) marked: - specifier: ^15.0.0 - version: 15.0.0 + specifier: ^15.0.2 + version: 15.0.2 mini-css-extract-plugin: specifier: ^2.9.2 version: 2.9.2(webpack@5.96.1) @@ -410,23 +410,23 @@ devDependencies: specifier: ^3.1.7 version: 3.1.7 postcss: - specifier: ^8.4.48 - version: 8.4.48 + specifier: ^8.4.49 + version: 8.4.49 postcss-assets-webpack-plugin: specifier: ^4.1.2 version: 4.1.2(webpack@5.96.1) postcss-loader: specifier: ^8.1.1 - version: 8.1.1(postcss@8.4.48)(typescript@5.6.3)(webpack@5.96.1) + version: 8.1.1(postcss@8.4.49)(typescript@5.7.2)(webpack@5.96.1) postcss-sort-media-queries: specifier: ^5.2.0 - version: 5.2.0(postcss@8.4.48) + version: 5.2.0(postcss@8.4.49) prettier: specifier: ^3.3.3 version: 3.3.3 prettier-plugin-organize-imports: specifier: ^4.1.0 - version: 4.1.0(prettier@3.3.3)(typescript@5.6.3) + version: 4.1.0(prettier@3.3.3)(typescript@5.7.2) react-refresh: specifier: ^0.14.2 version: 0.14.2 @@ -434,11 +434,11 @@ devDependencies: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) sass: - specifier: ^1.80.6 - version: 1.80.6 + specifier: ^1.81.0 + version: 1.81.0 sass-loader: specifier: ^16.0.3 - version: 16.0.3(sass@1.80.6)(webpack@5.96.1) + version: 16.0.3(sass@1.81.0)(webpack@5.96.1) source-map-loader: specifier: ^5.0.0 version: 5.0.0(webpack@5.96.1) @@ -447,13 +447,13 @@ devDependencies: version: 4.0.0(webpack@5.96.1) stylelint: specifier: ^16.10.0 - version: 16.10.0(typescript@5.6.3) + version: 16.10.0(typescript@5.7.2) stylelint-config-css-modules: specifier: ^4.4.0 version: 4.4.0(stylelint@16.10.0) stylelint-config-standard-scss: specifier: ^13.1.0 - version: 13.1.0(postcss@8.4.48)(stylelint@16.10.0) + version: 13.1.0(postcss@8.4.49)(stylelint@16.10.0) stylelint-order: specifier: ^6.0.4 version: 6.0.4(stylelint@16.10.0) @@ -468,22 +468,22 @@ devDependencies: version: 5.3.10(webpack@5.96.1) ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.7.2) ts-loader: specifier: ^9.5.1 - version: 9.5.1(typescript@5.6.3)(webpack@5.96.1) + version: 9.5.1(typescript@5.7.2)(webpack@5.96.1) ts-unused-exports: specifier: ^10.1.0 - version: 10.1.0(typescript@5.6.3) + version: 10.1.0(typescript@5.7.2) tsconfig-paths-webpack-plugin: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.2.0 + version: 4.2.0 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 typescript-eslint: - specifier: ^8.14.0 - version: 8.14.0(eslint@9.10.0)(typescript@5.6.3) + specifier: ^8.16.0 + version: 8.16.0(eslint@9.10.0)(typescript@5.7.2) webpack: specifier: ^5.96.1 version: 5.96.1(webpack-cli@5.1.4) @@ -2027,14 +2027,14 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint-react/ast@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-IzJnMy+70w8k1ek06vqdk8g/vxVffOII3c65ggtlQwj2ZBZB/cgUABzNkDV7Hi3VtE0kChZSVSDV6MR76gt5Sg==} + /@eslint-react/ast@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-cPW05RlZtgNwR/99U6YFrNqCCdGurP/dIgN3SWQtPrX91JtP2OmlEyKlTZ3E3lXB6ijS6oZcmp6NljL7M8V+ig==} dependencies: - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) birecord: 0.1.1 string-ts: 2.2.0 ts-pattern: 5.5.0 @@ -2044,19 +2044,19 @@ packages: - typescript dev: true - /@eslint-react/core@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-QTuROazb1gILdV1h4iON38HbxQpOUMpEPg3etoFrLeH1a9yJIfnsb2t1ryrJh2pqQ+Rw5Lz6za+sJknbuDYxOg==} + /@eslint-react/core@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-4jE0oQnkf2B7BaGkp5cbe9wPmOK2978gaqDJ6sqwvcL1cIkWY0Z1c8Wbq8rWztlVRiPYNpmbmJ+COAYDxzvhhQ==} dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) birecord: 0.1.1 short-unique-id: 5.2.0 ts-pattern: 5.5.0 @@ -2066,8 +2066,8 @@ packages: - typescript dev: true - /@eslint-react/eslint-plugin@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-QTpBKDbe6DZCsczFkFjqVFRuwbUlMV+FF0XdZLrMRuHEvmcs/6G70wHL/hCe2CruARnGiAQRWnA+IenFw+gAuw==} + /@eslint-react/eslint-plugin@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-/ctfKryjIAJuIsGIjp354g8PZB6AIU61ZXSysEwJhj2lfZt/QHGPBMSE2XlIvwxK6wWqiN+9aSbXHrIvfvAKhg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2076,35 +2076,36 @@ packages: typescript: optional: true dependencies: - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) eslint: 9.10.0 - eslint-plugin-react-debug: 1.16.1(eslint@9.10.0)(typescript@5.6.3) - eslint-plugin-react-dom: 1.16.1(eslint@9.10.0)(typescript@5.6.3) - eslint-plugin-react-hooks-extra: 1.16.1(eslint@9.10.0)(typescript@5.6.3) - eslint-plugin-react-naming-convention: 1.16.1(eslint@9.10.0)(typescript@5.6.3) - eslint-plugin-react-web-api: 1.16.1(eslint@9.10.0)(typescript@5.6.3) - eslint-plugin-react-x: 1.16.1(eslint@9.10.0)(typescript@5.6.3) - typescript: 5.6.3 + eslint-plugin-react-debug: 1.17.1(eslint@9.10.0)(typescript@5.7.2) + eslint-plugin-react-dom: 1.17.1(eslint@9.10.0)(typescript@5.7.2) + eslint-plugin-react-hooks-extra: 1.17.1(eslint@9.10.0)(typescript@5.7.2) + eslint-plugin-react-naming-convention: 1.17.1(eslint@9.10.0)(typescript@5.7.2) + eslint-plugin-react-web-api: 1.17.1(eslint@9.10.0)(typescript@5.7.2) + eslint-plugin-react-x: 1.17.1(eslint@9.10.0)(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /@eslint-react/jsx@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-VrlCeVpRkAK5t8tpJRa+IOIdQQ9qTCnS1UOZOSV/SDcgBdsyGFkYzzY1EHUCR9MSxpsS/NPaXBfvrgMJ+llMow==} + /@eslint-react/jsx@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-L6Zdh8zTAMO9LUmXlL/YX/gU4ja9vCkov834LYmSf7k5wbc17fniSqXYVfqQrWl+T11mdyN+alx4IjQti3lHgA==} dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + birecord: 0.1.1 ts-pattern: 5.5.0 transitivePeerDependencies: - eslint @@ -2112,43 +2113,45 @@ packages: - typescript dev: true - /@eslint-react/shared@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-A+R590q0UQuHVlz9YHs+g6HQZ/cyKK/bWw0ykyEAoTNXCDz8lpbxW02dH4iC/9eMEnYs2dQn4as1qkwm9GhrfQ==} + /@eslint-react/shared@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-wB/mBIfuc36Hn2GShHsSO91uqL9lI3VVVwTzJ3YhAN4hJMeZn8fWMuARtwaVeFpmLNYI7hG5wGxo4bHn9yKjsw==} dependencies: - '@eslint-react/tools': 1.16.1 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/tools': 1.17.1 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + local-pkg: 0.5.1 picomatch: 4.0.2 + ts-pattern: 5.5.0 transitivePeerDependencies: - eslint - supports-color - typescript dev: true - /@eslint-react/tools@1.16.1: - resolution: {integrity: sha512-X/VbkpltsfLLM14SqAThFEEsvQOCopyFXRwnAJp6HU9SdZEy7CkqRdPz/EQl8w7SEl70/DVFI2kvx0FN8YP3bw==} + /@eslint-react/tools@1.17.1: + resolution: {integrity: sha512-0ZUw3PF70qeBMJLrntmojQLGzy5S05fwor5CxrHIp1MwQoPTphX11WiuCuq5ohHZ+xopqLHASkRrvAPthAalUQ==} dev: true - /@eslint-react/types@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-0vNdbVtebCtlGZBFWmZaYvXYhgakKrvQz1WYeSmEMKLSebIgReSrvjqVOhQOvoz41lGIuNYUKfYVSWwj41lyDg==} + /@eslint-react/types@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-jf9kkRRnV65wCQPdVIGBa81VH4CbN/qULSg6YnErKd4Kgbq6l8Sh54lY8Qlo1jj2LHtzo/nACdyWx1aOgkyuDg==} dependencies: - '@eslint-react/tools': 1.16.1 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/tools': 1.17.1 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) transitivePeerDependencies: - eslint - supports-color - typescript dev: true - /@eslint-react/var@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-CZ1fMQPkr60pwx8PLHsn75cl1Ovw/GHo2v6nhdWyhW8VhbBwJ1d1VdjSxPZjHJ4KCZFTuVVunWn7W9gDZmK+ow==} + /@eslint-react/var@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-hsHzVjfj+FmAkk6VRqwYJtEBI+k5fUkw2YgMezTx2HkuWP6BWYprLzD+tRU1IS5jMrvIw1FkcBLfcu0EU5FfLQ==} dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) ts-pattern: 5.5.0 transitivePeerDependencies: - eslint @@ -2156,8 +2159,8 @@ packages: - typescript dev: true - /@eslint/compat@1.2.2(eslint@9.10.0): - resolution: {integrity: sha512-jhgiIrsw+tRfcBQ4BFl2C3vCrIUw2trCY0cnDvGZpwTtKCEDmZhAtMfrEUP/KpnwM6PrO0T+Ltm+ccW74olG3Q==} + /@eslint/compat@1.2.3(eslint@9.10.0): + resolution: {integrity: sha512-wlZhwlDFxkxIZ571aH0FoK4h4Vwx7P3HJx62Gp8hTc10bfpwT2x0nULuAHmQSJBOWPgPeVf+9YtnD4j50zVHmA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^9.10.0 @@ -2196,11 +2199,33 @@ packages: - supports-color dev: true + /@eslint/eslintrc@3.2.0: + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.7(supports-color@5.5.0) + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@eslint/js@9.10.0: resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /@eslint/js@9.15.0: + resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /@eslint/object-schema@2.1.4: resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2213,37 +2238,37 @@ packages: levn: 0.4.1 dev: true - /@formatjs/ecma402-abstract@2.2.0: - resolution: {integrity: sha512-IpM+ev1E4QLtstniOE29W1rqH9eTdx5hQdNL8pzrflMj/gogfaoONZqL83LUeQScHAvyMbpqP5C9MzNf+fFwhQ==} + /@formatjs/ecma402-abstract@2.2.4: + resolution: {integrity: sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==} dependencies: - '@formatjs/fast-memoize': 2.2.1 - '@formatjs/intl-localematcher': 0.5.5 + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/intl-localematcher': 0.5.8 tslib: 2.8.1 dev: false - /@formatjs/fast-memoize@2.2.1: - resolution: {integrity: sha512-XS2RcOSyWxmUB7BUjj3mlPH0exsUzlf6QfhhijgI941WaJhVxXQ6mEWkdUFIdnKi3TuTYxRdelsgv3mjieIGIA==} + /@formatjs/fast-memoize@2.2.3: + resolution: {integrity: sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==} dependencies: tslib: 2.8.1 dev: false - /@formatjs/icu-messageformat-parser@2.8.0: - resolution: {integrity: sha512-r2un3fmF9oJv3mOkH+wwQZ037VpqmdfahbcCZ9Lh+p6Sx+sNsonI7Zcr6jNMm1s+Si7ejQORS4Ezlh05mMPAXA==} + /@formatjs/icu-messageformat-parser@2.9.4: + resolution: {integrity: sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==} dependencies: - '@formatjs/ecma402-abstract': 2.2.0 - '@formatjs/icu-skeleton-parser': 1.8.4 + '@formatjs/ecma402-abstract': 2.2.4 + '@formatjs/icu-skeleton-parser': 1.8.8 tslib: 2.8.1 dev: false - /@formatjs/icu-skeleton-parser@1.8.4: - resolution: {integrity: sha512-LMQ1+Wk1QSzU4zpd5aSu7+w5oeYhupRwZnMQckLPRYhSjf2/8JWQ882BauY9NyHxs5igpuQIXZDgfkaH3PoATg==} + /@formatjs/icu-skeleton-parser@1.8.8: + resolution: {integrity: sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==} dependencies: - '@formatjs/ecma402-abstract': 2.2.0 + '@formatjs/ecma402-abstract': 2.2.4 tslib: 2.8.1 dev: false - /@formatjs/intl-localematcher@0.5.5: - resolution: {integrity: sha512-t5tOGMgZ/i5+ALl2/offNqAQq/lfUnKLEw0mXQI4N4bqpedhrSE+fyKLpwnd22sK0dif6AV+ufQcTsKShB9J1g==} + /@formatjs/intl-localematcher@0.5.8: + resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==} dependencies: tslib: 2.8.1 dev: false @@ -2320,29 +2345,29 @@ packages: engines: {node: '>=18.18'} dev: true - /@internationalized/date@3.5.6: - resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} + /@internationalized/date@3.6.0: + resolution: {integrity: sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==} dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 dev: false - /@internationalized/message@3.1.5: - resolution: {integrity: sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==} + /@internationalized/message@3.1.6: + resolution: {integrity: sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==} dependencies: - '@swc/helpers': 0.5.13 - intl-messageformat: 10.7.1 + '@swc/helpers': 0.5.15 + intl-messageformat: 10.7.7 dev: false - /@internationalized/number@3.5.4: - resolution: {integrity: sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==} + /@internationalized/number@3.6.0: + resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 dev: false - /@internationalized/string@3.2.4: - resolution: {integrity: sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==} + /@internationalized/string@3.2.5: + resolution: {integrity: sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==} dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 dev: false /@istanbuljs/load-nyc-config@1.1.0: @@ -2880,699 +2905,729 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@react-aria/breadcrumbs@3.5.18(react@18.3.1): - resolution: {integrity: sha512-JRc6nAwQsjqsPw/3MlGwJcVo9ACZDbCOwWNNEnj8mR0fQopJO5xliq3qVzxDRZjdYrVUfTTyKXuepv/jMB1Y6Q==} + /@react-aria/breadcrumbs@3.5.19(react@18.3.1): + resolution: {integrity: sha512-mVngOPFYVVhec89rf/CiYQGTfaLRfHFtX+JQwY7sNYNqSA+gO8p4lNARe3Be6bJPgH+LUQuruIY9/ZDL6LT3HA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/link': 3.7.6(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/breadcrumbs': 3.7.8(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/link': 3.7.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/breadcrumbs': 3.7.9(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/button@3.10.1(react@18.3.1): - resolution: {integrity: sha512-1vkRsjdvJrJleK73u7ClrW4Fw3mtr2hIs8M2yLZUpLoqHXnIYJwmeEMtzwyPFYKBc5jaHcGXw45any7Puy1aFA==} + /@react-aria/button@3.11.0(react@18.3.1): + resolution: {integrity: sha512-b37eIV6IW11KmNIAm65F3SEl2/mgj5BrHIysW6smZX3KoKWTGYsYfcQkmtNgY0GOSFfDxMCoolsZ6mxC00nSDA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/toggle': 3.7.8(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/toolbar': 3.0.0-beta.11(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/calendar@3.5.13(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-BJV5IwIH4UPDa6/HRTOBcM1wC+/6p823VrbocV9mr+rt5cCnuh+cqcCQKqUSEbfaTMPrmabjBuEaQIvqjLRYUA==} + /@react-aria/calendar@3.6.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-tZ3nd5DP8uxckbj83Pt+4RqgcTWDlGi7njzc7QqFOG2ApfnYDUXbIpb/Q4KY6JNlJskG8q33wo0XfOwNy8J+eg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/date': 3.5.6 - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/calendar': 3.5.5(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/calendar': 3.4.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@internationalized/date': 3.6.0 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/calendar': 3.6.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/checkbox@3.14.8(react@18.3.1): - resolution: {integrity: sha512-0qPJ3fiQQm7tiMHmIhR9iokr/MhhI2h6OWX/pDeIy/Gj63WSVk+Cka3NUhgMRGkguHKDZPKaFjK1oZQsXhCThQ==} + /@react-aria/checkbox@3.15.0(react@18.3.1): + resolution: {integrity: sha512-z/8xd4em7o0MroBXwkkwv7QRwiJaA1FwqMhRUb7iqtBGP2oSytBEDf0N7L09oci32a1P4ZPz2rMK5GlLh/PD6g==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/form': 3.0.10(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/toggle': 3.10.9(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/checkbox': 3.6.9(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/toggle': 3.7.8(react@18.3.1) - '@react-types/checkbox': 3.8.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/toggle': 3.10.10(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/checkbox': 3.6.10(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/color@3.0.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-7hTCdXCU2/qpZuIrJcVr+s87C2MqHfi9Y461gMza5DjdUzlcy480UZ/iknbw82C0a+oVo08D/bnQctEjja05pw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/numberfield': 3.11.8(react-dom@18.3.1)(react@18.3.1) - '@react-aria/slider': 3.7.13(react@18.3.1) - '@react-aria/spinbutton': 3.6.9(react-dom@18.3.1)(react@18.3.1) - '@react-aria/textfield': 3.14.10(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-aria/visually-hidden': 3.8.17(react@18.3.1) - '@react-stately/color': 3.8.0(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-types/color': 3.0.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + /@react-aria/color@3.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-dSM5qQRcR1gRGYCBw0IGRmc29gjfoht3cQleKb8MMNcgHYa2oi5VdCs2yKXmYFwwVC6uPtnlNy9S6e0spqdr+w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/numberfield': 3.11.9(react-dom@18.3.1)(react@18.3.1) + '@react-aria/slider': 3.7.14(react@18.3.1) + '@react-aria/spinbutton': 3.6.10(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/color': 3.8.1(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/color': 3.0.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/combobox@3.10.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-1cjBJXWYuR0de+9IEU1MOer3H5FSlbrdaqlWo+M6vvMymBL2OjjwXiG3LY1mR65ZwHoTswXzt6/mujUKaxk5vw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/listbox': 3.13.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/menu': 3.15.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/overlays': 3.23.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/textfield': 3.14.10(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/combobox': 3.10.0(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/combobox': 3.13.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + /@react-aria/combobox@3.11.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-s88YMmPkMO1WSoiH1KIyZDLJqUwvM2wHXXakj3cYw1tBHGo4rOUFq+JWQIbM5EDO4HOR4AUUqzIUd0NO7t3zyg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/listbox': 3.13.6(react-dom@18.3.1)(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/menu': 3.16.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/combobox': 3.10.1(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/combobox': 3.13.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/datepicker@3.11.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-TXe1TB/pSwrIQ5BIDr6NCAYjBaKgLN6cP5DlAihywHzqxbM6vO8GU6qbrZNSBrtfzZnrR/4z66Vlw6rhznLnqQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@internationalized/date': 3.5.6 - '@internationalized/number': 3.5.4 - '@internationalized/string': 3.2.4 - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/form': 3.0.10(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/spinbutton': 3.6.9(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/datepicker': 3.10.3(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/calendar': 3.4.10(react@18.3.1) - '@react-types/datepicker': 3.8.3(react@18.3.1) - '@react-types/dialog': 3.5.13(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + /@react-aria/datepicker@3.12.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-VYNXioLfddIHpwQx211+rTYuunDmI7VHWBRetCpH3loIsVFuhFSRchTQpclAzxolO3g0vO7pMVj9VYt7Swp6kg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@internationalized/date': 3.6.0 + '@internationalized/number': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/spinbutton': 3.6.10(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/datepicker': 3.11.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/datepicker': 3.9.0(react@18.3.1) + '@react-types/dialog': 3.5.14(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/dialog@3.5.19(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-I3AJWpAWCajj8Ama8qLQ18Tc37ODyk+Ym3haYEl5L4QnuFc0dU1sMJr15fppDGIxYjwvTTfctyhaSCz+S+wpkw==} + /@react-aria/dialog@3.5.20(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/overlays': 3.23.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/dialog': 3.5.13(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/dialog': 3.5.14(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/dnd@3.7.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-lRE8SVyK/MPbF6NiVXHoriOV0QulNKkSndyDr3TWPsLhH5GKQso5jSx8/5ogbDgRTzIsmIQldj/HlW238DCiSg==} + /@react-aria/disclosure@3.0.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-xO9QTQSvymujTjCs1iCQ4+dKZvtF/rVVaFZBKlUtqIqwTHMdqeZu4fh5miLEnTyVLNHMGzLrFggsd8Q+niC9Og==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/string': 3.2.4 - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/overlays': 3.23.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/dnd': 3.4.3(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/disclosure': 3.0.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/focus@3.18.4(react@18.3.1): - resolution: {integrity: sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==} + /@react-aria/dnd@3.8.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-JiqHY3E9fDU5Kb4gN22cuK6QNlpMCGe6ngR/BV+Q8mLEsdoWcoUAYOtYXVNNTRvCdVbEWI87FUU+ThyPpoDhNQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@internationalized/string': 3.2.5 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/overlays': 3.24.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/dnd': 3.5.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/focus@3.19.0(react@18.3.1): + resolution: {integrity: sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 clsx: 2.1.1 react: 18.3.1 dev: false - /@react-aria/form@3.0.10(react@18.3.1): - resolution: {integrity: sha512-hWBrqEXxBxcpYTJv0telQKaiu2728EUFHta8/RGBqJ4+MhKKxI7+PnLoms78IuiK0MCYvukHfun1fuQvK+8jsg==} + /@react-aria/form@3.0.11(react@18.3.1): + resolution: {integrity: sha512-oXzjTiwVuuWjZ8muU0hp3BrDH5qjVctLOF50mjPvqUbvXQTHhoDxWweyIXPQjGshaqBd2w4pWaE4A2rG2O/apw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/grid@3.10.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-9sLa+rpLgRZk7VX+tvdSudn1tdVgolVzhDLGWd95yS4UtPVMihTMGBrRoByY57Wxvh1V+7Ptw8kc6tsRSotYKg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/grid': 3.9.3(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-types/checkbox': 3.8.4(react@18.3.1) - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + /@react-aria/grid@3.11.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-lN5FpQgu2Rq0CzTPWmzRpq6QHcMmzsXYeClsgO3108uVp1/genBNAObYVTxGOKe/jb9q99trz8EtIn05O6KN1g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/grid': 3.10.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/gridlist@3.9.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-LM+3D0amZZ1qiyqWVG52j0YRWt2chdpx+WG80ryDKwHLDIq7uz1+KXyIfv8cFt/cZcl6+9Ft3kWALCAi6O4NLA==} + /@react-aria/gridlist@3.10.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-UcblfSZ7kJBrjg9mQ5VbnRevN81UiYB4NuL5PwIpBpridO7tnl4ew6+96PYU7Wj1chHhPS3x0b0zmuSVN7A0LA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/grid': 3.10.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-stately/tree': 3.8.5(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/grid': 3.11.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/i18n@3.12.3(react@18.3.1): - resolution: {integrity: sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==} + /@react-aria/i18n@3.12.4(react@18.3.1): + resolution: {integrity: sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/date': 3.5.6 - '@internationalized/message': 3.1.5 - '@internationalized/number': 3.5.4 - '@internationalized/string': 3.2.4 - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@internationalized/date': 3.6.0 + '@internationalized/message': 3.1.6 + '@internationalized/number': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/interactions@3.22.4(react@18.3.1): - resolution: {integrity: sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==} + /@react-aria/interactions@3.22.5(react@18.3.1): + resolution: {integrity: sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/label@3.7.12(react@18.3.1): - resolution: {integrity: sha512-u9xT90lAlgb7xiv+p0md9QwCHz65XL7tjS5e29e88Rs3ptkv3aQubTqxVOUTEwzbNUT4A1QqTjUm1yfHewIRUw==} + /@react-aria/label@3.7.13(react@18.3.1): + resolution: {integrity: sha512-brSAXZVTey5RG/Ex6mTrV/9IhGSQFU4Al34qmjEDho+Z2qT4oPwf8k7TRXWWqzOU0ugYxekYbsLd2zlN3XvWcg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/link@3.7.6(react@18.3.1): - resolution: {integrity: sha512-8buJznRWoOud8ApygUAz7TsshXNs6HDGB6YOYEJxy0WTKILn0U5NUymw2PWC14+bWRPelHMKmi6vbFBrJWzSzQ==} + /@react-aria/link@3.7.7(react@18.3.1): + resolution: {integrity: sha512-eVBRcHKhNSsATYWv5wRnZXRqPVcKAWWakyvfrYePIKpC3s4BaHZyTGYdefk8ZwZdEOuQZBqLMnjW80q1uhtkuA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/link': 3.5.8(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/link': 3.5.9(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/listbox@3.13.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-tn32L/PIELIPYfDWCJ3OBRvvb/jCEvIzs6IYs8xCISV5W4853Je/WnA8wumWnz07U9sODYFmHUx2ThO7Z7dH7Q==} + /@react-aria/listbox@3.13.6(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-6hEXEXIZVau9lgBZ4VVjFR3JnGU+fJaPmV3HP0UZ2ucUptfG0MZo24cn+ZQJsWiuaCfNFv5b8qribiv+BcO+Kg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-types/listbox': 3.5.2(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-types/listbox': 3.5.3(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/live-announcer@3.4.0: - resolution: {integrity: sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==} + /@react-aria/live-announcer@3.4.1: + resolution: {integrity: sha512-4X2mcxgqLvvkqxv2l1n00jTzUxxe0kkLiapBGH1LHX/CxA1oQcHDqv8etJ2ZOwmS/MSBBiWnv3DwYHDOF6ubig==} dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 dev: false - /@react-aria/menu@3.15.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-ygfS032hJSZCYYbMHnUSmUTVMaz99L9AUZ9kMa6g+k2X1t92K1gXfhYYkoClQD6+G0ch7zm0SwYFlUmRf9yOEA==} + /@react-aria/menu@3.16.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-TNk+Vd3TbpBPUxEloAdHRTaRxf9JBK7YmkHYiq0Yj5Lc22KS0E2eTyhpPM9xJvEWN2TlC5TEvNfdyui2kYWFFQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/overlays': 3.23.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/menu': 3.8.3(react@18.3.1) - '@react-stately/tree': 3.8.5(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/menu': 3.9.12(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/menu': 3.9.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/menu': 3.9.13(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/meter@3.4.17(react@18.3.1): - resolution: {integrity: sha512-08wbQhfvVWzpWilhn/WD7cQ7TqafS/66umTk7+X6BW6TrS1//6loNNJV62IC3F7sskel4iEAtl2gW0WpW8zEdg==} + /@react-aria/meter@3.4.18(react@18.3.1): + resolution: {integrity: sha512-tTX3LLlmDIHqrC42dkdf+upb1c4UbhlpZ52gqB64lZD4OD4HE+vMTwNSe+7MRKMLvcdKPWCRC35PnxIHZ15kfQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/progress': 3.4.17(react@18.3.1) - '@react-types/meter': 3.4.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/progress': 3.4.18(react@18.3.1) + '@react-types/meter': 3.4.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/numberfield@3.11.8(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-CWRHbrjfpvEqBmtjwX8LjVds6+tMNneRlKF46ked5sZilfU2jIirufaucM36N4vX6N/W7nFR/rCbp2WCOU9p3Q==} + /@react-aria/numberfield@3.11.9(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-3tiGPx2y4zyOV7PmdBASes99ZZsFTZAJTnU45Z+p1CW4131lw7y2ZhbojBl7U6DaXAJvi1z6zY6cq2UE9w5a0Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/spinbutton': 3.6.9(react-dom@18.3.1)(react@18.3.1) - '@react-aria/textfield': 3.14.10(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/numberfield': 3.9.7(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/numberfield': 3.8.6(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/spinbutton': 3.6.10(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/numberfield': 3.9.8(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/numberfield': 3.8.7(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/overlays@3.23.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-MZUW6SUlTWOwKuFTqUTxW5BnvdW3Y9cEwanWuz98NX3ST7JYe/3ZcZhb37/fGW4uoGHnQ9icEwVf0rbMrK2STg==} + /@react-aria/overlays@3.24.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-aria/visually-hidden': 3.8.17(react@18.3.1) - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/overlays': 3.8.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/progress@3.4.17(react@18.3.1): - resolution: {integrity: sha512-5+01WNibLoNS5KcfU5p6vg7Lhz17plqqzv/uITx28zzj3saaj0VLR7n57Ig2fXe8ZEQoUS89BS3sIEsIf96S1A==} + /@react-aria/progress@3.4.18(react@18.3.1): + resolution: {integrity: sha512-FOLgJ9t9i1u3oAAimybJG6r7/soNPBnJfWo4Yr6MmaUv90qVGa1h6kiuM5m9H/bm5JobAebhdfHit9lFlgsCmg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/progress': 3.5.7(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/progress': 3.5.8(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/radio@3.10.9(react@18.3.1): - resolution: {integrity: sha512-XnU7zGTEku1mPvJweX4I3ifwEBtglEWYoO4CZGvA3eXj39X8iGwNZXUst1pdk2ykWUKbtwrmsWA6zG2OAGODYw==} + /@react-aria/radio@3.10.10(react@18.3.1): + resolution: {integrity: sha512-NVdeOVrsrHgSfwL2jWCCXFsWZb+RMRZErj5vthHQW4nkHECGOzeX56VaLWTSvdoCPqi9wdIX8A6K9peeAIgxzA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/form': 3.0.10(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/radio': 3.10.8(react@18.3.1) - '@react-types/radio': 3.8.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/radio': 3.10.9(react@18.3.1) + '@react-types/radio': 3.8.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/searchfield@3.7.10(react@18.3.1): - resolution: {integrity: sha512-1XTYh2dycedaK1tgpHAHcu8PTK1wG3dv53yLziu07JsBe9tX6O8jIFBhZK8SpfNnP8pEOI3PIlVEjaarLwgWzQ==} + /@react-aria/searchfield@3.7.11(react@18.3.1): + resolution: {integrity: sha512-wFf6QxtBFfoxy0ANxI0+ftFEBGynVCY0+ce4H4Y9LpUTQsIKMp3sdc7LoUFORWw5Yee6Eid5cFPQX0Ymnk+ZJg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/textfield': 3.14.10(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/searchfield': 3.5.7(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/searchfield': 3.5.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/searchfield': 3.5.8(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/searchfield': 3.5.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/select@3.14.11(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-rX5U4JcPNV41lNEF1tAxNxqrGENnLGZL/D5Y+YNpqKSU5U09+hD3ovsflNkF/d+deb25zg45JRxumwOCQ+rfyw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@react-aria/form': 3.0.10(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/listbox': 3.13.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/menu': 3.15.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-aria/visually-hidden': 3.8.17(react@18.3.1) - '@react-stately/select': 3.6.8(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/select': 3.9.7(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + /@react-aria/select@3.15.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-zgBOUNy81aJplfc3NKDJMv8HkXjBGzaFF3XDzNfW8vJ7nD9rcTRUN5SQ1XCEnKMv12B/Euk9zt6kd+tX0wk1vQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/listbox': 3.13.6(react-dom@18.3.1)(react@18.3.1) + '@react-aria/menu': 3.16.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/select': 3.6.9(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/select': 3.9.8(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/selection@3.20.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-My0w8UC/7PAkz/1yZUjr2VRuzDZz1RrbgTqP36j5hsJx8RczDTjI4TmKtQNKG0ggaP4w83G2Og5JPTq3w3LMAw==} + /@react-aria/selection@3.21.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-52JJ6hlPcM+gt0VV3DBmz6Kj1YAJr13TfutrKfGWcK36LvNCBm1j0N+TDqbdnlp8Nue6w0+5FIwZq44XPYiBGg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/separator@3.4.3(react@18.3.1): - resolution: {integrity: sha512-L+eCmSGfRJ9jScHZqBkmOkp44LBARisDjRdYbGrLlsAEcOiHUXufnfpxz2rgkUGBdUgnI9hIk12q5kdy0UxGjg==} + /@react-aria/separator@3.4.4(react@18.3.1): + resolution: {integrity: sha512-dH+qt0Mdh0nhKXCHW6AR4DF8DKLUBP26QYWaoThPdBwIpypH/JVKowpPtWms1P4b36U6XzHXHnTTEn/ZVoCqNA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/slider@3.7.13(react@18.3.1): - resolution: {integrity: sha512-yGlIpoOUKUoP0M3iI8ZHU001NASBOeZJSIQNfoS7HiqSR3bz+6BX7DRAM6B+CPHJleUtrdQ6JjO/8V8ZUV2kNQ==} + /@react-aria/slider@3.7.14(react@18.3.1): + resolution: {integrity: sha512-7rOiKjLkEZ0j7mPMlwrqivc+K4OSfL14slaQp06GHRiJkhiWXh2/drPe15hgNq55HmBQBpA0umKMkJcqVgmXPA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/slider': 3.5.8(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/slider': 3.7.6(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/slider': 3.6.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/slider': 3.7.7(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/spinbutton@3.6.9(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-m+uVJdiIc2LrLVDGjU7p8P2O2gUvTN26GR+NgH4rl+tUSuAB0+T1rjls/C+oXEqQjCpQihEB9Bt4M+VHpzmyjA==} + /@react-aria/spinbutton@3.6.10(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-nhYEYk7xUNOZDaqiQ5w/nHH9ouqjJbabTWXH+KK7UR1oVGfo4z1wG94l8KWF3Z6SGGnBxzLJyTBguZ4g9aYTSg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/ssr@3.9.6(react@18.3.1): - resolution: {integrity: sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==} + /@react-aria/ssr@3.9.7(react@18.3.1): + resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} engines: {node: '>= 12'} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/switch@3.6.9(react@18.3.1): - resolution: {integrity: sha512-w7xIywpR6llm22DXYOObZ2Uqvsw+gNmxdJ86h8+YRtpSkFnPMhXtTMv3RXpEGYhPTt/YDIqfxiluF1E2IHGwIA==} + /@react-aria/switch@3.6.10(react@18.3.1): + resolution: {integrity: sha512-FtaI9WaEP1tAmra1sYlAkYXg9x75P5UtgY8pSbe9+1WRyWbuE1QZT+RNCTi3IU4fZ7iJQmXH6+VaMyzPlSUagw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/toggle': 3.10.9(react@18.3.1) - '@react-stately/toggle': 3.7.8(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/switch': 3.5.6(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/toggle': 3.10.10(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/switch': 3.5.7(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/table@3.15.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-bdNZF0ZoNOfyOEIK/ctv0llacaCNk8mv+GGy8mwh5bZeJjd8KuDIpYQtZJYvf2YVvPYRWyXRhF0/B229m65f/g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/grid': 3.10.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-aria/visually-hidden': 3.8.17(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/flags': 3.0.4 - '@react-stately/table': 3.12.3(react@18.3.1) - '@react-types/checkbox': 3.8.4(react@18.3.1) - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/table': 3.10.2(react@18.3.1) - '@swc/helpers': 0.5.13 + /@react-aria/table@3.16.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9xF9S3CJ7XRiiK92hsIKxPedD0kgcQWwqTMtj3IBynpQ4vsnRiW3YNIzrn9C3apjknRZDTSta8O2QPYCUMmw2A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/grid': 3.11.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/flags': 3.0.5 + '@react-stately/table': 3.13.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/tabs@3.9.7(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-f78P2Y9ZCYtwOnteku9mPVIk21xSSREYWaQPtA9ebSgVbeR5ya6RpaX9ISc9cd0HEF3Av+hZYyS1pNXXWymv9g==} + /@react-aria/tabs@3.9.8(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Nur/qRFBe+Zrt4xcCJV/ULXCS3Mlae+B89bp1Gl20vSDqk6uaPtGk+cS5k03eugOvas7AQapqNJsJgKd66TChw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/tabs': 3.6.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/tabs': 3.3.10(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tabs': 3.7.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/tabs': 3.3.11(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/tag@3.4.7(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-hreVvphUeYUfMN6gjM3+WouN2P/WGuR0rGpOrFk2HEnGDPg3Ar0isfdAaciTSBOc26CDKNgrmzRguxCmKKuqgw==} + /@react-aria/tag@3.4.8(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-exWl52bsFtJuzaqMYvSnLteUoPqb3Wf+uICru/yRtREJsWVqjJF38NCVlU73Yqd9qMPTctDrboSZFAWAWKDxoA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/gridlist': 3.9.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/gridlist': 3.10.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@react-aria/textfield@3.14.10(react@18.3.1): - resolution: {integrity: sha512-vG44FgxwfJUF2S6tRG+Sg646DDEgs0CO9RYniafEOHz8rwcNIH3lML7n8LAfzQa+BjBY28+UF0wmqEvd6VCzCQ==} + /@react-aria/textfield@3.15.0(react@18.3.1): + resolution: {integrity: sha512-V5mg7y1OR6WXYHdhhm4FC7QyGc9TideVRDFij1SdOJrIo5IFB7lvwpOS0GmgwkVbtr71PTRMjZnNbrJUFU6VNA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/textfield': 3.10.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + dev: false + + /@react-aria/toggle@3.10.10(react@18.3.1): + resolution: {integrity: sha512-QwMT/vTNrbrILxWVHfd9zVQ3mV2NdBwyRu+DphVQiFAXcmc808LEaIX2n0lI6FCsUDC9ZejCyvzd91/YemdZ1Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/form': 3.0.10(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/textfield': 3.9.7(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/toggle@3.10.9(react@18.3.1): - resolution: {integrity: sha512-dtfnyIU2/kcH9rFAiB48diSmaXDv45K7UCuTkMQLjbQa3QHC1oYNbleVN/VdGyAMBsIWtfl8L4uuPrAQmDV/bg==} + /@react-aria/toolbar@3.0.0-beta.11(react@18.3.1): + resolution: {integrity: sha512-LM3jTRFNDgoEpoL568WaiuqiVM7eynSQLJis1hV0vlVnhTd7M7kzt7zoOjzxVb5Uapz02uCp1Fsm4wQMz09qwQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/toggle': 3.7.8(react@18.3.1) - '@react-types/checkbox': 3.8.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/tooltip@3.7.9(react@18.3.1): - resolution: {integrity: sha512-TqVJ7YqaP/enxNyA1QGr43w4nBZmOs6Hb/pROMS5afbX7gHgMVFn0lTRc6DC2cvcfgYc4WICs2QiQMniZt/E7A==} + /@react-aria/tooltip@3.7.10(react@18.3.1): + resolution: {integrity: sha512-Udi3XOnrF/SYIz72jw9bgB74MG/yCOzF5pozHj2FH2HiJlchYv/b6rHByV/77IZemdlkmL/uugrv/7raPLSlnw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/tooltip': 3.4.13(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/tooltip': 3.4.12(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tooltip': 3.5.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/tooltip': 3.4.13(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-aria/utils@3.25.3(react@18.3.1): - resolution: {integrity: sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==} + /@react-aria/utils@3.26.0(react@18.3.1): + resolution: {integrity: sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 clsx: 2.1.1 react: 18.3.1 dev: false - /@react-aria/visually-hidden@3.8.17(react@18.3.1): - resolution: {integrity: sha512-WFgny1q2CbxxU6gu46TGQXf1DjsnuSk+RBDP4M7bm1mUVZzoCp7U7AtjNmsBrWg0NejxUdgD7+7jkHHCQ91qRA==} + /@react-aria/visually-hidden@3.8.18(react@18.3.1): + resolution: {integrity: sha512-l/0igp+uub/salP35SsNWq5mGmg3G5F5QMS1gDZ8p28n7CgjvzyiGhJbbca7Oxvaw1HRFzVl9ev+89I7moNnFQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false @@ -3626,558 +3681,570 @@ packages: react: 18.3.1 dev: false - /@react-stately/calendar@3.5.5(react@18.3.1): - resolution: {integrity: sha512-HzaiDRhrmaYIly8hRsjjIrydLkldiw1Ws6T/130NLQOt+VPwRW/x0R+nil42mA9LZ6oV0XN0NpmG5tn7TaKRGw==} + /@react-stately/calendar@3.6.0(react@18.3.1): + resolution: {integrity: sha512-GqUtOtGnwWjtNrJud8nY/ywI4VBP5byToNVRTnxbMl+gYO1Qe/uc5NG7zjwMxhb2kqSBHZFdkF0DXVqG2Ul+BA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@internationalized/date': 3.6.0 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + dev: false + + /@react-stately/checkbox@3.6.10(react@18.3.1): + resolution: {integrity: sha512-LHm7i4YI8A/RdgWAuADrnSAYIaYYpQeZqsp1a03Og0pJHAlZL0ymN3y2IFwbZueY0rnfM+yF+kWNXjJqbKrFEQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/date': 3.5.6 - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/calendar': 3.4.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/checkbox@3.6.9(react@18.3.1): - resolution: {integrity: sha512-JrY3ecnK/SSJPxw+qhGhg3YV4e0CpUcPDrVwY3mSiAE932DPd19xr+qVCknJ34H7JYYt/q0l2z0lmgPnl96RTg==} + /@react-stately/collections@3.12.0(react@18.3.1): + resolution: {integrity: sha512-MfR9hwCxe5oXv4qrLUnjidwM50U35EFmInUeFf8i9mskYwWlRYS0O1/9PZ0oF1M0cKambaRHKEy98jczgb9ycA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/checkbox': 3.8.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/collections@3.11.0(react@18.3.1): - resolution: {integrity: sha512-TiJeJjHMPSbbeAhmCXLJNSCk0fa5XnCvEuYw6HtQzDnYiq1AD7KAwkpjC5NfKkjqF3FLXs/v9RDm/P69q6rYzw==} + /@react-stately/color@3.8.1(react@18.3.1): + resolution: {integrity: sha512-7eN7K+KJRu+rxK351eGrzoq2cG+yipr90i5b1cUu4lioYmcH4WdsfjmM5Ku6gypbafH+kTDfflvO6hiY1NZH+A==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@internationalized/number': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/numberfield': 3.9.8(react@18.3.1) + '@react-stately/slider': 3.6.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/color': 3.0.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/color@3.8.0(react@18.3.1): - resolution: {integrity: sha512-lBH91HEStZeayhE/FkDMt9WC0UISQiAn8DoD2hfpTGeeWscX/soyxZA7oVL7zBOG9RfDBMNzF+CybVROrWSKAQ==} + /@react-stately/combobox@3.10.1(react@18.3.1): + resolution: {integrity: sha512-Rso+H+ZEDGFAhpKWbnRxRR/r7YNmYVtt+Rn0eNDNIUp3bYaxIBCdCySyAtALs4I8RZXZQ9zoUznP7YeVwG3cLg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/number': 3.5.4 - '@internationalized/string': 3.2.4 - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/numberfield': 3.9.7(react@18.3.1) - '@react-stately/slider': 3.5.8(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/color': 3.0.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-stately/select': 3.6.9(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/combobox': 3.13.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/combobox@3.10.0(react@18.3.1): - resolution: {integrity: sha512-4W4HCCjjoddW/LZM3pSSeLoV7ncYXlaICKmqlBcbtLR5jY4U5Kx+pPpy3oJ1vCdjDHatIxZ0tVKEBP7vBQVeGQ==} + /@react-stately/datepicker@3.11.0(react@18.3.1): + resolution: {integrity: sha512-d9MJF34A0VrhL5y5S8mAISA8uwfNCQKmR2k4KoQJm3De1J8SQeNzSjLviAwh1faDow6FXGlA6tVbTrHyDcBgBg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-stately/select': 3.6.8(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/combobox': 3.13.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@internationalized/date': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/datepicker': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/datepicker@3.10.3(react@18.3.1): - resolution: {integrity: sha512-6PJW1QMwk6BQMktV9L6DA4f2rfAdLfbq3iTNLy4qxd5IfNPLMUZiJGGTj+cuqx0WcEl+q5irp+YhKBpbmhPZHg==} + /@react-stately/disclosure@3.0.0(react@18.3.1): + resolution: {integrity: sha512-Z9+fi0/41ZXHjGopORQza7mk4lFEFslKhy65ehEo6O6j2GuIV0659ExIVDsmJoJSFjXCfGh0sX8oTSOlXi9gqg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/date': 3.5.6 - '@internationalized/string': 3.2.4 - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/datepicker': 3.8.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/dnd@3.4.3(react@18.3.1): - resolution: {integrity: sha512-sUvhmMxFEw6P2MW7walx0ntakIihxdPxA06K9YZ3+ReaUvzQuRw5cFDaTTHrlegWRMYD0CyQaKlGIaTQihhvVA==} + /@react-stately/dnd@3.5.0(react@18.3.1): + resolution: {integrity: sha512-ZcWFw1npEDnATiy3TEdzA1skQ3UEIyfbNA6VhPNO8yiSVLxoxBOaEaq8VVS72fRGAtxud6dgOy8BnsP9JwDClQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/flags@3.0.4: - resolution: {integrity: sha512-RNJEkOALwKg+JeYsfNlfPc4GXm7hiBLX0yuHOkRapWEyDOfi0cinkV/TZG4goOZdQ5tBpHmemf2qqiHAxqHlzQ==} + /@react-stately/flags@3.0.5: + resolution: {integrity: sha512-6wks4csxUwPCp23LgJSnkBRhrWpd9jGd64DjcCTNB2AHIFu7Ab1W59pJpUL6TW7uAxVxdNKjgn6D1hlBy8qWsA==} dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 dev: false - /@react-stately/form@3.0.6(react@18.3.1): - resolution: {integrity: sha512-KMsxm3/V0iCv/6ikt4JEjVM3LW2AgCzo7aNotMzRobtwIo0RwaUo7DQNY00rGgFQ3/IjzI6DcVo13D+AVE/zXg==} + /@react-stately/form@3.1.0(react@18.3.1): + resolution: {integrity: sha512-E2wxNQ0QaTyDHD0nJFtTSnEH9A3bpJurwxhS4vgcUmESHgjFEMLlC9irUSZKgvOgb42GAq+fHoWBsgKeTp9Big==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/grid@3.9.3(react@18.3.1): - resolution: {integrity: sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==} + /@react-stately/grid@3.10.0(react@18.3.1): + resolution: {integrity: sha512-ii+DdsOBvCnHMgL0JvUfFwO1kiAPP19Bpdpl6zn/oOltk6F5TmnoyNrzyz+2///1hCiySI3FE1O7ujsAQs7a6Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/list@3.11.0(react@18.3.1): - resolution: {integrity: sha512-O+BxXcbtoLZWn4QIT54RoFUaM+QaJQm6s0ZBJ3Jv4ILIhukVOc55ra+aWMVlXFQSpbf6I3hyVP6cz1yyvd5Rtw==} + /@react-stately/list@3.11.1(react@18.3.1): + resolution: {integrity: sha512-UCOpIvqBOjwLtk7zVTYWuKU1m1Oe61Q5lNar/GwHaV1nAiSQ8/yYlhr40NkBEs9X3plEfsV28UIpzOrYnu1tPg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/menu@3.8.3(react@18.3.1): - resolution: {integrity: sha512-sV63V+cMgzipx/N7dq5GaXoItfXIfFEpCtlk3PM2vKstlCJalszXrdo+x996bkeU96h0plB7znAlhlXOeTKzUg==} + /@react-stately/menu@3.9.0(react@18.3.1): + resolution: {integrity: sha512-++sm0fzZeUs9GvtRbj5RwrP+KL9KPANp9f4SvtI3s+MP+Y/X3X7LNNePeeccGeyikB5fzMsuyvd82bRRW9IhDQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-types/menu': 3.9.12(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/menu': 3.9.13(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/numberfield@3.9.7(react@18.3.1): - resolution: {integrity: sha512-PjSgCCpYasGCEAznFQNqa2JhhEQ5+/2eMiV7ZI5j76q3edTNF8G5OOCl2RazDbzFp6vDAnRVT7Kctx5Tl5R/Zw==} + /@react-stately/numberfield@3.9.8(react@18.3.1): + resolution: {integrity: sha512-J6qGILxDNEtu7yvd3/y+FpbrxEaAeIODwlrFo6z1kvuDlLAm/KszXAc75yoDi0OtakFTCMP6/HR5VnHaQdMJ3w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/number': 3.5.4 - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/numberfield': 3.8.6(react@18.3.1) - '@swc/helpers': 0.5.13 + '@internationalized/number': 3.6.0 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/numberfield': 3.8.7(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/overlays@3.6.11(react@18.3.1): - resolution: {integrity: sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==} + /@react-stately/overlays@3.6.12(react@18.3.1): + resolution: {integrity: sha512-QinvZhwZgj8obUyPIcyURSCjTZlqZYRRCS60TF8jH8ZpT0tEAuDb3wvhhSXuYA3Xo9EHLwvLjEf3tQKKdAQArw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/overlays': 3.8.10(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/radio@3.10.8(react@18.3.1): - resolution: {integrity: sha512-VRq6Gzsbk3jzX6hdrSoDoSra9vLRsOi2pLkvW/CMrJ0GSgMwr8jjvJKnNFvYJ3eYQb20EwkarsOAfk7vPSIt/Q==} + /@react-stately/radio@3.10.9(react@18.3.1): + resolution: {integrity: sha512-kUQ7VdqFke8SDRCatw2jW3rgzMWbvw+n2imN2THETynI47NmNLzNP11dlGO2OllRtTrsLhmBNlYHa3W62pFpAw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/radio': 3.8.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/radio': 3.8.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/searchfield@3.5.7(react@18.3.1): - resolution: {integrity: sha512-VxEG4tWDypdXQ8f7clZBu5Qmc4osqDBeA/gNMA2i1j/h2zRVcCJ0fRCHuDeXLSWBqF1XXAI4TWV53fBBwJusbg==} + /@react-stately/searchfield@3.5.8(react@18.3.1): + resolution: {integrity: sha512-jtquvGadx1DmtQqPKaVO6Qg/xpBjNxsOd59ciig9xRxpxV+90i996EX1E2R6R+tGJdSM1pD++7PVOO4yE++HOg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/searchfield': 3.5.9(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/searchfield': 3.5.10(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/select@3.6.8(react@18.3.1): - resolution: {integrity: sha512-fLAVzGeYSdYdBdrEVws6Pb1ywFPdapA0eWphoW5s3fS0/pKcVWwbCHeHlaBEi1ISyqEubQZFGQdeFKm/M46Hew==} + /@react-stately/select@3.6.9(react@18.3.1): + resolution: {integrity: sha512-vASUDv7FhEYQURzM+JIwcusPv7/x/l3zHc/oKJPvoCl3aa9pwS8hZwS82SC00o2iFnrDscfDJju4IE/cd4hucg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-types/select': 3.9.7(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/select': 3.9.8(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/selection@3.17.0(react@18.3.1): - resolution: {integrity: sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==} + /@react-stately/selection@3.18.0(react@18.3.1): + resolution: {integrity: sha512-6EaNNP3exxBhW2LkcRR4a3pg+3oDguZlBSqIVVR7lyahv/D8xXHRC4dX+m0mgGHJpsgjs7664Xx6c8v193TFxg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/slider@3.5.8(react@18.3.1): - resolution: {integrity: sha512-EDgbrxMq1w3+XTN72MGl3YtAG/j65EYX1Uc3Fh56K00+inJbTdRWyYTrb3NA310fXCd0WFBbzExuH2ohlKQycg==} + /@react-stately/slider@3.6.0(react@18.3.1): + resolution: {integrity: sha512-w5vJxVh267pmD1X+Ppd9S3ZzV1hcg0cV8q5P4Egr160b9WMcWlUspZPtsthwUlN7qQe/C8y5IAhtde4s29eNag==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/slider': 3.7.6(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/slider': 3.7.7(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/table@3.12.3(react@18.3.1): - resolution: {integrity: sha512-8uGrLcNJYeMbFtzRQZFWCBj5kV+7v3jzwoKIL1j9TmYUKow1PTDMQbPJpAZLQhnC2wVMlaFVgDbedSlbBij7Zg==} + /@react-stately/table@3.13.0(react@18.3.1): + resolution: {integrity: sha512-mRbNYrwQIE7xzVs09Lk3kPteEVFVyOc20vA8ph6EP54PiUf/RllJpxZe/WUYLf4eom9lUkRYej5sffuUBpxjCA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/flags': 3.0.4 - '@react-stately/grid': 3.9.3(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/table': 3.10.2(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/flags': 3.0.5 + '@react-stately/grid': 3.10.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/tabs@3.6.10(react@18.3.1): - resolution: {integrity: sha512-F7wfoiNsrBy7c02AYHyE1USGgj05HQ0hp7uXmQjp2LEa+AA0NKKi3HdswTHHySxb0ZRuoEE7E7vp/gXQYx2/Ow==} + /@react-stately/tabs@3.7.0(react@18.3.1): + resolution: {integrity: sha512-ox4hTkfZCoR4Oyr3Op3rBlWNq2Wxie04vhEYpTZQ2hobR3l4fYaOkd7CPClILktJ3TC104j8wcb0knWxIBRx9w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/tabs': 3.3.10(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/tabs': 3.3.11(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/toggle@3.7.8(react@18.3.1): - resolution: {integrity: sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==} + /@react-stately/toggle@3.8.0(react@18.3.1): + resolution: {integrity: sha512-pyt/k/J8BwE/2g6LL6Z6sMSWRx9HEJB83Sm/MtovXnI66sxJ2EfQ1OaXB7Su5PEL9OMdoQF6Mb+N1RcW3zAoPw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/checkbox': 3.8.4(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/tooltip@3.4.13(react@18.3.1): - resolution: {integrity: sha512-zQ+8FQ7Pi0Cz852dltXb6yaryjE18K3byK4tIO3e5vnrZHEGvfdxowc+v9ak5UV93kVrYoOVmfZHRcEaTXTBNA==} + /@react-stately/tooltip@3.5.0(react@18.3.1): + resolution: {integrity: sha512-+xzPNztJDd2XJD0X3DgWKlrgOhMqZpSzsIssXeJgO7uCnP8/Z513ESaipJhJCFC8fxj5caO/DK4Uu8hEtlB8cQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-types/tooltip': 3.4.12(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/tooltip': 3.4.13(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/tree@3.8.5(react@18.3.1): - resolution: {integrity: sha512-0/tYhsKWQQJTOZFDwh8hY3Qk6ejNFRldGrLeK5kS22UZdvsMFyh7WAi40FTCJy561/VoB0WqQI4oyNPOa9lYWg==} + /@react-stately/tree@3.8.6(react@18.3.1): + resolution: {integrity: sha512-lblUaxf1uAuIz5jm6PYtcJ+rXNNVkqyFWTIMx6g6gW/mYvm8GNx1G/0MLZE7E6CuDGaO9dkLSY2bB1uqyKHidA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@swc/helpers': 0.5.13 + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-stately/utils@3.10.4(react@18.3.1): - resolution: {integrity: sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==} + /@react-stately/utils@3.10.5(react@18.3.1): + resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@swc/helpers': 0.5.13 + '@swc/helpers': 0.5.15 react: 18.3.1 dev: false - /@react-types/breadcrumbs@3.7.8(react@18.3.1): - resolution: {integrity: sha512-+BW2a+PrY8ArZ+pKecz13oJFrUAhthvXx17o3x0BhWUhRpAdtmTYt2hjw8zNanm2j0Kvgo1HYKgvtskCRxYcOA==} + /@react-types/breadcrumbs@3.7.9(react@18.3.1): + resolution: {integrity: sha512-eARYJo8J+VfNV8vP4uw3L2Qliba9wLV2bx9YQCYf5Lc/OE5B/y4gaTLz+Y2P3Rtn6gBPLXY447zCs5i7gf+ICg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/link': 3.5.8(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/link': 3.5.9(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/button@3.10.0(react@18.3.1): - resolution: {integrity: sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==} + /@react-types/button@3.10.1(react@18.3.1): + resolution: {integrity: sha512-XTtap8o04+4QjPNAshFWOOAusUTxQlBjU2ai0BTVLShQEjHhRVDBIWsI2B2FKJ4KXT6AZ25llaxhNrreWGonmA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/calendar@3.4.10(react@18.3.1): - resolution: {integrity: sha512-PyjqxwJxSW2IpQx6y0D9O34fRCWn1gv9q0qFhgaIigIQrPg8zTE/CC7owHLxAtgCnnCt8exJ5rqi414csaHKlA==} + /@react-types/calendar@3.5.0(react@18.3.1): + resolution: {integrity: sha512-O3IRE7AGwAWYnvJIJ80cOy7WwoJ0m8GtX/qSmvXQAjC4qx00n+b5aFNBYAQtcyc3RM5QpW6obs9BfwGetFiI8w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/date': 3.5.6 - '@react-types/shared': 3.25.0(react@18.3.1) + '@internationalized/date': 3.6.0 + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/checkbox@3.8.4(react@18.3.1): - resolution: {integrity: sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==} + /@react-types/checkbox@3.9.0(react@18.3.1): + resolution: {integrity: sha512-9hbHx0Oo2Hp5a8nV8Q75LQR0DHtvOIJbFaeqESSopqmV9EZoYjtY/h0NS7cZetgahQgnqYWQi44XGooMDCsmxA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/color@3.0.0(react@18.3.1): - resolution: {integrity: sha512-VUH8CROAM69GsMBilrJ1xyAdVsWL01nXQYrkZJxAEApv1OrcpIGSdsXLcGrjsrhjjiNVXxWFnqYRMsKkLzIl7g==} + /@react-types/color@3.0.1(react@18.3.1): + resolution: {integrity: sha512-KemFziO3GbmT3HEKrgOGdqNA6Gsmy9xrwFO3f8qXSG7gVz6M27Ic4R9HVQv4iAjap5uti6W13/pk2bc/jLVcEA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/slider': 3.7.6(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/slider': 3.7.7(react@18.3.1) react: 18.3.1 dev: false - /@react-types/combobox@3.13.0(react@18.3.1): - resolution: {integrity: sha512-kH/a+Fjpr54M2JbHg9RXwMjZ9O+XVsdOuE5JCpWRibJP1Mfl1md8gY6y6zstmVY8COrSqFvMZWB+PzwaTWjTGw==} + /@react-types/combobox@3.13.1(react@18.3.1): + resolution: {integrity: sha512-7xr+HknfhReN4QPqKff5tbKTe2kGZvH+DGzPYskAtb51FAAiZsKo+WvnNAvLwg3kRoC9Rkn4TAiVBp/HgymRDw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/datepicker@3.8.3(react@18.3.1): - resolution: {integrity: sha512-Y4qfPRBB6uzocosCOWSYMuwiZ3YXwLWQYiFB4KCglkvHyltbNz76LgoBEnclYA5HjwosIk4XywiXvHSYry8JnQ==} + /@react-types/datepicker@3.9.0(react@18.3.1): + resolution: {integrity: sha512-dbKL5Qsm2MQwOTtVQdOcKrrphcXAqDD80WLlSQrBLg+waDuuQ7H+TrvOT0thLKloNBlFUGnZZfXGRHINpih/0g==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@internationalized/date': 3.5.6 - '@react-types/calendar': 3.4.10(react@18.3.1) - '@react-types/overlays': 3.8.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@internationalized/date': 3.6.0 + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/dialog@3.5.13(react@18.3.1): - resolution: {integrity: sha512-9k8daVcAqQsySkzDY6NIVlyGxtpEip4TKuLyzAehthbv78GQardD5fHdjQ6eXPRS4I2qZrmytrFFrlOnwWVGHw==} + /@react-types/dialog@3.5.14(react@18.3.1): + resolution: {integrity: sha512-OXWMjrALwrlgw8aHD8SeRm/s3tbAssdaEh2h73KUSeFau3fU3n5mfKv+WnFqsEaOtN261o48l7hTlS6615H9AA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/overlays': 3.8.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/grid@3.2.9(react@18.3.1): - resolution: {integrity: sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==} + /@react-types/grid@3.2.10(react@18.3.1): + resolution: {integrity: sha512-Z5cG0ITwqjUE4kWyU5/7VqiPl4wqMJ7kG/ZP7poAnLmwRsR8Ai0ceVn+qzp5nTA19cgURi8t3LsXn3Ar1FBoog==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/link@3.5.8(react@18.3.1): - resolution: {integrity: sha512-l/YGXddgAbLnIT7ekftXrK1D4n8NlLQwx0d4usyZpaxP1KwPzuwng20DxynamLc1atoKBqbUtZAnz32pe7vYgw==} + /@react-types/link@3.5.9(react@18.3.1): + resolution: {integrity: sha512-JcKDiDMqrq/5Vpn+BdWQEuXit4KN4HR/EgIi3yKnNbYkLzxBoeQZpQgvTaC7NEQeZnSqkyXQo3/vMUeX/ZNIKw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/listbox@3.5.2(react@18.3.1): - resolution: {integrity: sha512-ML/Bt/MeO0FiixcuFQ+smpu1WguxTOqHDjSnhc1vcNxVQFWQOhyVy01LAY2J/T9TjfjyYGD41vyMTI0f6fcLEQ==} + /@react-types/listbox@3.5.3(react@18.3.1): + resolution: {integrity: sha512-v1QXd9/XU3CCKr2Vgs7WLcTr6VMBur7CrxHhWZQQFExsf9bgJ/3wbUdjy4aThY/GsYHiaS38EKucCZFr1QAfqA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/menu@3.9.12(react@18.3.1): - resolution: {integrity: sha512-1SPnkHKJdvOfwv9fEgK1DI6DYRs4D3hW2XcWlLhVXSjaC68CzOHGwFhKIKvZiDTW/11L770PRSEloIxHR09uFQ==} + /@react-types/menu@3.9.13(react@18.3.1): + resolution: {integrity: sha512-7SuX6E2tDsqQ+HQdSvIda1ji/+ujmR86dtS9CUu5yWX91P25ufRjZ72EvLRqClWNQsj1Xl4+2zBDLWlceznAjw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/overlays': 3.8.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/meter@3.4.4(react@18.3.1): - resolution: {integrity: sha512-0SEmPkShByC1gYkW7l+iJPg8QfEe2VrgwTciAtTfC4KIqAYmJVQtq6L+4d72EMxOh8RpQHePaY/RFHEJXAh72A==} + /@react-types/meter@3.4.5(react@18.3.1): + resolution: {integrity: sha512-04w1lEtvP/c3Ep8ND8hhH2rwjz2MtQ8o8SNLhahen3u0rX3jKOgD4BvHujsyvXXTMjj1Djp74sGzNawb4Ppi9w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/progress': 3.5.7(react@18.3.1) + '@react-types/progress': 3.5.8(react@18.3.1) react: 18.3.1 dev: false - /@react-types/numberfield@3.8.6(react@18.3.1): - resolution: {integrity: sha512-VtWEMAXUO1S9EEZI8whc7xv6DVccxhbWsRthMCg/LxiwU3U5KAveadNc2c5rtXkRpd3cnD5xFzz3dExXdmHkAg==} + /@react-types/numberfield@3.8.7(react@18.3.1): + resolution: {integrity: sha512-KccMPi39cLoVkB2T0V7HW6nsxQVAwt89WWCltPZJVGzsebv/k0xTQlPVAgrUake4kDLoE687e3Fr/Oe3+1bDhw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/overlays@3.8.10(react@18.3.1): - resolution: {integrity: sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==} + /@react-types/overlays@3.8.11(react@18.3.1): + resolution: {integrity: sha512-aw7T0rwVI3EuyG5AOaEIk8j7dZJQ9m34XAztXJVZ/W2+4pDDkLDbJ/EAPnuo2xGYRGhowuNDn4tDju01eHYi+w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/progress@3.5.7(react@18.3.1): - resolution: {integrity: sha512-EqMDHmlpoZUZzTjdejGIkSM0pS2LBI9NdadHf3bDNTycHv+5L1xpMHUg8RGOW8a3sRVLRvfN1aO9l75QZkyj+w==} + /@react-types/progress@3.5.8(react@18.3.1): + resolution: {integrity: sha512-PR0rN5mWevfblR/zs30NdZr+82Gka/ba7UHmYOW9/lkKlWeD7PHgl1iacpd/3zl/jUF22evAQbBHmk1mS6Mpqw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/radio@3.8.4(react@18.3.1): - resolution: {integrity: sha512-GCuOwQL19iwKa74NAIk9hv4ivyI8oW1+ZCuc2fzyDdeQjzTIlv3qrIyShwpVy1IoI7/4DYTMZm/YXPoKhu5TTA==} + /@react-types/radio@3.8.5(react@18.3.1): + resolution: {integrity: sha512-gSImTPid6rsbJmwCkTliBIU/npYgJHOFaI3PNJo7Y0QTAnFelCtYeFtBiWrFodSArSv7ASqpLLUEj9hZu/rxIg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/searchfield@3.5.9(react@18.3.1): - resolution: {integrity: sha512-c/x8BWpH1Zq+fWpeBtzw2AhQhGi7ahWPicV7PlnqwIGO0MrH/QCjX0dj+I+1xpcAh8Eq6ECa79HE74Rw6aJmFg==} + /@react-types/searchfield@3.5.10(react@18.3.1): + resolution: {integrity: sha512-7wW4pJzbReawoGPu8a4l+CODTCDN088EN/ysUzl622ewim57PjArjix+lpO4+aEtJqS9HKpq8UEbjwo9axpcUA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/textfield': 3.9.7(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/textfield': 3.10.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/select@3.9.7(react@18.3.1): - resolution: {integrity: sha512-Jva4ixfB4EEdy+WmZkUoLiQI7vVfHPxM73VuL7XDxvAO+YKiIztDTcU720QVNhxTMmQvCxfRBXWar8aodCjLiw==} + /@react-types/select@3.9.8(react@18.3.1): + resolution: {integrity: sha512-RGsYj2oFjXpLnfcvWMBQnkcDuKkwT43xwYWZGI214/gp/B64tJiIUgTM5wFTRAeGDX23EePkhCQF+9ctnqFd6g==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/shared@3.25.0(react@18.3.1): - resolution: {integrity: sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==} + /@react-types/shared@3.26.0(react@18.3.1): + resolution: {integrity: sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: react: 18.3.1 dev: false - /@react-types/slider@3.7.6(react@18.3.1): - resolution: {integrity: sha512-z72wnEzSge6qTD9TUoUPp1A4j4jXk/MVii6rGE78XeE/Pq7HyyjU5bCagryMr9PC9MKa/oTiHcshKqWBDf57GA==} + /@react-types/slider@3.7.7(react@18.3.1): + resolution: {integrity: sha512-lYTR9zXQV2fSEm/G3gwDENWiki1IXd/oorsgf0zu1DBi2SQDbOsLsGUXiwvD24Xy6OkUuhAqjLPPexezo7+u9g==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/switch@3.5.6(react@18.3.1): - resolution: {integrity: sha512-gJ8t2yTCgcitz4ON4ELcLLmtlDkn2MUjjfu3ez/cwA1X/NUluPYkhXj5Z6H+KOlnveqrKCZDRoTgK74cQ6Cvfg==} + /@react-types/switch@3.5.7(react@18.3.1): + resolution: {integrity: sha512-1IKiq510rPTHumEZuhxuazuXBa2Cuxz6wBIlwf3NCVmgWEvU+uk1ETG0sH2yymjwCqhtJDKXi+qi9HSgPEDwAg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/table@3.10.2(react@18.3.1): - resolution: {integrity: sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==} + /@react-types/table@3.10.3(react@18.3.1): + resolution: {integrity: sha512-Ac+W+m/zgRzlTU8Z2GEg26HkuJFswF9S6w26r+R3MHwr8z2duGPvv37XRtE1yf3dbpRBgHEAO141xqS2TqGwNg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/tabs@3.3.10(react@18.3.1): - resolution: {integrity: sha512-s/Bw/HCIdWJPBw4O703ghKqhjGsIerRMIDxA88hbQYzfTDD6bkFDjCnsP2Tyy1G8Dg2rSPFUEE+k+PpLzqeEfQ==} + /@react-types/tabs@3.3.11(react@18.3.1): + resolution: {integrity: sha512-BjF2TqBhZaIcC4lc82R5pDJd1F7kstj1K0Nokhz99AGYn8C0ITdp6lR+DPVY9JZRxKgP9R2EKfWGI90Lo7NQdA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/textfield@3.9.7(react@18.3.1): - resolution: {integrity: sha512-vU5+QCOF9HgWGjAmmy+cpJibVW5voFomC5POmYHokm7kivYcMMjlonsgWwg/0xXrqE2qosH3tpz4jFoEuig1NQ==} + /@react-types/textfield@3.10.0(react@18.3.1): + resolution: {integrity: sha512-ShU3d6kLJGQjPXccVFjM3KOXdj3uyhYROqH9YgSIEVxgA9W6LRflvk/IVBamD9pJYTPbwmVzuP0wQkTDupfZ1w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false - /@react-types/tooltip@3.4.12(react@18.3.1): - resolution: {integrity: sha512-FwsdSQ3UDIDORanQMGMLyzSUabw4AkKhwcRdPv4d5OT8GmJr7mBdZynfcsrKLJ0fzskIypMqspoutZidsI0MQg==} + /@react-types/tooltip@3.4.13(react@18.3.1): + resolution: {integrity: sha512-KPekFC17RTT8kZlk7ZYubueZnfsGTDOpLw7itzolKOXGddTXsrJGBzSB4Bb060PBVllaDO0MOrhPap8OmrIl1Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 dependencies: - '@react-types/overlays': 3.8.10(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 dev: false @@ -4278,91 +4345,77 @@ packages: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} dev: true - /@sentry-internal/browser-utils@8.37.1: - resolution: {integrity: sha512-OSR/V5GCsSCG7iapWtXCT/y22uo3HlawdEgfM1NIKk1mkP15UyGQtGEzZDdih2H+SNuX1mp9jQLTjr5FFp1A5w==} + /@sentry-internal/browser-utils@8.40.0: + resolution: {integrity: sha512-tx7gb/PWMbTEyil/XPETVeRUeS3nKHIvQY2omyebw30TbhyLnibPZsUmXJiaIysL5PcY3k9maub3W/o0Y37T7Q==} engines: {node: '>=14.18'} dependencies: - '@sentry/core': 8.37.1 - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry/core': 8.40.0 + '@sentry/types': 8.40.0 dev: false - /@sentry-internal/feedback@8.37.1: - resolution: {integrity: sha512-Se25NXbSapgS2S+JssR5YZ48b3OY4UGmAuBOafgnMW91LXMxRNWRbehZuNUmjjHwuywABMxjgu+Yp5uJDATX+g==} + /@sentry-internal/feedback@8.40.0: + resolution: {integrity: sha512-1O9F3z80HNE0VfepKS+v+dixdatNqWlrlwgvvWl4BGzzoA+XhqvZo+HWxiOt7yx7+k1TuZNrB6Gy3u/QvpozXA==} engines: {node: '>=14.18'} dependencies: - '@sentry/core': 8.37.1 - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry/core': 8.40.0 + '@sentry/types': 8.40.0 dev: false - /@sentry-internal/replay-canvas@8.37.1: - resolution: {integrity: sha512-1JLAaPtn1VL5vblB0BMELFV0D+KUm/iMGsrl4/JpRm0Ws5ESzQl33DhXVv1IX/ZAbx9i14EjR7MG9+Hj70tieQ==} + /@sentry-internal/replay-canvas@8.40.0: + resolution: {integrity: sha512-Zr+m/le0SH4RowZB7rBCM0aRnvH3wZTaOFhwUk03/oGf2BRcgKuDCUMjnXKC9MyOpmey7UYXkzb8ro+81R6Q8w==} engines: {node: '>=14.18'} dependencies: - '@sentry-internal/replay': 8.37.1 - '@sentry/core': 8.37.1 - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry-internal/replay': 8.40.0 + '@sentry/core': 8.40.0 + '@sentry/types': 8.40.0 dev: false - /@sentry-internal/replay@8.37.1: - resolution: {integrity: sha512-E/Plhisk/pXJjOdOU12sg8m/APTXTA21iEniidP6jW3/+O0tD/H/UovEqa4odNTqxPMa798xHQSQNt5loYiaLA==} + /@sentry-internal/replay@8.40.0: + resolution: {integrity: sha512-0SaDsBCSWxNVgNmPKu23frrHEXzN/MKl0hIkfuO55vL5TgjLTwpgkf0Ne4rNvaZQ5omIKk9Qd63HuQP3PHAMaw==} engines: {node: '>=14.18'} dependencies: - '@sentry-internal/browser-utils': 8.37.1 - '@sentry/core': 8.37.1 - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry-internal/browser-utils': 8.40.0 + '@sentry/core': 8.40.0 + '@sentry/types': 8.40.0 dev: false - /@sentry/browser@8.37.1: - resolution: {integrity: sha512-5ym+iGiIpjIKKpMWi9S3/tXh9xneS+jqxwRTJqed3cb8i4ydfMAAP8sM3U8xMCWWABpWyIUW+fpewC0tkhE1aQ==} + /@sentry/browser@8.40.0: + resolution: {integrity: sha512-m/Yor6IDBeDHtQochu8n6z4HXrXkrPhu6+o5Ouve0Zi3ptthSoK1FOGvJxVBat3nRq0ydQyuuPuTB6WfdWbwHQ==} engines: {node: '>=14.18'} dependencies: - '@sentry-internal/browser-utils': 8.37.1 - '@sentry-internal/feedback': 8.37.1 - '@sentry-internal/replay': 8.37.1 - '@sentry-internal/replay-canvas': 8.37.1 - '@sentry/core': 8.37.1 - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry-internal/browser-utils': 8.40.0 + '@sentry-internal/feedback': 8.40.0 + '@sentry-internal/replay': 8.40.0 + '@sentry-internal/replay-canvas': 8.40.0 + '@sentry/core': 8.40.0 + '@sentry/types': 8.40.0 dev: false - /@sentry/core@8.37.1: - resolution: {integrity: sha512-82csXby589iDupM3VgCHJeWZagUyEEaDnbFcoZ/Z91QX2Sjq8FcF5OsforoXjw09i0XTFqlkFAnQVpDBmMXcpQ==} + /@sentry/core@8.40.0: + resolution: {integrity: sha512-u/U2CJpG/+SmTR2bPM4ZZoPYTJAOUuxzj/0IURnvI0v9+rNu939J/fzrO9huA5IJVxS5TiYykhQm7o6I3Zuo3Q==} engines: {node: '>=14.18'} dependencies: - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry/types': 8.40.0 dev: false - /@sentry/react@8.37.1(react@18.3.1): - resolution: {integrity: sha512-HanDqBFTgIUhUsYztAHhSti+sEhQ8YopAymXgnpqkJ7j1PLHXZgQAre6M4Uvixu28WS5MDHC1onnAIBDgYRDYw==} + /@sentry/react@8.40.0(react@18.3.1): + resolution: {integrity: sha512-Ohq/po83r9sh/DCO6VAxx4xU+1ztvFzmXTl3fUnAEc+2bFJK1MsRt6BWfG37XxjQN//mfmyS9KEBgsOpOyd4LQ==} engines: {node: '>=14.18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x dependencies: - '@sentry/browser': 8.37.1 - '@sentry/core': 8.37.1 - '@sentry/types': 8.37.1 - '@sentry/utils': 8.37.1 + '@sentry/browser': 8.40.0 + '@sentry/core': 8.40.0 + '@sentry/types': 8.40.0 hoist-non-react-statics: 3.3.2 react: 18.3.1 dev: false - /@sentry/types@8.37.1: - resolution: {integrity: sha512-ryMOTROLSLINKFEbHWvi7GigNrsQhsaScw2NddybJGztJQ5UhxIGESnxGxWCufBmWFDwd7+5u0jDPCVUJybp7w==} + /@sentry/types@8.40.0: + resolution: {integrity: sha512-nuCf3U3deolPM9BjNnwCc33UtFl9ec15/r74ngAkNccn+A2JXdIAsDkGJMO/9mgSFykLe1QyeJ0pQFRisCGOiA==} engines: {node: '>=14.18'} dev: false - /@sentry/utils@8.37.1: - resolution: {integrity: sha512-Qtn2IfpII12K17txG/ZtTci35XYjYi4CxbQ3j7nXY7toGv/+MqPXwV5q2i9g94XaSXlE5Wy9/hoCZoZpZs/djA==} - engines: {node: '>=14.18'} - dependencies: - '@sentry/types': 8.37.1 - dev: false - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -4393,8 +4446,8 @@ packages: string.prototype.matchall: 4.0.11 dev: true - /@swc/helpers@0.5.13: - resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + /@swc/helpers@0.5.15: + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} dependencies: tslib: 2.8.1 dev: false @@ -4871,8 +4924,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0)(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} + /@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0)(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 || ^6.2.0 @@ -4883,23 +4936,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.14.0 + '@typescript-eslint/parser': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.16.0 eslint: 9.10.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.0(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 1.4.1(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@8.14.0(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==} + /@typescript-eslint/parser@8.16.0(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4908,51 +4961,52 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.14.0 + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.16.0 debug: 4.3.7(supports-color@5.5.0) eslint: 9.10.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@8.14.0: - resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} + /@typescript-eslint/scope-manager@8.16.0: + resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/visitor-keys': 8.14.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/visitor-keys': 8.16.0 dev: true - /@typescript-eslint/type-utils@8.14.0(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} + /@typescript-eslint/type-utils@8.16.0(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) debug: 4.3.7(supports-color@5.5.0) - ts-api-utils: 1.4.0(typescript@5.6.3) - typescript: 5.6.3 + eslint: 9.10.0 + ts-api-utils: 1.4.1(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - - eslint - supports-color dev: true - /@typescript-eslint/types@8.14.0: - resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} + /@typescript-eslint/types@8.16.0: + resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3): - resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} + /@typescript-eslint/typescript-estree@8.16.0(typescript@5.7.2): + resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -4960,41 +5014,45 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/visitor-keys': 8.14.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/visitor-keys': 8.16.0 debug: 4.3.7(supports-color@5.5.0) fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 1.4.1(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@8.14.0(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} + /@typescript-eslint/utils@8.16.0(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.10.0) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) eslint: 9.10.0 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/visitor-keys@8.14.0: - resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} + /@typescript-eslint/visitor-keys@8.16.0: + resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.14.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.16.0 + eslint-visitor-keys: 4.2.0 dev: true /@webassemblyjs/ast@1.12.1: @@ -5412,11 +5470,6 @@ packages: dequal: 2.0.3 dev: true - /aria-query@5.3.1: - resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} - engines: {node: '>= 0.4'} - dev: true - /aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -5440,7 +5493,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 @@ -5469,7 +5522,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -5481,7 +5534,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -5493,7 +5546,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 dev: true @@ -5503,7 +5556,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 dev: true @@ -5513,7 +5566,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 dev: true @@ -5525,7 +5578,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -5580,7 +5633,7 @@ packages: engines: {node: '>=4'} dev: false - /autoprefixer@10.4.20(postcss@8.4.48): + /autoprefixer@10.4.20(postcss@8.4.49): resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -5588,11 +5641,11 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 + caniuse-lite: 1.0.30001684 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.0 - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true @@ -5881,7 +5934,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001680 + caniuse-lite: 1.0.30001684 electron-to-chromium: 1.5.47 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -5975,13 +6028,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 + caniuse-lite: 1.0.30001684 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001680: - resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} + /caniuse-lite@1.0.30001684: + resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -6228,6 +6281,10 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true + /compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + dev: true + /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -6269,6 +6326,10 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + dev: true + /config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: @@ -6356,7 +6417,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig@8.3.6(typescript@5.6.3): + /cosmiconfig@8.3.6(typescript@5.7.2): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -6369,10 +6430,10 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.6.3 + typescript: 5.7.2 dev: true - /cosmiconfig@9.0.0(typescript@5.6.3): + /cosmiconfig@9.0.0(typescript@5.7.2): resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: @@ -6385,7 +6446,7 @@ packages: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - typescript: 5.6.3 + typescript: 5.7.2 dev: true /create-jest@29.7.0(@types/node@22.0.2): @@ -6443,13 +6504,13 @@ packages: tiny-invariant: 1.3.3 dev: false - /css-declaration-sorter@7.2.0(postcss@8.4.48): + /css-declaration-sorter@7.2.0(postcss@8.4.49): resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true /css-functions-list@3.2.3: @@ -6469,12 +6530,12 @@ packages: webpack: optional: true dependencies: - icss-utils: 5.1.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.48) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.48) - postcss-modules-scope: 3.2.0(postcss@8.4.48) - postcss-modules-values: 4.0.0(postcss@8.4.48) + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.49) + postcss-modules-scope: 3.2.0(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 semver: 7.6.3 webpack: 5.96.1(webpack-cli@5.1.4) @@ -6531,6 +6592,15 @@ packages: source-map-js: 1.2.1 dev: true + /css-tree@3.0.1: + resolution: {integrity: sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + requiresBuild: true + dependencies: + mdn-data: 2.12.1 + source-map-js: 1.2.1 + dev: true + /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -6543,63 +6613,63 @@ packages: requiresBuild: true dev: true - /cssnano-preset-default@7.0.6(postcss@8.4.48): + /cssnano-preset-default@7.0.6(postcss@8.4.49): resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.24.2 - css-declaration-sorter: 7.2.0(postcss@8.4.48) - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-calc: 10.0.2(postcss@8.4.48) - postcss-colormin: 7.0.2(postcss@8.4.48) - postcss-convert-values: 7.0.4(postcss@8.4.48) - postcss-discard-comments: 7.0.3(postcss@8.4.48) - postcss-discard-duplicates: 7.0.1(postcss@8.4.48) - postcss-discard-empty: 7.0.0(postcss@8.4.48) - postcss-discard-overridden: 7.0.0(postcss@8.4.48) - postcss-merge-longhand: 7.0.4(postcss@8.4.48) - postcss-merge-rules: 7.0.4(postcss@8.4.48) - postcss-minify-font-values: 7.0.0(postcss@8.4.48) - postcss-minify-gradients: 7.0.0(postcss@8.4.48) - postcss-minify-params: 7.0.2(postcss@8.4.48) - postcss-minify-selectors: 7.0.4(postcss@8.4.48) - postcss-normalize-charset: 7.0.0(postcss@8.4.48) - postcss-normalize-display-values: 7.0.0(postcss@8.4.48) - postcss-normalize-positions: 7.0.0(postcss@8.4.48) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.48) - postcss-normalize-string: 7.0.0(postcss@8.4.48) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.48) - postcss-normalize-unicode: 7.0.2(postcss@8.4.48) - postcss-normalize-url: 7.0.0(postcss@8.4.48) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.48) - postcss-ordered-values: 7.0.1(postcss@8.4.48) - postcss-reduce-initial: 7.0.2(postcss@8.4.48) - postcss-reduce-transforms: 7.0.0(postcss@8.4.48) - postcss-svgo: 7.0.1(postcss@8.4.48) - postcss-unique-selectors: 7.0.3(postcss@8.4.48) - dev: true - - /cssnano-utils@5.0.0(postcss@8.4.48): + css-declaration-sorter: 7.2.0(postcss@8.4.49) + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-calc: 10.0.2(postcss@8.4.49) + postcss-colormin: 7.0.2(postcss@8.4.49) + postcss-convert-values: 7.0.4(postcss@8.4.49) + postcss-discard-comments: 7.0.3(postcss@8.4.49) + postcss-discard-duplicates: 7.0.1(postcss@8.4.49) + postcss-discard-empty: 7.0.0(postcss@8.4.49) + postcss-discard-overridden: 7.0.0(postcss@8.4.49) + postcss-merge-longhand: 7.0.4(postcss@8.4.49) + postcss-merge-rules: 7.0.4(postcss@8.4.49) + postcss-minify-font-values: 7.0.0(postcss@8.4.49) + postcss-minify-gradients: 7.0.0(postcss@8.4.49) + postcss-minify-params: 7.0.2(postcss@8.4.49) + postcss-minify-selectors: 7.0.4(postcss@8.4.49) + postcss-normalize-charset: 7.0.0(postcss@8.4.49) + postcss-normalize-display-values: 7.0.0(postcss@8.4.49) + postcss-normalize-positions: 7.0.0(postcss@8.4.49) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49) + postcss-normalize-string: 7.0.0(postcss@8.4.49) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49) + postcss-normalize-unicode: 7.0.2(postcss@8.4.49) + postcss-normalize-url: 7.0.0(postcss@8.4.49) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.49) + postcss-ordered-values: 7.0.1(postcss@8.4.49) + postcss-reduce-initial: 7.0.2(postcss@8.4.49) + postcss-reduce-transforms: 7.0.0(postcss@8.4.49) + postcss-svgo: 7.0.1(postcss@8.4.49) + postcss-unique-selectors: 7.0.3(postcss@8.4.49) + dev: true + + /cssnano-utils@5.0.0(postcss@8.4.49): resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /cssnano@7.0.6(postcss@8.4.48): + /cssnano@7.0.6(postcss@8.4.49): resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-preset-default: 7.0.6(postcss@8.4.48) + cssnano-preset-default: 7.0.6(postcss@8.4.49) lilconfig: 3.1.2 - postcss: 8.4.48 + postcss: 8.4.49 dev: true /csso@5.0.5: @@ -7076,8 +7146,8 @@ packages: stackframe: 1.3.4 dev: true - /es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + /es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 @@ -7111,7 +7181,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 @@ -7122,8 +7192,8 @@ packages: string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 + typed-array-byte-offset: 1.0.3 + typed-array-length: 1.0.7 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 dev: true @@ -7146,7 +7216,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 @@ -7259,8 +7329,8 @@ packages: - supports-color dev: true - /eslint-module-utils@2.11.0(@typescript-eslint/parser@8.14.0)(eslint-import-resolver-node@0.3.9)(eslint@9.10.0): - resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==} + /eslint-module-utils@2.12.0(@typescript-eslint/parser@8.16.0)(eslint-import-resolver-node@0.3.9)(eslint@9.10.0): + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -7280,7 +7350,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.16.0(eslint@9.10.0)(typescript@5.7.2) debug: 3.2.7 eslint: 9.10.0 eslint-import-resolver-node: 0.3.9 @@ -7308,8 +7378,8 @@ packages: lodash: 4.17.21 dev: true - /eslint-plugin-escompat@3.11.1(eslint@9.10.0): - resolution: {integrity: sha512-j/H70uveM+G9M0onQJOYM+h5trTjQfmBnhGzxAxwGrqARfgXwkfjs+SkvJ1j/a4ofyCIYpBQsGg7q+TowwPNmA==} + /eslint-plugin-escompat@3.11.4(eslint@9.10.0): + resolution: {integrity: sha512-j0ywwNnIufshOzgAu+PfIig1c7VRClKSNKzpniMT2vXQ4leL5q+e/SpMFQU0nrdL2WFFM44XmhSuwmxb3G0CJg==} peerDependencies: eslint: '>=5.14.1' dependencies: @@ -7340,32 +7410,36 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /eslint-plugin-github@5.0.2(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-nMdzWJQ5CimjQDY6SFeJ0KIXuNFf0dgDWEd4eP3UWfuTuP/dXcZJDg7MQRvAFt743T1zUi4+/HdOihfu8xJkLA==} + /eslint-plugin-github@5.1.1(@typescript-eslint/parser@8.16.0)(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-+yE9caIn0v14AUE+vYksZy2xMnzHhsiiC9DBMbrZutb4nsHEZy+Uzimdfth7GAyxAh6VWCiivYG/ktH4LT+hnQ==} hasBin: true peerDependencies: - eslint: ^8.0.1 + eslint: ^8 || ^9 dependencies: + '@eslint/compat': 1.2.3(eslint@9.10.0) + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.15.0 '@github/browserslist-config': 1.0.0 - '@typescript-eslint/eslint-plugin': 8.14.0(@typescript-eslint/parser@8.14.0)(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - aria-query: 5.3.1 + aria-query: 5.3.2 eslint: 9.10.0 eslint-config-prettier: 9.1.0(eslint@9.10.0) - eslint-plugin-escompat: 3.11.1(eslint@9.10.0) + eslint-plugin-escompat: 3.11.4(eslint@9.10.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.10.0) eslint-plugin-filenames: 1.3.2(eslint@9.10.0) eslint-plugin-i18n-text: 1.0.1(eslint@9.10.0) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.14.0)(eslint@9.10.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.16.0)(eslint@9.10.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.10.0) eslint-plugin-no-only-tests: 3.3.0 eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0)(eslint@9.10.0)(prettier@3.3.3) eslint-rule-documentation: 1.0.23 + globals: 15.12.0 jsx-ast-utils: 3.3.5 prettier: 3.3.3 svg-element-attributes: 1.3.1 + typescript-eslint: 8.16.0(eslint@9.10.0)(typescript@5.7.2) transitivePeerDependencies: - '@types/eslint' + - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color @@ -7380,18 +7454,18 @@ packages: eslint: 9.10.0 dev: true - /eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.14.0)(eslint@9.10.0): - resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + /eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0)(eslint@9.10.0): + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.16.0(eslint@9.10.0)(typescript@5.7.2) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -7400,7 +7474,7 @@ packages: doctrine: 2.1.0 eslint: 9.10.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.14.0)(eslint-import-resolver-node@0.3.9)(eslint@9.10.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.16.0)(eslint-import-resolver-node@0.3.9)(eslint@9.10.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -7409,6 +7483,7 @@ packages: object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -7463,11 +7538,11 @@ packages: eslint-config-prettier: 9.1.0(eslint@9.10.0) prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - synckit: 0.9.1 + synckit: 0.9.2 dev: true - /eslint-plugin-react-debug@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-AijumibZ+3hBYCGBEeD3GQse5TPnq9z6bX0qfsFwCwWjkW+siL2EEGvaxT7UZp2mcFMvoRJT3E4Jsemn6g0AGw==} + /eslint-plugin-react-debug@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-CFcm/sxqzfIsLmQjg364x0FiiTmgEhZZT3ekP4QfSsm1vLWUWlbwopBQQvFDPMNlfhuwXRzYrggbkllGT3B17A==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7476,27 +7551,27 @@ packages: typescript: optional: true dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/core': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/core': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) eslint: 9.10.0 string-ts: 2.2.0 ts-pattern: 5.5.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-react-dom@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-qJFfCR2Rofd5/V9/8EE4sg6a829HcI07DeK7qqTosYRPBYkwbfUUjvizzlTxneMAcPQuFfPZa1UMDTaejKStyg==} + /eslint-plugin-react-dom@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-aXV11FswyCDGJYCg3pj5kaxNmM5RYGMvuL+KhaqcX+GKdCIpC9SqiImeLSiWOxVLWYS9kH5Ltz4xU3T3eqOgOA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7505,25 +7580,26 @@ packages: typescript: optional: true dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/core': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/core': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + compare-versions: 6.1.1 eslint: 9.10.0 ts-pattern: 5.5.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-react-hooks-extra@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-OJ4RJZ7n25XnF6+NaFC9dzrec2C+/o4zb4Brs+v6fVVbvQQZirgWamKZMOJo+I1HsHdOULtBo1uwopLfnVBihQ==} + /eslint-plugin-react-hooks-extra@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-REPsDs8pn+QUSS+iDY7hOfUiCd4TIM9XNusDM+Nu51mBXezQ0k2f7X0wtlxaAHnt+YX1vzoy6BSylJaUlFMJaA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7532,20 +7608,20 @@ packages: typescript: optional: true dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/core': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/core': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) eslint: 9.10.0 ts-pattern: 5.5.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true @@ -7559,8 +7635,8 @@ packages: eslint: 9.10.0 dev: true - /eslint-plugin-react-naming-convention@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-qyZ6YW82vLHHQEboc0LhE+9Uga2koCtwEV0XYEWxq3DI3Wg1SlwsfchPYQc7skRh2c/Jh9YG2gzRmNXG4Ul2Ww==} + /eslint-plugin-react-naming-convention@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-tVbmeLJK2jC/j8IwtkvpiKnk496hhOD2j+nGEZeYjI9r5oGR/mmTpQx/0/+0HnRJ7a/ctUiuTSDzesQuU3Eu/A==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7569,19 +7645,19 @@ packages: typescript: optional: true dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/core': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/core': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) eslint: 9.10.0 ts-pattern: 5.5.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true @@ -7598,8 +7674,8 @@ packages: eslint-rule-composer: 0.3.0 dev: true - /eslint-plugin-react-web-api@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-kQp8NlJESf87tVPyQnzyziVUwbqYhn0Xsrwj8joA8Bxnkt2bsylmDuMoBV0VntNYnfgoUvBj8D/OuZgb1IfLVQ==} + /eslint-plugin-react-web-api@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-c02sPQXM+7z5w0JZkgdPltPzdLlDrDxwitbGXmhePyhZYZfDCOa69ROltQPI9b2ClRmMWYgxoPlJsnGaYln6Wg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7608,26 +7684,26 @@ packages: typescript: optional: true dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/core': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/core': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) birecord: 0.1.1 eslint: 9.10.0 ts-pattern: 5.5.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-react-x@1.16.1(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-Oqu3DMLHXEisvXrAzk7lyZ57W6MlP8nOo3/PkcKtxImB5fCGYILKJY22Jz6hfWZ3MhTzEuVZru8x26Mev+9thQ==} + /eslint-plugin-react-x@1.17.1(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-Iq9Eaye/+LpdOcU/qRbib4cC6EAL9bfIBH2+IDWQXLyY/HAXnmBFDJgotEPOLymIIOKhgjzfX03nkdfBIqZ3zA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7636,21 +7712,22 @@ packages: typescript: optional: true dependencies: - '@eslint-react/ast': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/core': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/jsx': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/shared': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/tools': 1.16.1 - '@eslint-react/types': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@eslint-react/var': 1.16.1(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.14.0 - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/types': 8.14.0 - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@eslint-react/ast': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/core': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/jsx': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/shared': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/tools': 1.17.1 + '@eslint-react/types': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@eslint-react/var': 1.17.1(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + compare-versions: 6.1.1 eslint: 9.10.0 - is-immutable-type: 5.0.0(eslint@9.10.0)(typescript@5.6.3) + is-immutable-type: 5.0.0(eslint@9.10.0)(typescript@5.7.2) ts-pattern: 5.5.0 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true @@ -7682,14 +7759,14 @@ packages: string.prototype.repeat: 1.0.0 dev: true - /eslint-plugin-regexp@2.6.0(eslint@9.10.0): - resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + /eslint-plugin-regexp@2.7.0(eslint@9.10.0): + resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.10.0) + '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 eslint: 9.10.0 jsdoc-type-pratt-parser: 4.1.0 @@ -7743,6 +7820,11 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /eslint@9.10.0: resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7800,6 +7882,15 @@ packages: eslint-visitor-keys: 4.0.0 dev: true + /espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + dev: true + /esprima-next@5.8.4: resolution: {integrity: sha512-8nYVZ4ioIH4Msjb/XmhnBdz5WRRBaYqevKa1cv9nGJdCehMbzZCPNEEnqfLCZVetUVrUPEcb5IYyu1GG4hFqgg==} engines: {node: '>=12'} @@ -8203,11 +8294,11 @@ packages: peerDependencies: fork-ts-checker-webpack-plugin: ^9.0.0 dependencies: - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.6.3)(webpack@5.96.1) + fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.7.2)(webpack@5.96.1) node-notifier: 10.0.1 dev: true - /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.6.3)(webpack@5.96.1): + /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.7.2)(webpack@5.96.1): resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -8217,7 +8308,7 @@ packages: '@babel/code-frame': 7.24.7 chalk: 4.1.2 chokidar: 3.6.0 - cosmiconfig: 8.3.6(typescript@5.6.3) + cosmiconfig: 8.3.6(typescript@5.7.2) deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 @@ -8226,7 +8317,7 @@ packages: schema-utils: 3.3.0 semver: 7.6.3 tapable: 2.2.1 - typescript: 5.6.3 + typescript: 5.7.2 webpack: 5.96.1(webpack-cli@5.1.4) dev: true @@ -8248,8 +8339,8 @@ packages: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /framer-motion@11.11.11(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-tuDH23ptJAKUHGydJQII9PhABNJBpB+z0P1bmgKK9QFIssHGlfPd6kxMq00LSKwE27WFsb2z0ovY0bpUyMvfRw==} + /framer-motion@11.11.17(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-O8QzvoKiuzI5HSAHbcYuL6xU+ZLXbrH7C8Akaato4JzQbX2ULNeniqC2Vo5eiCtFktX9XsJ+7nUhxcl2E2IjpA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -8334,7 +8425,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 dev: true @@ -8842,8 +8933,8 @@ packages: resolution: {integrity: sha512-87GIsh59t9qL2939KBKmnT/EfcFk1suakkHoTjHsdnXB/JEU0ibz+9HRiwMueGVhKuRGby6bOtQHd+mIt4BIAQ==} dev: true - /husky@9.1.6: - resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==} + /husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true dev: true @@ -8906,13 +8997,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.48): + /icss-utils@5.1.0(postcss@8.4.49): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true /idb@7.1.1: @@ -8947,8 +9038,8 @@ packages: resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} dev: false - /immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + /immutable@5.0.2: + resolution: {integrity: sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==} dev: true /import-fresh@3.3.0: @@ -9012,12 +9103,12 @@ packages: engines: {node: '>=10.13.0'} dev: true - /intl-messageformat@10.7.1: - resolution: {integrity: sha512-xQuJW2WcyzNJZWUu5xTVPOmNSA1Sowuu/NKFdUid5Fxx/Yl6/s4DefTU/y7zy+irZLDmFGmTLtnM8FqpN05wlA==} + /intl-messageformat@10.7.7: + resolution: {integrity: sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA==} dependencies: - '@formatjs/ecma402-abstract': 2.2.0 - '@formatjs/fast-memoize': 2.2.1 - '@formatjs/icu-messageformat-parser': 2.8.0 + '@formatjs/ecma402-abstract': 2.2.4 + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/icu-messageformat-parser': 2.9.4 tslib: 2.8.1 dev: false @@ -9127,8 +9218,9 @@ packages: requiresBuild: true dev: true - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + /is-finalizationregistry@1.1.0: + resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 dev: true @@ -9176,17 +9268,17 @@ packages: is-extglob: 2.1.1 dev: true - /is-immutable-type@5.0.0(eslint@9.10.0)(typescript@5.6.3): + /is-immutable-type@5.0.0(eslint@9.10.0)(typescript@5.7.2): resolution: {integrity: sha512-mcvHasqbRBWJznuPqqHRKiJgYAz60sZ0mvO3bN70JbkuK7ksfmgc489aKZYxMEjIbRvyOseaTjaRZLRF/xFeRA==} peerDependencies: eslint: '*' typescript: '>=4.7.4' dependencies: - '@typescript-eslint/type-utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) eslint: 9.10.0 - ts-api-utils: 1.4.0(typescript@5.6.3) - ts-declaration-location: 1.0.4(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 1.4.1(typescript@5.7.2) + ts-declaration-location: 1.0.4(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: true @@ -9506,7 +9598,7 @@ packages: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 + reflect.getprototypeof: 1.0.7 set-function-name: 2.0.2 dev: true @@ -10161,6 +10253,11 @@ packages: resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} dev: true + /known-css-properties@0.35.0: + resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + requiresBuild: true + dev: true + /ky@1.7.2: resolution: {integrity: sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==} engines: {node: '>=18'} @@ -10282,6 +10379,14 @@ packages: json5: 2.2.3 dev: true + /local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} + engines: {node: '>=14'} + dependencies: + mlly: 1.7.3 + pkg-types: 1.2.1 + dev: true + /locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -10437,8 +10542,8 @@ packages: webpack: 5.96.1(webpack-cli@5.1.4) dev: true - /marked@15.0.0: - resolution: {integrity: sha512-0mouKmBROJv/WSHJBPZZyYofUgawMChnD5je/g+aOBXsHDjb/IsnTQj7mnhQZu+qPJmRQ0ecX3mLGEUm3BgwYA==} + /marked@15.0.2: + resolution: {integrity: sha512-85RUkoYKIVB21PbMKrnD6aCl9ws+XKEyhJNMbLn206NyD3jbBo7Ec7Wi4Jrsn4dV1a2ng7K/jfkmIN0DNoS41w==} engines: {node: '>= 18'} hasBin: true dev: true @@ -10465,8 +10570,13 @@ packages: resolution: {integrity: sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==} dev: true - /mdn-data@2.11.1: - resolution: {integrity: sha512-Hdx3wmyqPFrhd6YHVuSkUK2eIGAcxR0xlndcgZqjA68yMJTbfXrjJwbgsBOsNjI7LnBIVUQnmyMVSdi/ob0GpQ==} + /mdn-data@2.12.1: + resolution: {integrity: sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==} + requiresBuild: true + dev: true + + /mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} requiresBuild: true dev: true @@ -10637,6 +10747,15 @@ packages: hasBin: true dev: true + /mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + dependencies: + acorn: 8.14.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + dev: true + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true @@ -10802,8 +10921,8 @@ packages: engines: {node: '>= 6'} dev: true - /object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + /object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} dev: true @@ -10837,7 +10956,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 dev: true @@ -10847,7 +10966,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 dev: true /object.values@1.2.0: @@ -11136,6 +11255,10 @@ packages: engines: {node: '>=12'} dev: true + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + /picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} dev: true @@ -11208,6 +11331,14 @@ packages: find-up: 6.3.0 dev: true + /pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + dependencies: + confbox: 0.1.8 + mlly: 1.7.3 + pathe: 1.1.2 + dev: true + /possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -11221,23 +11352,23 @@ packages: dependencies: fancy-log: 1.3.3 human-size: 1.1.0 - postcss: 8.4.48 + postcss: 8.4.49 webpack: 5.96.1(webpack-cli@5.1.4) webpack-sources: 2.3.1 dev: true - /postcss-calc@10.0.2(postcss@8.4.48): + /postcss-calc@10.0.2(postcss@8.4.49): resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} engines: {node: ^18.12 || ^20.9 || >=22.0} peerDependencies: postcss: ^8.4.38 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@7.0.2(postcss@8.4.48): + /postcss-colormin@7.0.2(postcss@8.4.49): resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: @@ -11246,59 +11377,59 @@ packages: browserslist: 4.24.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@7.0.4(postcss@8.4.48): + /postcss-convert-values@7.0.4(postcss@8.4.49): resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.24.2 - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments@7.0.3(postcss@8.4.48): + /postcss-discard-comments@7.0.3(postcss@8.4.49): resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true - /postcss-discard-duplicates@7.0.1(postcss@8.4.48): + /postcss-discard-duplicates@7.0.1(postcss@8.4.49): resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-discard-empty@7.0.0(postcss@8.4.48): + /postcss-discard-empty@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-discard-overridden@7.0.0(postcss@8.4.48): + /postcss-discard-overridden@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-loader@8.1.1(postcss@8.4.48)(typescript@5.6.3)(webpack@5.96.1): + /postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.7.2)(webpack@5.96.1): resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} engines: {node: '>= 18.12.0'} peerDependencies: @@ -11311,9 +11442,9 @@ packages: webpack: optional: true dependencies: - cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.7.2) jiti: 1.21.6 - postcss: 8.4.48 + postcss: 8.4.49 semver: 7.6.3 webpack: 5.96.1(webpack-cli@5.1.4) transitivePeerDependencies: @@ -11325,18 +11456,18 @@ packages: requiresBuild: true dev: true - /postcss-merge-longhand@7.0.4(postcss@8.4.48): + /postcss-merge-longhand@7.0.4(postcss@8.4.49): resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.4.48) + stylehacks: 7.0.4(postcss@8.4.49) dev: true - /postcss-merge-rules@7.0.4(postcss@8.4.48): + /postcss-merge-rules@7.0.4(postcss@8.4.49): resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: @@ -11344,199 +11475,199 @@ packages: dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true - /postcss-minify-font-values@7.0.0(postcss@8.4.48): + /postcss-minify-font-values@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@7.0.0(postcss@8.4.48): + /postcss-minify-gradients@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@7.0.2(postcss@8.4.48): + /postcss-minify-params@7.0.2(postcss@8.4.49): resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.24.2 - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@7.0.4(postcss@8.4.48): + /postcss-minify-selectors@7.0.4(postcss@8.4.49): resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: cssesc: 3.0.0 - postcss: 8.4.48 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true - /postcss-modules-extract-imports@3.1.0(postcss@8.4.48): + /postcss-modules-extract-imports@3.1.0(postcss@8.4.49): resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-modules-local-by-default@4.0.5(postcss@8.4.48): + /postcss-modules-local-by-default@4.0.5(postcss@8.4.49): resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.48) - postcss: 8.4.48 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.2.0(postcss@8.4.48): + /postcss-modules-scope@3.2.0(postcss@8.4.49): resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.48): + /postcss-modules-values@4.0.0(postcss@8.4.49): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.48) - postcss: 8.4.48 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 dev: true - /postcss-normalize-charset@7.0.0(postcss@8.4.48): + /postcss-normalize-charset@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-normalize-display-values@7.0.0(postcss@8.4.48): + /postcss-normalize-display-values@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@7.0.0(postcss@8.4.48): + /postcss-normalize-positions@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@7.0.0(postcss@8.4.48): + /postcss-normalize-repeat-style@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@7.0.0(postcss@8.4.48): + /postcss-normalize-string@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@7.0.0(postcss@8.4.48): + /postcss-normalize-timing-functions@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@7.0.2(postcss@8.4.48): + /postcss-normalize-unicode@7.0.2(postcss@8.4.49): resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.24.2 - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@7.0.0(postcss@8.4.48): + /postcss-normalize-url@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@7.0.0(postcss@8.4.48): + /postcss-normalize-whitespace@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@7.0.1(postcss@8.4.48): + /postcss-ordered-values@7.0.1(postcss@8.4.49): resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial@7.0.2(postcss@8.4.48): + /postcss-reduce-initial@7.0.2(postcss@8.4.49): resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: @@ -11544,16 +11675,16 @@ packages: dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-reduce-transforms@7.0.0(postcss@8.4.48): + /postcss-reduce-transforms@7.0.0(postcss@8.4.49): resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true @@ -11561,22 +11692,22 @@ packages: resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} dev: true - /postcss-safe-parser@7.0.1(postcss@8.4.48): + /postcss-safe-parser@7.0.1(postcss@8.4.49): resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} engines: {node: '>=18.0'} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-scss@4.0.9(postcss@8.4.48): + /postcss-scss@4.0.9(postcss@8.4.49): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true /postcss-selector-parser@6.1.2: @@ -11587,42 +11718,51 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-sort-media-queries@5.2.0(postcss@8.4.48): + /postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + engines: {node: '>=4'} + requiresBuild: true + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-sort-media-queries@5.2.0(postcss@8.4.49): resolution: {integrity: sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.4.23 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 sort-css-media-queries: 2.2.0 dev: true - /postcss-sorting@8.0.2(postcss@8.4.48): + /postcss-sorting@8.0.2(postcss@8.4.49): resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} peerDependencies: postcss: ^8.4.20 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 dev: true - /postcss-svgo@7.0.1(postcss@8.4.48): + /postcss-svgo@7.0.1(postcss@8.4.49): resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} engines: {node: ^18.12.0 || ^20.9.0 || >= 18} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-value-parser: 4.2.0 svgo: 3.3.2 dev: true - /postcss-unique-selectors@7.0.3(postcss@8.4.48): + /postcss-unique-selectors@7.0.3(postcss@8.4.49): resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.48 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true @@ -11630,8 +11770,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.48: - resolution: {integrity: sha512-GCRK8F6+Dl7xYniR5a4FYbpBzU8XnZVeowqsQFYdcXuSbChgiks7qybSkbvnaeqv0G0B+dd9/jJgH8kkLDQeEA==} + /postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -11651,7 +11791,7 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-organize-imports@4.1.0(prettier@3.3.3)(typescript@5.6.3): + /prettier-plugin-organize-imports@4.1.0(prettier@3.3.3)(typescript@5.7.2): resolution: {integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==} peerDependencies: prettier: '>=2.0' @@ -11662,7 +11802,7 @@ packages: optional: true dependencies: prettier: 3.3.3 - typescript: 5.6.3 + typescript: 5.7.2 dev: true /prettier@3.3.3: @@ -11821,50 +11961,51 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-aria@3.35.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-MQTvt0xbcKpnceKkYUtPMbaD9IQj2BXTrwk2vP/V7ph3EVhcyJTUdy1LXCqf8oR8bXE2BERUqp7rzJ+vYy5C+w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - dependencies: - '@internationalized/string': 3.2.4 - '@react-aria/breadcrumbs': 3.5.18(react@18.3.1) - '@react-aria/button': 3.10.1(react@18.3.1) - '@react-aria/calendar': 3.5.13(react-dom@18.3.1)(react@18.3.1) - '@react-aria/checkbox': 3.14.8(react@18.3.1) - '@react-aria/color': 3.0.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/combobox': 3.10.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/datepicker': 3.11.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/dialog': 3.5.19(react-dom@18.3.1)(react@18.3.1) - '@react-aria/dnd': 3.7.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/gridlist': 3.9.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/label': 3.7.12(react@18.3.1) - '@react-aria/link': 3.7.6(react@18.3.1) - '@react-aria/listbox': 3.13.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/menu': 3.15.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/meter': 3.4.17(react@18.3.1) - '@react-aria/numberfield': 3.11.8(react-dom@18.3.1)(react@18.3.1) - '@react-aria/overlays': 3.23.4(react-dom@18.3.1)(react@18.3.1) - '@react-aria/progress': 3.4.17(react@18.3.1) - '@react-aria/radio': 3.10.9(react@18.3.1) - '@react-aria/searchfield': 3.7.10(react@18.3.1) - '@react-aria/select': 3.14.11(react-dom@18.3.1)(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1)(react@18.3.1) - '@react-aria/separator': 3.4.3(react@18.3.1) - '@react-aria/slider': 3.7.13(react@18.3.1) - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-aria/switch': 3.6.9(react@18.3.1) - '@react-aria/table': 3.15.5(react-dom@18.3.1)(react@18.3.1) - '@react-aria/tabs': 3.9.7(react-dom@18.3.1)(react@18.3.1) - '@react-aria/tag': 3.4.7(react-dom@18.3.1)(react@18.3.1) - '@react-aria/textfield': 3.14.10(react@18.3.1) - '@react-aria/tooltip': 3.7.9(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-aria/visually-hidden': 3.8.17(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + /react-aria@3.36.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-AK5XyIhAN+e5HDlwlF+YwFrOrVI7RYmZ6kg/o7ZprQjkYqYKapXeUpWscmNm/3H2kDboE5Z4ymUnK6ZhobLqOw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + dependencies: + '@internationalized/string': 3.2.5 + '@react-aria/breadcrumbs': 3.5.19(react@18.3.1) + '@react-aria/button': 3.11.0(react@18.3.1) + '@react-aria/calendar': 3.6.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/checkbox': 3.15.0(react@18.3.1) + '@react-aria/color': 3.0.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/combobox': 3.11.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/datepicker': 3.12.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/dialog': 3.5.20(react-dom@18.3.1)(react@18.3.1) + '@react-aria/disclosure': 3.0.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/dnd': 3.8.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/gridlist': 3.10.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/link': 3.7.7(react@18.3.1) + '@react-aria/listbox': 3.13.6(react-dom@18.3.1)(react@18.3.1) + '@react-aria/menu': 3.16.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/meter': 3.4.18(react@18.3.1) + '@react-aria/numberfield': 3.11.9(react-dom@18.3.1)(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/progress': 3.4.18(react@18.3.1) + '@react-aria/radio': 3.10.10(react@18.3.1) + '@react-aria/searchfield': 3.7.11(react@18.3.1) + '@react-aria/select': 3.15.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/separator': 3.4.4(react@18.3.1) + '@react-aria/slider': 3.7.14(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/switch': 3.6.10(react@18.3.1) + '@react-aria/table': 3.16.0(react-dom@18.3.1)(react@18.3.1) + '@react-aria/tabs': 3.9.8(react-dom@18.3.1)(react@18.3.1) + '@react-aria/tag': 3.4.8(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/tooltip': 3.7.10(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -12046,8 +12187,8 @@ packages: scheduler: 0.23.2 dev: true - /react-textarea-autosize@8.5.4(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-eSSjVtRLcLfFwFcariT77t9hcbVJHQV76b51QjQGarQIHml2+gM2lms0n3XrhnDmgK5B+/Z7TmQk5OHNzqYm/A==} + /react-textarea-autosize@8.5.5(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-CVA94zmfp8m4bSHtWwmANaBR8EPsKy2aZ7KwqhoS4Ftib87F9Kvi7XQhOixypPLMc6kVYgOXvKFuuzZDpHGRPg==} engines: {node: '>=10'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -12121,20 +12262,20 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.12.1 dev: true - /reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + /reflect.getprototypeof@1.0.7: + resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.4 + gopd: 1.0.1 + which-builtin-type: 1.2.0 dev: true /regenerate-unicode-properties@10.2.0: @@ -12161,7 +12302,7 @@ packages: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.12.1 refa: 0.12.1 dev: true @@ -12381,7 +12522,7 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass-loader@16.0.3(sass@1.80.6)(webpack@5.96.1): + /sass-loader@16.0.3(sass@1.81.0)(webpack@5.96.1): resolution: {integrity: sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==} engines: {node: '>= 18.12.0'} peerDependencies: @@ -12403,17 +12544,17 @@ packages: optional: true dependencies: neo-async: 2.6.2 - sass: 1.80.6 + sass: 1.81.0 webpack: 5.96.1(webpack-cli@5.1.4) dev: true - /sass@1.80.6: - resolution: {integrity: sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==} + /sass@1.81.0: + resolution: {integrity: sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: chokidar: 4.0.1 - immutable: 4.3.7 + immutable: 5.0.2 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.0 @@ -12454,7 +12595,7 @@ packages: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.12.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 dev: true @@ -12631,7 +12772,7 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 dev: true /signal-exit@3.0.7: @@ -12898,7 +13039,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 dev: true /string.prototype.matchall@4.0.11: @@ -12907,7 +13048,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 @@ -12923,7 +13064,7 @@ packages: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} dependencies: define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 dev: true /string.prototype.trim@1.2.9: @@ -12932,7 +13073,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 dev: true @@ -13036,14 +13177,14 @@ packages: webpack: 5.96.1(webpack-cli@5.1.4) dev: true - /stylehacks@7.0.4(postcss@8.4.48): + /stylehacks@7.0.4(postcss@8.4.49): resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.24.2 - postcss: 8.4.48 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true @@ -13052,12 +13193,12 @@ packages: peerDependencies: stylelint: ^14.5.1 || ^15.0.0 || ^16.0.0 || ^16.0.2 dependencies: - stylelint: 16.10.0(typescript@5.6.3) + stylelint: 16.10.0(typescript@5.7.2) optionalDependencies: - stylelint-scss: 6.8.1(stylelint@16.10.0) + stylelint-scss: 6.10.0(stylelint@16.10.0) dev: true - /stylelint-config-recommended-scss@14.1.0(postcss@8.4.48)(stylelint@16.10.0): + /stylelint-config-recommended-scss@14.1.0(postcss@8.4.49)(stylelint@16.10.0): resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} engines: {node: '>=18.12.0'} peerDependencies: @@ -13067,11 +13208,11 @@ packages: postcss: optional: true dependencies: - postcss: 8.4.48 - postcss-scss: 4.0.9(postcss@8.4.48) - stylelint: 16.10.0(typescript@5.6.3) + postcss: 8.4.49 + postcss-scss: 4.0.9(postcss@8.4.49) + stylelint: 16.10.0(typescript@5.7.2) stylelint-config-recommended: 14.0.1(stylelint@16.10.0) - stylelint-scss: 6.8.1(stylelint@16.10.0) + stylelint-scss: 6.10.0(stylelint@16.10.0) dev: true /stylelint-config-recommended@14.0.1(stylelint@16.10.0): @@ -13080,10 +13221,10 @@ packages: peerDependencies: stylelint: ^16.1.0 || ^16.0.2 dependencies: - stylelint: 16.10.0(typescript@5.6.3) + stylelint: 16.10.0(typescript@5.7.2) dev: true - /stylelint-config-standard-scss@13.1.0(postcss@8.4.48)(stylelint@16.10.0): + /stylelint-config-standard-scss@13.1.0(postcss@8.4.49)(stylelint@16.10.0): resolution: {integrity: sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA==} engines: {node: '>=18.12.0'} peerDependencies: @@ -13093,9 +13234,9 @@ packages: postcss: optional: true dependencies: - postcss: 8.4.48 - stylelint: 16.10.0(typescript@5.6.3) - stylelint-config-recommended-scss: 14.1.0(postcss@8.4.48)(stylelint@16.10.0) + postcss: 8.4.49 + stylelint: 16.10.0(typescript@5.7.2) + stylelint-config-recommended-scss: 14.1.0(postcss@8.4.49)(stylelint@16.10.0) stylelint-config-standard: 36.0.1(stylelint@16.10.0) dev: true @@ -13105,7 +13246,7 @@ packages: peerDependencies: stylelint: ^16.1.0 || ^16.0.2 dependencies: - stylelint: 16.10.0(typescript@5.6.3) + stylelint: 16.10.0(typescript@5.7.2) stylelint-config-recommended: 14.0.1(stylelint@16.10.0) dev: true @@ -13114,30 +13255,30 @@ packages: peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 || ^16.0.2 dependencies: - postcss: 8.4.48 - postcss-sorting: 8.0.2(postcss@8.4.48) - stylelint: 16.10.0(typescript@5.6.3) + postcss: 8.4.49 + postcss-sorting: 8.0.2(postcss@8.4.49) + stylelint: 16.10.0(typescript@5.7.2) dev: true - /stylelint-scss@6.8.1(stylelint@16.10.0): - resolution: {integrity: sha512-al+5eRb72bKrFyVAY+CLWKUMX+k+wsDCgyooSfhISJA2exqnJq1PX1iIIpdrvhu3GtJgNJZl9/BIW6EVSMCxdg==} + /stylelint-scss@6.10.0(stylelint@16.10.0): + resolution: {integrity: sha512-y03if6Qw9xBMoVaf7tzp5BbnYhYvudIKzURkhSHzcHG0bW0fAYvQpTUVJOe7DyhHaxeThBil4ObEMvGbV7+M+w==} engines: {node: '>=18.12.0'} requiresBuild: true peerDependencies: stylelint: ^16.0.2 dependencies: - css-tree: 3.0.0 + css-tree: 3.0.1 is-plain-object: 5.0.0 - known-css-properties: 0.34.0 - mdn-data: 2.11.1 + known-css-properties: 0.35.0 + mdn-data: 2.12.2 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - stylelint: 16.10.0(typescript@5.6.3) + stylelint: 16.10.0(typescript@5.7.2) dev: true - /stylelint@16.10.0(typescript@5.6.3): + /stylelint@16.10.0(typescript@5.7.2): resolution: {integrity: sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==} engines: {node: '>=18.12.0'} hasBin: true @@ -13149,7 +13290,7 @@ packages: '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.7.2) css-functions-list: 3.2.3 css-tree: 3.0.0 debug: 4.3.7(supports-color@5.5.0) @@ -13169,9 +13310,9 @@ packages: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.0 - postcss: 8.4.48 + postcss: 8.4.49 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.4.48) + postcss-safe-parser: 7.0.1(postcss@8.4.49) postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -13260,8 +13401,8 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /synckit@0.9.1: - resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + /synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/core': 0.1.1 @@ -13478,25 +13619,25 @@ packages: tslib: 2.8.1 dev: true - /ts-api-utils@1.4.0(typescript@5.6.3): - resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + /ts-api-utils@1.4.1(typescript@5.7.2): + resolution: {integrity: sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.6.3 + typescript: 5.7.2 dev: true - /ts-declaration-location@1.0.4(typescript@5.6.3): + /ts-declaration-location@1.0.4(typescript@5.7.2): resolution: {integrity: sha512-r4JoxYhKULbZuH81Pjrp9OEG5St7XWk7zXwGkLKhmVcjiBVHTJXV5wK6dEa9JKW5QGSTW6b1lOjxAKp8R1SQhg==} peerDependencies: typescript: '>=4.0.0' dependencies: minimatch: 10.0.1 - typescript: 5.6.3 + typescript: 5.7.2 dev: true - /ts-jest@29.2.5(@babel/core@7.26.0)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.6.3): + /ts-jest@29.2.5(@babel/core@7.26.0)(babel-jest@29.7.0)(jest@29.7.0)(typescript@5.7.2): resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -13531,11 +13672,11 @@ packages: lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.3 + typescript: 5.7.2 yargs-parser: 21.1.1 dev: true - /ts-loader@9.5.1(typescript@5.6.3)(webpack@5.96.1): + /ts-loader@9.5.1(typescript@5.7.2)(webpack@5.96.1): resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -13547,7 +13688,7 @@ packages: micromatch: 4.0.8 semver: 7.6.3 source-map: 0.7.4 - typescript: 5.6.3 + typescript: 5.7.2 webpack: 5.96.1(webpack-cli@5.1.4) dev: true @@ -13555,7 +13696,7 @@ packages: resolution: {integrity: sha512-jqbIpTsa/KKTJYWgPNsFNbLVpwCgzXfFJ1ukNn4I8hMwyQzHMJnk/BqWzggB0xpkILuKzaO/aMYhS0SkaJyKXg==} dev: true - /ts-unused-exports@10.1.0(typescript@5.6.3): + /ts-unused-exports@10.1.0(typescript@5.7.2): resolution: {integrity: sha512-QA11Dpwkm5Apfe9s/UkFzHEpbiBxKy0VQ72YRAoqq9VgNbxvvIOcS5Kgm1MCitOec9YU6nf51DEWnmL6jkP2Yg==} hasBin: true peerDependencies: @@ -13563,15 +13704,16 @@ packages: dependencies: chalk: 4.1.2 tsconfig-paths: 3.15.0 - typescript: 5.6.3 + typescript: 5.7.2 dev: true - /tsconfig-paths-webpack-plugin@4.1.0: - resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} + /tsconfig-paths-webpack-plugin@4.2.0: + resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} engines: {node: '>=10.13.0'} dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.1 + tapable: 2.2.1 tsconfig-paths: 4.2.0 dev: true @@ -13655,8 +13797,8 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + /typed-array-byte-offset@1.0.3: + resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -13665,18 +13807,19 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + reflect.getprototypeof: 1.0.7 dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + /typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.7 dev: true /typesafe-actions@5.1.0: @@ -13684,26 +13827,27 @@ packages: engines: {node: '>= 4'} dev: false - /typescript-eslint@8.14.0(eslint@9.10.0)(typescript@5.6.3): - resolution: {integrity: sha512-K8fBJHxVL3kxMmwByvz8hNdBJ8a0YqKzKDX6jRlrjMuNXyd5T2V02HIq37+OiWXvUUOXgOOGiSSOh26Mh8pC3w==} + /typescript-eslint@8.16.0(eslint@9.10.0)(typescript@5.7.2): + resolution: {integrity: sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 8.14.0(@typescript-eslint/parser@8.14.0)(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.14.0(eslint@9.10.0)(typescript@5.6.3) - typescript: 5.6.3 + '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0)(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.10.0)(typescript@5.7.2) + eslint: 9.10.0 + typescript: 5.7.2 transitivePeerDependencies: - - eslint - supports-color dev: true - /typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + /typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -13713,6 +13857,10 @@ packages: hasBin: true dev: false + /ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + dev: true + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -14272,15 +14420,16 @@ packages: is-symbol: 1.0.4 dev: true - /which-builtin-type@1.1.4: - resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + /which-builtin-type@1.2.0: + resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.7 function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 + is-finalizationregistry: 1.1.0 is-generator-function: 1.0.10 is-regex: 1.1.4 is-weakref: 1.0.2 diff --git a/src/app/dim-api/actions.ts b/src/app/dim-api/actions.ts index 65a00e078c..f882200825 100644 --- a/src/app/dim-api/actions.ts +++ b/src/app/dim-api/actions.ts @@ -2,6 +2,7 @@ import { DeleteAllResponse } from '@destinyitemmanager/dim-api-types'; import { needsDeveloper } from 'app/accounts/actions'; import { DestinyAccount } from 'app/accounts/destiny-account'; import { accountsSelector, currentAccountSelector } from 'app/accounts/selectors'; +import { FatalTokenError } from 'app/bungie-api/authenticated-fetch'; import { dimErrorToaster } from 'app/bungie-api/error-toaster'; import { getToken } from 'app/bungie-api/oauth-tokens'; import { t } from 'app/i18next-t'; @@ -246,6 +247,14 @@ export function loadDimApiData(forceLoad = false): ThunkResult { // Quickly heal from being failure backoff getProfileBackoff = Math.floor(getProfileBackoff / 2); } catch (err) { + if (err instanceof FatalTokenError) { + // We're already sent to login, don't keep trying to use DIM Sync. + if ($DIM_FLAVOR === 'dev') { + dispatch(needsDeveloper()); + } + return; + } + // Only notify error once if (!getState().dimApi.profileLoadedError) { showProfileLoadErrorNotification(err); @@ -257,18 +266,13 @@ export function loadDimApiData(forceLoad = false): ThunkResult { errorLog(TAG, 'Unable to get profile from DIM API', e); - if (e.name !== 'FatalTokenError') { - // Wait, with exponential backoff - getProfileBackoff++; - const waitTime = getBackoffWaitTime(getProfileBackoff); - infoLog(TAG, 'Waiting', waitTime, 'ms before re-attempting profile fetch'); + // Wait, with exponential backoff + getProfileBackoff++; + const waitTime = getBackoffWaitTime(getProfileBackoff); + infoLog(TAG, 'Waiting', waitTime, 'ms before re-attempting profile fetch'); - // Wait, then retry. We don't await this here so we don't stop the finally block from running - delay(waitTime).then(() => dispatch(loadDimApiData(forceLoad))); - } else if ($DIM_FLAVOR === 'dev') { - dispatch(needsDeveloper()); - } - return; + // Wait, then retry. We don't await this here so we don't stop the finally block from running + delay(waitTime).then(() => dispatch(loadDimApiData(forceLoad))); } finally { // Release the app to load with whatever language was saved or the // default. Better to have the wrong language (that fixes itself on diff --git a/src/app/dim-api/api-types.ts b/src/app/dim-api/api-types.ts index 7a117a7d72..02f51b73f8 100644 --- a/src/app/dim-api/api-types.ts +++ b/src/app/dim-api/api-types.ts @@ -1,15 +1,17 @@ import { DeleteLoadoutUpdate, + DeleteSearchUpdate, DestinyVersion, Loadout, ProfileUpdate, + SearchType, } from '@destinyitemmanager/dim-api-types'; // https://stackoverflow.com/questions/51691235/typescript-map-union-type-to-another-union-type type AddUpdateInfo = U extends ProfileUpdate ? U & { /** The state before this update - if it fails we can use this to roll back */ - before?: U['payload']; + before: U['payload'] | undefined; /** The account (if any) this update refers to */ platformMembershipId?: string; destinyVersion?: DestinyVersion; @@ -22,9 +24,20 @@ export interface DeleteLoadoutUpdateWithRollback extends DeleteLoadoutUpdate { destinyVersion: DestinyVersion; } +export interface DeleteSearchUpdateWithRollback extends DeleteSearchUpdate { + before: { + query: string; + type: SearchType; + saved: boolean; + }; + platformMembershipId: string; + destinyVersion: DestinyVersion; +} + /** * A version of ProfileUpdate that also includes rollback info in a "before" property. */ export type ProfileUpdateWithRollback = + | DeleteSearchUpdateWithRollback | DeleteLoadoutUpdateWithRollback | AddUpdateInfo; diff --git a/src/app/dim-api/reducer.test.ts b/src/app/dim-api/reducer.test.ts index da4292f1ca..548fb852c3 100644 --- a/src/app/dim-api/reducer.test.ts +++ b/src/app/dim-api/reducer.test.ts @@ -1,11 +1,27 @@ -import { SearchType } from '@destinyitemmanager/dim-api-types'; +import { ProfileUpdateResult, SearchType } from '@destinyitemmanager/dim-api-types'; import { DestinyAccount } from 'app/accounts/destiny-account'; -import { setItemHashTag, setItemTag } from 'app/inventory/actions'; +import { setItemHashNote, setItemHashTag, setItemNote, setItemTag } from 'app/inventory/actions'; +import { deleteLoadout, updateLoadout } from 'app/loadout/actions'; import { setSettingAction } from 'app/settings/actions'; +import { identity } from 'app/utils/functions'; import { BungieMembershipType, DestinyClass } from 'bungie-api-ts/destiny2'; -import { DeleteLoadoutUpdateWithRollback } from './api-types'; -import { finishedUpdates, prepareToFlushUpdates, saveSearch } from './basic-actions'; -import { DimApiState, initialState as apiInitialState, dimApi } from './reducer'; +import { produce, WritableDraft } from 'immer'; +import { ProfileUpdateWithRollback } from './api-types'; +import { + finishedUpdates, + prepareToFlushUpdates, + saveSearch, + searchDeleted, + searchUsed, +} from './basic-actions'; +import { + initialState as apiInitialState, + dimApi, + DimApiAction, + DimApiState, + ensureProfile, +} from './reducer'; +import { makeProfileKeyFromAccount } from './selectors'; const currentAccount: DestinyAccount = { membershipId: '98765', @@ -23,446 +39,370 @@ const initialState: DimApiState = { apiPermissionGranted: true, }; -describe('setSetting', () => { - it('changes settings', () => { - const state = initialState; - - const updatedState = dimApi(state, setSettingAction('showNewItems', true)); - - expect(updatedState.settings.showNewItems).toBe(true); - expect(updatedState.updateQueue).toEqual([ - { - action: 'setting', - payload: { - showNewItems: true, - }, - before: { - showNewItems: false, - }, - }, - ]); - }); -}); - -describe('setItemTag', () => { - it('sets tags if there were none before', () => { - const state = initialState; - - const updatedState = dimApi( - state, - setItemTag({ itemId: '1234', tag: 'favorite' }), - currentAccount, - ); - - expect(updatedState.profiles[currentAccountKey].tags['1234'].tag).toBe('favorite'); - expect(updatedState.updateQueue).toEqual([ - { - action: 'tag', - payload: { - id: '1234', - tag: 'favorite', - }, - platformMembershipId: currentAccount.membershipId, - destinyVersion: currentAccount.destinyVersion, - }, - ]); - }); - - it('clears set tags', () => { - const state = initialState; - - let updatedState = dimApi( - state, - setItemTag({ itemId: '1234', tag: 'favorite' }), - currentAccount, - ); - - updatedState = dimApi( - updatedState, - setItemTag({ itemId: '1234', tag: undefined }), - currentAccount, - ); - - expect(updatedState.profiles[currentAccountKey].tags['1234']).toBeUndefined(); - expect(updatedState.updateQueue).toEqual([ - { - action: 'tag', - payload: { - id: '1234', - tag: 'favorite', - }, - platformMembershipId: currentAccount.membershipId, - destinyVersion: currentAccount.destinyVersion, - }, - { - action: 'tag', - payload: { - id: '1234', - tag: null, - }, - before: { - id: '1234', - tag: 'favorite', - }, - platformMembershipId: currentAccount.membershipId, - destinyVersion: currentAccount.destinyVersion, - }, - ]); - }); -}); - -describe('setItemHashTag', () => { - it('sets tags if there were none before', () => { - const state = initialState; - - const updatedState = dimApi( - state, - setItemHashTag({ itemHash: 1234, tag: 'favorite' }), - currentAccount, - ); - - expect(updatedState.itemHashTags[1234].tag).toBe('favorite'); - expect(updatedState.updateQueue).toEqual([ - { - action: 'item_hash_tag', - payload: { - hash: 1234, - tag: 'favorite', - }, - platformMembershipId: currentAccount.membershipId, - destinyVersion: currentAccount.destinyVersion, - }, - ]); - }); - - it('clears set tags', () => { - const state = initialState; - - let updatedState = dimApi( - state, - setItemHashTag({ itemHash: 1234, tag: 'favorite' }), - currentAccount, - ); - - updatedState = dimApi( - updatedState, - setItemHashTag({ itemHash: 1234, tag: undefined }), - currentAccount, - ); - - expect(updatedState.itemHashTags[1234]).toBeUndefined(); - expect(updatedState.updateQueue).toEqual([ - { - action: 'item_hash_tag', - payload: { - hash: 1234, - tag: 'favorite', - }, - platformMembershipId: currentAccount.membershipId, - destinyVersion: currentAccount.destinyVersion, +describe('dim api reducer', () => { + const cases: { + name: string; + /** + * Actions to run to set the initial state before our test actions. These + * will be "flushed" already. + */ + setup?: (state: WritableDraft) => void; + /** + * A list of actions to run, followed by prepareToFlushUpdates. The tuple + * option allows specifying a different account than `currentAccount`. + */ + actions: (DimApiAction | [DimApiAction, DestinyAccount])[]; + /** + * A function for checking expectations on the state after the action. + */ + checkState: (state: DimApiState) => void; + /** + * The expected queue after prepareToFlushUpdates. Only the action and + * payload need to be included. + */ + expectedQueue: Pick[]; + /** + * Set this to skip the reverse-update check. + */ + noReverse?: boolean; + }[] = [ + { + name: 'setSetting: changes settings', + actions: [setSettingAction('showNewItems', true)], + checkState: (state) => { + expect(state.settings.showNewItems).toBe(true); }, - { - action: 'item_hash_tag', - payload: { - hash: 1234, - tag: null, - }, - before: { - hash: 1234, - tag: 'favorite', - }, - platformMembershipId: currentAccount.membershipId, - destinyVersion: currentAccount.destinyVersion, - }, - ]); - }); -}); - -describe('prepareToFlushUpdates', () => { - it('can coalesce settings', () => { - const state: DimApiState = { - ...initialState, - updateQueue: [ - // Turn new items on + expectedQueue: [ { action: 'setting', payload: { showNewItems: true, }, - before: { - showNewItems: false, - }, }, - // Modify another setting + ], + }, + { + name: 'setItemTag: sets tags if there were none before', + actions: [setItemTag({ itemId: '1234', tag: 'favorite' })], + checkState: (state) => { + expect(state.profiles[currentAccountKey].tags['1234'].tag).toBe('favorite'); + }, + expectedQueue: [ { - action: 'setting', + action: 'tag', payload: { - itemSize: 50, - }, - before: { - itemSize: 48, + id: '1234', + tag: 'favorite', }, }, - // Turn new items back off + ], + }, + { + name: 'setItemTag: clears set tags', + actions: [ + setItemTag({ itemId: '1234', tag: 'favorite' }), + setItemTag({ itemId: '1234', tag: undefined }), + ], + checkState: (state) => { + expect(state.profiles[currentAccountKey].tags['1234']).toBeUndefined(); + }, + expectedQueue: [ { - action: 'setting', + action: 'tag', payload: { - showNewItems: false, - }, - before: { - showNewItems: true, + id: '1234', + tag: null, }, }, ], - }; - - const updatedState = dimApi(state, prepareToFlushUpdates()); - - expect(updatedState.updateInProgressWatermark).toBe(1); - // Expect that showNewItems change is eliminated, and there's only one update - const expected = [ - { - action: 'setting', - payload: { - itemSize: 50, - }, - before: { - itemSize: 48, - }, + }, + { + name: 'setItemHashTag: sets tags if there were none before', + actions: [setItemHashTag({ itemHash: 1234, tag: 'favorite' })], + checkState: (state) => { + expect(state.itemHashTags[1234].tag).toBe('favorite'); }, - ]; - expect(updatedState.updateQueue).toEqual(expected); - }); - - it('can handle multiple profile updates', () => { - const state: DimApiState = { - ...initialState, - updateQueue: [ - // Turn new items on + expectedQueue: [ { - action: 'setting', + action: 'item_hash_tag', payload: { - showNewItems: true, + hash: 1234, + tag: 'favorite', }, - before: { - showNewItems: false, + }, + ], + }, + { + name: 'setItemHashTag: clears set tags', + actions: [ + setItemHashTag({ itemHash: 1234, tag: 'favorite' }), + setItemHashTag({ itemHash: 1234, tag: undefined }), + ], + checkState: (state) => { + expect(state.itemHashTags[1234]?.tag).toBeUndefined(); + }, + expectedQueue: [ + { + action: 'item_hash_tag', + payload: { + hash: 1234, + tag: null, }, }, - // Save a tag for D2 + ], + }, + { + name: 'setItemTag/setNote: can set both tag and note', + actions: [ + setItemTag({ itemId: '1234', tag: 'favorite' }), + setItemNote({ itemId: '1234', note: 'foo' }), + ], + checkState: (state) => { + expect(state.profiles[currentAccountKey].tags['1234'].tag).toBe('favorite'); + expect(state.profiles[currentAccountKey].tags['1234'].notes).toBe('foo'); + }, + expectedQueue: [ { action: 'tag', payload: { id: '1234', tag: 'favorite', + notes: 'foo', }, - before: { - id: '1234', - }, - platformMembershipId: '3456', - destinyVersion: 2, }, - // Save a tag for D1, same profile + ], + }, + { + name: 'setItemTag/setNote: can set both tag and note', + actions: [ + setItemHashTag({ itemHash: 1234, tag: 'favorite' }), + setItemHashNote({ itemHash: 1234, note: 'foo' }), + ], + checkState: (state) => { + expect(state.itemHashTags[1234].tag).toBe('favorite'); + expect(state.itemHashTags[1234].notes).toBe('foo'); + }, + expectedQueue: [ { - action: 'tag', + action: 'item_hash_tag', payload: { - id: '1231903', - tag: 'keep', - }, - before: { - id: '1231903', + hash: 1234, + tag: 'favorite', + notes: 'foo', }, - platformMembershipId: '3456', - destinyVersion: 1, }, - // Save a tag for D2, same profile + ], + }, + { + name: 'searchUsed: can track valid queries', + actions: [searchUsed({ query: '(is:masterwork) (is:weapon)', type: SearchType.Item })], + checkState: (state) => { + const search = state.searches[2][0]; + expect(search.query).toBe('is:masterwork is:weapon'); + expect(search.usageCount).toBe(1); + expect(search.saved).toBe(false); + }, + expectedQueue: [ { - action: 'tag', + action: 'search', payload: { - id: '76543', - tag: 'junk', - }, - before: { - id: '76543', + query: 'is:masterwork is:weapon', + type: SearchType.Item, }, - platformMembershipId: '3456', - destinyVersion: 2, }, ], - }; - - const updatedState = dimApi(state, prepareToFlushUpdates()); - - expect(updatedState.updateInProgressWatermark).toBe(3); - // Expect that the queue is rearranged to have the D2 account updates together - const expected = [ - // Turn new items on - { - action: 'setting', - payload: { - showNewItems: true, - }, - before: { - showNewItems: false, - }, + noReverse: true, + }, + { + name: 'saveSearch: can save valid queries', + setup: (state) => { + state.searches[2] = [ + { + usageCount: 1, + lastUsage: 919191, + saved: false, + query: 'is:masterwork is:weapon', + type: SearchType.Item, + }, + ]; }, - // Save a tag for D2 - { - action: 'tag', - payload: { - id: '1234', - tag: 'favorite', - }, - before: { - id: '1234', - }, - platformMembershipId: '3456', - destinyVersion: 2, + actions: [ + saveSearch({ query: '(is:masterwork) (is:weapon)', saved: true, type: SearchType.Item }), + ], + checkState: (state) => { + const search = state.searches[2][0]; + expect(search.query).toBe('is:masterwork is:weapon'); + expect(search.saved).toBe(true); }, - // Save a tag for D2 - { - action: 'tag', - payload: { - id: '76543', - tag: 'junk', - }, - before: { - id: '76543', + expectedQueue: [ + { + action: 'save_search', + payload: { + query: 'is:masterwork is:weapon', + saved: true, + type: SearchType.Item, + }, }, - platformMembershipId: '3456', - destinyVersion: 2, + ], + }, + { + name: 'saveSearch: can unsave valid queries', + setup: (state) => { + state.searches[2] = [ + { + usageCount: 1, + lastUsage: 919191, + saved: true, + query: 'is:masterwork is:weapon', + type: SearchType.Item, + }, + ]; }, - // Save a tag for D1 - { - action: 'tag', - payload: { - id: '1231903', - tag: 'keep', - }, - before: { - id: '1231903', - }, - platformMembershipId: '3456', - destinyVersion: 1, + actions: [ + saveSearch({ query: '(is:masterwork) (is:weapon)', saved: false, type: SearchType.Item }), + ], + checkState: (state) => { + const search = state.searches[2][0]; + expect(search.query).toBe('is:masterwork is:weapon'); + expect(search.saved).toBe(false); }, - ]; - expect(updatedState.updateQueue).toEqual(expected); - }); - - it('can handle multiple profile updates with settings last', () => { - const state: DimApiState = { - ...initialState, - updateQueue: [ - // Save a tag for D2 + expectedQueue: [ { - action: 'tag', + action: 'save_search', payload: { - id: '1234', - tag: 'favorite', - }, - before: { - id: '1234', + query: 'is:masterwork is:weapon', + saved: false, + type: SearchType.Item, }, - platformMembershipId: '3456', - destinyVersion: 2, }, - // Save a tag for D2, same profile + ], + }, + { + name: 'saveSearch: does not save invalid queries', + actions: [saveSearch({ query: 'deepsight:incomplete', saved: true, type: SearchType.Item })], + checkState: (state) => { + expect(state.searches).toMatchObject({ + [1]: [], + [2]: [], + }); + }, + expectedQueue: [], + }, + { + name: 'saveSearch: can unsave previously saved invalid queries', + setup: (state) => { + state.searches[2] = [ + { + usageCount: 1, + lastUsage: 919191, + saved: true, + // This is invalid, but it might have been saved before we changed the rules + query: 'deepsight:incomplete', + type: SearchType.Item, + }, + ]; + }, + actions: [saveSearch({ query: 'deepsight:incomplete', saved: false, type: SearchType.Item })], + checkState: (state) => { + // FIXME maybe delete this outright? It'll be cleaned up the next time DIM loads the remote profile anyway... + const search = state.searches[2][0]; + expect(search.query).toBe('deepsight:incomplete'); + expect(search.saved).toBe(false); + }, + expectedQueue: [ { - action: 'tag', + action: 'save_search', payload: { - id: '76543', - tag: 'junk', - }, - before: { - id: '76543', + query: 'deepsight:incomplete', + saved: false, + type: SearchType.Item, }, - platformMembershipId: '3456', - destinyVersion: 2, }, - // Turn new items on + ], + }, + { + name: 'deleteSearch: can delete previously saved invalid queries', + setup: (state) => { + state.searches[2] = [ + { + usageCount: 1, + lastUsage: 1000, + saved: true, + // This is invalid, but it might have been saved before we changed the rules + query: 'deepsight:incomplete', + type: SearchType.Item, + }, + ]; + }, + actions: [searchDeleted({ query: 'deepsight:incomplete', type: SearchType.Item })], + checkState: (state) => { + // FIXME maybe delete this outright? It'll be cleaned up the next time DIM loads the remote profile anyway... + expect(state.searches[2].length).toBe(0); + }, + expectedQueue: [ { - action: 'setting', + action: 'delete_search', payload: { - showNewItems: true, - }, - before: { - showNewItems: false, + query: 'deepsight:incomplete', + type: SearchType.Item, }, }, ], - }; - - const updatedState = dimApi(state, prepareToFlushUpdates()); - - expect(updatedState.updateInProgressWatermark).toBe(3); - // Expect that the queue is rearranged to have the D2 account updates together - const expected = [ - // Save a tag for D2 - { - action: 'tag', - payload: { + }, + { + name: 'updateLoadout: can save a loadout', + actions: [ + updateLoadout({ id: '1234', - tag: 'favorite', - }, - before: { - id: '1234', - }, - platformMembershipId: '3456', - destinyVersion: 2, - }, - // Save a tag for D2 - { - action: 'tag', - payload: { - id: '76543', - tag: 'junk', - }, - before: { - id: '76543', - }, - platformMembershipId: '3456', - destinyVersion: 2, - }, - // Turn new items on - { - action: 'setting', - payload: { - showNewItems: true, - }, - before: { - showNewItems: false, - }, + name: 'before foo', + classType: DestinyClass.Warlock, + items: [], + clearSpace: false, + }), + ], + checkState: (state) => { + expect(state.profiles[currentAccountKey].loadouts['1234'].name).toBe('before foo'); }, - ]; - expect(updatedState.updateQueue).toEqual(expected); - }); - - it('can handle loadouts', () => { - const state: DimApiState = { - ...initialState, - updateQueue: [ - // Save a loadout for D2 + expectedQueue: [ { action: 'loadout', payload: { - id: '1234', - name: 'foo', - classType: DestinyClass.Warlock, - equipped: [], - unequipped: [], - clearSpace: false, - }, - before: { id: '1234', name: 'before foo', - classType: DestinyClass.Unknown, + classType: DestinyClass.Warlock, equipped: [], unequipped: [], clearSpace: false, }, - platformMembershipId: '3456', - destinyVersion: 2, }, - // Update the name + ], + }, + { + name: 'updateLoadout: can update a loadout', + setup: (state) => { + state.profiles[currentAccountKey].loadouts['1234'] = { + id: '1234', + name: 'before foo', + classType: DestinyClass.Warlock, + equipped: [], + unequipped: [], + clearSpace: false, + }; + return state; + }, + actions: [ + updateLoadout({ + id: '1234', + name: 'foo', // changed name + classType: DestinyClass.Warlock, + items: [], + clearSpace: false, + }), + ], + checkState: (state) => { + expect(state.profiles[currentAccountKey].loadouts['1234'].name).toBe('foo'); + }, + expectedQueue: [ { action: 'loadout', payload: { @@ -473,159 +413,290 @@ describe('prepareToFlushUpdates', () => { unequipped: [], clearSpace: false, }, - before: { - id: '1234', - name: 'foobar', - classType: DestinyClass.Warlock, - equipped: [], - unequipped: [], - clearSpace: false, - }, - platformMembershipId: '3456', - destinyVersion: 2, }, - // Delete it - { - action: 'delete_loadout', - payload: '1234', - before: { - id: '1234', - name: 'foo', - classType: DestinyClass.Warlock, - equipped: [], - unequipped: [], - clearSpace: false, - }, - platformMembershipId: '3456', - destinyVersion: 2, - } as DeleteLoadoutUpdateWithRollback, ], - }; - - const updatedState = dimApi(state, prepareToFlushUpdates()); - - expect(updatedState.updateInProgressWatermark).toBe(1); - - // Down to a single delete, with the original loadout as the before - const expected = [ - { - action: 'delete_loadout', - payload: '1234', - before: { + }, + { + name: 'updateLoadout: can delete a loadout', + setup: (state) => { + state.profiles[currentAccountKey].loadouts['1234'] = { id: '1234', name: 'before foo', - classType: DestinyClass.Unknown, + classType: DestinyClass.Warlock, equipped: [], unequipped: [], clearSpace: false, - }, - platformMembershipId: '3456', - destinyVersion: 2, + }; + return state; }, - ]; - expect(updatedState.updateQueue).toEqual(expected); - }); - - it('can handle tag stuff', () => { - const state: DimApiState = { - ...initialState, - updateQueue: [ + actions: [deleteLoadout('1234')], + checkState: (state) => { + expect(state.profiles[currentAccountKey].loadouts['1234']).toBeUndefined(); + }, + expectedQueue: [ { - action: 'tag', - payload: { - id: '1234', - tag: 'favorite', - }, - before: { - id: '1234', - tag: 'junk', - }, - platformMembershipId: '3456', - destinyVersion: 2, + action: 'delete_loadout', + payload: '1234', }, + ], + }, + ]; + + for (const { + name, + actions, + checkState, + expectedQueue = [], + setup = identity, + noReverse = false, + } of cases) { + it(name, () => { + // Set up the state + const setupState = produce(initialState, (draft) => { + const profileKey = makeProfileKeyFromAccount(currentAccount); + ensureProfile(draft, profileKey); + setup(draft); + draft.updateQueue = []; + draft.updateInProgressWatermark = 0; + return draft; + }); + + // Apply all the input actions and call prepareToFlushUpdates + const updatedState = [...actions, prepareToFlushUpdates()].reduce((s, action) => { + if (Array.isArray(action)) { + return dimApi(s, action[0], action[1]); + } + return dimApi(s, action, currentAccount); + }, setupState); + + // Run test-specific checks + checkState(updatedState); + + expect(updatedState.updateQueue.length).toEqual(expectedQueue.length); + let i = 0; + for (const entry of updatedState.updateQueue) { + const { action, payload } = entry; + const { action: expectedAction, payload: expectedPayload } = expectedQueue[i]; + expect(action).toBe(expectedAction); + if (typeof payload === 'string') { + expect(payload).toBe(expectedPayload); + } else { + expect(payload).toMatchObject(expectedPayload); + } + i++; + } + + // Fail all the updates in the queue and make sure they reverse back to the initial state + const reversed = dimApi( + updatedState, + finishedUpdates( + new Array(updatedState.updateInProgressWatermark).fill({ + status: 'Failed', + }), + ), + ); + if (!noReverse) { + expect(reversed).toEqual(setupState); + } + }); + } +}); + +describe('prepareToFlushUpdates', () => { + const cases: { + name: string; + /** + * Actions to run to set the initial state before our test actions. These + * will be "flushed" already. + */ + setupActions?: DimApiAction[]; + /** + * A list of actions to run, followed by prepareToFlushUpdates. The tuple + * option allows specifying a different account than `currentAccount`. + */ + actions: (DimApiAction | [DimApiAction, DestinyAccount])[]; + /** + * After prepareToFlushUpdates, the queue should look as if these actions + * had been run (e.g. reordered, or with multiple updates consolidated). + */ + expectedActions?: (DimApiAction | [DimApiAction, DestinyAccount])[]; + /** + * The expected queue after prepareToFlushUpdates. Use this if you can't + * express the queue state with expectedActions. + */ + expectedQueue?: ProfileUpdateWithRollback[]; + /** + * The expected inProgressWatermark value. If not set it defaults to + * expectedQueue.length. + */ + expectedInProgressWatermark?: number; + }[] = [ + { + name: 'can coalesce settings', + actions: [ + // Turn new items on + setSettingAction('showNewItems', true), + // Modify another setting + setSettingAction('itemSize', 35), + // Turn new items back off + setSettingAction('showNewItems', false), + ], + expectedActions: [ + // The showNewItems setting should cancel out + setSettingAction('itemSize', 35), + ], + }, + { + name: 'can handle multiple profile updates', + actions: [ + // Turn new items on + setSettingAction('showNewItems', true), + // Save a tag for D2 + setItemTag({ itemId: '1234', tag: 'favorite' }), + // Save a tag for D1, same profile + [setItemTag({ itemId: '1231903', tag: 'keep' }), { ...currentAccount, destinyVersion: 1 }], + // Save a tag for D2, same profile + setItemTag({ itemId: '76543', tag: 'junk' }), + ], + expectedInProgressWatermark: 3, // Because the D1 tag is outside the queue + expectedActions: [ + // Turn new items on + setSettingAction('showNewItems', true), + // Save a tag for D2 + setItemTag({ itemId: '1234', tag: 'favorite' }), + // Save a tag for D2, same profile + setItemTag({ itemId: '76543', tag: 'junk' }), + // The D1 tag should be moved to the end + [setItemTag({ itemId: '1231903', tag: 'keep' }), { ...currentAccount, destinyVersion: 1 }], + ], + }, + { + name: 'can handle multiple profile updates with settings last', + actions: [ + // Save a tag for D2 + setItemTag({ itemId: '1234', tag: 'favorite' }), + // Save a tag for D2, same profile + setItemTag({ itemId: '76543', tag: 'junk' }), + // Turn new items on + setSettingAction('showNewItems', true), + ], + // Exactly the same + expectedActions: [ + setItemTag({ itemId: '1234', tag: 'favorite' }), + setItemTag({ itemId: '76543', tag: 'junk' }), + setSettingAction('showNewItems', true), + ], + }, + { + name: 'can handle loadouts', + setupActions: [ + updateLoadout({ + id: '1234', + name: 'before foo', + classType: DestinyClass.Warlock, + items: [], + clearSpace: false, + }), + ], + actions: [ + updateLoadout({ + id: '1234', + name: 'foo', + classType: DestinyClass.Warlock, + items: [], + clearSpace: false, + }), + // Update the name + updateLoadout({ + id: '1234', + name: 'foobar', + classType: DestinyClass.Warlock, + items: [], + clearSpace: false, + }), + deleteLoadout('1234'), + ], + expectedActions: [deleteLoadout('1234')], + }, + { + name: 'can handle setting both tags and notes', + actions: [ + setItemTag({ itemId: '1234', tag: 'favorite' }), + setItemNote({ itemId: '1234', note: 'woohoo' }), + setItemTag({ itemId: '1234', tag: undefined }), + ], + expectedQueue: [ + // Tag and notes are coalesced into a single update { action: 'tag', payload: { id: '1234', + tag: null, notes: 'woohoo', + craftedDate: undefined, }, before: { - id: '1234', - tag: 'favorite', - }, - platformMembershipId: '3456', - destinyVersion: 2, - }, - { - action: 'tag', - payload: { id: '1234', tag: null, + notes: null, }, - before: { - id: '1234', - tag: 'favorite', - notes: 'woohoo', - }, - platformMembershipId: '3456', + platformMembershipId: currentAccount.membershipId, destinyVersion: 2, }, ], - }; - - const updatedState = dimApi(state, prepareToFlushUpdates()); - - expect(updatedState.updateInProgressWatermark).toBe(1); - const expected = [ - { - action: 'tag', - payload: { - id: '1234', - tag: null, - notes: 'woohoo', - }, - before: { - id: '1234', - tag: 'junk', - }, - platformMembershipId: '3456', - destinyVersion: 2, - }, - ]; - expect(updatedState.updateQueue).toEqual(expected); - }); + }, + ]; + + for (const { + name, + actions, + expectedQueue = [], + expectedActions = [], + setupActions = [], + expectedInProgressWatermark = expectedQueue.length + expectedActions.length, + } of cases) { + it(name, () => { + // Apply the setup actions + const setupState = [ + ...setupActions, + prepareToFlushUpdates(), + finishedUpdates( + new Array(setupActions.length).fill({ status: 'Success' }), + ), + ].reduce((s, action) => dimApi(s, action, currentAccount), initialState); + setupState.updateQueue = []; + setupState.updateInProgressWatermark = 0; + + // Apply all the input actions, then prepareToFlushUpdates + const updatedState = [...actions, prepareToFlushUpdates()].reduce((s, action) => { + if (Array.isArray(action)) { + return dimApi(s, action[0], action[1]); + } + return dimApi(s, action, currentAccount); + }, setupState); + expect(updatedState.updateInProgressWatermark).toBe(expectedInProgressWatermark); + + // Generate the expected queue + const resolvedExpectedQueue = expectedQueue.length + ? expectedQueue + : expectedActions.reduce((s, action) => { + if (Array.isArray(action)) { + return dimApi(s, action[0], action[1]); + } + return dimApi(s, action, currentAccount); + }, setupState).updateQueue; + + expect(updatedState.updateQueue).toEqual(resolvedExpectedQueue); + }); + } }); describe('finishedUpdates', () => { it('can mark success', () => { - const state: DimApiState = { - ...initialState, - updateQueue: [ - { - action: 'setting', - payload: { - showNewItems: true, - }, - before: { - showNewItems: false, - }, - }, - // Save a tag for D2 - { - action: 'tag', - payload: { - id: '1234', - tag: 'favorite', - }, - before: { - id: '1234', - }, - platformMembershipId: '3456', - destinyVersion: 2, - }, - ], - updateInProgressWatermark: 2, - }; + let state = dimApi(initialState, setSettingAction('showNewItems', true)); + state = dimApi(state, setItemTag({ itemId: '1234', tag: 'favorite' }), currentAccount); + state = dimApi(state, prepareToFlushUpdates()); + const updatedState = dimApi( state, finishedUpdates([{ status: 'Success' }, { status: 'Success' }]), @@ -635,87 +706,3 @@ describe('finishedUpdates', () => { expect(updatedState.updateQueue).toEqual([]); }); }); - -describe('saveSearch', () => { - it('can save valid queries', () => { - const state: DimApiState = { - ...initialState, - }; - const updatedState = dimApi( - state, - saveSearch({ query: '(is:masterwork) (is:weapon)', saved: true, type: SearchType.Item }), - currentAccount, - ); - - expect(updatedState.searches).toMatchObject({ - [1]: [], - [2]: [{ query: 'is:masterwork is:weapon', saved: true, type: SearchType.Item }], - }); - }); - - it('can unsave valid queries', () => { - const state: DimApiState = { - ...initialState, - }; - let updatedState = dimApi( - state, - saveSearch({ query: '(is:masterwork) (is:weapon)', saved: true, type: SearchType.Item }), - currentAccount, - ); - - updatedState = dimApi( - updatedState, - saveSearch({ query: '(is:masterwork) (is:weapon)', saved: false, type: SearchType.Item }), - currentAccount, - ); - - expect(updatedState.searches).toMatchObject({ - [1]: [], - [2]: [{ query: 'is:masterwork is:weapon', saved: false, type: SearchType.Item }], - }); - }); - - it('does not save invalid queries', () => { - const state: DimApiState = { - ...initialState, - }; - const updatedState = dimApi( - state, - saveSearch({ query: 'deepsight:incomplete', saved: true, type: SearchType.Item }), - currentAccount, - ); - expect(updatedState.searches).toMatchObject({ - [1]: [], - [2]: [], - }); - }); - - it('can unsave invalid queries', () => { - const state: DimApiState = { - ...initialState, - searches: { - [1]: [], - [2]: [ - { - usageCount: 1, - lastUsage: 919191, - saved: true, - query: 'deepsight:incomplete', - type: SearchType.Item, - }, - ], - }, - }; - const updatedState = dimApi( - state, - saveSearch({ query: 'deepsight:incomplete', saved: false, type: SearchType.Item }), - currentAccount, - ); - - // FIXME maybe delete this outright? It'll be cleaned up the next time DIM loads the remote profile anyway... - expect(updatedState.searches).toMatchObject({ - [1]: [], - [2]: [{ usageCount: 1, saved: false, query: 'deepsight:incomplete' }], - }); - }); -}); diff --git a/src/app/dim-api/reducer.ts b/src/app/dim-api/reducer.ts index b6c2763ff1..05cc3ad064 100644 --- a/src/app/dim-api/reducer.ts +++ b/src/app/dim-api/reducer.ts @@ -151,7 +151,7 @@ export const initialState: DimApiState = { updateInProgressWatermark: 0, }; -type DimApiAction = +export type DimApiAction = | ActionType | ActionType | ActionType @@ -758,7 +758,10 @@ function compactUpdate( ...existingUpdate.payload, ...update.payload, }, - before: existingUpdate.before, + before: { + ...update.before!, + ...existingUpdate.before!, + }, }; } break; @@ -772,7 +775,10 @@ function compactUpdate( ...existingUpdate.payload, ...update.payload, }, - before: existingUpdate.before, + before: { + ...update.before!, + ...existingUpdate.before!, + }, }; } break; @@ -941,10 +947,8 @@ function updateLoadout(state: DimApiState, loadout: DimLoadout, account: Destiny payload: newLoadout, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, + before: loadouts[loadout.id], }; - if (loadouts[loadout.id]) { - update.before = loadouts[loadout.id]; - } applyUpdateLocally(draft, update); draft.updateQueue.push(update); }); @@ -982,7 +986,7 @@ function setTag( tag: tag ?? null, craftedDate: craftedDate ?? existingTag?.craftedDate, }, - before: existingTag ? { ...existingTag } : undefined, + before: existingTag ? { id: itemId, tag: existingTag.tag ?? null } : { id: itemId, tag: null }, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1013,7 +1017,9 @@ function setItemHashTag( hash: itemHash, tag: tag ?? null, }, - before: existingTag ? { ...existingTag } : undefined, + before: existingTag + ? { hash: itemHash, tag: existingTag.tag ?? null } + : { hash: itemHash, tag: null }, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1041,10 +1047,12 @@ function setNote( action: 'tag', payload: { id: itemId, - notes: notes && notes.length > 0 ? notes : null, + notes: notes || null, craftedDate: craftedDate ?? existingTag?.craftedDate, }, - before: existingTag ? { ...existingTag } : undefined, + before: existingTag + ? { id: itemId, notes: existingTag.notes || null } + : { id: itemId, notes: null }, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1065,9 +1073,11 @@ function setItemHashNote( action: 'item_hash_tag', payload: { hash: itemHash, - notes: notes && notes.length > 0 ? notes : null, + notes: notes || null, }, - before: existingTag ? { ...existingTag } : undefined, + before: existingTag + ? { hash: itemHash, notes: existingTag.notes || null } + : { hash: itemHash, notes: null }, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1087,6 +1097,7 @@ function tagCleanup(state: DimApiState, itemIdsToRemove: string[], account: Dest // "before" isn't really valuable here platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, + before: undefined, }; applyUpdateLocally(draft, updateAction); draft.updateQueue.push(updateAction); @@ -1142,6 +1153,7 @@ function searchUsed( query, type, }, + before: undefined, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1189,8 +1201,7 @@ function saveSearch( } query = canonical; - const searches = draft.searches[destinyVersion]; - const existingSearch = searches.find((s) => s.query === query); + const existingSearch = draft.searches[destinyVersion].find((s) => s.query === query); if (!existingSearch && saveable) { // Save this as a "used" search first. This may happen if it's a type of @@ -1203,6 +1214,7 @@ function saveSearch( query, type, }, + before: undefined, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1217,6 +1229,11 @@ function saveSearch( saved, type, }, + before: { + query, + saved: !saved, + type, + }, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1230,12 +1247,29 @@ function deleteSearch( query: string, type: SearchType, ) { + const destinyVersion = account.destinyVersion; + // Note: memoized + const filtersMap = buildItemFiltersMap(destinyVersion); + + // Canonicalize the query so we always save it the same way + const { canonical } = parseAndValidateQuery(query, filtersMap, { + customStats: draft.settings.customStats ?? [], + } as FilterContext); + query = canonical; + + const existingSearch = draft.searches[destinyVersion].find((s) => s.query === query); + const updateAction: ProfileUpdateWithRollback = { action: 'delete_search', payload: { query, type, }, + before: { + query, + saved: existingSearch?.saved ?? false, + type, + }, platformMembershipId: account.membershipId, destinyVersion: account.destinyVersion, }; @@ -1277,7 +1311,7 @@ export function parseProfileKey(profileKey: string): [string, DestinyVersion] { return [match[1], parseInt(match[2], 10) as DestinyVersion]; } -function ensureProfile(draft: Draft, profileKey: string) { +export function ensureProfile(draft: Draft, profileKey: string) { if (!draft.profiles[profileKey]) { draft.profiles[profileKey] = { profileLastLoaded: 0, @@ -1292,10 +1326,6 @@ function ensureProfile(draft: Draft, profileKey: string) { function applyUpdateLocally(draft: Draft, update: ProfileUpdateWithRollback) { switch (update.action) { case 'setting': { - // Intentionally avoiding Object.assign because of immer - // for (const [key, value] of Object.entries(update.payload)) { - // draft.settings[key] = value; - // } Object.assign(draft.settings, update.payload); break; } @@ -1305,15 +1335,17 @@ function applyUpdateLocally(draft: Draft, update: ProfileUpdateWith const searches = draft.searches[destinyVersion!]; const existingSearch = searches.find((s) => s.query === query); + const lastUsage = $DIM_FLAVOR === 'test' ? 1000 : Date.now(); + if (existingSearch) { - existingSearch.lastUsage = Date.now(); + existingSearch.lastUsage = lastUsage; existingSearch.usageCount++; } else { searches.push({ query, usageCount: 1, saved: false, - lastUsage: Date.now(), + lastUsage, type, }); } @@ -1355,7 +1387,7 @@ function applyUpdateLocally(draft: Draft, update: ProfileUpdateWith if (!existingAnnotation.tag && !existingAnnotation.notes) { delete tags[itemId]; } - } else { + } else if (itemAnnotation.tag || itemAnnotation.notes) { tags[itemId] = itemAnnotation; } break; @@ -1378,7 +1410,7 @@ function applyUpdateLocally(draft: Draft, update: ProfileUpdateWith if (!existingAnnotation.tag && !existingAnnotation.notes) { delete tags[itemAnnotation.hash]; } - } else { + } else if (itemAnnotation.tag || itemAnnotation.notes) { tags[itemAnnotation.hash] = itemAnnotation; } break; @@ -1421,32 +1453,67 @@ function applyUpdateLocally(draft: Draft, update: ProfileUpdateWith const { destinyVersion } = update; const searches = draft.searches[destinyVersion!]; const existingSearch = searches.find((s) => s.query === query); + const lastUsage = $DIM_FLAVOR === 'test' ? 1000 : Date.now(); - // This should always exist + // This might not exist if reversing a delete_search if (existingSearch) { existingSearch.saved = saved; + } else { + searches.push({ + query, + usageCount: 1, + saved, + lastUsage, + type: update.payload.type, + }); } break; } } } -function reverseUpdateLocally(draft: Draft, update: ProfileUpdateWithRollback) { - switch (update.action) { - case 'delete_loadout': { - const { platformMembershipId, destinyVersion } = update; - const loadoutId = update.payload; - const profileKey = makeProfileKey(platformMembershipId!, destinyVersion!); - const loadouts = ensureProfile(draft, profileKey).loadouts; - loadouts[loadoutId] = update.before as Loadout; - break; +export function reverseUpdateLocally(draft: Draft, update: ProfileUpdateWithRollback) { + try { + switch (update.action) { + case 'delete_loadout': { + const { platformMembershipId, destinyVersion } = update; + const loadoutId = update.payload; + const profileKey = makeProfileKey(platformMembershipId!, destinyVersion!); + const loadouts = ensureProfile(draft, profileKey).loadouts; + loadouts[loadoutId] = update.before as Loadout; + break; + } + case 'delete_search': { + // delete_search reverses to save_search + applyUpdateLocally(draft, { + ...update, + action: 'save_search', + payload: update.before, + before: update.payload, + } as ProfileUpdateWithRollback); + break; + } + case 'search': + // You can't reverse a search usage + break; + case 'tag_cleanup': + // You can't reverse a tag cleanup + break; + default: + applyUpdateLocally(draft, { + ...update, + payload: update.before, + before: update.payload, + } as ProfileUpdateWithRollback); + break; + } + } catch (e) { + // We don't want to endlessly retry the update if we fail to reverse. The + // next profile load will reset the info. + errorLog('reverseUpdateLocally', e, update); + reportException('reverseUpdateLocally', e, { update }); + if ($DIM_FLAVOR === 'test') { + throw e; } - default: - applyUpdateLocally(draft, { - ...update, - payload: update.before, - before: update.payload, - } as ProfileUpdateWithRollback); - break; } } diff --git a/src/app/inventory-page/Stores.scss b/src/app/inventory-page/Stores.scss index e6ac9bf9cb..acf8e1dc10 100644 --- a/src/app/inventory-page/Stores.scss +++ b/src/app/inventory-page/Stores.scss @@ -85,6 +85,10 @@ --engram-size: calc(var(--character-column-width) / 10); padding-bottom: 8px; + @include phone-portrait { + --engram-size: calc((100vw - (2 * var(--inventory-column-padding))) / 10); + } + .empty-engram { border: $item-border-width solid transparent; box-sizing: border-box; @@ -106,10 +110,6 @@ .item-drag-container, .empty-engram { --item-size: var(--engram-size); - - @include phone-portrait { - --item-size: calc((100vw - (2 * var(--inventory-column-padding))) / 10); - } } } diff --git a/src/app/records/MetricBanner.tsx b/src/app/records/MetricBanner.tsx index 5f8f398481..ddfe56bec4 100644 --- a/src/app/records/MetricBanner.tsx +++ b/src/app/records/MetricBanner.tsx @@ -2,10 +2,10 @@ import { useD2Definitions } from 'app/manifest/selectors'; import { METRICS_ACCOUNT_NODE } from 'app/search/d2-known-values'; import { DestinyObjectiveProgress } from 'bungie-api-ts/destiny2'; import clsx from 'clsx'; -import { TraitHashes } from 'data/d2/generated-enums'; import masterworkOverlay from 'images/masterwork-metric.png'; import BungieImage from '../dim-ui/BungieImage'; import styles from './MetricBanner.m.scss'; +import { getMetricTimeScope } from './presentation-nodes'; interface Props { metricHash: number; @@ -21,9 +21,7 @@ export default function MetricBanner({ metricHash, objectiveProgress, className } const metricIcon = metricDef.displayProperties.icon; - const metricScope = metricDef.traitHashes - .filter((h) => h !== TraitHashes.All) - .map((h) => defs.Trait.get(h))[0]; + const metricScope = getMetricTimeScope(defs, metricDef); const parentNodeHash = metricDef.parentNodeHashes.length ? metricDef.parentNodeHashes[0] diff --git a/src/app/records/Metrics.tsx b/src/app/records/Metrics.tsx index d91c385c77..49915331df 100644 --- a/src/app/records/Metrics.tsx +++ b/src/app/records/Metrics.tsx @@ -1,30 +1,20 @@ import BungieImage from 'app/dim-ui/BungieImage'; import { useD2Definitions } from 'app/manifest/selectors'; -import { TraitHashes } from 'data/d2/generated-enums'; -import { keyBy } from 'es-toolkit'; import Metric from './Metric'; import styles from './Metrics.m.scss'; -import { DimMetric } from './presentation-nodes'; +import { DimMetric, getMetricTimeScope } from './presentation-nodes'; export default function Metrics({ metrics }: { metrics: DimMetric[] }) { const defs = useD2Definitions()!; - const groupedMetrics = Object.groupBy( - metrics, - (metric) => metric.metricDef.traitHashes.find((h) => h !== TraitHashes.All)!, - ); - - const traits = keyBy( - Object.keys(groupedMetrics).map((th) => defs.Trait.get(Number(th))), - (t) => t.hash, - ); + const groupedMetrics = Map.groupBy(metrics, (m) => getMetricTimeScope(defs, m.metricDef)); return (
- {Object.entries(groupedMetrics).map(([traitHash, metrics]) => ( -
+ {[...groupedMetrics.entries()].map(([trait, metrics]) => ( +
- - {traits[Number(traitHash)].displayProperties.name} + + {trait.displayProperties.name}
{metrics.map((metric) => ( diff --git a/src/app/records/presentation-nodes.ts b/src/app/records/presentation-nodes.ts index c8cbf10151..1d684d5fc9 100644 --- a/src/app/records/presentation-nodes.ts +++ b/src/app/records/presentation-nodes.ts @@ -27,7 +27,9 @@ import { DestinyRecordDefinition, DestinyRecordState, DestinyScope, + DestinyTraitDefinition, } from 'bungie-api-ts/destiny2'; +import { TraitHashes } from 'data/d2/generated-enums'; import { minBy } from 'es-toolkit'; import { unlockedItemsForCharacterOrProfilePlugSet } from './plugset-helpers'; @@ -609,6 +611,14 @@ export function getCollectibleState( : profileResponse.profileCollectibles?.data?.collectibles[collectibleDef.hash]?.state; } +export function getMetricTimeScope( + defs: D2ManifestDefinitions, + metric: DestinyMetricDefinition, +): DestinyTraitDefinition { + const traitHash = metric.traitHashes.find((h) => h !== TraitHashes.All); + return defs.Trait.get(traitHash ?? TraitHashes.All); +} + function getMetricComponent( metricDef: DestinyMetricDefinition, profileResponse: DestinyProfileResponse, diff --git a/src/data/d2/missing-source-info.ts b/src/data/d2/missing-source-info.ts index 00678667ac..307482c6d4 100644 --- a/src/data/d2/missing-source-info.ts +++ b/src/data/d2/missing-source-info.ts @@ -2478,6 +2478,7 @@ const missingSources: { [key: string]: number[] } = { 2369496221, // Plate of Nohr 2480074702, // Forbearance 2513313400, // Insigne Shade Gloves + 2527555418, // Spoils of Conquest 2530113265, // Bulletsmith's Ire Plate 2537874394, // Boots of Sekris 2550116544, // Robes of the Great Hunt diff --git a/src/data/d2/pursuits.json b/src/data/d2/pursuits.json index 2a9fcf2c94..ec14b0a486 100644 --- a/src/data/d2/pursuits.json +++ b/src/data/d2/pursuits.json @@ -137,6 +137,9 @@ "147797594": { "Destination": [697502628] }, + "156208848": { + "Destination": [677774031] + }, "169598011": { "ActivityMode": [1848252830, 3789021730, 1164760504] }, @@ -161,6 +164,9 @@ "170247375": { "ActivityMode": [3789021730] }, + "172986435": { + "Destination": [677774031] + }, "179306417": { "ItemCategory": [13] }, @@ -172,6 +178,10 @@ "186303403": { "Destination": [1729879943] }, + "189764150": { + "ActivityMode": [1848252830], + "Destination": [677774031] + }, "193645204": { "ActivityMode": [1848252830], "DamageType": [1847026933, 3454344768], @@ -471,10 +481,16 @@ "459676116": { "ActivityMode": [1848252830] }, + "459825958": { + "Destination": [3607432451] + }, "463685197": { "Destination": [1729879943], "ItemCategory": [11] }, + "480260823": { + "Destination": [677774031] + }, "484414765": { "Destination": [2481646875] }, @@ -485,6 +501,9 @@ "Destination": [3607432451], "KillType": [4] }, + "488960532": { + "Destination": [677774031] + }, "489973662": { "ItemCategory": [2489664120] }, @@ -893,6 +912,10 @@ "973983256": { "Destination": [1416096592] }, + "981036864": { + "ActivityMode": [332181804], + "Destination": [677774031] + }, "999548402": { "Destination": [1729879943] }, @@ -920,6 +943,9 @@ "1013534599": { "Destination": [1729879943] }, + "1014592166": { + "Destination": [677774031] + }, "1019699039": { "ItemCategory": [153950757] }, @@ -933,6 +959,9 @@ "1025057518": { "Destination": [677774031] }, + "1031369753": { + "Destination": [677774031] + }, "1041451527": { "Destination": [3607432451] }, @@ -1213,6 +1242,9 @@ "1246673684": { "ActivityMode": [608898761] }, + "1251758727": { + "ActivityMode": [608898761] + }, "1257909267": { "Destination": [677774031] }, @@ -1223,6 +1255,9 @@ "ActivityMode": [1686739444], "Destination": [677774031] }, + "1268536442": { + "Destination": [677774031] + }, "1272199270": { "ItemCategory": [3317538576], "KillType": [4] @@ -1242,6 +1277,9 @@ "1272807303": { "KillType": [0] }, + "1285314029": { + "Destination": [677774031] + }, "1285862604": { "Destination": [677774031] }, @@ -1958,7 +1996,7 @@ "Destination": [3990611421] }, "2190858661": { - "ActivityMode": [1164760504, 3199098480] + "ActivityMode": [1164760504] }, "2192699203": { "Destination": [1416096592] @@ -2023,6 +2061,10 @@ "2235063232": { "Destination": [3607432451] }, + "2238201420": { + "ActivityMode": [1848252830, 1164760504], + "ItemCategory": [6] + }, "2240389561": { "Destination": [3607432451] }, @@ -2042,6 +2084,9 @@ "2285406418": { "ItemCategory": [3317538576] }, + "2288534277": { + "Destination": [677774031] + }, "2289410285": { "Destination": [697502628] }, @@ -2432,6 +2477,9 @@ "ActivityMode": [1673724806], "DamageType": [3454344768] }, + "2786020195": { + "ActivityMode": [1848252830] + }, "2795447263": { "ItemCategory": [8, 10], "KillType": [4] @@ -2442,6 +2490,9 @@ "2798544375": { "Destination": [1729879943] }, + "2802797782": { + "Destination": [677774031] + }, "2808722824": { "Destination": [2244580325], "DamageType": [2303181850] @@ -2557,6 +2608,9 @@ "2864963415": { "ActivityMode": [1164760504, 3199098480] }, + "2876166746": { + "Destination": [1729879943] + }, "2876781672": { "ItemCategory": [54, 3871742104] }, @@ -3103,6 +3157,10 @@ "3401935316": { "Destination": [1729879943] }, + "3403632781": { + "Destination": [1729879943], + "KillType": [0] + }, "3405012994": { "Destination": [677774031] }, @@ -3126,6 +3184,9 @@ "3438972653": { "ItemCategory": [13] }, + "3446274852": { + "Destination": [677774031] + }, "3449625264": { "Destination": [2481646875], "ItemCategory": [5, 12, 7, 3954685534] @@ -3165,6 +3226,9 @@ "3459548846": { "Destination": [1729879943] }, + "3463052439": { + "Destination": [677774031] + }, "3480928862": { "DamageType": [2303181850] }, @@ -3181,6 +3245,9 @@ "3497386880": { "ActivityMode": [1673724806] }, + "3502555217": { + "DamageType": [2303181850, 151347233] + }, "3502555218": { "ItemCategory": [6] }, @@ -3240,6 +3307,9 @@ "3533425632": { "ItemCategory": [5] }, + "3533922969": { + "Destination": [677774031] + }, "3535121108": { "ActivityMode": [1164760504, 910991990], "DamageType": [3454344768, 3949783978] @@ -3321,6 +3391,9 @@ "ActivityMode": [1848252830, 3789021730, 1164760504], "ItemCategory": [5] }, + "3566271052": { + "Destination": [677774031] + }, "3568578179": { "Destination": [677774031] }, @@ -3337,6 +3410,9 @@ "DamageType": [1847026933], "KillType": [1] }, + "3583048767": { + "Destination": [677774031] + }, "3586902510": { "Destination": [3607432451] }, @@ -3874,7 +3950,7 @@ "DamageType": [2303181850] }, "4237477948": { - "ActivityMode": [1164760504, 3199098480] + "ActivityMode": [1164760504] }, "4237572676": { "Destination": [3607432451] diff --git a/src/data/d2/seasons.json b/src/data/d2/seasons.json index 999648090e..7481d72ea4 100644 --- a/src/data/d2/seasons.json +++ b/src/data/d2/seasons.json @@ -168,7 +168,6 @@ "263371518": 2, "263371519": 2, "265428940": 1, - "266033973": 25, "267290351": 1, "267916777": 6, "268035671": 20, @@ -209,9 +208,16 @@ "335763433": 3, "335988632": 25, "338612265": 3, + "342326464": 25, + "342326465": 25, "342326472": 25, "342326473": 25, "342326474": 25, + "342326475": 25, + "342326476": 25, + "342326477": 25, + "342326478": 25, + "342326479": 25, "343482208": 14, "343482209": 14, "343789488": 24, @@ -489,6 +495,9 @@ "785442930": 4, "787024992": 16, "788073489": 25, + "788073490": 25, + "788073491": 25, + "788073493": 25, "796298276": 15, "796633253": 4, "797283241": 23, @@ -545,10 +554,10 @@ "873720784": 12, "873770815": 3, "874877120": 1, - "875973109": 25, "876119751": 11, "880745877": 3, "881651163": 15, + "884557971": 25, "885593286": 1, "889173106": 25, "889413643": 2, @@ -612,8 +621,15 @@ "968669761": 25, "968669762": 25, "969863968": 2, + "971525076": 25, + "971525077": 25, + "971525080": 25, + "971525081": 25, + "971525082": 25, + "971525083": 25, "971525084": 25, "971525085": 25, + "971525086": 25, "971525087": 25, "971728596": 6, "971728597": 6, @@ -634,7 +650,6 @@ "1007199041": 16, "1011670904": 3, "1011670905": 3, - "1012689018": 25, "1013401891": 20, "1015069912": 25, "1015730268": 24, @@ -748,7 +763,6 @@ "1165452712": 22, "1166152736": 5, "1173354066": 25, - "1173575437": 25, "1177179936": 1, "1181381245": 10, "1181969391": 9, @@ -787,6 +801,7 @@ "1242938629": 24, "1242938630": 24, "1242938631": 24, + "1245245018": 25, "1249334869": 12, "1250597597": 24, "1256660988": 8, @@ -843,6 +858,7 @@ "1291068172": 3, "1293002379": 1, "1294717622": 1, + "1294837133": 25, "1296063121": 25, "1296106843": 23, "1298644738": 22, @@ -891,7 +907,6 @@ "1363029409": 7, "1363360060": 23, "1364413233": 5, - "1364828721": 25, "1365413546": 2, "1365491398": 7, "1370302135": 8, @@ -1040,7 +1055,6 @@ "1560678953": 3, "1561249470": 6, "1569145193": 24, - "1576539044": 25, "1577190509": 20, "1579706082": 3, "1579706083": 3, @@ -1190,7 +1204,6 @@ "1751782730": 1, "1752648948": 24, "1752862708": 23, - "1760150243": 25, "1767312242": 5, "1767664464": 20, "1767664465": 20, @@ -1224,7 +1237,6 @@ "1784442061": 19, "1784442062": 19, "1784442063": 19, - "1784694924": 25, "1785547370": 13, "1788892384": 4, "1788892385": 4, @@ -1238,7 +1250,6 @@ "1808095285": 22, "1808095286": 22, "1808095287": 22, - "1809209864": 25, "1812385586": 2, "1812385587": 2, "1816495538": 2, @@ -1303,7 +1314,6 @@ "1873857625": 1, "1876000888": 25, "1876000889": 25, - "1879625121": 25, "1884588413": 21, "1885107794": 16, "1885107795": 16, @@ -1470,7 +1480,6 @@ "1997760146": 19, "1997760147": 19, "2000448433": 19, - "2001163204": 25, "2001563200": 10, "2005133865": 14, "2006002391": 25, @@ -1491,6 +1500,7 @@ "2024188850": 4, "2026109715": 19, "2026109719": 19, + "2027583053": 25, "2029506313": 1, "2032131120": 3, "2035035510": 14, @@ -1500,6 +1510,7 @@ "2039712238": 25, "2047844848": 3, "2047844849": 3, + "2048663470": 25, "2056606165": 22, "2059442237": 12, "2062419607": 7, @@ -1546,7 +1557,6 @@ "2118730409": 9, "2120905920": 6, "2121445668": 15, - "2124105119": 25, "2127474099": 7, "2128916453": 15, "2132252935": 20, @@ -1636,6 +1646,7 @@ "2231049635": 25, "2231049636": 25, "2231049637": 25, + "2231049638": 25, "2231049639": 25, "2231049641": 25, "2234157635": 6, @@ -1657,7 +1668,6 @@ "2266517764": 3, "2268947984": 25, "2273494378": 22, - "2275021348": 25, "2276139500": 2, "2276139501": 2, "2276139502": 2, @@ -1720,14 +1730,16 @@ "2355278664": 22, "2355278665": 22, "2359582409": 12, - "2364916608": 25, "2367025562": 10, "2367860679": 23, - "2370020598": 25, "2376081322": 2, "2376234856": 10, "2381907801": 3, "2383793186": 16, + "2393153880": 25, + "2393153882": 25, + "2393153883": 25, + "2393153885": 25, "2393591593": 23, "2394866220": 5, "2396888157": 3, @@ -1755,7 +1767,6 @@ "2426387438": 4, "2427328578": 3, "2430770464": 25, - "2431654834": 25, "2433436300": 15, "2433900295": 2, "2437968453": 1, @@ -1790,7 +1801,6 @@ "2489453969": 24, "2492590623": 14, "2492769187": 3, - "2495830694": 25, "2498589276": 25, "2501396275": 16, "2503665585": 16, @@ -1900,9 +1910,6 @@ "2649911453": 1, "2650481177": 11, "2653114997": 8, - "2653404784": 25, - "2653404785": 25, - "2653404786": 25, "2655812783": 12, "2657932152": 1, "2657932153": 1, @@ -2021,7 +2028,6 @@ "2779841501": 8, "2779841502": 1, "2779841503": 6, - "2783926339": 25, "2785855278": 21, "2788609407": 10, "2790542790": 23, @@ -2044,7 +2050,6 @@ "2802789150": 25, "2802789151": 25, "2805101184": 7, - "2805887366": 25, "2805962096": 14, "2809967986": 14, "2809967987": 14, @@ -2110,7 +2115,6 @@ "2871066718": 25, "2871095181": 1, "2871264750": 18, - "2872020159": 25, "2873488357": 16, "2873900232": 22, "2873996295": 6, @@ -2129,7 +2133,6 @@ "2909846572": 16, "2910312059": 22, "2912265353": 3, - "2913094034": 25, "2915137853": 23, "2916149327": 22, "2916219759": 1, @@ -2153,6 +2156,7 @@ "2931483505": 1, "2932390016": 18, "2933249366": 24, + "2933632313": 25, "2934294259": 25, "2934509775": 14, "2936183184": 24, @@ -2276,7 +2280,6 @@ "3087166452": 18, "3088135833": 16, "3090681042": 25, - "3094014459": 25, "3100848450": 24, "3101012909": 23, "3101709156": 24, @@ -2393,9 +2396,16 @@ "3195506775": 25, "3196288028": 2, "3197331902": 15, + "3198019442": 25, + "3198019443": 25, "3198019448": 25, + "3198019449": 25, "3198019450": 25, "3198019451": 25, + "3198019452": 25, + "3198019453": 25, + "3198019454": 25, + "3198019455": 25, "3199368173": 1, "3201839676": 1, "3203489753": 25, @@ -2467,7 +2477,6 @@ "3256453690": 21, "3256698432": 14, "3257147585": 1, - "3257350604": 25, "3257562381": 3, "3257710283": 9, "3258345482": 1, @@ -2565,6 +2574,7 @@ "3351378143": 1, "3352019292": 4, "3352566658": 2, + "3355148056": 25, "3355148057": 25, "3355614447": 24, "3358687360": 16, @@ -2609,7 +2619,6 @@ "3403347111": 9, "3408716127": 16, "3416845915": 25, - "3419235114": 25, "3431752854": 25, "3432146796": 23, "3434490958": 17, @@ -2645,6 +2654,7 @@ "3493861055": 20, "3494199208": 2, "3499472512": 15, + "3505911855": 25, "3507133960": 15, "3507818312": 3, "3508236467": 8, @@ -2720,6 +2730,7 @@ "3605490919": 8, "3605490922": 8, "3605490923": 8, + "3605848320": 25, "3606661184": 25, "3607928024": 13, "3610131410": 25, @@ -2877,7 +2888,6 @@ "3811760832": 1, "3814697630": 24, "3814697631": 24, - "3819277880": 25, "3820128352": 23, "3820835868": 3, "3825769808": 1, @@ -2912,6 +2922,7 @@ "3874217663": 2, "3875413893": 1, "3876796314": 5, + "3878673071": 25, "3884067141": 11, "3886292674": 12, "3886292675": 12, @@ -3089,7 +3100,6 @@ "4032296272": 24, "4034060602": 15, "4035690282": 5, - "4036491260": 25, "4036779270": 16, "4039169178": 20, "4040221326": 24, @@ -3099,14 +3109,12 @@ "4048021830": 25, "4048186065": 3, "4048242887": 20, - "4048385024": 25, "4049365947": 1, "4049753919": 23, "4050450481": 7, "4052831236": 3, "4054029966": 23, "4054596410": 21, - "4056052795": 25, "4059030097": 2, "4059318875": 2, "4062073334": 23, diff --git a/src/data/d2/seasons_backup.json b/src/data/d2/seasons_backup.json index 72121bb47a..59305cc1fc 100644 --- a/src/data/d2/seasons_backup.json +++ b/src/data/d2/seasons_backup.json @@ -393,7 +393,6 @@ "1362709751": 14, "1363029408": 7, "1363029409": 7, - "1364828721": 25, "1365491398": 7, "1372428179": 22, "1376763596": 6, @@ -467,7 +466,6 @@ "1559478790": 22, "1561249470": 6, "1566558387": 25, - "1576539044": 25, "1584837156": 2, "1584837157": 2, "1589318419": 3, @@ -577,7 +575,6 @@ "1987263977": 5, "1997760146": 19, "1997760147": 19, - "2001163204": 25, "2005189570": 7, "2006002391": 25, "2009106091": 5, @@ -669,7 +666,6 @@ "2272646881": 10, "2272646882": 10, "2274492816": 3, - "2275021348": 25, "2277536120": 4, "2277536122": 4, "2277536123": 4, @@ -721,7 +717,6 @@ "2479769639": 11, "2489453969": 24, "2492769187": 3, - "2495830694": 25, "2504122740": 23, "2505000979": 11, "2505678740": 25, @@ -760,9 +755,6 @@ "2637837647": 3, "2642798136": 22, "2644573111": 17, - "2653404784": 25, - "2653404785": 25, - "2653404786": 25, "2661272172": 2, "2661272173": 2, "2661326387": 7, @@ -859,7 +851,6 @@ "2900154861": 7, "2906201304": 23, "2907310420": 23, - "2913094034": 25, "2916149327": 22, "2924095235": 3, "2924794318": 11, @@ -1207,7 +1198,6 @@ "4031340274": 5, "4031340275": 5, "4036178150": 2, - "4036491260": 25, "4048242887": 20, "4059030097": 2, "4062073334": 23, diff --git a/src/htaccess b/src/htaccess index 55e420a70f..25507f08e9 100644 --- a/src/htaccess +++ b/src/htaccess @@ -469,14 +469,14 @@ AddEncoding br .br # for any request, search for pre-compressed versions (gzip or brotli) and serve that directly if it's supported # Serve pre-brotli stuff if we got it - RewriteCond %{HTTP:Accept-encoding} br - RewriteCond %{REQUEST_FILENAME}\.br -f - RewriteRule ^(.*)$ <%= publicPath %>$1.br [QSA,L] + # RewriteCond %{HTTP:Accept-encoding} br + # RewriteCond %{REQUEST_FILENAME}\.br -f + # RewriteRule ^(.*)$ <%= publicPath %>$1.br [QSA,L] # Serve pre-gzipped stuff if we got it - RewriteCond %{HTTP:Accept-encoding} gzip - RewriteCond %{REQUEST_FILENAME}\.gz -f - RewriteRule ^(.*)$ <%= publicPath %>$1.gz [QSA,L] + # RewriteCond %{HTTP:Accept-encoding} gzip + # RewriteCond %{REQUEST_FILENAME}\.gz -f + # RewriteRule ^(.*)$ <%= publicPath %>$1.gz [QSA,L] # Redirect unknown paths to index.html RewriteCond %{REQUEST_FILENAME} !-f