diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index be67e435..383b39bd 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,19 +1,33 @@ -from fedora:41 - -RUN dnf update -y - -RUN dnf group list -RUN dnf install -y @c-development @development-tools - -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - -RUN dnf install -y \ - nodejs \ - webkit2gtk4.1-devel \ - openssl-devel \ - curl \ - wget \ - file \ - libappindicator-gtk3-devel \ - librsvg2-devel \ - libgudev-devel +from fedora:41 + +RUN dnf update -y + +RUN dnf group list +RUN dnf install -y @c-development @development-tools +RUN dnf check-update +RUN dnf install -y \ + nodejs \ + webkit2gtk4.1-devel \ + openssl-devel \ + curl \ + wget \ + file \ + libappindicator-gtk3-devel \ + librsvg2-devel \ + lld llvm \ + mingw64-nsis \ + clang-cl + +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + +ENV PATH="/root/.cargo/bin:${PATH}" +# RUN dnf install -y mingw64-gcc mingw64-crt mingw64-winpthreads mingw64-headers +# RUN wget https://github.com/tauri-apps/binary-releases/releases/download/nsis-3/nsis-3.zip +# RUN unzip nsis-3.zip +# RUN ls -la nsis-3.08 +# RUN cp nsis-3.08/Stubs/* /usr/share/nsis/Stubs/ +# RUN cp -r nsis-3.08/Plugins/** /usr/share/nsis/Plugins/ + +RUN rustup target add x86_64-pc-windows-msvc + +RUN cargo install --locked cargo-xwin \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 200a1665..6cf40a27 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,19 +1,19 @@ -module.exports = { - root: true, - env: { browser: true, es2020: true }, - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:react-hooks/recommended", - "plugin:storybook/recommended", - ], - ignorePatterns: ["dist", ".eslintrc.cjs"], - parser: "@typescript-eslint/parser", - plugins: ["react-refresh"], - rules: { - "react-refresh/only-export-components": [ - "warn", - { allowConstantExport: true }, - ], - }, -}; +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react-hooks/recommended", + "plugin:storybook/recommended", + ], + ignorePatterns: ["dist", ".eslintrc.cjs"], + parser: "@typescript-eslint/parser", + plugins: ["react-refresh"], + rules: { + "react-refresh/only-export-components": [ + "warn", + { allowConstantExport: true }, + ], + }, +}; diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9a315205..4e37203d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,33 +1,33 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: bug -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - - OS: [e.g. iOS] - - Browser or App [e.g. chrome, edge, app] - - Version [e.g. 22] - - Device [e.g. Corne with nice!nano v2] - -**Additional context** -Add any other context about the problem here. +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Environment (please complete the following information):** + - OS: [e.g. iOS] + - Browser or App [e.g. chrome, edge, app] + - Version [e.g. 22] + - Device [e.g. Corne with nice!nano v2] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491e..73987eda 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,20 +1,20 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 02df13dc..e2112662 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -1,31 +1,31 @@ -on: - push: - branches: - - main - -permissions: {} - -name: release-please - -jobs: - release-please: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - steps: - - uses: googleapis/release-please-action@v4 - id: release - with: - token: ${{ secrets.ZMK_STUDIO_RELEASE_TOKEN }} - - uses: actions/checkout@v4 - if: ${{ steps.release.outputs.release_created }} - with: - ref: prod - - name: publish to prod branch - if: ${{ steps.release.outputs.release_created }} - run: | - git fetch origin main - git pull --ff-only origin main - git remote set-url origin "https://x-access-token:${{ secrets.ZMK_STUDIO_RELEASE_TOKEN }}@github.com/${{ github.repository }}.git" - git push +on: + push: + branches: + - main + +permissions: {} + +name: release-please + +jobs: + release-please: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - uses: googleapis/release-please-action@v4 + id: release + with: + token: ${{ secrets.ZMK_STUDIO_RELEASE_TOKEN }} + - uses: actions/checkout@v4 + if: ${{ steps.release.outputs.release_created }} + with: + ref: prod + - name: publish to prod branch + if: ${{ steps.release.outputs.release_created }} + run: | + git fetch origin main + git pull --ff-only origin main + git remote set-url origin "https://x-access-token:${{ secrets.ZMK_STUDIO_RELEASE_TOKEN }}@github.com/${{ github.repository }}.git" + git push diff --git a/.github/workflows/tauri-build.yml b/.github/workflows/tauri-build.yml index 901b2b30..ec9368ba 100644 --- a/.github/workflows/tauri-build.yml +++ b/.github/workflows/tauri-build.yml @@ -1,114 +1,114 @@ -name: "tauri-build" - -on: - workflow_dispatch: - push: - release: - types: [published] - -jobs: - publish-tauri: - permissions: - contents: write - strategy: - fail-fast: false - matrix: - include: - - platform: "macos-latest" - name: macos - args: "--target universal-apple-darwin" - - platform: "ubuntu-24.04" - name: linux - args: "" - - platform: "windows-latest" - name: windows - args: "" - - runs-on: ${{ matrix.platform }} - steps: - - uses: actions/checkout@v4 - - - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-24.04' # This must match the platform value defined above. - run: | - sudo apt-get update - sudo apt-get install -y libappindicator3-dev librsvg2-dev libudev-dev patchelf \ - libwebkit2gtk-4.1-0=2.44.0-2 \ - libwebkit2gtk-4.1-dev=2.44.0-2 \ - libjavascriptcoregtk-4.1-0=2.44.0-2 \ - libjavascriptcoregtk-4.1-dev=2.44.0-2 \ - gir1.2-javascriptcoregtk-4.1=2.44.0-2 \ - gir1.2-webkit2-4.1=2.44.0-2 - - - name: Get release - id: get_release - if: github.event_name == 'release' - uses: bruceadams/get-release@v1.3.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: install dependencies (windows only) - if: matrix.platform == 'windows-latest' - run: | - nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x - - - name: Set up Windows Kit into PATH (windows only) - if: matrix.platform == 'windows-latest' - run: | - echo "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.22621.0\x64\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - - name: setup node - uses: actions/setup-node@v4 - with: - node-version: lts/* - cache: "npm" # Set this to npm, yarn or pnpm. - - - name: install Rust stable - uses: dtolnay/rust-toolchain@stable # Set this to dtolnay/rust-toolchain@nightly - with: - # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. - targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - - - name: Rust cache - uses: swatinem/rust-cache@v2 - with: - workspaces: "./src-tauri -> target" - - - name: install frontend dependencies - # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too. - run: npm ci - - - uses: tauri-apps/tauri-action@v0 - name: build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} - APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} - APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} - with: - releaseId: ${{ steps.get_release.outputs.id }} - args: ${{ matrix.args }} - - - uses: actions/upload-artifact@v4 - with: - name: zmk-studio-${{ matrix.name }} - path: | - src-tauri/target/release/bundle/**/*.deb - src-tauri/target/release/bundle/**/*.AppImage - src-tauri/target/*/release/bundle/**/*.dmg - src-tauri/target/*/release/bundle/**/*.app - src-tauri/target/release/bundle/**/*.msi - src-tauri/target/release/bundle/**/*.exe - deploy-netlify: - if: github.event_name == 'release' - needs: publish-tauri - runs-on: ubuntu-latest - steps: - - name: Deploy to Netlify - run: curl -X POST -d '{}' ${{ secrets.NETLIFY_DEPLOY_HOOK }} +name: "tauri-build" + +on: + workflow_dispatch: + push: + release: + types: [published] + +jobs: + publish-tauri: + permissions: + contents: write + strategy: + fail-fast: false + matrix: + include: + - platform: "macos-latest" + name: macos + args: "--target universal-apple-darwin" + - platform: "ubuntu-24.04" + name: linux + args: "" + - platform: "windows-latest" + name: windows + args: "" + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - name: install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-24.04' # This must match the platform value defined above. + run: | + sudo apt-get update + sudo apt-get install -y libappindicator3-dev librsvg2-dev libudev-dev patchelf \ + libwebkit2gtk-4.1-0=2.44.0-2 \ + libwebkit2gtk-4.1-dev=2.44.0-2 \ + libjavascriptcoregtk-4.1-0=2.44.0-2 \ + libjavascriptcoregtk-4.1-dev=2.44.0-2 \ + gir1.2-javascriptcoregtk-4.1=2.44.0-2 \ + gir1.2-webkit2-4.1=2.44.0-2 + + - name: Get release + id: get_release + if: github.event_name == 'release' + uses: bruceadams/get-release@v1.3.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: install dependencies (windows only) + if: matrix.platform == 'windows-latest' + run: | + nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x + + - name: Set up Windows Kit into PATH (windows only) + if: matrix.platform == 'windows-latest' + run: | + echo "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.22621.0\x64\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + + - name: setup node + uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: "npm" # Set this to npm, yarn or pnpm. + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable # Set this to dtolnay/rust-toolchain@nightly + with: + # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. + targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + + - name: Rust cache + uses: swatinem/rust-cache@v2 + with: + workspaces: "./src-tauri -> target" + + - name: install frontend dependencies + # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too. + run: npm ci + + - uses: tauri-apps/tauri-action@v0 + name: build + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} + with: + releaseId: ${{ steps.get_release.outputs.id }} + args: ${{ matrix.args }} + + - uses: actions/upload-artifact@v4 + with: + name: zmk-studio-${{ matrix.name }} + path: | + src-tauri/target/release/bundle/**/*.deb + src-tauri/target/release/bundle/**/*.AppImage + src-tauri/target/*/release/bundle/**/*.dmg + src-tauri/target/*/release/bundle/**/*.app + src-tauri/target/release/bundle/**/*.msi + src-tauri/target/release/bundle/**/*.exe + deploy-netlify: + if: github.event_name == 'release' + needs: publish-tauri + runs-on: ubuntu-latest + steps: + - name: Deploy to Netlify + run: curl -X POST -d '{}' ${{ secrets.NETLIFY_DEPLOY_HOOK }} diff --git a/.gitignore b/.gitignore index 5618eb16..cab0a787 100644 --- a/.gitignore +++ b/.gitignore @@ -1,27 +1,27 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local -src/data - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -*storybook.log +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local +src/data + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*storybook.log diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1b52d878..baf2bcdf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,17 +1,17 @@ -# See https://pre-commit.com for more information -# See https://pre-commit.com/hooks.html for more hooks -repos: - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 - hooks: - - id: trailing-whitespace - - id: end-of-file-fixer - - id: check-yaml - - id: check-added-large-files - - repo: https://github.com/pre-commit/mirrors-prettier - rev: v2.7.1 - hooks: - - id: prettier - # Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29 - additional_dependencies: - - prettier@2.8.7 +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.7.1 + hooks: + - id: prettier + # Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29 + additional_dependencies: + - prettier@2.8.7 diff --git a/.prettierignore b/.prettierignore index d3661fe0..98698bf8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,6 +1,6 @@ -src-tauri/ -dist/ -public/ -*.rs -src/HidUsageTables-1.5.json -src/keyboard-and-consumer-usage-tables.json +src-tauri/ +dist/ +public/ +*.rs +src/HidUsageTables-1.5.json +src/keyboard-and-consumer-usage-tables.json diff --git a/.prettierrc b/.prettierrc index 0967ef42..69a88e3b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1 +1 @@ -{} +{} diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 816df2d5..e21b9d03 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ -{ - ".": "0.3.1" -} +{ + ".": "0.3.1" +} diff --git a/.storybook/main.ts b/.storybook/main.ts index 69ac0074..eba1f71e 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,20 +1,20 @@ -import type { StorybookConfig } from "@storybook/react-vite"; - -const config: StorybookConfig = { - stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], - addons: [ - "@storybook/addon-onboarding", - "@storybook/addon-links", - "@storybook/addon-essentials", - "@chromatic-com/storybook", - "@storybook/addon-interactions", - ], - framework: { - name: "@storybook/react-vite", - options: {}, - }, - docs: { - autodocs: "tag", - }, -}; -export default config; +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], + addons: [ + "@storybook/addon-onboarding", + "@storybook/addon-links", + "@storybook/addon-essentials", + "@chromatic-com/storybook", + "@storybook/addon-interactions", + ], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + docs: { + autodocs: "tag", + }, +}; +export default config; diff --git a/.storybook/preview.ts b/.storybook/preview.ts index cd8e0cda..02c84fdb 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,15 +1,15 @@ -import "../src/index.css"; -import type { Preview } from "@storybook/react"; - -const preview: Preview = { - parameters: { - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/i, - }, - }, - }, -}; - -export default preview; +import "../src/index.css"; +import type { Preview } from "@storybook/react"; + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + }, +}; + +export default preview; diff --git a/CHANGELOG.md b/CHANGELOG.md index 9279c158..39ef6198 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,188 +1,188 @@ -# Changelog - -## [0.3.1](https://github.com/zmkfirmware/zmk-studio/compare/v0.3.0...v0.3.1) (2025-01-20) - - -### Bug Fixes - -* **ci:** Support token auth on release fetch ([#126](https://github.com/zmkfirmware/zmk-studio/issues/126)) ([0662e6d](https://github.com/zmkfirmware/zmk-studio/commit/0662e6d506715232b1cee872f7354435c0cdea16)) - -## [0.3.0](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.4...v0.3.0) (2025-01-20) - - -### Features - -* Add Download Page ([#105](https://github.com/zmkfirmware/zmk-studio/issues/105)) ([2b88c5c](https://github.com/zmkfirmware/zmk-studio/commit/2b88c5c6248c42719b404a67c33fa25a133a057a)) -* Support MacOS Universal Installer ([c43357e](https://github.com/zmkfirmware/zmk-studio/commit/c43357e3784da10ca4129ac02a20b6159e0a1c3b)) -* Support MacOS Universal Installer ([#104](https://github.com/zmkfirmware/zmk-studio/issues/104)) ([c43357e](https://github.com/zmkfirmware/zmk-studio/commit/c43357e3784da10ca4129ac02a20b6159e0a1c3b)) - - -### Bug Fixes - -* app crash when reach last index of undo stack ([#111](https://github.com/zmkfirmware/zmk-studio/issues/111)) ([3370faa](https://github.com/zmkfirmware/zmk-studio/commit/3370faa3c9f6288dda613d35c42a8d30001edff6)) - -## [0.2.4](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.3...v0.2.4) (2024-11-22) - - -### Bug Fixes - -* **app:** Tweak webkit dep version for CI builds ([#92](https://github.com/zmkfirmware/zmk-studio/issues/92)) ([5c018bc](https://github.com/zmkfirmware/zmk-studio/commit/5c018bcbc44d0dfb219cab239877a9b1d441c101)) - -## [0.2.3](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.2...v0.2.3) (2024-11-13) - - -### Bug Fixes - -* Add link to unlock behavior docs in unlock modal ([#90](https://github.com/zmkfirmware/zmk-studio/issues/90)) ([9d35061](https://github.com/zmkfirmware/zmk-studio/commit/9d35061b30b394b21dd12df6d763cd9daeed355e)) -* Remove beta warning from connect modal. ([#88](https://github.com/zmkfirmware/zmk-studio/issues/88)) ([6edb4b0](https://github.com/zmkfirmware/zmk-studio/commit/6edb4b02a104add079ae2f85cfa0d239a54f553b)), closes [#87](https://github.com/zmkfirmware/zmk-studio/issues/87) - -## [0.2.2](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.1...v0.2.2) (2024-11-12) - - -### Bug Fixes - -* **ci:** Bump tauri.conf.json version as well. ([#84](https://github.com/zmkfirmware/zmk-studio/issues/84)) ([435512a](https://github.com/zmkfirmware/zmk-studio/commit/435512a27bd55978e925db95b271fe844befb688)) - -## [0.2.1](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.0...v0.2.1) (2024-11-12) - - -### Bug Fixes - -* **ci:** Proper release-please support for Tauri ([#77](https://github.com/zmkfirmware/zmk-studio/issues/77)) ([0902316](https://github.com/zmkfirmware/zmk-studio/commit/0902316fb498d7801d99d4ac021b69ca0b2ee7fd)) - -## [0.2.0](https://github.com/zmkfirmware/zmk-studio/compare/v0.1.2...v0.2.0) (2024-11-11) - - -### Features - -* Sort behaviors by label ([#75](https://github.com/zmkfirmware/zmk-studio/issues/75)) ([a996e4e](https://github.com/zmkfirmware/zmk-studio/commit/a996e4efefd9405cbf35f35d3ceaa62b71b0deb9)) - -## [0.1.2](https://github.com/zmkfirmware/zmk-studio/compare/v0.1.1...v0.1.2) (2024-10-16) - - -### Bug Fixes - -* Raise and report errors on connect. ([#65](https://github.com/zmkfirmware/zmk-studio/issues/65)) ([957aabe](https://github.com/zmkfirmware/zmk-studio/commit/957aabea1bf9b7316b81e0d9b68580b398f816c2)) - -## [0.1.1](https://github.com/zmkfirmware/zmk-studio/compare/v0.1.0...v0.1.1) (2024-10-10) - - -### Bug Fixes - -* Add beta warning to the connect modal. ([#58](https://github.com/zmkfirmware/zmk-studio/issues/58)) ([5152b1d](https://github.com/zmkfirmware/zmk-studio/commit/5152b1d2f795c7647ad77facbd3a1480c56949ce)) -* Add ZMK links to the about modal. ([#56](https://github.com/zmkfirmware/zmk-studio/issues/56)) ([3c319b5](https://github.com/zmkfirmware/zmk-studio/commit/3c319b5668279c9f118cf6721b64ce203e882613)) - -## [0.1.0](https://github.com/zmkfirmware/zmk-studio/compare/v0.0.3...v0.1.0) (2024-10-09) - - -### Features - -* Add alert on connect failures, bump deps. ([#47](https://github.com/zmkfirmware/zmk-studio/issues/47)) ([997edc9](https://github.com/zmkfirmware/zmk-studio/commit/997edc97754c3e831175d0c065202c61fcf12a3f)) -* Detailed save changes response data. ([#49](https://github.com/zmkfirmware/zmk-studio/issues/49)) ([967aff4](https://github.com/zmkfirmware/zmk-studio/commit/967aff48eee504fe0f1a8b22fc36146536c70368)) -* Improved key rendering for HID usages. ([#53](https://github.com/zmkfirmware/zmk-studio/issues/53)) ([14bcaa7](https://github.com/zmkfirmware/zmk-studio/commit/14bcaa79781e53e11af7e9c9d50ae7b7999747d0)) - - -### Bug Fixes - -* **app:** Handle manual disconnect for serial transport ([#55](https://github.com/zmkfirmware/zmk-studio/issues/55)) ([3da464f](https://github.com/zmkfirmware/zmk-studio/commit/3da464f892edfe3a459de78b5da862fa938cf3b4)) -* Fix Wayland resize/decoration bug. ([#51](https://github.com/zmkfirmware/zmk-studio/issues/51)) ([3ca0679](https://github.com/zmkfirmware/zmk-studio/commit/3ca0679c8238eef02fbfaadd84f712beb2f6735b)) - -## [0.0.3](https://github.com/zmkfirmware/zmk-studio/compare/v0.0.2...v0.0.3) (2024-10-02) - - -### Miscellaneous Chores - -* Fixes for prod push for releases. ([#45](https://github.com/zmkfirmware/zmk-studio/issues/45)) ([6e05f49](https://github.com/zmkfirmware/zmk-studio/commit/6e05f49b42343c202b0da2bfa8da01bfebe3c550)) - -## [0.0.2](https://github.com/zmkfirmware/zmk-studio/compare/v0.0.1...v0.0.2) (2024-10-02) - - -### Miscellaneous Chores - -* Bump to Tauri v2 release. ([#42](https://github.com/zmkfirmware/zmk-studio/issues/42)) ([57b3274](https://github.com/zmkfirmware/zmk-studio/commit/57b3274688161a3599f96fba5db1cd671620cf0c)) -* Fix release-please automation. ([#43](https://github.com/zmkfirmware/zmk-studio/issues/43)) ([1156c47](https://github.com/zmkfirmware/zmk-studio/commit/1156c47fe3c761e2240128b77f5a72d8dfe17efe)) - -## 0.0.1 (2024-09-30) - - -### Features - -* Add a few more Consumer overrides. ([2e32100](https://github.com/zmkfirmware/zmk-studio/commit/2e321002843a90d614b7f3b802a44b8cd3a229f5)) -* Add a few more HID name overrides. ([30789f6](https://github.com/zmkfirmware/zmk-studio/commit/30789f603b83d8431272c0dac14ceadb1f0105fc)) -* Add aboud and license notice modals. ([b9d2692](https://github.com/zmkfirmware/zmk-studio/commit/b9d2692f434740ced2eb40158a2793ec830b6fa7)) -* Add disconnect and settings reset UI. ([18b3f22](https://github.com/zmkfirmware/zmk-studio/commit/18b3f22a0bc09223b9bce777da24303b7e276780)) -* Add HID label overrides. ([5216e8e](https://github.com/zmkfirmware/zmk-studio/commit/5216e8e9a4557a42e31d499a0453a2462634247d)) -* Add HID usage modifier editing. ([14a1578](https://github.com/zmkfirmware/zmk-studio/commit/14a157851569b5940033c8c9031941119d6cdd0b)) -* add hover effects to device menu items ([ffd42ee](https://github.com/zmkfirmware/zmk-studio/commit/ffd42eea2eac3ccf5fea92619d236d2932250cb0)) -* Add layout rotation support. ([4331681](https://github.com/zmkfirmware/zmk-studio/commit/4331681489e23dd7b7a7cb616876536bb5d2962f)) -* Add limits for usages in the list, re-render fixes. ([30f7077](https://github.com/zmkfirmware/zmk-studio/commit/30f707731fe593e6159d15ba1b1316fdf02aa6ea)) -* Add names for some keypad key codes ([#34](https://github.com/zmkfirmware/zmk-studio/issues/34)) ([59a6441](https://github.com/zmkfirmware/zmk-studio/commit/59a6441f83ce7857530d62bc666b2652d7706582)) -* Add primitive layout picker control. ([e77c09b](https://github.com/zmkfirmware/zmk-studio/commit/e77c09bee86f3baa50f8c8bbfe6c9a1d0628c4b5)) -* Add tauri CLI for connecting to serial port. ([86840df](https://github.com/zmkfirmware/zmk-studio/commit/86840dfabb4c743c36a70a4b88f48dbcce9adc92)) -* Add UI in connect model when no transports ([9d58e0e](https://github.com/zmkfirmware/zmk-studio/commit/9d58e0e21cbfe0b0781b3b20386bfba1b5b2f068)), closes [#16](https://github.com/zmkfirmware/zmk-studio/issues/16) -* add UI to close about license modals ([01cc93b](https://github.com/zmkfirmware/zmk-studio/commit/01cc93bf630acb71dbb76795da26948ffdb35ed6)) -* Add unlock/lock handling. ([6a742e1](https://github.com/zmkfirmware/zmk-studio/commit/6a742e1169c9640619827f097ffb4c76851dea6c)) -* Auto-zoom keymap layout ([c98743e](https://github.com/zmkfirmware/zmk-studio/commit/c98743e6a742a568cacf7f908e381956c4299071)) -* Basic CI for building apps across platforms. ([2360283](https://github.com/zmkfirmware/zmk-studio/commit/236028364cfc17a75060647cd97f1366285e3214)) -* Better detection of proper conn. ([6963c29](https://github.com/zmkfirmware/zmk-studio/commit/6963c299dfbe02fb625b2176ae75bc17adb3127a)) -* Better physical layout picker with preview. ([89b38b3](https://github.com/zmkfirmware/zmk-studio/commit/89b38b3ad7e35e7ebddfa962f429e6ba38ff217a)) -* Bump client version. ([1b0c8c4](https://github.com/zmkfirmware/zmk-studio/commit/1b0c8c4b9aec2dfbbf4c47e5005c463ac9d8021d)) -* Display device name in header. ([d4285a6](https://github.com/zmkfirmware/zmk-studio/commit/d4285a65608e2c283a64133d9d04e3c0e2f3bd22)) -* Handle keymap/layout mismatches. ([67bc71a](https://github.com/zmkfirmware/zmk-studio/commit/67bc71abde19679c35297892cce3fe54905cfe77)) -* Initial work on skeleton of ZMK Studio UI. ([5a19aa4](https://github.com/zmkfirmware/zmk-studio/commit/5a19aa4a098b76b99954e771120715fc3f50b97c)) -* Initial work to reload keymap on layout change. ([fc55232](https://github.com/zmkfirmware/zmk-studio/commit/fc5523214fb99d1dfbef973604361840c590a3f5)) -* Layer reordering ([a7bc01d](https://github.com/zmkfirmware/zmk-studio/commit/a7bc01d3ab5321174aafa86c6143f24bb18eaac6)) -* More complete disconnect and notif support. ([77062af](https://github.com/zmkfirmware/zmk-studio/commit/77062af5ede8e4e2c28b9e64f5d8206f6f5c1242)) -* Move to proper layer IDs. ([44badf1](https://github.com/zmkfirmware/zmk-studio/commit/44badf16fc2eba70b6931919f7f427d781b8fc88)) -* Propagate layout selection to the device. ([c2cf65c](https://github.com/zmkfirmware/zmk-studio/commit/c2cf65c35bc3ab36cc57bcddc5842a33f40886eb)) -* Properly implement Discard. ([e7a25c0](https://github.com/zmkfirmware/zmk-studio/commit/e7a25c02356d141f988bc9c04d09757c611916c1)) -* Release automation using release-please ([f69b015](https://github.com/zmkfirmware/zmk-studio/commit/f69b0151edbc56c95fd0d2e2287e2d8942b2fe79)) -* replace edit label prompt with modal ([44acf8c](https://github.com/zmkfirmware/zmk-studio/commit/44acf8c1f5bb8aac8911811fa13cd033be606ba0)) -* Show selected key in a physical layout. ([1dc11c8](https://github.com/zmkfirmware/zmk-studio/commit/1dc11c8fb34c8c6fecb8070ed78aea502b078e16)) -* Start to incorporate theme colors. ([664d6f3](https://github.com/zmkfirmware/zmk-studio/commit/664d6f3b360e0169cb496871f7e9f87b107a8631)) -* Style adjustments ([332d737](https://github.com/zmkfirmware/zmk-studio/commit/332d7374550039a7c6b527ddd10b475f98000d9b)) -* Tailwind, prettier, Gorton keys. ([f942781](https://github.com/zmkfirmware/zmk-studio/commit/f942781394954dfad22768929637ac86f36cdcac)) -* Ton of layer operations. ([28f2625](https://github.com/zmkfirmware/zmk-studio/commit/28f262557fe457a6eb7d01c1733fb97171a73f27)) -* Tons of layout fixes, device selection. ([177f2df](https://github.com/zmkfirmware/zmk-studio/commit/177f2dfe38982c9acba8f08a2737963f460ac1f5)) -* Undo/redo, binding updates, save changes. ([47eeb1c](https://github.com/zmkfirmware/zmk-studio/commit/47eeb1caba476868420ca3e0cbf94558e1865a8e)) -* Various layout/key render work, theme fixes ([d66d560](https://github.com/zmkfirmware/zmk-studio/commit/d66d560a6c3de41d25502e8f601e63b20cbab38f)) -* Windows app/installer signing. ([81a42b5](https://github.com/zmkfirmware/zmk-studio/commit/81a42b5bb91471dfd6a83f5c80cce697097204e2)) - - -### Bug Fixes - -* Add `will-change: transform` to force anti-aliasing. ([899c355](https://github.com/zmkfirmware/zmk-studio/commit/899c3556b8ca5c87434912afbd19d109cd26ac7d)) -* Add Info.plist for BT access request on macOS. ([2412e70](https://github.com/zmkfirmware/zmk-studio/commit/2412e70ee14f8beeadc3cfe794f913701f0c7be6)) -* **app:** Properly load when BT adapter is off. ([3241568](https://github.com/zmkfirmware/zmk-studio/commit/324156873ae69850c319ccedda613635fcc8c342)) -* **app:** Workaround for GNOME/Wayland resize bug. ([153a035](https://github.com/zmkfirmware/zmk-studio/commit/153a0355a0a09e0303ed66f845deae7c94801304)) -* BT connections on macOS must explicitly connect. ([adf1d01](https://github.com/zmkfirmware/zmk-studio/commit/adf1d01bffaa265215a8c328f8af084431fef58c)) -* Build fixes after tweaks. ([679c5ec](https://github.com/zmkfirmware/zmk-studio/commit/679c5ec3c99a2dd203ca2da61245683b8d3a2e38)) -* Build gatt transport on macOS. ([1351d5f](https://github.com/zmkfirmware/zmk-studio/commit/1351d5fa34b941e51ef7e132be0e47449a103d4b)) -* Bump tauri deps to use custom IPC encoding. ([c6de9de](https://github.com/zmkfirmware/zmk-studio/commit/c6de9de6b0bf4e585f06ccaf39e56e5156e53db8)) -* Bump tauri versions, fix CSP ICP issue. ([ba15adc](https://github.com/zmkfirmware/zmk-studio/commit/ba15adc034efe970f2cc263e8f1bf0b8e2987103)) -* Bump to client with Windows fixes. ([ad48405](https://github.com/zmkfirmware/zmk-studio/commit/ad48405ce7f83f5ccbc02d29e6535ebd2da5f698)) -* Fix up bluest usage for CoreBluetooth. ([0df090b](https://github.com/zmkfirmware/zmk-studio/commit/0df090b34610b2aeaf03f350b1ac5845b8143e72)) -* HID override build fix, more overrides. ([8c1633e](https://github.com/zmkfirmware/zmk-studio/commit/8c1633e3bbf68ca647bd76ea45f509343ac9b233)) -* Layout fixes. ([eb1d836](https://github.com/zmkfirmware/zmk-studio/commit/eb1d836499e197f0c7e41d431db5922497ec75c9)) -* Layout rotation fixes. ([4e53eaf](https://github.com/zmkfirmware/zmk-studio/commit/4e53eaf452e98526f985120c44c68187528c84bc)) -* Minor TS fix. ([d377f6c](https://github.com/zmkfirmware/zmk-studio/commit/d377f6c5f5ac6c8fd3c91d613900a56297bea257)) -* Modifier selection sizing fixes. ([d966f9d](https://github.com/zmkfirmware/zmk-studio/commit/d966f9d4b90d3686dd38d618a0f1584810468edf)) -* Only force connect to devices on macos. ([c199d58](https://github.com/zmkfirmware/zmk-studio/commit/c199d583b77ceef0c4179191881042a370b3a30c)) -* Proper 2-param behavior editing. ([b254dac](https://github.com/zmkfirmware/zmk-studio/commit/b254dac0168c763b21d6c002f1eac3c01c9f69fd)) -* Proper disconnect/reconnect of BLE. ([635d7b9](https://github.com/zmkfirmware/zmk-studio/commit/635d7b9b195a1cae039022360ec8e7e0b334b3d2)) -* Proper logo and title. ([8df6f1e](https://github.com/zmkfirmware/zmk-studio/commit/8df6f1e1791e867e41672bb3b42ef1ad81fe75c4)) -* Proper type for device info RPC response. ([7f02898](https://github.com/zmkfirmware/zmk-studio/commit/7f0289829f3a64854d7a44680dc1a8e1ae2c5f92)) -* Properly handle USB serial disconnects. ([3d13643](https://github.com/zmkfirmware/zmk-studio/commit/3d13643971ddf218412e7d51591891141156811d)) -* Properly include keyboard page modifiers in the picker. ([cfda89e](https://github.com/zmkfirmware/zmk-studio/commit/cfda89e2ced2030dc7d0f72a8d9b3d041f4da697)) -* Reopen the connect/lock modals if closed with esc. ([028c1c9](https://github.com/zmkfirmware/zmk-studio/commit/028c1c96f1627238e0d26421184d06c8d4e3ba53)) -* Revert attempts at running tauri in container. ([e00bff4](https://github.com/zmkfirmware/zmk-studio/commit/e00bff4311f377b1dfce83d33dbf249a419eaf68)) -* Selection state fixes. ([9b41000](https://github.com/zmkfirmware/zmk-studio/commit/9b41000b5e9e559b83d04fd54a3e00dab964ac45)) -* Show selection of first key, binding fixes for no-params behaviors. ([32147a9](https://github.com/zmkfirmware/zmk-studio/commit/32147a90e1f2a748fadac0a3f9e22210015a3e06)) -* Tweak macOS app signing for testing. ([6d8ef6c](https://github.com/zmkfirmware/zmk-studio/commit/6d8ef6cb69dab87cf8132547a767b3125bd54b24)) -* Typo in a vendor name. ([35d0118](https://github.com/zmkfirmware/zmk-studio/commit/35d0118238930b94a8771108b93d008dac91de8e)) -* Undo/redo fixes. ([8b25218](https://github.com/zmkfirmware/zmk-studio/commit/8b252185384b41df2d38823e546c891e80227cf7)) - - -### Miscellaneous Chores - -* Prepare 0.0.1 release ([1a233de](https://github.com/zmkfirmware/zmk-studio/commit/1a233de12cbe6be3be4e9a3ef766a0b1d9aa3ce1)) +# Changelog + +## [0.3.1](https://github.com/zmkfirmware/zmk-studio/compare/v0.3.0...v0.3.1) (2025-01-20) + + +### Bug Fixes + +* **ci:** Support token auth on release fetch ([#126](https://github.com/zmkfirmware/zmk-studio/issues/126)) ([0662e6d](https://github.com/zmkfirmware/zmk-studio/commit/0662e6d506715232b1cee872f7354435c0cdea16)) + +## [0.3.0](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.4...v0.3.0) (2025-01-20) + + +### Features + +* Add Download Page ([#105](https://github.com/zmkfirmware/zmk-studio/issues/105)) ([2b88c5c](https://github.com/zmkfirmware/zmk-studio/commit/2b88c5c6248c42719b404a67c33fa25a133a057a)) +* Support MacOS Universal Installer ([c43357e](https://github.com/zmkfirmware/zmk-studio/commit/c43357e3784da10ca4129ac02a20b6159e0a1c3b)) +* Support MacOS Universal Installer ([#104](https://github.com/zmkfirmware/zmk-studio/issues/104)) ([c43357e](https://github.com/zmkfirmware/zmk-studio/commit/c43357e3784da10ca4129ac02a20b6159e0a1c3b)) + + +### Bug Fixes + +* app crash when reach last index of undo stack ([#111](https://github.com/zmkfirmware/zmk-studio/issues/111)) ([3370faa](https://github.com/zmkfirmware/zmk-studio/commit/3370faa3c9f6288dda613d35c42a8d30001edff6)) + +## [0.2.4](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.3...v0.2.4) (2024-11-22) + + +### Bug Fixes + +* **app:** Tweak webkit dep version for CI builds ([#92](https://github.com/zmkfirmware/zmk-studio/issues/92)) ([5c018bc](https://github.com/zmkfirmware/zmk-studio/commit/5c018bcbc44d0dfb219cab239877a9b1d441c101)) + +## [0.2.3](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.2...v0.2.3) (2024-11-13) + + +### Bug Fixes + +* Add link to unlock behavior docs in unlock modal ([#90](https://github.com/zmkfirmware/zmk-studio/issues/90)) ([9d35061](https://github.com/zmkfirmware/zmk-studio/commit/9d35061b30b394b21dd12df6d763cd9daeed355e)) +* Remove beta warning from connect modal. ([#88](https://github.com/zmkfirmware/zmk-studio/issues/88)) ([6edb4b0](https://github.com/zmkfirmware/zmk-studio/commit/6edb4b02a104add079ae2f85cfa0d239a54f553b)), closes [#87](https://github.com/zmkfirmware/zmk-studio/issues/87) + +## [0.2.2](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.1...v0.2.2) (2024-11-12) + + +### Bug Fixes + +* **ci:** Bump tauri.conf.json version as well. ([#84](https://github.com/zmkfirmware/zmk-studio/issues/84)) ([435512a](https://github.com/zmkfirmware/zmk-studio/commit/435512a27bd55978e925db95b271fe844befb688)) + +## [0.2.1](https://github.com/zmkfirmware/zmk-studio/compare/v0.2.0...v0.2.1) (2024-11-12) + + +### Bug Fixes + +* **ci:** Proper release-please support for Tauri ([#77](https://github.com/zmkfirmware/zmk-studio/issues/77)) ([0902316](https://github.com/zmkfirmware/zmk-studio/commit/0902316fb498d7801d99d4ac021b69ca0b2ee7fd)) + +## [0.2.0](https://github.com/zmkfirmware/zmk-studio/compare/v0.1.2...v0.2.0) (2024-11-11) + + +### Features + +* Sort behaviors by label ([#75](https://github.com/zmkfirmware/zmk-studio/issues/75)) ([a996e4e](https://github.com/zmkfirmware/zmk-studio/commit/a996e4efefd9405cbf35f35d3ceaa62b71b0deb9)) + +## [0.1.2](https://github.com/zmkfirmware/zmk-studio/compare/v0.1.1...v0.1.2) (2024-10-16) + + +### Bug Fixes + +* Raise and report errors on connect. ([#65](https://github.com/zmkfirmware/zmk-studio/issues/65)) ([957aabe](https://github.com/zmkfirmware/zmk-studio/commit/957aabea1bf9b7316b81e0d9b68580b398f816c2)) + +## [0.1.1](https://github.com/zmkfirmware/zmk-studio/compare/v0.1.0...v0.1.1) (2024-10-10) + + +### Bug Fixes + +* Add beta warning to the connect modal. ([#58](https://github.com/zmkfirmware/zmk-studio/issues/58)) ([5152b1d](https://github.com/zmkfirmware/zmk-studio/commit/5152b1d2f795c7647ad77facbd3a1480c56949ce)) +* Add ZMK links to the about modal. ([#56](https://github.com/zmkfirmware/zmk-studio/issues/56)) ([3c319b5](https://github.com/zmkfirmware/zmk-studio/commit/3c319b5668279c9f118cf6721b64ce203e882613)) + +## [0.1.0](https://github.com/zmkfirmware/zmk-studio/compare/v0.0.3...v0.1.0) (2024-10-09) + + +### Features + +* Add alert on connect failures, bump deps. ([#47](https://github.com/zmkfirmware/zmk-studio/issues/47)) ([997edc9](https://github.com/zmkfirmware/zmk-studio/commit/997edc97754c3e831175d0c065202c61fcf12a3f)) +* Detailed save changes response data. ([#49](https://github.com/zmkfirmware/zmk-studio/issues/49)) ([967aff4](https://github.com/zmkfirmware/zmk-studio/commit/967aff48eee504fe0f1a8b22fc36146536c70368)) +* Improved key rendering for HID usages. ([#53](https://github.com/zmkfirmware/zmk-studio/issues/53)) ([14bcaa7](https://github.com/zmkfirmware/zmk-studio/commit/14bcaa79781e53e11af7e9c9d50ae7b7999747d0)) + + +### Bug Fixes + +* **app:** Handle manual disconnect for serial transport ([#55](https://github.com/zmkfirmware/zmk-studio/issues/55)) ([3da464f](https://github.com/zmkfirmware/zmk-studio/commit/3da464f892edfe3a459de78b5da862fa938cf3b4)) +* Fix Wayland resize/decoration bug. ([#51](https://github.com/zmkfirmware/zmk-studio/issues/51)) ([3ca0679](https://github.com/zmkfirmware/zmk-studio/commit/3ca0679c8238eef02fbfaadd84f712beb2f6735b)) + +## [0.0.3](https://github.com/zmkfirmware/zmk-studio/compare/v0.0.2...v0.0.3) (2024-10-02) + + +### Miscellaneous Chores + +* Fixes for prod push for releases. ([#45](https://github.com/zmkfirmware/zmk-studio/issues/45)) ([6e05f49](https://github.com/zmkfirmware/zmk-studio/commit/6e05f49b42343c202b0da2bfa8da01bfebe3c550)) + +## [0.0.2](https://github.com/zmkfirmware/zmk-studio/compare/v0.0.1...v0.0.2) (2024-10-02) + + +### Miscellaneous Chores + +* Bump to Tauri v2 release. ([#42](https://github.com/zmkfirmware/zmk-studio/issues/42)) ([57b3274](https://github.com/zmkfirmware/zmk-studio/commit/57b3274688161a3599f96fba5db1cd671620cf0c)) +* Fix release-please automation. ([#43](https://github.com/zmkfirmware/zmk-studio/issues/43)) ([1156c47](https://github.com/zmkfirmware/zmk-studio/commit/1156c47fe3c761e2240128b77f5a72d8dfe17efe)) + +## 0.0.1 (2024-09-30) + + +### Features + +* Add a few more Consumer overrides. ([2e32100](https://github.com/zmkfirmware/zmk-studio/commit/2e321002843a90d614b7f3b802a44b8cd3a229f5)) +* Add a few more HID name overrides. ([30789f6](https://github.com/zmkfirmware/zmk-studio/commit/30789f603b83d8431272c0dac14ceadb1f0105fc)) +* Add aboud and license notice modals. ([b9d2692](https://github.com/zmkfirmware/zmk-studio/commit/b9d2692f434740ced2eb40158a2793ec830b6fa7)) +* Add disconnect and settings reset UI. ([18b3f22](https://github.com/zmkfirmware/zmk-studio/commit/18b3f22a0bc09223b9bce777da24303b7e276780)) +* Add HID label overrides. ([5216e8e](https://github.com/zmkfirmware/zmk-studio/commit/5216e8e9a4557a42e31d499a0453a2462634247d)) +* Add HID usage modifier editing. ([14a1578](https://github.com/zmkfirmware/zmk-studio/commit/14a157851569b5940033c8c9031941119d6cdd0b)) +* add hover effects to device menu items ([ffd42ee](https://github.com/zmkfirmware/zmk-studio/commit/ffd42eea2eac3ccf5fea92619d236d2932250cb0)) +* Add layout rotation support. ([4331681](https://github.com/zmkfirmware/zmk-studio/commit/4331681489e23dd7b7a7cb616876536bb5d2962f)) +* Add limits for usages in the list, re-render fixes. ([30f7077](https://github.com/zmkfirmware/zmk-studio/commit/30f707731fe593e6159d15ba1b1316fdf02aa6ea)) +* Add names for some keypad key codes ([#34](https://github.com/zmkfirmware/zmk-studio/issues/34)) ([59a6441](https://github.com/zmkfirmware/zmk-studio/commit/59a6441f83ce7857530d62bc666b2652d7706582)) +* Add primitive layout picker control. ([e77c09b](https://github.com/zmkfirmware/zmk-studio/commit/e77c09bee86f3baa50f8c8bbfe6c9a1d0628c4b5)) +* Add tauri CLI for connecting to serial port. ([86840df](https://github.com/zmkfirmware/zmk-studio/commit/86840dfabb4c743c36a70a4b88f48dbcce9adc92)) +* Add UI in connect model when no transports ([9d58e0e](https://github.com/zmkfirmware/zmk-studio/commit/9d58e0e21cbfe0b0781b3b20386bfba1b5b2f068)), closes [#16](https://github.com/zmkfirmware/zmk-studio/issues/16) +* add UI to close about license modals ([01cc93b](https://github.com/zmkfirmware/zmk-studio/commit/01cc93bf630acb71dbb76795da26948ffdb35ed6)) +* Add unlock/lock handling. ([6a742e1](https://github.com/zmkfirmware/zmk-studio/commit/6a742e1169c9640619827f097ffb4c76851dea6c)) +* Auto-zoom keymap layout ([c98743e](https://github.com/zmkfirmware/zmk-studio/commit/c98743e6a742a568cacf7f908e381956c4299071)) +* Basic CI for building apps across platforms. ([2360283](https://github.com/zmkfirmware/zmk-studio/commit/236028364cfc17a75060647cd97f1366285e3214)) +* Better detection of proper conn. ([6963c29](https://github.com/zmkfirmware/zmk-studio/commit/6963c299dfbe02fb625b2176ae75bc17adb3127a)) +* Better physical layout picker with preview. ([89b38b3](https://github.com/zmkfirmware/zmk-studio/commit/89b38b3ad7e35e7ebddfa962f429e6ba38ff217a)) +* Bump client version. ([1b0c8c4](https://github.com/zmkfirmware/zmk-studio/commit/1b0c8c4b9aec2dfbbf4c47e5005c463ac9d8021d)) +* Display device name in header. ([d4285a6](https://github.com/zmkfirmware/zmk-studio/commit/d4285a65608e2c283a64133d9d04e3c0e2f3bd22)) +* Handle keymap/layout mismatches. ([67bc71a](https://github.com/zmkfirmware/zmk-studio/commit/67bc71abde19679c35297892cce3fe54905cfe77)) +* Initial work on skeleton of ZMK Studio UI. ([5a19aa4](https://github.com/zmkfirmware/zmk-studio/commit/5a19aa4a098b76b99954e771120715fc3f50b97c)) +* Initial work to reload keymap on layout change. ([fc55232](https://github.com/zmkfirmware/zmk-studio/commit/fc5523214fb99d1dfbef973604361840c590a3f5)) +* Layer reordering ([a7bc01d](https://github.com/zmkfirmware/zmk-studio/commit/a7bc01d3ab5321174aafa86c6143f24bb18eaac6)) +* More complete disconnect and notif support. ([77062af](https://github.com/zmkfirmware/zmk-studio/commit/77062af5ede8e4e2c28b9e64f5d8206f6f5c1242)) +* Move to proper layer IDs. ([44badf1](https://github.com/zmkfirmware/zmk-studio/commit/44badf16fc2eba70b6931919f7f427d781b8fc88)) +* Propagate layout selection to the device. ([c2cf65c](https://github.com/zmkfirmware/zmk-studio/commit/c2cf65c35bc3ab36cc57bcddc5842a33f40886eb)) +* Properly implement Discard. ([e7a25c0](https://github.com/zmkfirmware/zmk-studio/commit/e7a25c02356d141f988bc9c04d09757c611916c1)) +* Release automation using release-please ([f69b015](https://github.com/zmkfirmware/zmk-studio/commit/f69b0151edbc56c95fd0d2e2287e2d8942b2fe79)) +* replace edit label prompt with modal ([44acf8c](https://github.com/zmkfirmware/zmk-studio/commit/44acf8c1f5bb8aac8911811fa13cd033be606ba0)) +* Show selected key in a physical layout. ([1dc11c8](https://github.com/zmkfirmware/zmk-studio/commit/1dc11c8fb34c8c6fecb8070ed78aea502b078e16)) +* Start to incorporate theme colors. ([664d6f3](https://github.com/zmkfirmware/zmk-studio/commit/664d6f3b360e0169cb496871f7e9f87b107a8631)) +* Style adjustments ([332d737](https://github.com/zmkfirmware/zmk-studio/commit/332d7374550039a7c6b527ddd10b475f98000d9b)) +* Tailwind, prettier, Gorton keys. ([f942781](https://github.com/zmkfirmware/zmk-studio/commit/f942781394954dfad22768929637ac86f36cdcac)) +* Ton of layer operations. ([28f2625](https://github.com/zmkfirmware/zmk-studio/commit/28f262557fe457a6eb7d01c1733fb97171a73f27)) +* Tons of layout fixes, device selection. ([177f2df](https://github.com/zmkfirmware/zmk-studio/commit/177f2dfe38982c9acba8f08a2737963f460ac1f5)) +* Undo/redo, binding updates, save changes. ([47eeb1c](https://github.com/zmkfirmware/zmk-studio/commit/47eeb1caba476868420ca3e0cbf94558e1865a8e)) +* Various layout/key render work, theme fixes ([d66d560](https://github.com/zmkfirmware/zmk-studio/commit/d66d560a6c3de41d25502e8f601e63b20cbab38f)) +* Windows app/installer signing. ([81a42b5](https://github.com/zmkfirmware/zmk-studio/commit/81a42b5bb91471dfd6a83f5c80cce697097204e2)) + + +### Bug Fixes + +* Add `will-change: transform` to force anti-aliasing. ([899c355](https://github.com/zmkfirmware/zmk-studio/commit/899c3556b8ca5c87434912afbd19d109cd26ac7d)) +* Add Info.plist for BT access request on macOS. ([2412e70](https://github.com/zmkfirmware/zmk-studio/commit/2412e70ee14f8beeadc3cfe794f913701f0c7be6)) +* **app:** Properly load when BT adapter is off. ([3241568](https://github.com/zmkfirmware/zmk-studio/commit/324156873ae69850c319ccedda613635fcc8c342)) +* **app:** Workaround for GNOME/Wayland resize bug. ([153a035](https://github.com/zmkfirmware/zmk-studio/commit/153a0355a0a09e0303ed66f845deae7c94801304)) +* BT connections on macOS must explicitly connect. ([adf1d01](https://github.com/zmkfirmware/zmk-studio/commit/adf1d01bffaa265215a8c328f8af084431fef58c)) +* Build fixes after tweaks. ([679c5ec](https://github.com/zmkfirmware/zmk-studio/commit/679c5ec3c99a2dd203ca2da61245683b8d3a2e38)) +* Build gatt transport on macOS. ([1351d5f](https://github.com/zmkfirmware/zmk-studio/commit/1351d5fa34b941e51ef7e132be0e47449a103d4b)) +* Bump tauri deps to use custom IPC encoding. ([c6de9de](https://github.com/zmkfirmware/zmk-studio/commit/c6de9de6b0bf4e585f06ccaf39e56e5156e53db8)) +* Bump tauri versions, fix CSP ICP issue. ([ba15adc](https://github.com/zmkfirmware/zmk-studio/commit/ba15adc034efe970f2cc263e8f1bf0b8e2987103)) +* Bump to client with Windows fixes. ([ad48405](https://github.com/zmkfirmware/zmk-studio/commit/ad48405ce7f83f5ccbc02d29e6535ebd2da5f698)) +* Fix up bluest usage for CoreBluetooth. ([0df090b](https://github.com/zmkfirmware/zmk-studio/commit/0df090b34610b2aeaf03f350b1ac5845b8143e72)) +* HID override build fix, more overrides. ([8c1633e](https://github.com/zmkfirmware/zmk-studio/commit/8c1633e3bbf68ca647bd76ea45f509343ac9b233)) +* Layout fixes. ([eb1d836](https://github.com/zmkfirmware/zmk-studio/commit/eb1d836499e197f0c7e41d431db5922497ec75c9)) +* Layout rotation fixes. ([4e53eaf](https://github.com/zmkfirmware/zmk-studio/commit/4e53eaf452e98526f985120c44c68187528c84bc)) +* Minor TS fix. ([d377f6c](https://github.com/zmkfirmware/zmk-studio/commit/d377f6c5f5ac6c8fd3c91d613900a56297bea257)) +* Modifier selection sizing fixes. ([d966f9d](https://github.com/zmkfirmware/zmk-studio/commit/d966f9d4b90d3686dd38d618a0f1584810468edf)) +* Only force connect to devices on macos. ([c199d58](https://github.com/zmkfirmware/zmk-studio/commit/c199d583b77ceef0c4179191881042a370b3a30c)) +* Proper 2-param behavior editing. ([b254dac](https://github.com/zmkfirmware/zmk-studio/commit/b254dac0168c763b21d6c002f1eac3c01c9f69fd)) +* Proper disconnect/reconnect of BLE. ([635d7b9](https://github.com/zmkfirmware/zmk-studio/commit/635d7b9b195a1cae039022360ec8e7e0b334b3d2)) +* Proper logo and title. ([8df6f1e](https://github.com/zmkfirmware/zmk-studio/commit/8df6f1e1791e867e41672bb3b42ef1ad81fe75c4)) +* Proper type for device info RPC response. ([7f02898](https://github.com/zmkfirmware/zmk-studio/commit/7f0289829f3a64854d7a44680dc1a8e1ae2c5f92)) +* Properly handle USB serial disconnects. ([3d13643](https://github.com/zmkfirmware/zmk-studio/commit/3d13643971ddf218412e7d51591891141156811d)) +* Properly include keyboard page modifiers in the picker. ([cfda89e](https://github.com/zmkfirmware/zmk-studio/commit/cfda89e2ced2030dc7d0f72a8d9b3d041f4da697)) +* Reopen the connect/lock modals if closed with esc. ([028c1c9](https://github.com/zmkfirmware/zmk-studio/commit/028c1c96f1627238e0d26421184d06c8d4e3ba53)) +* Revert attempts at running tauri in container. ([e00bff4](https://github.com/zmkfirmware/zmk-studio/commit/e00bff4311f377b1dfce83d33dbf249a419eaf68)) +* Selection state fixes. ([9b41000](https://github.com/zmkfirmware/zmk-studio/commit/9b41000b5e9e559b83d04fd54a3e00dab964ac45)) +* Show selection of first key, binding fixes for no-params behaviors. ([32147a9](https://github.com/zmkfirmware/zmk-studio/commit/32147a90e1f2a748fadac0a3f9e22210015a3e06)) +* Tweak macOS app signing for testing. ([6d8ef6c](https://github.com/zmkfirmware/zmk-studio/commit/6d8ef6cb69dab87cf8132547a767b3125bd54b24)) +* Typo in a vendor name. ([35d0118](https://github.com/zmkfirmware/zmk-studio/commit/35d0118238930b94a8771108b93d008dac91de8e)) +* Undo/redo fixes. ([8b25218](https://github.com/zmkfirmware/zmk-studio/commit/8b252185384b41df2d38823e546c891e80227cf7)) + + +### Miscellaneous Chores + +* Prepare 0.0.1 release ([1a233de](https://github.com/zmkfirmware/zmk-studio/commit/1a233de12cbe6be3be4e9a3ef766a0b1d9aa3ce1)) diff --git a/LICENSE b/LICENSE index d6456956..75b52484 100644 --- a/LICENSE +++ b/LICENSE @@ -1,202 +1,202 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/NOTICE b/NOTICE index 23b4200c..22048aaf 100644 --- a/NOTICE +++ b/NOTICE @@ -1,14 +1,14 @@ -ZMK Studio -Copyright 2024 The ZMK Contributors - -This product includes software developend by the ZMK Project (https://zmk.dev/), -licensed under the Apache License, Version 2.0 (the "License"). -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +ZMK Studio +Copyright 2024 The ZMK Contributors + +This product includes software developend by the ZMK Project (https://zmk.dev/), +licensed under the Apache License, Version 2.0 (the "License"). +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md index 26c36836..e0d15028 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# ZMK Studio - -Initial work on the ZMK Studio UI. +# ZMK Studio + +Initial work on the ZMK Studio UI. diff --git a/download.html b/download.html index 5eb770fb..8286e468 100644 --- a/download.html +++ b/download.html @@ -1,13 +1,13 @@ - - - - - - - ZMK Studio - Download - - -
- - - + + + + + + + ZMK Studio - Download + + +
+ + + diff --git a/index.html b/index.html index 307c8f75..1d41bd1f 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - - - - - - - ZMK Studio - - -
- - - + + + + + + + ZMK Studio + + +
+ + + diff --git a/package-lock.json b/package-lock.json index 77d0645a..66216d8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18142 +1,18142 @@ -{ - "name": "zmk-studio", - "version": "0.3.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "zmk-studio", - "version": "0.3.1", - "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.7.1", - "@fortawesome/free-brands-svg-icons": "^6.7.1", - "@fortawesome/react-fontawesome": "^0.2.2", - "@tailwindcss/container-queries": "^0.1.1", - "@tauri-apps/api": "^2.0.0", - "@tauri-apps/plugin-cli": "^2.0.0", - "@zmkfirmware/zmk-studio-ts-client": "^0.0.18", - "emittery": "^1.0.3", - "immer": "^10.1.1", - "lucide-react": "^0.445.0", - "react": "^18.2.0", - "react-aria-components": "^1.4.0", - "react-dom": "^18.2.0", - "tailwindcss-react-aria-components": "^1.1.3" - }, - "devDependencies": { - "@chromatic-com/storybook": "^1.3.5", - "@storybook/addon-essentials": "^8.3.5", - "@storybook/addon-interactions": "^8.0.10", - "@storybook/addon-links": "^8.0.10", - "@storybook/addon-onboarding": "^8.0.10", - "@storybook/blocks": "^8.3.5", - "@storybook/react": "^8.0.10", - "@storybook/react-vite": "^8.0.10", - "@storybook/test": "^8.0.10", - "@tauri-apps/cli": "^2.0.0", - "@types/react": "^18.2.66", - "@types/react-dom": "^18.2.22", - "@types/w3c-web-serial": "^1.0.6", - "@types/web-bluetooth": "^0.0.20", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "@vitejs/plugin-react-swc": "^3.5.0", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", - "eslint-plugin-storybook": "^0.8.0", - "postcss": "^8.4.38", - "prettier": "3.3.2", - "run-script-os": "^1.1.6", - "storybook": "^8.0.10", - "tailwindcss": "^3.4.4", - "typescript": "^5.4.5", - "vite": "^5.4.8" - }, - "optionalDependencies": { - "@esbuild/darwin-arm64": "0.23.0", - "@rollup/rollup-darwin-arm64": "^4.18.1" - } - }, - "../zmk-studio-ts-client": { - "version": "0.0.1-development", - "extraneous": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "async-mutex": "^0.5.0" - }, - "devDependencies": { - "@ryansonshine/commitizen": "^4.2.8", - "@ryansonshine/cz-conventional-changelog": "^3.3.4", - "@types/jest": "^29.0.0", - "@types/node": "^12.20.11", - "@types/w3c-web-serial": "^1.0.6", - "@types/web-bluetooth": "^0.0.20", - "@typescript-eslint/eslint-plugin": "^4.22.0", - "@typescript-eslint/parser": "^4.22.0", - "conventional-changelog-conventionalcommits": "^5.0.0", - "eslint": "^7.25.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.0", - "husky": "^6.0.0", - "jest": "^29.0.0", - "lint-staged": "^13.2.1", - "prettier": "^2.2.1", - "semantic-release": "^21.0.1", - "ts-jest": "^29.0.0", - "ts-node": "^10.2.1", - "ts-proto": "^1.174.0", - "typescript": "^4.2.4", - "web-streams-polyfill": "4.0.0" - }, - "engines": { - "node": ">=12.0" - } - }, - "../zmk/rpc-clients/typescript/ts-zmk-rpc-core": { - "version": "0.0.1-development", - "extraneous": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "async-mutex": "^0.5.0" - }, - "devDependencies": { - "@ryansonshine/commitizen": "^4.2.8", - "@ryansonshine/cz-conventional-changelog": "^3.3.4", - "@types/jest": "^27.5.2", - "@types/node": "^12.20.11", - "@types/w3c-web-serial": "^1.0.6", - "@types/web-bluetooth": "^0.0.20", - "@typescript-eslint/eslint-plugin": "^4.22.0", - "@typescript-eslint/parser": "^4.22.0", - "conventional-changelog-conventionalcommits": "^5.0.0", - "eslint": "^7.25.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.0", - "husky": "^6.0.0", - "jest": "^27.2.0", - "lint-staged": "^13.2.1", - "prettier": "^2.2.1", - "semantic-release": "^21.0.1", - "ts-jest": "^27.0.5", - "ts-node": "^10.2.1", - "ts-proto": "^1.174.0", - "typescript": "^4.2.4", - "web-streams-polyfill": "4.0.0" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.3.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.24.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.24.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@base2/pretty-print-object": { - "version": "1.0.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/@chromatic-com/storybook": { - "version": "1.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "chromatic": "^11.3.2", - "filesize": "^10.0.12", - "jsonfile": "^6.1.0", - "react-confetti": "^6.1.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=16.0.0", - "yarn": ">=1.22.18" - } - }, - "node_modules/@chromatic-com/storybook/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@chromatic-com/storybook/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", - "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/ecma402-abstract/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/fast-memoize/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", - "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-skeleton-parser": "1.8.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", - "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-localematcher/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz", - "integrity": "sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz", - "integrity": "sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g==", - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.1.tgz", - "integrity": "sha512-nJR76eqPzCnMyhbiGf6X0aclDirZriTPRcFm1YFvuupyJOGwlNF022w3YBqu+yrHRhnKRpzFX+8wJKqiIjWZkA==", - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", - "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", - "license": "MIT", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || ~6", - "react": ">=16.3" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@internationalized/date": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", - "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/message": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.5.tgz", - "integrity": "sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==", - "dependencies": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "node_modules/@internationalized/number": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", - "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/string": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.4.tgz", - "integrity": "sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^7.2.0", - "glob-promise": "^4.2.0", - "magic-string": "^0.27.0", - "react-docgen-typescript": "^2.2.2" - }, - "peerDependencies": { - "typescript": ">= 4.3.x", - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/magic-string": { - "version": "0.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", - "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", - "dev": true, - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@react-aria/accordion": { - "version": "3.0.0-alpha.34", - "resolved": "https://registry.npmjs.org/@react-aria/accordion/-/accordion-3.0.0-alpha.34.tgz", - "integrity": "sha512-3Qoj3StyQbdTYvAXVIbAIk11WtRyo3cdgn6OgwPAvN6c1r8R7X/J9DHTykZRrlF6TOGcdE0H0yrmPrlG92ObmA==", - "dependencies": { - "@react-aria/button": "^3.10.0", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/tree": "^3.8.5", - "@react-types/accordion": "3.0.0-alpha.24", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/breadcrumbs": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.17.tgz", - "integrity": "sha512-LJQ+u3TbPmtAWZ3/qC6VfLCzXiwVoB6GmI+HJ2pbjs6H9L8MoiLHsA4mgcz+P0rvx7SCs0Rhvy4JurV6R/R4xw==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/link": "^3.7.5", - "@react-aria/utils": "^3.25.3", - "@react-types/breadcrumbs": "^3.7.8", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/button": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.10.0.tgz", - "integrity": "sha512-mhbn2tEsr991sjG6YMH6oN3ELWb4YvZZ8mnZHMNLa3l8T00PV0ClvQBsUndo6uSvuTHhpFzmMMkJFhYYUwCKlw==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/toggle": "^3.7.8", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/calendar": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.12.tgz", - "integrity": "sha512-C8VRjRwEVPaGoCtjOlC0lb3mVSz4ajbal8jfvcbp7LOqCcmOVTUbiM7EPTy60EfZRanFNSp2D1ZstEZDU+cqsg==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/calendar": "^3.5.5", - "@react-types/button": "^3.10.0", - "@react-types/calendar": "^3.4.10", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/checkbox": { - "version": "3.14.7", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.7.tgz", - "integrity": "sha512-aqVxXcr/8P7pQ7R34DlJX2SdBvWtHof9lLTVBY/9tgMplcKIoVBdlVUYPtqWxT3tGan+rruPQHbzTx8zJRFJyg==", - "dependencies": { - "@react-aria/form": "^3.0.9", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/toggle": "^3.10.8", - "@react-aria/utils": "^3.25.3", - "@react-stately/checkbox": "^3.6.9", - "@react-stately/form": "^3.0.6", - "@react-stately/toggle": "^3.7.8", - "@react-types/checkbox": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/collections": { - "version": "3.0.0-alpha.5", - "resolved": "https://registry.npmjs.org/@react-aria/collections/-/collections-3.0.0-alpha.5.tgz", - "integrity": "sha512-8m8yZe1c5PYCylEN4lcG3ZL/1nyrON95nVsoknC8shY1uKP01oJd7w+f6hvVza0tJRQuVe4zW3gO4FVjv33a5g==", - "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "use-sync-external-store": "^1.2.0" - }, - "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" - } - }, - "node_modules/@react-aria/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.0.0.tgz", - "integrity": "sha512-IwHI4e2fUHUOZHRrL2MsxGZFp/RCR2cLjm39gT41jVSuH4zjxueUf96NDm6c7FD0mB5vfk0jo+KJMnShL1a2rg==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/numberfield": "^3.11.7", - "@react-aria/slider": "^3.7.12", - "@react-aria/spinbutton": "^3.6.9", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/color": "^3.8.0", - "@react-stately/form": "^3.0.6", - "@react-types/color": "^3.0.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/combobox": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.10.4.tgz", - "integrity": "sha512-jzLyRwpwH5SCfQl5giLSwLaw9EKlRiMG39kDZLRB4MQ1MN4sIdIP2TXBbdYcSLtYjduJm2JfRvs2ezI+QI+umA==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/listbox": "^3.13.4", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/menu": "^3.15.4", - "@react-aria/overlays": "^3.23.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/combobox": "^3.10.0", - "@react-stately/form": "^3.0.6", - "@react-types/button": "^3.10.0", - "@react-types/combobox": "^3.13.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/datepicker": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.11.3.tgz", - "integrity": "sha512-HwGxDctFry5ew3Cu7gWpUVodaCg//V6NCihSRjLvnW/TWG+UFLzTafxTqqm8eRbicT3DJlXCLOUPk8Ek0txW6A==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@internationalized/number": "^3.5.4", - "@internationalized/string": "^3.2.4", - "@react-aria/focus": "^3.18.3", - "@react-aria/form": "^3.0.9", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/spinbutton": "^3.6.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/datepicker": "^3.10.3", - "@react-stately/form": "^3.0.6", - "@react-types/button": "^3.10.0", - "@react-types/calendar": "^3.4.10", - "@react-types/datepicker": "^3.8.3", - "@react-types/dialog": "^3.5.13", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/dialog": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.18.tgz", - "integrity": "sha512-j0x0OwDZKyW2GqBZl2Dw/pHl0uSCzhHOg5jNeulkZC8xQa8COuksQf5NFzPmgRPnzqpbgvSzCSs41ymS8spmFg==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/overlays": "^3.23.3", - "@react-aria/utils": "^3.25.3", - "@react-types/dialog": "^3.5.13", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/disclosure": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@react-aria/disclosure/-/disclosure-3.0.0-alpha.0.tgz", - "integrity": "sha512-/tleriRORdkRJf2JXjiRfhLfXA5WY0nPT3DoodZJgD5Fj/aCjrWXarVGUQuEk9vsH5pwinQiQB5So+cA+xF+UQ==", - "dependencies": { - "@react-aria/button": "^3.10.0", - "@react-aria/selection": "^3.20.0", - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-stately/disclosure": "3.0.0-alpha.0", - "@react-stately/toggle": "^3.7.8", - "@react-stately/tree": "^3.8.5", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/dnd": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.7.3.tgz", - "integrity": "sha512-SF7v1AzpXr4CSf98pSzjcSBCaezpP6rsSnSJTz0j2jrYfdQhX0MPA2lyxS+kgU1AEzkK19THQeHuj8hxQc0bVw==", - "dependencies": { - "@internationalized/string": "^3.2.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/overlays": "^3.23.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/dnd": "^3.4.3", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/focus": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.3.tgz", - "integrity": "sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==", - "dependencies": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/form": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.9.tgz", - "integrity": "sha512-9M6IfC5t47G19c8roHWnkKd275BrECTzyTsc4rzf5OepJfHfG4evST6x+4gGOFYi8soC9XoQdJl4TRh/mft+gw==", - "dependencies": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/form": "^3.0.6", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/grid": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.10.4.tgz", - "integrity": "sha512-3AjJ0hwRhOCIHThIZrGWrjAuKDpaZuBkODW3dvgLqtsNm3tL46DI6U9O3vfp8lNbrWMsXJgjRXwvXvdv0/gwCA==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/grid": "^3.9.3", - "@react-stately/selection": "^3.17.0", - "@react-types/checkbox": "^3.8.4", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/gridlist": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.9.4.tgz", - "integrity": "sha512-gGzS4ToSynn2KBycf9UCsWIJIbVl4RjoCjPF4NnukwzHmrXwbtZnlF0xsORQ5QxfqHH9UehTAHWFvOOHJSZZ2w==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/grid": "^3.10.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/list": "^3.11.0", - "@react-stately/tree": "^3.8.5", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/i18n": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.3.tgz", - "integrity": "sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==", - "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-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/interactions": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.3.tgz", - "integrity": "sha512-RRUb/aG+P0IKTIWikY/SylB6bIbLZeztnZY2vbe7RAG5MgVaCgn5HQ45SI15GlTmhsFG8CnF6slJsUFJiNHpbQ==", - "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/label": { - "version": "3.7.12", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.12.tgz", - "integrity": "sha512-u9xT90lAlgb7xiv+p0md9QwCHz65XL7tjS5e29e88Rs3ptkv3aQubTqxVOUTEwzbNUT4A1QqTjUm1yfHewIRUw==", - "dependencies": { - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/link": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.5.tgz", - "integrity": "sha512-j0F1BIdNoE7Tl+0KzzjbrmYuxt4aWAmDZDHvJKiYg71Jb1BAPz71eE1O1ybMoO04+OG/6HrRZTragfSQLAJ58A==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/link": "^3.5.8", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/listbox": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.13.4.tgz", - "integrity": "sha512-2aG4jzlB+srYBeM9ap/BNZe0E04yMjY2dPGXcigkaSJt6/yYAHCygXuouf2MzvBfkdV4QWyHIIgWZmAXXl6reg==", - "dependencies": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/list": "^3.11.0", - "@react-types/listbox": "^3.5.2", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/live-announcer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.0.tgz", - "integrity": "sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@react-aria/menu": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.15.4.tgz", - "integrity": "sha512-4wfq8Lb7AltgSzBHdtypiPOnsRm8hHv7PUuHhlq/VT9yAkEFk4Flc7vKVF6VSFqrnCfyCf66B5aeapjNInAONg==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/overlays": "^3.23.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/menu": "^3.8.3", - "@react-stately/tree": "^3.8.5", - "@react-types/button": "^3.10.0", - "@react-types/menu": "^3.9.12", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/meter": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.17.tgz", - "integrity": "sha512-08wbQhfvVWzpWilhn/WD7cQ7TqafS/66umTk7+X6BW6TrS1//6loNNJV62IC3F7sskel4iEAtl2gW0WpW8zEdg==", - "dependencies": { - "@react-aria/progress": "^3.4.17", - "@react-types/meter": "^3.4.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/numberfield": { - "version": "3.11.7", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.7.tgz", - "integrity": "sha512-9bqg4sKqc5XLppHzJFRhgtkoeMu0N6Zg0AuVSiE/3CxE5Ad+y8tKpFEx9zh4o5BItyOWy18w5ZXnKjJGjd7waQ==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/spinbutton": "^3.6.9", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/form": "^3.0.6", - "@react-stately/numberfield": "^3.9.7", - "@react-types/button": "^3.10.0", - "@react-types/numberfield": "^3.8.6", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/overlays": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.23.3.tgz", - "integrity": "sha512-vRW4DL466a27BBIP6dQqmmei4nX/nsur6DyF0Hmd46ygwOdvdA+5MwvXZUz9yUamB79UeS9BMQZuBVwhjoMwBQ==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/overlays": "^3.6.11", - "@react-types/button": "^3.10.0", - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/progress": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.17.tgz", - "integrity": "sha512-5+01WNibLoNS5KcfU5p6vg7Lhz17plqqzv/uITx28zzj3saaj0VLR7n57Ig2fXe8ZEQoUS89BS3sIEsIf96S1A==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-types/progress": "^3.5.7", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/radio": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.8.tgz", - "integrity": "sha512-/vKQhKqpoCB/VqHuc46OOU+31HFtg6svcYzHBbz0wN/DSVCygYeTfB/36kY7x2GWWkT0pCsB4OcHJ+/0G3EfkQ==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/form": "^3.0.9", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-stately/radio": "^3.10.8", - "@react-types/radio": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/searchfield": { - "version": "3.7.9", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.9.tgz", - "integrity": "sha512-EHODG7HDFthwG5tx4fh+WP2hjNOp/rPAqdNScKBAN73nEf0F/qQpIwmdZF0EycCOzGSM5hhihjm0yMtTFYuzOQ==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/searchfield": "^3.5.7", - "@react-types/button": "^3.10.0", - "@react-types/searchfield": "^3.5.9", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/select": { - "version": "3.14.10", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.10.tgz", - "integrity": "sha512-xHkAJqvfKgnH5mVYwZj3ME7/Q3wUzgUZDK/iVuXUs3cAYap8ybM2d/2zOGcqv1keZHBUzwp9QtaN//FYK13jIA==", - "dependencies": { - "@react-aria/form": "^3.0.9", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/listbox": "^3.13.4", - "@react-aria/menu": "^3.15.4", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/select": "^3.6.8", - "@react-types/button": "^3.10.0", - "@react-types/select": "^3.9.7", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/selection": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.20.0.tgz", - "integrity": "sha512-h3giMcXo4SMZRL5HrqZvOLNTsdh5jCXwLUx0wpj/2EF0tcYQL6WDfn1iJ+rHARkUIs7X70fUV8iwlbUySZy1xg==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/selection": "^3.17.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/separator": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.3.tgz", - "integrity": "sha512-L+eCmSGfRJ9jScHZqBkmOkp44LBARisDjRdYbGrLlsAEcOiHUXufnfpxz2rgkUGBdUgnI9hIk12q5kdy0UxGjg==", - "dependencies": { - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/slider": { - "version": "3.7.12", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.12.tgz", - "integrity": "sha512-yZWBGxDHBL5Gjjdnz+igdO7VfYND9iZsSqynadZthWtfy1jA+qBR25I+Soc0D9gkr/2/JUJkFgkllYF1RzWMUQ==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-stately/slider": "^3.5.8", - "@react-types/shared": "^3.25.0", - "@react-types/slider": "^3.7.6", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/spinbutton": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.9.tgz", - "integrity": "sha512-m+uVJdiIc2LrLVDGjU7p8P2O2gUvTN26GR+NgH4rl+tUSuAB0+T1rjls/C+oXEqQjCpQihEB9Bt4M+VHpzmyjA==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/utils": "^3.25.3", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/ssr": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.6.tgz", - "integrity": "sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/switch": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.8.tgz", - "integrity": "sha512-6Q0w7o+liB0ztKPL9UaRfX+hPPuy71AL3SuVCMK7RKfPqZwcmlwUDp2gr3j5fvs8gLev0r42XtEBqmGwkHTkEw==", - "dependencies": { - "@react-aria/toggle": "^3.10.8", - "@react-stately/toggle": "^3.7.8", - "@react-types/shared": "^3.25.0", - "@react-types/switch": "^3.5.6", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/table": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.15.4.tgz", - "integrity": "sha512-t4+vtUF63i6OrXmZ0AA/RmWyIt8cieUm7cSXhQMooAgUjkvVqTNkQQRsntVOb+UNI5KmiGSe4jB3H4GVXz2X9w==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/grid": "^3.10.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/collections": "^3.11.0", - "@react-stately/flags": "^3.0.4", - "@react-stately/table": "^3.12.3", - "@react-types/checkbox": "^3.8.4", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/tabs": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.6.tgz", - "integrity": "sha512-iPQ2Im+srnSB06xIdVNHZZDJnZmUR0IG0MZAp6FXmbkCeLAd9tZQHgSFYwswBfgAStNnyFQHP5aSBJOJMRCACg==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/tabs": "^3.6.10", - "@react-types/shared": "^3.25.0", - "@react-types/tabs": "^3.3.10", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/tag": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.4.6.tgz", - "integrity": "sha512-Uf1sPabwJx99diyXJTaVguiYozS49opjQxmK1PPbb87ipNN1YlSDVbP05IelVMbnbxXHudsRmzPOBmmblcj1GQ==", - "dependencies": { - "@react-aria/gridlist": "^3.9.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/list": "^3.11.0", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/textfield": { - "version": "3.14.9", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.9.tgz", - "integrity": "sha512-LPwZhthDVLyvnzXWco4eyYCD2pFmQ4Vw9ha9tb3QkZUIP6j8E52y76j0c59Nq7XYus3IHatVe7yYQk7kbo8Zrg==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/form": "^3.0.9", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@react-types/textfield": "^3.9.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/toggle": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.8.tgz", - "integrity": "sha512-N6WTgE8ByMYY+ZygUUPGON2vW5NrxwU91H98+Nozl+Rq6ZYR2fD9i8oRtLtrYPxjU2HmaFwDyQdWvmMJZuDxig==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/toggle": "^3.7.8", - "@react-types/checkbox": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/toolbar": { - "version": "3.0.0-beta.9", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.9.tgz", - "integrity": "sha512-P80zgbPb0aIg22fHlgHRXXUSpNSAOnh1ljsLiSHAGdXPrC5nRijYwwKi7DNRsXqD+ljEJwF6ekZPo95dXXeYAA==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/tooltip": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.8.tgz", - "integrity": "sha512-dlWfS3w8E6dw5Xoist4cVX2GQE5oh3VQr88dRyLto7BAPLFrp3I+8c9mZCVUobLS/f5QcQzLkqw750s4ENCyiw==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/tooltip": "^3.4.13", - "@react-types/shared": "^3.25.0", - "@react-types/tooltip": "^3.4.12", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/tree": { - "version": "3.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@react-aria/tree/-/tree-3.0.0-beta.0.tgz", - "integrity": "sha512-bF9sp7x+Ciy0N2KJwy8epmDoNblyVmeB4vR/KWLVIKMjANCpzTbvhWZUBpQxkpO0eupInU2uN+FMNr0WKMyd7Q==", - "dependencies": { - "@react-aria/gridlist": "^3.9.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/tree": "^3.8.5", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/utils": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", - "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", - "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-aria/virtualizer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-4.0.3.tgz", - "integrity": "sha512-neSf+EXtqmQiccHcp9CS2RbH3xA6FuZggLzGsM1NoqDdXIL7TLfc7lhaqi8VAZ03e1FCUSye08BCRk3DdpUiyA==", - "dependencies": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/virtualizer": "^4.1.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "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" - } - }, - "node_modules/@react-aria/visually-hidden": { - "version": "3.8.16", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.16.tgz", - "integrity": "sha512-3zThVIzEprez4A/GajOut6/JQ4WCu2ROHGZ1xH1+2GFjBJQaTfPBIjg6UIwaT7sgHRQIik8QidogLqXHbp81yA==", - "dependencies": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/calendar": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.5.tgz", - "integrity": "sha512-HzaiDRhrmaYIly8hRsjjIrydLkldiw1Ws6T/130NLQOt+VPwRW/x0R+nil42mA9LZ6oV0XN0NpmG5tn7TaKRGw==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@react-stately/utils": "^3.10.4", - "@react-types/calendar": "^3.4.10", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/checkbox": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.9.tgz", - "integrity": "sha512-JrY3ecnK/SSJPxw+qhGhg3YV4e0CpUcPDrVwY3mSiAE932DPd19xr+qVCknJ34H7JYYt/q0l2z0lmgPnl96RTg==", - "dependencies": { - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/checkbox": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/collections": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.11.0.tgz", - "integrity": "sha512-TiJeJjHMPSbbeAhmCXLJNSCk0fa5XnCvEuYw6HtQzDnYiq1AD7KAwkpjC5NfKkjqF3FLXs/v9RDm/P69q6rYzw==", - "dependencies": { - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/color": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.8.0.tgz", - "integrity": "sha512-lBH91HEStZeayhE/FkDMt9WC0UISQiAn8DoD2hfpTGeeWscX/soyxZA7oVL7zBOG9RfDBMNzF+CybVROrWSKAQ==", - "dependencies": { - "@internationalized/number": "^3.5.4", - "@internationalized/string": "^3.2.4", - "@react-aria/i18n": "^3.12.3", - "@react-stately/form": "^3.0.6", - "@react-stately/numberfield": "^3.9.7", - "@react-stately/slider": "^3.5.8", - "@react-stately/utils": "^3.10.4", - "@react-types/color": "^3.0.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/combobox": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.0.tgz", - "integrity": "sha512-4W4HCCjjoddW/LZM3pSSeLoV7ncYXlaICKmqlBcbtLR5jY4U5Kx+pPpy3oJ1vCdjDHatIxZ0tVKEBP7vBQVeGQ==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/form": "^3.0.6", - "@react-stately/list": "^3.11.0", - "@react-stately/overlays": "^3.6.11", - "@react-stately/select": "^3.6.8", - "@react-stately/utils": "^3.10.4", - "@react-types/combobox": "^3.13.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/data": { - "version": "3.11.7", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.7.tgz", - "integrity": "sha512-2YJ+Lmca18f/h7jiZiU9j2IhBJl6BFO1BWlwvcCAH/eCWTdveX8gzsUdW++0szzpJaoCilTCYoi8z7QWyVH9jQ==", - "dependencies": { - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/datepicker": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.10.3.tgz", - "integrity": "sha512-6PJW1QMwk6BQMktV9L6DA4f2rfAdLfbq3iTNLy4qxd5IfNPLMUZiJGGTj+cuqx0WcEl+q5irp+YhKBpbmhPZHg==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@internationalized/string": "^3.2.4", - "@react-stately/form": "^3.0.6", - "@react-stately/overlays": "^3.6.11", - "@react-stately/utils": "^3.10.4", - "@react-types/datepicker": "^3.8.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/disclosure": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@react-stately/disclosure/-/disclosure-3.0.0-alpha.0.tgz", - "integrity": "sha512-CbFUrEwhsP5+44PMHipn/Cd61VTvqyKmx1yeNDyvj/4bYhmxYLgQp/Ma+iEqe23JkXJh2JO/ws3l9FnebScCJQ==", - "dependencies": { - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/dnd": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.4.3.tgz", - "integrity": "sha512-sUvhmMxFEw6P2MW7walx0ntakIihxdPxA06K9YZ3+ReaUvzQuRw5cFDaTTHrlegWRMYD0CyQaKlGIaTQihhvVA==", - "dependencies": { - "@react-stately/selection": "^3.17.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/flags": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.4.tgz", - "integrity": "sha512-RNJEkOALwKg+JeYsfNlfPc4GXm7hiBLX0yuHOkRapWEyDOfi0cinkV/TZG4goOZdQ5tBpHmemf2qqiHAxqHlzQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@react-stately/form": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.6.tgz", - "integrity": "sha512-KMsxm3/V0iCv/6ikt4JEjVM3LW2AgCzo7aNotMzRobtwIo0RwaUo7DQNY00rGgFQ3/IjzI6DcVo13D+AVE/zXg==", - "dependencies": { - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/grid": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.3.tgz", - "integrity": "sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/selection": "^3.17.0", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/layout": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-4.0.3.tgz", - "integrity": "sha512-zFLXnPalWWVCdFGcPAb+nywSTz/xAnKRxb7zT+YDa5U80DHArDGKZcQ+by0+2Sf8yaYolROco4my+BERPXJB6A==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/table": "^3.12.3", - "@react-stately/virtualizer": "^4.1.0", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/list": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.11.0.tgz", - "integrity": "sha512-O+BxXcbtoLZWn4QIT54RoFUaM+QaJQm6s0ZBJ3Jv4ILIhukVOc55ra+aWMVlXFQSpbf6I3hyVP6cz1yyvd5Rtw==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/selection": "^3.17.0", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/menu": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.8.3.tgz", - "integrity": "sha512-sV63V+cMgzipx/N7dq5GaXoItfXIfFEpCtlk3PM2vKstlCJalszXrdo+x996bkeU96h0plB7znAlhlXOeTKzUg==", - "dependencies": { - "@react-stately/overlays": "^3.6.11", - "@react-types/menu": "^3.9.12", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/numberfield": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.7.tgz", - "integrity": "sha512-PjSgCCpYasGCEAznFQNqa2JhhEQ5+/2eMiV7ZI5j76q3edTNF8G5OOCl2RazDbzFp6vDAnRVT7Kctx5Tl5R/Zw==", - "dependencies": { - "@internationalized/number": "^3.5.4", - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/numberfield": "^3.8.6", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/overlays": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.11.tgz", - "integrity": "sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==", - "dependencies": { - "@react-stately/utils": "^3.10.4", - "@react-types/overlays": "^3.8.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/radio": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.8.tgz", - "integrity": "sha512-VRq6Gzsbk3jzX6hdrSoDoSra9vLRsOi2pLkvW/CMrJ0GSgMwr8jjvJKnNFvYJ3eYQb20EwkarsOAfk7vPSIt/Q==", - "dependencies": { - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/radio": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/searchfield": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.7.tgz", - "integrity": "sha512-VxEG4tWDypdXQ8f7clZBu5Qmc4osqDBeA/gNMA2i1j/h2zRVcCJ0fRCHuDeXLSWBqF1XXAI4TWV53fBBwJusbg==", - "dependencies": { - "@react-stately/utils": "^3.10.4", - "@react-types/searchfield": "^3.5.9", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/select": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.8.tgz", - "integrity": "sha512-fLAVzGeYSdYdBdrEVws6Pb1ywFPdapA0eWphoW5s3fS0/pKcVWwbCHeHlaBEi1ISyqEubQZFGQdeFKm/M46Hew==", - "dependencies": { - "@react-stately/form": "^3.0.6", - "@react-stately/list": "^3.11.0", - "@react-stately/overlays": "^3.6.11", - "@react-types/select": "^3.9.7", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/selection": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.17.0.tgz", - "integrity": "sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/slider": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.8.tgz", - "integrity": "sha512-EDgbrxMq1w3+XTN72MGl3YtAG/j65EYX1Uc3Fh56K00+inJbTdRWyYTrb3NA310fXCd0WFBbzExuH2ohlKQycg==", - "dependencies": { - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@react-types/slider": "^3.7.6", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/table": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.12.3.tgz", - "integrity": "sha512-8uGrLcNJYeMbFtzRQZFWCBj5kV+7v3jzwoKIL1j9TmYUKow1PTDMQbPJpAZLQhnC2wVMlaFVgDbedSlbBij7Zg==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/flags": "^3.0.4", - "@react-stately/grid": "^3.9.3", - "@react-stately/selection": "^3.17.0", - "@react-stately/utils": "^3.10.4", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/tabs": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.10.tgz", - "integrity": "sha512-F7wfoiNsrBy7c02AYHyE1USGgj05HQ0hp7uXmQjp2LEa+AA0NKKi3HdswTHHySxb0ZRuoEE7E7vp/gXQYx2/Ow==", - "dependencies": { - "@react-stately/list": "^3.11.0", - "@react-types/shared": "^3.25.0", - "@react-types/tabs": "^3.3.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/toggle": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.8.tgz", - "integrity": "sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==", - "dependencies": { - "@react-stately/utils": "^3.10.4", - "@react-types/checkbox": "^3.8.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/tooltip": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.13.tgz", - "integrity": "sha512-zQ+8FQ7Pi0Cz852dltXb6yaryjE18K3byK4tIO3e5vnrZHEGvfdxowc+v9ak5UV93kVrYoOVmfZHRcEaTXTBNA==", - "dependencies": { - "@react-stately/overlays": "^3.6.11", - "@react-types/tooltip": "^3.4.12", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/tree": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.5.tgz", - "integrity": "sha512-0/tYhsKWQQJTOZFDwh8hY3Qk6ejNFRldGrLeK5kS22UZdvsMFyh7WAi40FTCJy561/VoB0WqQI4oyNPOa9lYWg==", - "dependencies": { - "@react-stately/collections": "^3.11.0", - "@react-stately/selection": "^3.17.0", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/utils": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", - "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-stately/virtualizer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.1.0.tgz", - "integrity": "sha512-MOaqpY3NloXrpCBvVUb3HL1p3Bh4YRtUq8D2ufC909u5vM6n6G5Swk1XPJ9KHfaftGhb5serwLkm2/Aha5CTbA==", - "dependencies": { - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/accordion": { - "version": "3.0.0-alpha.24", - "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.24.tgz", - "integrity": "sha512-hwDT4TJH7aHCG8m9QsTP+7xgW7x7k2TY+WHlMRr6qDS6WhTCwd41dCdagxC0SZtulzZuWqISBxZifVrh4Tynew==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/breadcrumbs": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.8.tgz", - "integrity": "sha512-+BW2a+PrY8ArZ+pKecz13oJFrUAhthvXx17o3x0BhWUhRpAdtmTYt2hjw8zNanm2j0Kvgo1HYKgvtskCRxYcOA==", - "dependencies": { - "@react-types/link": "^3.5.8", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/button": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.0.tgz", - "integrity": "sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/calendar": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.10.tgz", - "integrity": "sha512-PyjqxwJxSW2IpQx6y0D9O34fRCWn1gv9q0qFhgaIigIQrPg8zTE/CC7owHLxAtgCnnCt8exJ5rqi414csaHKlA==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/checkbox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.4.tgz", - "integrity": "sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.0.0.tgz", - "integrity": "sha512-VUH8CROAM69GsMBilrJ1xyAdVsWL01nXQYrkZJxAEApv1OrcpIGSdsXLcGrjsrhjjiNVXxWFnqYRMsKkLzIl7g==", - "dependencies": { - "@react-types/shared": "^3.25.0", - "@react-types/slider": "^3.7.6" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/combobox": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.0.tgz", - "integrity": "sha512-kH/a+Fjpr54M2JbHg9RXwMjZ9O+XVsdOuE5JCpWRibJP1Mfl1md8gY6y6zstmVY8COrSqFvMZWB+PzwaTWjTGw==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/datepicker": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.8.3.tgz", - "integrity": "sha512-Y4qfPRBB6uzocosCOWSYMuwiZ3YXwLWQYiFB4KCglkvHyltbNz76LgoBEnclYA5HjwosIk4XywiXvHSYry8JnQ==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@react-types/calendar": "^3.4.10", - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/dialog": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.13.tgz", - "integrity": "sha512-9k8daVcAqQsySkzDY6NIVlyGxtpEip4TKuLyzAehthbv78GQardD5fHdjQ6eXPRS4I2qZrmytrFFrlOnwWVGHw==", - "dependencies": { - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/form": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.7.tgz", - "integrity": "sha512-CVRjCawPhYRHi/LuikOC2kz5vgvmjjKmF4/wUgR2QzD1Ok4wY1ZGSx9M9EZptCIZAt2mToR6woyLUdtzy+foeQ==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/grid": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.9.tgz", - "integrity": "sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/link": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.8.tgz", - "integrity": "sha512-l/YGXddgAbLnIT7ekftXrK1D4n8NlLQwx0d4usyZpaxP1KwPzuwng20DxynamLc1atoKBqbUtZAnz32pe7vYgw==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/listbox": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.2.tgz", - "integrity": "sha512-ML/Bt/MeO0FiixcuFQ+smpu1WguxTOqHDjSnhc1vcNxVQFWQOhyVy01LAY2J/T9TjfjyYGD41vyMTI0f6fcLEQ==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/menu": { - "version": "3.9.12", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.12.tgz", - "integrity": "sha512-1SPnkHKJdvOfwv9fEgK1DI6DYRs4D3hW2XcWlLhVXSjaC68CzOHGwFhKIKvZiDTW/11L770PRSEloIxHR09uFQ==", - "dependencies": { - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/meter": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.4.tgz", - "integrity": "sha512-0SEmPkShByC1gYkW7l+iJPg8QfEe2VrgwTciAtTfC4KIqAYmJVQtq6L+4d72EMxOh8RpQHePaY/RFHEJXAh72A==", - "dependencies": { - "@react-types/progress": "^3.5.7" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/numberfield": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.6.tgz", - "integrity": "sha512-VtWEMAXUO1S9EEZI8whc7xv6DVccxhbWsRthMCg/LxiwU3U5KAveadNc2c5rtXkRpd3cnD5xFzz3dExXdmHkAg==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/overlays": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.10.tgz", - "integrity": "sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/progress": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.7.tgz", - "integrity": "sha512-EqMDHmlpoZUZzTjdejGIkSM0pS2LBI9NdadHf3bDNTycHv+5L1xpMHUg8RGOW8a3sRVLRvfN1aO9l75QZkyj+w==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/radio": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.4.tgz", - "integrity": "sha512-GCuOwQL19iwKa74NAIk9hv4ivyI8oW1+ZCuc2fzyDdeQjzTIlv3qrIyShwpVy1IoI7/4DYTMZm/YXPoKhu5TTA==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/searchfield": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.9.tgz", - "integrity": "sha512-c/x8BWpH1Zq+fWpeBtzw2AhQhGi7ahWPicV7PlnqwIGO0MrH/QCjX0dj+I+1xpcAh8Eq6ECa79HE74Rw6aJmFg==", - "dependencies": { - "@react-types/shared": "^3.25.0", - "@react-types/textfield": "^3.9.7" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/select": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.7.tgz", - "integrity": "sha512-Jva4ixfB4EEdy+WmZkUoLiQI7vVfHPxM73VuL7XDxvAO+YKiIztDTcU720QVNhxTMmQvCxfRBXWar8aodCjLiw==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/slider": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.6.tgz", - "integrity": "sha512-z72wnEzSge6qTD9TUoUPp1A4j4jXk/MVii6rGE78XeE/Pq7HyyjU5bCagryMr9PC9MKa/oTiHcshKqWBDf57GA==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/switch": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.6.tgz", - "integrity": "sha512-gJ8t2yTCgcitz4ON4ELcLLmtlDkn2MUjjfu3ez/cwA1X/NUluPYkhXj5Z6H+KOlnveqrKCZDRoTgK74cQ6Cvfg==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/table": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.2.tgz", - "integrity": "sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==", - "dependencies": { - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/tabs": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.10.tgz", - "integrity": "sha512-s/Bw/HCIdWJPBw4O703ghKqhjGsIerRMIDxA88hbQYzfTDD6bkFDjCnsP2Tyy1G8Dg2rSPFUEE+k+PpLzqeEfQ==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/textfield": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.7.tgz", - "integrity": "sha512-vU5+QCOF9HgWGjAmmy+cpJibVW5voFomC5POmYHokm7kivYcMMjlonsgWwg/0xXrqE2qosH3tpz4jFoEuig1NQ==", - "dependencies": { - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@react-types/tooltip": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.12.tgz", - "integrity": "sha512-FwsdSQ3UDIDORanQMGMLyzSUabw4AkKhwcRdPv4d5OT8GmJr7mBdZynfcsrKLJ0fzskIypMqspoutZidsI0MQg==", - "dependencies": { - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/addon-actions": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.5.tgz", - "integrity": "sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0", - "@types/uuid": "^9.0.1", - "dequal": "^2.0.2", - "polished": "^4.2.2", - "uuid": "^9.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-backgrounds": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.5.tgz", - "integrity": "sha512-IQGjDujuw8+iSqKREdkL8I5E/5CAHZbfOWd4A75PQK2D6qZ0fu/xRwTOQOH4jP6xn/abvfACOdL6A0d5bU90ag==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-controls": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.5.tgz", - "integrity": "sha512-2eCVobUUvY1Rq7sp1U8Mx8t44VXwvi0E+hqyrsqOx5TTSC/FUQ+hNAX6GSYUcFIyQQ1ORpKNlUjAAdjxBv1ZHQ==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-docs": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.5.tgz", - "integrity": "sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==", - "dev": true, - "dependencies": { - "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.3.5", - "@storybook/csf-plugin": "8.3.5", - "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "8.3.5", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "fs-extra": "^11.1.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "rehype-external-links": "^3.0.0", - "rehype-slug": "^6.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-docs/node_modules/@storybook/csf-plugin": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.5.tgz", - "integrity": "sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==", - "dev": true, - "dependencies": { - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-docs/node_modules/@storybook/react-dom-shim": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.5.tgz", - "integrity": "sha512-Hf0UitJ/K0C7ajooooUK/PxOR4ihUWqsC7iCV1Gqth8U37dTeLMbaEO4PBwu0VQ+Ufg0N8BJLWfg7o6G4hrODw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-essentials": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.5.tgz", - "integrity": "sha512-hXTtPuN4/IsXjUrkMPAuz1qKAl8DovdXpjQgjQs7jSAVx3kc4BZaGqJ3gaVenKtO8uDchmA92BoQygpkc8eWhw==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "8.3.5", - "@storybook/addon-backgrounds": "8.3.5", - "@storybook/addon-controls": "8.3.5", - "@storybook/addon-docs": "8.3.5", - "@storybook/addon-highlight": "8.3.5", - "@storybook/addon-measure": "8.3.5", - "@storybook/addon-outline": "8.3.5", - "@storybook/addon-toolbars": "8.3.5", - "@storybook/addon-viewport": "8.3.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-highlight": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.5.tgz", - "integrity": "sha512-ku0epul9aReCR3Gv/emwYnsqg3vgux5OmYMjoDcJC7s+LyfweSzLV/f5t9gSHazikJElh5TehtVkWbC4QfbGSw==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-interactions": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.0.10", - "@storybook/test": "8.0.10", - "@storybook/types": "8.0.10", - "polished": "^4.2.2", - "ts-dedent": "^2.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/addon-links": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.4", - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-measure": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.5.tgz", - "integrity": "sha512-6GVehgbHhFIFS69xSfRV+12VK0cnuIAtZdp1J3eUCc2ATrcigqVjTM6wzZz6kBuX6O3dcusr7Wg46KtNliqLqg==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-onboarding": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/addon-outline": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.5.tgz", - "integrity": "sha512-dwmK6GzjEnQP9Yo0VnBUQtJkXZlXdfjWyskZ/IlUVc+IFdeeCtIiMyA92oMfHo8eXt0k1g21ZqMaIn7ZltOuHw==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-toolbars": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.5.tgz", - "integrity": "sha512-Ml2gc9q8WbteDvmuAZGgBxt5SqWMXzuTkMjlsA8EB53hlkN1w9esX4s8YtBeNqC3HKoUzcdq8uexSBqU8fDbSA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/addon-viewport": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.5.tgz", - "integrity": "sha512-FSWydoPiVWFXEittG7O1YgvuaqoU9Vb+qoq9XfP/hvQHHMDcMZvC40JaV8AnJeTXaM7ngIjcn9XDEfGbFfOzXw==", - "dev": true, - "dependencies": { - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.5" - } - }, - "node_modules/@storybook/blocks": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.5.tgz", - "integrity": "sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==", - "dev": true, - "dependencies": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.10", - "@types/lodash": "^4.14.167", - "color-convert": "^2.0.1", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.4.5", - "memoizerific": "^1.11.3", - "polished": "^4.2.2", - "react-colorful": "^5.1.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.5" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/builder-vite": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.0.10", - "@storybook/client-logger": "8.0.10", - "@storybook/core-common": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/csf-plugin": "8.0.10", - "@storybook/node-logger": "8.0.10", - "@storybook/preview": "8.0.10", - "@storybook/preview-api": "8.0.10", - "@storybook/types": "8.0.10", - "@types/find-cache-dir": "^3.2.1", - "browser-assert": "^1.2.1", - "es-module-lexer": "^0.9.3", - "express": "^4.17.3", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "magic-string": "^0.30.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@preact/preset-vite": "*", - "typescript": ">= 4.3.x", - "vite": "^4.0.0 || ^5.0.0", - "vite-plugin-glimmerx": "*" - }, - "peerDependenciesMeta": { - "@preact/preset-vite": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vite-plugin-glimmerx": { - "optional": true - } - } - }, - "node_modules/@storybook/channels": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/client-logger": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.5.tgz", - "integrity": "sha512-GOGfTvdioNa/n+Huwg4u/dsyYyBcM+gEcdxi3B7i5x4yJ3I912KoVshumQAOF2myKSRdI8h8aGWdx7nnjd0+5Q==", - "dev": true, - "dependencies": { - "@storybook/csf": "^0.1.11", - "@types/express": "^4.17.21", - "better-opn": "^3.0.2", - "browser-assert": "^1.2.1", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", - "esbuild-register": "^3.5.0", - "express": "^4.19.2", - "jsdoc-type-pratt-parser": "^4.0.0", - "process": "^0.11.10", - "recast": "^0.23.5", - "semver": "^7.6.2", - "util": "^0.12.5", - "ws": "^8.2.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-common": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-events": "8.0.10", - "@storybook/csf-tools": "8.0.10", - "@storybook/node-logger": "8.0.10", - "@storybook/types": "8.0.10", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "semver": "^7.3.7", - "tempy": "^1.0.1", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-common/node_modules/glob": { - "version": "10.3.15", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-common/node_modules/minipass": { - "version": "7.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@storybook/core-common/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-events": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", - "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", - "dev": true, - "dependencies": { - "type-fest": "^2.19.0" - } - }, - "node_modules/@storybook/csf-plugin": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf-tools": "8.0.10", - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-tools": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "@storybook/csf": "^0.1.4", - "@storybook/types": "8.0.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/docs-tools": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-common": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/preview-api": "8.0.10", - "@storybook/types": "8.0.10", - "@types/doctrine": "^0.0.3", - "assert": "^2.1.0", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/icons": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.12.tgz", - "integrity": "sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==", - "dev": true, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/instrumenter": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.0.10", - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.0.10", - "@vitest/utils": "^1.3.1", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/node-logger": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview-api": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.0.10", - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/csf": "^0.1.4", - "@storybook/global": "^5.0.0", - "@storybook/types": "8.0.10", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/react": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.0.10", - "@storybook/docs-tools": "8.0.10", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.0.10", - "@storybook/react-dom-shim": "8.0.10", - "@storybook/types": "8.0.10", - "@types/escodegen": "^0.0.6", - "@types/estree": "^0.0.51", - "@types/node": "^18.0.0", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "escodegen": "^2.1.0", - "html-tags": "^3.1.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^15.0.0", - "semver": "^7.3.7", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/react-dom-shim": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/react-vite": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", - "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.0.10", - "@storybook/node-logger": "8.0.10", - "@storybook/react": "8.0.10", - "find-up": "^5.0.0", - "magic-string": "^0.30.0", - "react-docgen": "^7.0.0", - "resolve": "^1.22.8", - "tsconfig-paths": "^4.2.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "vite": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/@storybook/react/node_modules/@types/estree": { - "version": "0.0.51", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/react/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@storybook/react/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/test": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/instrumenter": "8.0.10", - "@storybook/preview-api": "8.0.10", - "@testing-library/dom": "^9.3.4", - "@testing-library/jest-dom": "^6.4.2", - "@testing-library/user-event": "^14.5.2", - "@vitest/expect": "1.3.1", - "@vitest/spy": "^1.3.1", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/types": { - "version": "8.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.0.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@swc/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.4.tgz", - "integrity": "sha512-+wSycNxOw9QQz81AJAZlNS34EtOIifwUXMPACg05PWjECsjOKDTXLCVPx6J0lRaxhHSGBU2OYs9mRfIvxGt3CA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.12" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.4", - "@swc/core-darwin-x64": "1.7.4", - "@swc/core-linux-arm-gnueabihf": "1.7.4", - "@swc/core-linux-arm64-gnu": "1.7.4", - "@swc/core-linux-arm64-musl": "1.7.4", - "@swc/core-linux-x64-gnu": "1.7.4", - "@swc/core-linux-x64-musl": "1.7.4", - "@swc/core-win32-arm64-msvc": "1.7.4", - "@swc/core-win32-ia32-msvc": "1.7.4", - "@swc/core-win32-x64-msvc": "1.7.4" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.4.tgz", - "integrity": "sha512-RbWrdGh+x9xKFUA9/kPZRR8OPxUsDUuPyLjPIGLYZMO+ftht2vhVH7QsUq6lg+jAP34eIya72UA1isiZe+BRaA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.4.tgz", - "integrity": "sha512-TxCWMJs4OrqApjFuT8cUiqMz0zg97F0JsXBEeZ7zjkyv9XJ/rN2pdwqMlZv0Wv2C2rivOPo6FsWYlZ3V8ZHhyA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.4.tgz", - "integrity": "sha512-5IhwIJZAgkkfI6PqgQ3xk0/2hTAVsAczIPLiR2Epp30EgsNo1KIFL0ZHzrnvJPy5BZ3jy3T1dEbDE/memBOEmA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.4.tgz", - "integrity": "sha512-0787jri83jigf26mF8FndWehh7jqMaHwAm/OV6VdToyNo/g+d1AxVpkEizrywZK46el+AObnHUIHIHwZgO21LA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.4.tgz", - "integrity": "sha512-A45hGKWAGcjU5Ol0uQUoK0tHerwEKxfprYUZbmPLpD2yrpMZr+dTrwY2n075sixs7RuZEccBkgGNpehEe5BPBQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.4.tgz", - "integrity": "sha512-bcO1MpAm39TXqqHuYW4ox4vDvhB7jkguwMwxvmL+cKBGsUHrIoUTfGt9NM9N4D4CvOwULlxqbyt19veUJ7CVPw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.4.tgz", - "integrity": "sha512-N6nXuHyDO/q5kPN2xQxz5BEvhFpgnFSkP+9wxg5xWq+qIQL5bv37jk8dkKvMLx/8fHzTqrIjPDSRzVbcL7sqXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.4.tgz", - "integrity": "sha512-7W1owqCNR1cG+mpS55juiZlR/lrAdxB1pH32egeOipNKOLGwyqmlzQ0g9tkQTNgzwgfpCUg8z606+GqqXvajZw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.4.tgz", - "integrity": "sha512-saLkY+q7zNPk4gYiUBCc93FYPo4ECXMjHcSPtLVHoPZBIxRrklgaAf6aDpblBo30nVdoBE2V3YPd0Y/cPiY6RQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.4.tgz", - "integrity": "sha512-zKF6jpRBNuVKgOf2W5dMcPyjwcNCp21syjl9lvLRbCeIg+1U+zjdoQCAmMWWoPNE7fLg+yfvohnnOJG2AdzQ9Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true - }, - "node_modules/@swc/helpers": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", - "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@swc/helpers/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - }, - "node_modules/@swc/types": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", - "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", - "dev": true, - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@tailwindcss/container-queries": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", - "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.2.0" - } - }, - "node_modules/@tauri-apps/api": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.1.tgz", - "integrity": "sha512-eoQWT+Tq1qSwQpHV+nw1eNYe5B/nm1PoRjQCRiEOS12I1b+X4PUcREfXVX8dPcBT6GrzWGDtaecY0+1p0Rfqlw==", - "license": "Apache-2.0 OR MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - } - }, - "node_modules/@tauri-apps/cli": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.1.0.tgz", - "integrity": "sha512-K2VhcKqBhAeS5pNOVdnR/xQRU6jwpgmkSL2ejHXcl0m+kaTggT0WRDQnFtPq6NljA7aE03cvwsbCAoFG7vtkJw==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "bin": { - "tauri": "tauri.js" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - }, - "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "2.1.0", - "@tauri-apps/cli-darwin-x64": "2.1.0", - "@tauri-apps/cli-linux-arm-gnueabihf": "2.1.0", - "@tauri-apps/cli-linux-arm64-gnu": "2.1.0", - "@tauri-apps/cli-linux-arm64-musl": "2.1.0", - "@tauri-apps/cli-linux-x64-gnu": "2.1.0", - "@tauri-apps/cli-linux-x64-musl": "2.1.0", - "@tauri-apps/cli-win32-arm64-msvc": "2.1.0", - "@tauri-apps/cli-win32-ia32-msvc": "2.1.0", - "@tauri-apps/cli-win32-x64-msvc": "2.1.0" - } - }, - "node_modules/@tauri-apps/cli-darwin-arm64": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.1.0.tgz", - "integrity": "sha512-ESc6J6CE8hl1yKH2vJ+ALF+thq4Be+DM1mvmTyUCQObvezNCNhzfS6abIUd3ou4x5RGH51ouiANeT3wekU6dCw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-darwin-x64": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.1.0.tgz", - "integrity": "sha512-TasHS442DFs8cSH2eUQzuDBXUST4ECjCd0yyP+zZzvAruiB0Bg+c8A+I/EnqCvBQ2G2yvWLYG8q/LI7c87A5UA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.1.0.tgz", - "integrity": "sha512-aP7ZBGNL4ny07Cbb6kKpUOSrmhcIK2KhjviTzYlh+pPhAptxnC78xQGD3zKQkTi2WliJLPmBYbOHWWQa57lQ9w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-gnu": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.1.0.tgz", - "integrity": "sha512-ZTdgD5gLeMCzndMT2f358EkoYkZ5T+Qy6zPzU+l5vv5M7dHVN9ZmblNAYYXmoOuw7y+BY4X/rZvHV9pcGrcanQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-musl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.1.0.tgz", - "integrity": "sha512-NzwqjUCilhnhJzusz3d/0i0F1GFrwCQbkwR6yAHUxItESbsGYkZRJk0yMEWkg3PzFnyK4cWTlQJMEU52TjhEzA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-gnu": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.1.0.tgz", - "integrity": "sha512-TyiIpMEtZxNOQmuFyfJwaaYbg3movSthpBJLIdPlKxSAB2BW0VWLY3/ZfIxm/G2YGHyREkjJvimzYE0i37PnMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.1.0.tgz", - "integrity": "sha512-/dQd0TlaxBdJACrR72DhynWftzHDaX32eBtS5WBrNJ+nnNb+znM3gON6nJ9tSE9jgDa6n1v2BkI/oIDtypfUXw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-arm64-msvc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.1.0.tgz", - "integrity": "sha512-NdQJO7SmdYqOcE+JPU7bwg7+odfZMWO6g8xF9SXYCMdUzvM2Gv/AQfikNXz5yS7ralRhNFuW32i5dcHlxh4pDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-ia32-msvc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.1.0.tgz", - "integrity": "sha512-f5h8gKT/cB8s1ticFRUpNmHqkmaLutT62oFDB7N//2YTXnxst7EpMIn1w+QimxTvTk2gcx6EcW6bEk/y2hZGzg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-x64-msvc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.1.0.tgz", - "integrity": "sha512-P/+LrdSSb5Xbho1LRP4haBjFHdyPdjWvGgeopL96OVtrFpYnfC+RctB45z2V2XxqFk3HweDDxk266btjttfjGw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 OR MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/plugin-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.0.0.tgz", - "integrity": "sha512-glQmlL1IiCGEa1FHYa/PTPSeYhfu56omLRgHXWlJECDt6DbJyRuJWVgtkQfUxtqnVdYnnU+DGIGeiInoEqtjLw==", - "license": "MIT OR Apache-2.0", - "dependencies": { - "@tauri-apps/api": "^2.0.0" - } - }, - "node_modules/@testing-library/dom": { - "version": "9.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.4.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.3.2", - "@babel/runtime": "^7.9.2", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - }, - "peerDependencies": { - "@jest/globals": ">= 28", - "@types/bun": "latest", - "@types/jest": ">= 28", - "jest": ">= 28", - "vitest": ">= 0.32" - }, - "peerDependenciesMeta": { - "@jest/globals": { - "optional": true - }, - "@types/bun": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "jest": { - "optional": true - }, - "vitest": { - "optional": true - } - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/user-event": { - "version": "14.5.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/doctrine": { - "version": "0.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/emscripten": { - "version": "1.39.12", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/escodegen": { - "version": "0.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.21", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/find-cache-dir": { - "version": "3.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", - "dev": true - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "18.19.33", - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/resolve": { - "version": "1.20.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true - }, - "node_modules/@types/w3c-web-serial": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.20", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@swc/core": "^1.3.107" - }, - "peerDependencies": { - "vite": "^4 || ^5" - } - }, - "node_modules/@vitest/expect": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "1.3.1", - "@vitest/utils": "1.3.1", - "chai": "^4.3.10" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/expect/node_modules/@vitest/spy": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^2.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/expect/node_modules/@vitest/utils": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@vitest/expect/node_modules/estree-walker": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/@vitest/expect/node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@vitest/expect/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@vitest/spy": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^2.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@vitest/utils/node_modules/estree-walker": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/@vitest/utils/node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@vitest/utils/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@yarnpkg/fslib": { - "version": "2.10.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@yarnpkg/libzip": "^2.3.0", - "tslib": "^1.13.0" - }, - "engines": { - "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" - } - }, - "node_modules/@yarnpkg/libzip": { - "version": "2.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@types/emscripten": "^1.39.6", - "tslib": "^1.13.0" - }, - "engines": { - "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" - } - }, - "node_modules/@zmkfirmware/zmk-studio-ts-client": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@zmkfirmware/zmk-studio-ts-client/-/zmk-studio-ts-client-0.0.18.tgz", - "integrity": "sha512-S3NIkwL0zGOMZCf69Fy6LhhsC07clHoeAEx0JdMtNKfBfPTBIn0CYlkkUvrophAQwBpOQqEyw3gi7uc9WzuOCQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "async-mutex": "^0.5.0", - "protobufjs": "^7.3.2" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.3", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-dir": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.1.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/assert": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/ast-types": { - "version": "0.16.1", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ast-types/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, - "node_modules/async-mutex": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", - "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/async-mutex/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-assert": { - "version": "1.2.1", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.23.0", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001617", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "4.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chromatic": { - "version": "11.3.2", - "dev": true, - "license": "MIT", - "bin": { - "chroma": "dist/bin.js", - "chromatic": "dist/bin.js", - "chromatic-cli": "dist/bin.js" - }, - "peerDependencies": { - "@chromatic-com/cypress": "^0.*.* || ^1.0.0", - "@chromatic-com/playwright": "^0.*.* || ^1.0.0" - }, - "peerDependenciesMeta": { - "@chromatic-com/cypress": { - "optional": true - }, - "@chromatic-com/playwright": { - "optional": true - } - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "dev": true, - "license": "MIT" - }, - "node_modules/dotenv": { - "version": "16.4.5", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.765", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", - "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.20.2", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/esbuild-register": { - "version": "3.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "peerDependencies": { - "esbuild": ">=0.12 <1" - } - }, - "node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.7", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-plugin-storybook": { - "version": "0.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.0.1", - "@typescript-eslint/utils": "^5.62.0", - "requireindex": "^1.2.0", - "ts-dedent": "^2.2.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "eslint": ">=6" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { - "version": "0.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.17.1", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-system-cache": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fs-extra": "11.1.1", - "ramda": "0.29.0" - } - }, - "node_modules/file-system-cache/node_modules/fs-extra": { - "version": "11.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/filesize": { - "version": "10.1.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 10.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "dev": true - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-promise": { - "version": "4.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "^7.1.3" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/ahmadnassri" - }, - "peerDependencies": { - "glob": "^7.1.6" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.8", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-heading-rank": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", - "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-string": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", - "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/intl-messageformat": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", - "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "tslib": "^2.4.0" - } - }, - "node_modules/intl-messageformat/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", - "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-nan": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", - "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lazy-universal-dotenv": { - "version": "4.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "app-root-dir": "^1.0.2", - "dotenv": "^16.0.0", - "dotenv-expand": "^10.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.445.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.445.0.tgz", - "integrity": "sha512-YrLf3aAHvmd4dZ8ot+mMdNFrFpJD7YRwQ2pUcBhgqbmxtrMP4xDzIorcj+8y+6kpuXBF4JB0NOCTUWIYetJjgA==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/map-or-similar": { - "version": "1.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/markdown-to-jsx": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz", - "integrity": "sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==", - "dev": true, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memoizerific": { - "version": "1.11.3", - "dev": true, - "license": "MIT", - "dependencies": { - "map-or-similar": "^1.5.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/polished": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.17.8" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/ramda": { - "version": "0.29.0", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-aria": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.35.0.tgz", - "integrity": "sha512-cbbd3iIveLDRnpVrpc1iuz8OMlDdH6u8EjncW3MQuYOiEGaho9xcDtWMKiSEIZASEnd7LK4Rgm5iVPr2O+cssw==", - "dependencies": { - "@internationalized/string": "^3.2.4", - "@react-aria/breadcrumbs": "^3.5.17", - "@react-aria/button": "^3.10.0", - "@react-aria/calendar": "^3.5.12", - "@react-aria/checkbox": "^3.14.7", - "@react-aria/color": "^3.0.0", - "@react-aria/combobox": "^3.10.4", - "@react-aria/datepicker": "^3.11.3", - "@react-aria/dialog": "^3.5.18", - "@react-aria/dnd": "^3.7.3", - "@react-aria/focus": "^3.18.3", - "@react-aria/gridlist": "^3.9.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/link": "^3.7.5", - "@react-aria/listbox": "^3.13.4", - "@react-aria/menu": "^3.15.4", - "@react-aria/meter": "^3.4.17", - "@react-aria/numberfield": "^3.11.7", - "@react-aria/overlays": "^3.23.3", - "@react-aria/progress": "^3.4.17", - "@react-aria/radio": "^3.10.8", - "@react-aria/searchfield": "^3.7.9", - "@react-aria/select": "^3.14.10", - "@react-aria/selection": "^3.20.0", - "@react-aria/separator": "^3.4.3", - "@react-aria/slider": "^3.7.12", - "@react-aria/ssr": "^3.9.6", - "@react-aria/switch": "^3.6.8", - "@react-aria/table": "^3.15.4", - "@react-aria/tabs": "^3.9.6", - "@react-aria/tag": "^3.4.6", - "@react-aria/textfield": "^3.14.9", - "@react-aria/tooltip": "^3.7.8", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-types/shared": "^3.25.0" - }, - "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" - } - }, - "node_modules/react-aria-components": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.4.0.tgz", - "integrity": "sha512-CpeSeGI2FVT3hOzA28fhIGkrPPQPtz3gVHBfMWkXSuLUBaKFZQhdCLBXlpO5MoZV1RrC+e7mhOVREkw6DvlxKw==", - "dependencies": { - "@internationalized/date": "^3.5.6", - "@internationalized/string": "^3.2.4", - "@react-aria/accordion": "3.0.0-alpha.34", - "@react-aria/collections": "3.0.0-alpha.5", - "@react-aria/color": "^3.0.0", - "@react-aria/disclosure": "3.0.0-alpha.0", - "@react-aria/dnd": "^3.7.3", - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/menu": "^3.15.4", - "@react-aria/toolbar": "3.0.0-beta.9", - "@react-aria/tree": "3.0.0-beta.0", - "@react-aria/utils": "^3.25.3", - "@react-aria/virtualizer": "^4.0.3", - "@react-stately/color": "^3.8.0", - "@react-stately/disclosure": "3.0.0-alpha.0", - "@react-stately/layout": "^4.0.3", - "@react-stately/menu": "^3.8.3", - "@react-stately/table": "^3.12.3", - "@react-stately/utils": "^3.10.4", - "@react-stately/virtualizer": "^4.1.0", - "@react-types/color": "^3.0.0", - "@react-types/form": "^3.7.7", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "react-aria": "^3.35.0", - "react-stately": "^3.33.0", - "use-sync-external-store": "^1.2.0" - }, - "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" - } - }, - "node_modules/react-colorful": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", - "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", - "dev": true, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-confetti": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tween-functions": "^1.2.0" - }, - "engines": { - "node": ">=10.18" - }, - "peerDependencies": { - "react": "^16.3.0 || ^17.0.1 || ^18.0.0" - } - }, - "node_modules/react-docgen": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.18.9", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", - "@types/babel__core": "^7.18.0", - "@types/babel__traverse": "^7.18.0", - "@types/doctrine": "^0.0.9", - "@types/resolve": "^1.20.2", - "doctrine": "^3.0.0", - "resolve": "^1.22.1", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=16.14.0" - } - }, - "node_modules/react-docgen-typescript": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "typescript": ">= 4.3.x" - } - }, - "node_modules/react-docgen/node_modules/@types/doctrine": { - "version": "0.0.9", - "dev": true, - "license": "MIT" - }, - "node_modules/react-dom": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-element-to-jsx-string": { - "version": "15.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@base2/pretty-print-object": "1.0.1", - "is-plain-object": "5.0.0", - "react-is": "18.1.0" - }, - "peerDependencies": { - "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0", - "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0" - } - }, - "node_modules/react-element-to-jsx-string/node_modules/react-is": { - "version": "18.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/react-stately": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.33.0.tgz", - "integrity": "sha512-DNPOxYAPuhuXwSuE1s1K7iSgqG2QOBUZq3bsLAd4gUUZje6Qepkhe7TzK2LWarQYAZ3gC9Xhmnz8ie1fdCo0GA==", - "dependencies": { - "@react-stately/calendar": "^3.5.5", - "@react-stately/checkbox": "^3.6.9", - "@react-stately/collections": "^3.11.0", - "@react-stately/color": "^3.8.0", - "@react-stately/combobox": "^3.10.0", - "@react-stately/data": "^3.11.7", - "@react-stately/datepicker": "^3.10.3", - "@react-stately/dnd": "^3.4.3", - "@react-stately/form": "^3.0.6", - "@react-stately/list": "^3.11.0", - "@react-stately/menu": "^3.8.3", - "@react-stately/numberfield": "^3.9.7", - "@react-stately/overlays": "^3.6.11", - "@react-stately/radio": "^3.10.8", - "@react-stately/searchfield": "^3.5.7", - "@react-stately/select": "^3.6.8", - "@react-stately/selection": "^3.17.0", - "@react-stately/slider": "^3.5.8", - "@react-stately/table": "^3.12.3", - "@react-stately/tabs": "^3.6.10", - "@react-stately/toggle": "^3.7.8", - "@react-stately/tooltip": "^3.4.13", - "@react-stately/tree": "^3.8.5", - "@react-types/shared": "^3.25.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recast": { - "version": "0.23.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/recast/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, - "node_modules/redent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redent/node_modules/strip-indent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rehype-external-links": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", - "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-is-element": "^3.0.0", - "is-absolute-url": "^4.0.0", - "space-separated-tokens": "^2.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.0", - "github-slugger": "^2.0.0", - "hast-util-heading-rank": "^3.0.0", - "hast-util-to-string": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/requireindex": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", - "dev": true, - "bin": { - "run-os": "index.js", - "run-script-os": "index.js" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scheduler": { - "version": "0.23.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.6.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/storybook": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.3.5.tgz", - "integrity": "sha512-hYQVtP2l+3kO8oKDn4fjXXQYxgTRsj/LaV6lUMJH0zt+OhVmDXKJLxmdUP4ieTm0T8wEbSYosFavgPcQZlxRfw==", - "dev": true, - "dependencies": { - "@storybook/core": "8.3.5" - }, - "bin": { - "getstorybook": "bin/index.cjs", - "sb": "bin/index.cjs", - "storybook": "bin/index.cjs" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/sucrase/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss-react-aria-components": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tailwindcss-react-aria-components/-/tailwindcss-react-aria-components-1.1.3.tgz", - "integrity": "sha512-j852nEhbvD7/zxpNI7hY+6mYm//2zSKuPPq3NNohMi+/nA0hxjaJGg0LYEPzumn/efNT0Itrq+/TMD+r/m1EqA==", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/telejson": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "memoizerific": "^1.11.3" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyspy": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.10" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tween-functions": { - "version": "1.2.0", - "dev": true, - "license": "BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "5.4.5", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "license": "MIT" - }, - "node_modules/unique-string": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unplugin": { - "version": "1.10.1", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.3", - "chokidar": "^3.6.0", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.6.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.15", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util": { - "version": "0.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.1", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@adobe/css-tools": { - "version": "4.3.3", - "dev": true - }, - "@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" - }, - "@ampproject/remapping": { - "version": "2.3.0", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@babel/code-frame": { - "version": "7.24.2", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.4", - "dev": true - }, - "@babel/core": { - "version": "7.24.5", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/types": "^7.24.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/types": "^7.24.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/types": "^7.24.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.24.5", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "dev": true - }, - "@babel/helpers": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" - } - }, - "@babel/highlight": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.24.5", - "dev": true - }, - "@babel/runtime": { - "version": "7.24.5", - "dev": true, - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@babel/template": { - "version": "7.24.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/traverse": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.24.5", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" - } - }, - "@base2/pretty-print-object": { - "version": "1.0.1", - "dev": true - }, - "@chromatic-com/storybook": { - "version": "1.3.5", - "dev": true, - "requires": { - "chromatic": "^11.3.2", - "filesize": "^10.0.12", - "jsonfile": "^6.1.0", - "react-confetti": "^6.1.0", - "strip-ansi": "^7.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.20.2", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@eslint/js": { - "version": "8.57.0", - "dev": true - }, - "@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", - "requires": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "@formatjs/icu-messageformat-parser": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", - "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-skeleton-parser": "1.8.2", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "@formatjs/icu-skeleton-parser": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", - "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz", - "integrity": "sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ==" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz", - "integrity": "sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g==", - "requires": { - "@fortawesome/fontawesome-common-types": "6.7.1" - } - }, - "@fortawesome/free-brands-svg-icons": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.1.tgz", - "integrity": "sha512-nJR76eqPzCnMyhbiGf6X0aclDirZriTPRcFm1YFvuupyJOGwlNF022w3YBqu+yrHRhnKRpzFX+8wJKqiIjWZkA==", - "requires": { - "@fortawesome/fontawesome-common-types": "6.7.1" - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", - "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", - "requires": { - "prop-types": "^15.8.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.3", - "dev": true - }, - "@internationalized/date": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", - "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@internationalized/message": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.5.tgz", - "integrity": "sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==", - "requires": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "@internationalized/number": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", - "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@internationalized/string": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.4.tgz", - "integrity": "sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@isaacs/cliui": { - "version": "8.0.2", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1" - }, - "emoji-regex": { - "version": "9.2.2" - }, - "string-width": { - "version": "5.1.2", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "@jest/schemas": { - "version": "29.6.3", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.27.8" - } - }, - "@joshwooding/vite-plugin-react-docgen-typescript": { - "version": "0.3.0", - "dev": true, - "requires": { - "glob": "^7.2.0", - "glob-promise": "^4.2.0", - "magic-string": "^0.27.0", - "react-docgen-typescript": "^2.2.2" - }, - "dependencies": { - "magic-string": { - "version": "0.27.0", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.2" - }, - "@jridgewell/set-array": { - "version": "1.2.1" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@mdx-js/react": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", - "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", - "dev": true, - "requires": { - "@types/mdx": "^2.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "optional": true - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@react-aria/accordion": { - "version": "3.0.0-alpha.34", - "resolved": "https://registry.npmjs.org/@react-aria/accordion/-/accordion-3.0.0-alpha.34.tgz", - "integrity": "sha512-3Qoj3StyQbdTYvAXVIbAIk11WtRyo3cdgn6OgwPAvN6c1r8R7X/J9DHTykZRrlF6TOGcdE0H0yrmPrlG92ObmA==", - "requires": { - "@react-aria/button": "^3.10.0", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/tree": "^3.8.5", - "@react-types/accordion": "3.0.0-alpha.24", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/breadcrumbs": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.17.tgz", - "integrity": "sha512-LJQ+u3TbPmtAWZ3/qC6VfLCzXiwVoB6GmI+HJ2pbjs6H9L8MoiLHsA4mgcz+P0rvx7SCs0Rhvy4JurV6R/R4xw==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/link": "^3.7.5", - "@react-aria/utils": "^3.25.3", - "@react-types/breadcrumbs": "^3.7.8", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/button": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.10.0.tgz", - "integrity": "sha512-mhbn2tEsr991sjG6YMH6oN3ELWb4YvZZ8mnZHMNLa3l8T00PV0ClvQBsUndo6uSvuTHhpFzmMMkJFhYYUwCKlw==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/toggle": "^3.7.8", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/calendar": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.12.tgz", - "integrity": "sha512-C8VRjRwEVPaGoCtjOlC0lb3mVSz4ajbal8jfvcbp7LOqCcmOVTUbiM7EPTy60EfZRanFNSp2D1ZstEZDU+cqsg==", - "requires": { - "@internationalized/date": "^3.5.6", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/calendar": "^3.5.5", - "@react-types/button": "^3.10.0", - "@react-types/calendar": "^3.4.10", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/checkbox": { - "version": "3.14.7", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.7.tgz", - "integrity": "sha512-aqVxXcr/8P7pQ7R34DlJX2SdBvWtHof9lLTVBY/9tgMplcKIoVBdlVUYPtqWxT3tGan+rruPQHbzTx8zJRFJyg==", - "requires": { - "@react-aria/form": "^3.0.9", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/toggle": "^3.10.8", - "@react-aria/utils": "^3.25.3", - "@react-stately/checkbox": "^3.6.9", - "@react-stately/form": "^3.0.6", - "@react-stately/toggle": "^3.7.8", - "@react-types/checkbox": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/collections": { - "version": "3.0.0-alpha.5", - "resolved": "https://registry.npmjs.org/@react-aria/collections/-/collections-3.0.0-alpha.5.tgz", - "integrity": "sha512-8m8yZe1c5PYCylEN4lcG3ZL/1nyrON95nVsoknC8shY1uKP01oJd7w+f6hvVza0tJRQuVe4zW3gO4FVjv33a5g==", - "requires": { - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "use-sync-external-store": "^1.2.0" - } - }, - "@react-aria/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.0.0.tgz", - "integrity": "sha512-IwHI4e2fUHUOZHRrL2MsxGZFp/RCR2cLjm39gT41jVSuH4zjxueUf96NDm6c7FD0mB5vfk0jo+KJMnShL1a2rg==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/numberfield": "^3.11.7", - "@react-aria/slider": "^3.7.12", - "@react-aria/spinbutton": "^3.6.9", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/color": "^3.8.0", - "@react-stately/form": "^3.0.6", - "@react-types/color": "^3.0.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/combobox": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.10.4.tgz", - "integrity": "sha512-jzLyRwpwH5SCfQl5giLSwLaw9EKlRiMG39kDZLRB4MQ1MN4sIdIP2TXBbdYcSLtYjduJm2JfRvs2ezI+QI+umA==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/listbox": "^3.13.4", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/menu": "^3.15.4", - "@react-aria/overlays": "^3.23.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/combobox": "^3.10.0", - "@react-stately/form": "^3.0.6", - "@react-types/button": "^3.10.0", - "@react-types/combobox": "^3.13.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/datepicker": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.11.3.tgz", - "integrity": "sha512-HwGxDctFry5ew3Cu7gWpUVodaCg//V6NCihSRjLvnW/TWG+UFLzTafxTqqm8eRbicT3DJlXCLOUPk8Ek0txW6A==", - "requires": { - "@internationalized/date": "^3.5.6", - "@internationalized/number": "^3.5.4", - "@internationalized/string": "^3.2.4", - "@react-aria/focus": "^3.18.3", - "@react-aria/form": "^3.0.9", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/spinbutton": "^3.6.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/datepicker": "^3.10.3", - "@react-stately/form": "^3.0.6", - "@react-types/button": "^3.10.0", - "@react-types/calendar": "^3.4.10", - "@react-types/datepicker": "^3.8.3", - "@react-types/dialog": "^3.5.13", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/dialog": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.18.tgz", - "integrity": "sha512-j0x0OwDZKyW2GqBZl2Dw/pHl0uSCzhHOg5jNeulkZC8xQa8COuksQf5NFzPmgRPnzqpbgvSzCSs41ymS8spmFg==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/overlays": "^3.23.3", - "@react-aria/utils": "^3.25.3", - "@react-types/dialog": "^3.5.13", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/disclosure": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@react-aria/disclosure/-/disclosure-3.0.0-alpha.0.tgz", - "integrity": "sha512-/tleriRORdkRJf2JXjiRfhLfXA5WY0nPT3DoodZJgD5Fj/aCjrWXarVGUQuEk9vsH5pwinQiQB5So+cA+xF+UQ==", - "requires": { - "@react-aria/button": "^3.10.0", - "@react-aria/selection": "^3.20.0", - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-stately/disclosure": "3.0.0-alpha.0", - "@react-stately/toggle": "^3.7.8", - "@react-stately/tree": "^3.8.5", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/dnd": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.7.3.tgz", - "integrity": "sha512-SF7v1AzpXr4CSf98pSzjcSBCaezpP6rsSnSJTz0j2jrYfdQhX0MPA2lyxS+kgU1AEzkK19THQeHuj8hxQc0bVw==", - "requires": { - "@internationalized/string": "^3.2.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/overlays": "^3.23.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/dnd": "^3.4.3", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/focus": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.3.tgz", - "integrity": "sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==", - "requires": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-aria/form": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.9.tgz", - "integrity": "sha512-9M6IfC5t47G19c8roHWnkKd275BrECTzyTsc4rzf5OepJfHfG4evST6x+4gGOFYi8soC9XoQdJl4TRh/mft+gw==", - "requires": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/form": "^3.0.6", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/grid": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.10.4.tgz", - "integrity": "sha512-3AjJ0hwRhOCIHThIZrGWrjAuKDpaZuBkODW3dvgLqtsNm3tL46DI6U9O3vfp8lNbrWMsXJgjRXwvXvdv0/gwCA==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/grid": "^3.9.3", - "@react-stately/selection": "^3.17.0", - "@react-types/checkbox": "^3.8.4", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/gridlist": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.9.4.tgz", - "integrity": "sha512-gGzS4ToSynn2KBycf9UCsWIJIbVl4RjoCjPF4NnukwzHmrXwbtZnlF0xsORQ5QxfqHH9UehTAHWFvOOHJSZZ2w==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/grid": "^3.10.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/list": "^3.11.0", - "@react-stately/tree": "^3.8.5", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/i18n": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.3.tgz", - "integrity": "sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==", - "requires": { - "@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-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/interactions": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.3.tgz", - "integrity": "sha512-RRUb/aG+P0IKTIWikY/SylB6bIbLZeztnZY2vbe7RAG5MgVaCgn5HQ45SI15GlTmhsFG8CnF6slJsUFJiNHpbQ==", - "requires": { - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/label": { - "version": "3.7.12", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.12.tgz", - "integrity": "sha512-u9xT90lAlgb7xiv+p0md9QwCHz65XL7tjS5e29e88Rs3ptkv3aQubTqxVOUTEwzbNUT4A1QqTjUm1yfHewIRUw==", - "requires": { - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/link": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.5.tgz", - "integrity": "sha512-j0F1BIdNoE7Tl+0KzzjbrmYuxt4aWAmDZDHvJKiYg71Jb1BAPz71eE1O1ybMoO04+OG/6HrRZTragfSQLAJ58A==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/link": "^3.5.8", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/listbox": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.13.4.tgz", - "integrity": "sha512-2aG4jzlB+srYBeM9ap/BNZe0E04yMjY2dPGXcigkaSJt6/yYAHCygXuouf2MzvBfkdV4QWyHIIgWZmAXXl6reg==", - "requires": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/list": "^3.11.0", - "@react-types/listbox": "^3.5.2", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/live-announcer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.0.tgz", - "integrity": "sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/menu": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.15.4.tgz", - "integrity": "sha512-4wfq8Lb7AltgSzBHdtypiPOnsRm8hHv7PUuHhlq/VT9yAkEFk4Flc7vKVF6VSFqrnCfyCf66B5aeapjNInAONg==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/overlays": "^3.23.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/collections": "^3.11.0", - "@react-stately/menu": "^3.8.3", - "@react-stately/tree": "^3.8.5", - "@react-types/button": "^3.10.0", - "@react-types/menu": "^3.9.12", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/meter": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.17.tgz", - "integrity": "sha512-08wbQhfvVWzpWilhn/WD7cQ7TqafS/66umTk7+X6BW6TrS1//6loNNJV62IC3F7sskel4iEAtl2gW0WpW8zEdg==", - "requires": { - "@react-aria/progress": "^3.4.17", - "@react-types/meter": "^3.4.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/numberfield": { - "version": "3.11.7", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.7.tgz", - "integrity": "sha512-9bqg4sKqc5XLppHzJFRhgtkoeMu0N6Zg0AuVSiE/3CxE5Ad+y8tKpFEx9zh4o5BItyOWy18w5ZXnKjJGjd7waQ==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/spinbutton": "^3.6.9", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/form": "^3.0.6", - "@react-stately/numberfield": "^3.9.7", - "@react-types/button": "^3.10.0", - "@react-types/numberfield": "^3.8.6", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/overlays": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.23.3.tgz", - "integrity": "sha512-vRW4DL466a27BBIP6dQqmmei4nX/nsur6DyF0Hmd46ygwOdvdA+5MwvXZUz9yUamB79UeS9BMQZuBVwhjoMwBQ==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/overlays": "^3.6.11", - "@react-types/button": "^3.10.0", - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/progress": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.17.tgz", - "integrity": "sha512-5+01WNibLoNS5KcfU5p6vg7Lhz17plqqzv/uITx28zzj3saaj0VLR7n57Ig2fXe8ZEQoUS89BS3sIEsIf96S1A==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-types/progress": "^3.5.7", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/radio": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.8.tgz", - "integrity": "sha512-/vKQhKqpoCB/VqHuc46OOU+31HFtg6svcYzHBbz0wN/DSVCygYeTfB/36kY7x2GWWkT0pCsB4OcHJ+/0G3EfkQ==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/form": "^3.0.9", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-stately/radio": "^3.10.8", - "@react-types/radio": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/searchfield": { - "version": "3.7.9", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.9.tgz", - "integrity": "sha512-EHODG7HDFthwG5tx4fh+WP2hjNOp/rPAqdNScKBAN73nEf0F/qQpIwmdZF0EycCOzGSM5hhihjm0yMtTFYuzOQ==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/textfield": "^3.14.9", - "@react-aria/utils": "^3.25.3", - "@react-stately/searchfield": "^3.5.7", - "@react-types/button": "^3.10.0", - "@react-types/searchfield": "^3.5.9", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/select": { - "version": "3.14.10", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.10.tgz", - "integrity": "sha512-xHkAJqvfKgnH5mVYwZj3ME7/Q3wUzgUZDK/iVuXUs3cAYap8ybM2d/2zOGcqv1keZHBUzwp9QtaN//FYK13jIA==", - "requires": { - "@react-aria/form": "^3.0.9", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/listbox": "^3.13.4", - "@react-aria/menu": "^3.15.4", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/select": "^3.6.8", - "@react-types/button": "^3.10.0", - "@react-types/select": "^3.9.7", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/selection": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.20.0.tgz", - "integrity": "sha512-h3giMcXo4SMZRL5HrqZvOLNTsdh5jCXwLUx0wpj/2EF0tcYQL6WDfn1iJ+rHARkUIs7X70fUV8iwlbUySZy1xg==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/selection": "^3.17.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/separator": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.3.tgz", - "integrity": "sha512-L+eCmSGfRJ9jScHZqBkmOkp44LBARisDjRdYbGrLlsAEcOiHUXufnfpxz2rgkUGBdUgnI9hIk12q5kdy0UxGjg==", - "requires": { - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/slider": { - "version": "3.7.12", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.12.tgz", - "integrity": "sha512-yZWBGxDHBL5Gjjdnz+igdO7VfYND9iZsSqynadZthWtfy1jA+qBR25I+Soc0D9gkr/2/JUJkFgkllYF1RzWMUQ==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-stately/slider": "^3.5.8", - "@react-types/shared": "^3.25.0", - "@react-types/slider": "^3.7.6", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/spinbutton": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.9.tgz", - "integrity": "sha512-m+uVJdiIc2LrLVDGjU7p8P2O2gUvTN26GR+NgH4rl+tUSuAB0+T1rjls/C+oXEqQjCpQihEB9Bt4M+VHpzmyjA==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/utils": "^3.25.3", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/ssr": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.6.tgz", - "integrity": "sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/switch": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.8.tgz", - "integrity": "sha512-6Q0w7o+liB0ztKPL9UaRfX+hPPuy71AL3SuVCMK7RKfPqZwcmlwUDp2gr3j5fvs8gLev0r42XtEBqmGwkHTkEw==", - "requires": { - "@react-aria/toggle": "^3.10.8", - "@react-stately/toggle": "^3.7.8", - "@react-types/shared": "^3.25.0", - "@react-types/switch": "^3.5.6", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/table": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.15.4.tgz", - "integrity": "sha512-t4+vtUF63i6OrXmZ0AA/RmWyIt8cieUm7cSXhQMooAgUjkvVqTNkQQRsntVOb+UNI5KmiGSe4jB3H4GVXz2X9w==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/grid": "^3.10.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/collections": "^3.11.0", - "@react-stately/flags": "^3.0.4", - "@react-stately/table": "^3.12.3", - "@react-types/checkbox": "^3.8.4", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tabs": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.6.tgz", - "integrity": "sha512-iPQ2Im+srnSB06xIdVNHZZDJnZmUR0IG0MZAp6FXmbkCeLAd9tZQHgSFYwswBfgAStNnyFQHP5aSBJOJMRCACg==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/tabs": "^3.6.10", - "@react-types/shared": "^3.25.0", - "@react-types/tabs": "^3.3.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tag": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.4.6.tgz", - "integrity": "sha512-Uf1sPabwJx99diyXJTaVguiYozS49opjQxmK1PPbb87ipNN1YlSDVbP05IelVMbnbxXHudsRmzPOBmmblcj1GQ==", - "requires": { - "@react-aria/gridlist": "^3.9.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/list": "^3.11.0", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/textfield": { - "version": "3.14.9", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.9.tgz", - "integrity": "sha512-LPwZhthDVLyvnzXWco4eyYCD2pFmQ4Vw9ha9tb3QkZUIP6j8E52y76j0c59Nq7XYus3IHatVe7yYQk7kbo8Zrg==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/form": "^3.0.9", - "@react-aria/label": "^3.7.12", - "@react-aria/utils": "^3.25.3", - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@react-types/textfield": "^3.9.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/toggle": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.8.tgz", - "integrity": "sha512-N6WTgE8ByMYY+ZygUUPGON2vW5NrxwU91H98+Nozl+Rq6ZYR2fD9i8oRtLtrYPxjU2HmaFwDyQdWvmMJZuDxig==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/toggle": "^3.7.8", - "@react-types/checkbox": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/toolbar": { - "version": "3.0.0-beta.9", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.9.tgz", - "integrity": "sha512-P80zgbPb0aIg22fHlgHRXXUSpNSAOnh1ljsLiSHAGdXPrC5nRijYwwKi7DNRsXqD+ljEJwF6ekZPo95dXXeYAA==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tooltip": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.8.tgz", - "integrity": "sha512-dlWfS3w8E6dw5Xoist4cVX2GQE5oh3VQr88dRyLto7BAPLFrp3I+8c9mZCVUobLS/f5QcQzLkqw750s4ENCyiw==", - "requires": { - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/tooltip": "^3.4.13", - "@react-types/shared": "^3.25.0", - "@react-types/tooltip": "^3.4.12", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tree": { - "version": "3.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@react-aria/tree/-/tree-3.0.0-beta.0.tgz", - "integrity": "sha512-bF9sp7x+Ciy0N2KJwy8epmDoNblyVmeB4vR/KWLVIKMjANCpzTbvhWZUBpQxkpO0eupInU2uN+FMNr0WKMyd7Q==", - "requires": { - "@react-aria/gridlist": "^3.9.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/selection": "^3.20.0", - "@react-aria/utils": "^3.25.3", - "@react-stately/tree": "^3.8.5", - "@react-types/button": "^3.10.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/utils": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", - "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", - "requires": { - "@react-aria/ssr": "^3.9.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-aria/virtualizer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-4.0.3.tgz", - "integrity": "sha512-neSf+EXtqmQiccHcp9CS2RbH3xA6FuZggLzGsM1NoqDdXIL7TLfc7lhaqi8VAZ03e1FCUSye08BCRk3DdpUiyA==", - "requires": { - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-stately/virtualizer": "^4.1.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/visually-hidden": { - "version": "3.8.16", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.16.tgz", - "integrity": "sha512-3zThVIzEprez4A/GajOut6/JQ4WCu2ROHGZ1xH1+2GFjBJQaTfPBIjg6UIwaT7sgHRQIik8QidogLqXHbp81yA==", - "requires": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/calendar": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.5.tgz", - "integrity": "sha512-HzaiDRhrmaYIly8hRsjjIrydLkldiw1Ws6T/130NLQOt+VPwRW/x0R+nil42mA9LZ6oV0XN0NpmG5tn7TaKRGw==", - "requires": { - "@internationalized/date": "^3.5.6", - "@react-stately/utils": "^3.10.4", - "@react-types/calendar": "^3.4.10", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/checkbox": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.9.tgz", - "integrity": "sha512-JrY3ecnK/SSJPxw+qhGhg3YV4e0CpUcPDrVwY3mSiAE932DPd19xr+qVCknJ34H7JYYt/q0l2z0lmgPnl96RTg==", - "requires": { - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/checkbox": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/collections": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.11.0.tgz", - "integrity": "sha512-TiJeJjHMPSbbeAhmCXLJNSCk0fa5XnCvEuYw6HtQzDnYiq1AD7KAwkpjC5NfKkjqF3FLXs/v9RDm/P69q6rYzw==", - "requires": { - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/color": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.8.0.tgz", - "integrity": "sha512-lBH91HEStZeayhE/FkDMt9WC0UISQiAn8DoD2hfpTGeeWscX/soyxZA7oVL7zBOG9RfDBMNzF+CybVROrWSKAQ==", - "requires": { - "@internationalized/number": "^3.5.4", - "@internationalized/string": "^3.2.4", - "@react-aria/i18n": "^3.12.3", - "@react-stately/form": "^3.0.6", - "@react-stately/numberfield": "^3.9.7", - "@react-stately/slider": "^3.5.8", - "@react-stately/utils": "^3.10.4", - "@react-types/color": "^3.0.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/combobox": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.0.tgz", - "integrity": "sha512-4W4HCCjjoddW/LZM3pSSeLoV7ncYXlaICKmqlBcbtLR5jY4U5Kx+pPpy3oJ1vCdjDHatIxZ0tVKEBP7vBQVeGQ==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/form": "^3.0.6", - "@react-stately/list": "^3.11.0", - "@react-stately/overlays": "^3.6.11", - "@react-stately/select": "^3.6.8", - "@react-stately/utils": "^3.10.4", - "@react-types/combobox": "^3.13.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/data": { - "version": "3.11.7", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.7.tgz", - "integrity": "sha512-2YJ+Lmca18f/h7jiZiU9j2IhBJl6BFO1BWlwvcCAH/eCWTdveX8gzsUdW++0szzpJaoCilTCYoi8z7QWyVH9jQ==", - "requires": { - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/datepicker": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.10.3.tgz", - "integrity": "sha512-6PJW1QMwk6BQMktV9L6DA4f2rfAdLfbq3iTNLy4qxd5IfNPLMUZiJGGTj+cuqx0WcEl+q5irp+YhKBpbmhPZHg==", - "requires": { - "@internationalized/date": "^3.5.6", - "@internationalized/string": "^3.2.4", - "@react-stately/form": "^3.0.6", - "@react-stately/overlays": "^3.6.11", - "@react-stately/utils": "^3.10.4", - "@react-types/datepicker": "^3.8.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/disclosure": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@react-stately/disclosure/-/disclosure-3.0.0-alpha.0.tgz", - "integrity": "sha512-CbFUrEwhsP5+44PMHipn/Cd61VTvqyKmx1yeNDyvj/4bYhmxYLgQp/Ma+iEqe23JkXJh2JO/ws3l9FnebScCJQ==", - "requires": { - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/dnd": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.4.3.tgz", - "integrity": "sha512-sUvhmMxFEw6P2MW7walx0ntakIihxdPxA06K9YZ3+ReaUvzQuRw5cFDaTTHrlegWRMYD0CyQaKlGIaTQihhvVA==", - "requires": { - "@react-stately/selection": "^3.17.0", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/flags": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.4.tgz", - "integrity": "sha512-RNJEkOALwKg+JeYsfNlfPc4GXm7hiBLX0yuHOkRapWEyDOfi0cinkV/TZG4goOZdQ5tBpHmemf2qqiHAxqHlzQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/form": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.6.tgz", - "integrity": "sha512-KMsxm3/V0iCv/6ikt4JEjVM3LW2AgCzo7aNotMzRobtwIo0RwaUo7DQNY00rGgFQ3/IjzI6DcVo13D+AVE/zXg==", - "requires": { - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/grid": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.3.tgz", - "integrity": "sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/selection": "^3.17.0", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/layout": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-4.0.3.tgz", - "integrity": "sha512-zFLXnPalWWVCdFGcPAb+nywSTz/xAnKRxb7zT+YDa5U80DHArDGKZcQ+by0+2Sf8yaYolROco4my+BERPXJB6A==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/table": "^3.12.3", - "@react-stately/virtualizer": "^4.1.0", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/list": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.11.0.tgz", - "integrity": "sha512-O+BxXcbtoLZWn4QIT54RoFUaM+QaJQm6s0ZBJ3Jv4ILIhukVOc55ra+aWMVlXFQSpbf6I3hyVP6cz1yyvd5Rtw==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/selection": "^3.17.0", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/menu": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.8.3.tgz", - "integrity": "sha512-sV63V+cMgzipx/N7dq5GaXoItfXIfFEpCtlk3PM2vKstlCJalszXrdo+x996bkeU96h0plB7znAlhlXOeTKzUg==", - "requires": { - "@react-stately/overlays": "^3.6.11", - "@react-types/menu": "^3.9.12", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/numberfield": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.7.tgz", - "integrity": "sha512-PjSgCCpYasGCEAznFQNqa2JhhEQ5+/2eMiV7ZI5j76q3edTNF8G5OOCl2RazDbzFp6vDAnRVT7Kctx5Tl5R/Zw==", - "requires": { - "@internationalized/number": "^3.5.4", - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/numberfield": "^3.8.6", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/overlays": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.11.tgz", - "integrity": "sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==", - "requires": { - "@react-stately/utils": "^3.10.4", - "@react-types/overlays": "^3.8.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/radio": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.8.tgz", - "integrity": "sha512-VRq6Gzsbk3jzX6hdrSoDoSra9vLRsOi2pLkvW/CMrJ0GSgMwr8jjvJKnNFvYJ3eYQb20EwkarsOAfk7vPSIt/Q==", - "requires": { - "@react-stately/form": "^3.0.6", - "@react-stately/utils": "^3.10.4", - "@react-types/radio": "^3.8.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/searchfield": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.7.tgz", - "integrity": "sha512-VxEG4tWDypdXQ8f7clZBu5Qmc4osqDBeA/gNMA2i1j/h2zRVcCJ0fRCHuDeXLSWBqF1XXAI4TWV53fBBwJusbg==", - "requires": { - "@react-stately/utils": "^3.10.4", - "@react-types/searchfield": "^3.5.9", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/select": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.8.tgz", - "integrity": "sha512-fLAVzGeYSdYdBdrEVws6Pb1ywFPdapA0eWphoW5s3fS0/pKcVWwbCHeHlaBEi1ISyqEubQZFGQdeFKm/M46Hew==", - "requires": { - "@react-stately/form": "^3.0.6", - "@react-stately/list": "^3.11.0", - "@react-stately/overlays": "^3.6.11", - "@react-types/select": "^3.9.7", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/selection": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.17.0.tgz", - "integrity": "sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/slider": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.8.tgz", - "integrity": "sha512-EDgbrxMq1w3+XTN72MGl3YtAG/j65EYX1Uc3Fh56K00+inJbTdRWyYTrb3NA310fXCd0WFBbzExuH2ohlKQycg==", - "requires": { - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@react-types/slider": "^3.7.6", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/table": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.12.3.tgz", - "integrity": "sha512-8uGrLcNJYeMbFtzRQZFWCBj5kV+7v3jzwoKIL1j9TmYUKow1PTDMQbPJpAZLQhnC2wVMlaFVgDbedSlbBij7Zg==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/flags": "^3.0.4", - "@react-stately/grid": "^3.9.3", - "@react-stately/selection": "^3.17.0", - "@react-stately/utils": "^3.10.4", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tabs": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.10.tgz", - "integrity": "sha512-F7wfoiNsrBy7c02AYHyE1USGgj05HQ0hp7uXmQjp2LEa+AA0NKKi3HdswTHHySxb0ZRuoEE7E7vp/gXQYx2/Ow==", - "requires": { - "@react-stately/list": "^3.11.0", - "@react-types/shared": "^3.25.0", - "@react-types/tabs": "^3.3.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/toggle": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.8.tgz", - "integrity": "sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==", - "requires": { - "@react-stately/utils": "^3.10.4", - "@react-types/checkbox": "^3.8.4", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tooltip": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.13.tgz", - "integrity": "sha512-zQ+8FQ7Pi0Cz852dltXb6yaryjE18K3byK4tIO3e5vnrZHEGvfdxowc+v9ak5UV93kVrYoOVmfZHRcEaTXTBNA==", - "requires": { - "@react-stately/overlays": "^3.6.11", - "@react-types/tooltip": "^3.4.12", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tree": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.5.tgz", - "integrity": "sha512-0/tYhsKWQQJTOZFDwh8hY3Qk6ejNFRldGrLeK5kS22UZdvsMFyh7WAi40FTCJy561/VoB0WqQI4oyNPOa9lYWg==", - "requires": { - "@react-stately/collections": "^3.11.0", - "@react-stately/selection": "^3.17.0", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/utils": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", - "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/virtualizer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.1.0.tgz", - "integrity": "sha512-MOaqpY3NloXrpCBvVUb3HL1p3Bh4YRtUq8D2ufC909u5vM6n6G5Swk1XPJ9KHfaftGhb5serwLkm2/Aha5CTbA==", - "requires": { - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", - "@swc/helpers": "^0.5.0" - } - }, - "@react-types/accordion": { - "version": "3.0.0-alpha.24", - "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.24.tgz", - "integrity": "sha512-hwDT4TJH7aHCG8m9QsTP+7xgW7x7k2TY+WHlMRr6qDS6WhTCwd41dCdagxC0SZtulzZuWqISBxZifVrh4Tynew==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/breadcrumbs": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.8.tgz", - "integrity": "sha512-+BW2a+PrY8ArZ+pKecz13oJFrUAhthvXx17o3x0BhWUhRpAdtmTYt2hjw8zNanm2j0Kvgo1HYKgvtskCRxYcOA==", - "requires": { - "@react-types/link": "^3.5.8", - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/button": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.0.tgz", - "integrity": "sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/calendar": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.10.tgz", - "integrity": "sha512-PyjqxwJxSW2IpQx6y0D9O34fRCWn1gv9q0qFhgaIigIQrPg8zTE/CC7owHLxAtgCnnCt8exJ5rqi414csaHKlA==", - "requires": { - "@internationalized/date": "^3.5.6", - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/checkbox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.4.tgz", - "integrity": "sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.0.0.tgz", - "integrity": "sha512-VUH8CROAM69GsMBilrJ1xyAdVsWL01nXQYrkZJxAEApv1OrcpIGSdsXLcGrjsrhjjiNVXxWFnqYRMsKkLzIl7g==", - "requires": { - "@react-types/shared": "^3.25.0", - "@react-types/slider": "^3.7.6" - } - }, - "@react-types/combobox": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.0.tgz", - "integrity": "sha512-kH/a+Fjpr54M2JbHg9RXwMjZ9O+XVsdOuE5JCpWRibJP1Mfl1md8gY6y6zstmVY8COrSqFvMZWB+PzwaTWjTGw==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/datepicker": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.8.3.tgz", - "integrity": "sha512-Y4qfPRBB6uzocosCOWSYMuwiZ3YXwLWQYiFB4KCglkvHyltbNz76LgoBEnclYA5HjwosIk4XywiXvHSYry8JnQ==", - "requires": { - "@internationalized/date": "^3.5.6", - "@react-types/calendar": "^3.4.10", - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/dialog": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.13.tgz", - "integrity": "sha512-9k8daVcAqQsySkzDY6NIVlyGxtpEip4TKuLyzAehthbv78GQardD5fHdjQ6eXPRS4I2qZrmytrFFrlOnwWVGHw==", - "requires": { - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/form": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.7.tgz", - "integrity": "sha512-CVRjCawPhYRHi/LuikOC2kz5vgvmjjKmF4/wUgR2QzD1Ok4wY1ZGSx9M9EZptCIZAt2mToR6woyLUdtzy+foeQ==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/grid": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.9.tgz", - "integrity": "sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/link": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.8.tgz", - "integrity": "sha512-l/YGXddgAbLnIT7ekftXrK1D4n8NlLQwx0d4usyZpaxP1KwPzuwng20DxynamLc1atoKBqbUtZAnz32pe7vYgw==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/listbox": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.2.tgz", - "integrity": "sha512-ML/Bt/MeO0FiixcuFQ+smpu1WguxTOqHDjSnhc1vcNxVQFWQOhyVy01LAY2J/T9TjfjyYGD41vyMTI0f6fcLEQ==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/menu": { - "version": "3.9.12", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.12.tgz", - "integrity": "sha512-1SPnkHKJdvOfwv9fEgK1DI6DYRs4D3hW2XcWlLhVXSjaC68CzOHGwFhKIKvZiDTW/11L770PRSEloIxHR09uFQ==", - "requires": { - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/meter": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.4.tgz", - "integrity": "sha512-0SEmPkShByC1gYkW7l+iJPg8QfEe2VrgwTciAtTfC4KIqAYmJVQtq6L+4d72EMxOh8RpQHePaY/RFHEJXAh72A==", - "requires": { - "@react-types/progress": "^3.5.7" - } - }, - "@react-types/numberfield": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.6.tgz", - "integrity": "sha512-VtWEMAXUO1S9EEZI8whc7xv6DVccxhbWsRthMCg/LxiwU3U5KAveadNc2c5rtXkRpd3cnD5xFzz3dExXdmHkAg==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/overlays": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.10.tgz", - "integrity": "sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/progress": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.7.tgz", - "integrity": "sha512-EqMDHmlpoZUZzTjdejGIkSM0pS2LBI9NdadHf3bDNTycHv+5L1xpMHUg8RGOW8a3sRVLRvfN1aO9l75QZkyj+w==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/radio": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.4.tgz", - "integrity": "sha512-GCuOwQL19iwKa74NAIk9hv4ivyI8oW1+ZCuc2fzyDdeQjzTIlv3qrIyShwpVy1IoI7/4DYTMZm/YXPoKhu5TTA==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/searchfield": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.9.tgz", - "integrity": "sha512-c/x8BWpH1Zq+fWpeBtzw2AhQhGi7ahWPicV7PlnqwIGO0MrH/QCjX0dj+I+1xpcAh8Eq6ECa79HE74Rw6aJmFg==", - "requires": { - "@react-types/shared": "^3.25.0", - "@react-types/textfield": "^3.9.7" - } - }, - "@react-types/select": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.7.tgz", - "integrity": "sha512-Jva4ixfB4EEdy+WmZkUoLiQI7vVfHPxM73VuL7XDxvAO+YKiIztDTcU720QVNhxTMmQvCxfRBXWar8aodCjLiw==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/shared": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", - "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", - "requires": {} - }, - "@react-types/slider": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.6.tgz", - "integrity": "sha512-z72wnEzSge6qTD9TUoUPp1A4j4jXk/MVii6rGE78XeE/Pq7HyyjU5bCagryMr9PC9MKa/oTiHcshKqWBDf57GA==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/switch": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.6.tgz", - "integrity": "sha512-gJ8t2yTCgcitz4ON4ELcLLmtlDkn2MUjjfu3ez/cwA1X/NUluPYkhXj5Z6H+KOlnveqrKCZDRoTgK74cQ6Cvfg==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/table": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.2.tgz", - "integrity": "sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==", - "requires": { - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/tabs": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.10.tgz", - "integrity": "sha512-s/Bw/HCIdWJPBw4O703ghKqhjGsIerRMIDxA88hbQYzfTDD6bkFDjCnsP2Tyy1G8Dg2rSPFUEE+k+PpLzqeEfQ==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/textfield": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.7.tgz", - "integrity": "sha512-vU5+QCOF9HgWGjAmmy+cpJibVW5voFomC5POmYHokm7kivYcMMjlonsgWwg/0xXrqE2qosH3tpz4jFoEuig1NQ==", - "requires": { - "@react-types/shared": "^3.25.0" - } - }, - "@react-types/tooltip": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.12.tgz", - "integrity": "sha512-FwsdSQ3UDIDORanQMGMLyzSUabw4AkKhwcRdPv4d5OT8GmJr7mBdZynfcsrKLJ0fzskIypMqspoutZidsI0MQg==", - "requires": { - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0" - } - }, - "@rollup/pluginutils": { - "version": "5.1.0", - "dev": true, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "dev": true, - "optional": true - }, - "@sinclair/typebox": { - "version": "0.27.8", - "dev": true - }, - "@storybook/addon-actions": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.5.tgz", - "integrity": "sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0", - "@types/uuid": "^9.0.1", - "dequal": "^2.0.2", - "polished": "^4.2.2", - "uuid": "^9.0.0" - } - }, - "@storybook/addon-backgrounds": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.5.tgz", - "integrity": "sha512-IQGjDujuw8+iSqKREdkL8I5E/5CAHZbfOWd4A75PQK2D6qZ0fu/xRwTOQOH4jP6xn/abvfACOdL6A0d5bU90ag==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-controls": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.5.tgz", - "integrity": "sha512-2eCVobUUvY1Rq7sp1U8Mx8t44VXwvi0E+hqyrsqOx5TTSC/FUQ+hNAX6GSYUcFIyQQ1ORpKNlUjAAdjxBv1ZHQ==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-docs": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.5.tgz", - "integrity": "sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==", - "dev": true, - "requires": { - "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.3.5", - "@storybook/csf-plugin": "8.3.5", - "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "8.3.5", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "fs-extra": "^11.1.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "rehype-external-links": "^3.0.0", - "rehype-slug": "^6.0.0", - "ts-dedent": "^2.0.0" - }, - "dependencies": { - "@storybook/csf-plugin": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.5.tgz", - "integrity": "sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==", - "dev": true, - "requires": { - "unplugin": "^1.3.1" - } - }, - "@storybook/react-dom-shim": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.5.tgz", - "integrity": "sha512-Hf0UitJ/K0C7ajooooUK/PxOR4ihUWqsC7iCV1Gqth8U37dTeLMbaEO4PBwu0VQ+Ufg0N8BJLWfg7o6G4hrODw==", - "dev": true, - "requires": {} - } - } - }, - "@storybook/addon-essentials": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.5.tgz", - "integrity": "sha512-hXTtPuN4/IsXjUrkMPAuz1qKAl8DovdXpjQgjQs7jSAVx3kc4BZaGqJ3gaVenKtO8uDchmA92BoQygpkc8eWhw==", - "dev": true, - "requires": { - "@storybook/addon-actions": "8.3.5", - "@storybook/addon-backgrounds": "8.3.5", - "@storybook/addon-controls": "8.3.5", - "@storybook/addon-docs": "8.3.5", - "@storybook/addon-highlight": "8.3.5", - "@storybook/addon-measure": "8.3.5", - "@storybook/addon-outline": "8.3.5", - "@storybook/addon-toolbars": "8.3.5", - "@storybook/addon-viewport": "8.3.5", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-highlight": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.5.tgz", - "integrity": "sha512-ku0epul9aReCR3Gv/emwYnsqg3vgux5OmYMjoDcJC7s+LyfweSzLV/f5t9gSHazikJElh5TehtVkWbC4QfbGSw==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0" - } - }, - "@storybook/addon-interactions": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.0.10", - "@storybook/test": "8.0.10", - "@storybook/types": "8.0.10", - "polished": "^4.2.2", - "ts-dedent": "^2.2.0" - } - }, - "@storybook/addon-links": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/csf": "^0.1.4", - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-measure": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.5.tgz", - "integrity": "sha512-6GVehgbHhFIFS69xSfRV+12VK0cnuIAtZdp1J3eUCc2ATrcigqVjTM6wzZz6kBuX6O3dcusr7Wg46KtNliqLqg==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0", - "tiny-invariant": "^1.3.1" - } - }, - "@storybook/addon-onboarding": { - "version": "8.0.10", - "dev": true - }, - "@storybook/addon-outline": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.5.tgz", - "integrity": "sha512-dwmK6GzjEnQP9Yo0VnBUQtJkXZlXdfjWyskZ/IlUVc+IFdeeCtIiMyA92oMfHo8eXt0k1g21ZqMaIn7ZltOuHw==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-toolbars": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.5.tgz", - "integrity": "sha512-Ml2gc9q8WbteDvmuAZGgBxt5SqWMXzuTkMjlsA8EB53hlkN1w9esX4s8YtBeNqC3HKoUzcdq8uexSBqU8fDbSA==", - "dev": true, - "requires": {} - }, - "@storybook/addon-viewport": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.5.tgz", - "integrity": "sha512-FSWydoPiVWFXEittG7O1YgvuaqoU9Vb+qoq9XfP/hvQHHMDcMZvC40JaV8AnJeTXaM7ngIjcn9XDEfGbFfOzXw==", - "dev": true, - "requires": { - "memoizerific": "^1.11.3" - } - }, - "@storybook/blocks": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.5.tgz", - "integrity": "sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==", - "dev": true, - "requires": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.10", - "@types/lodash": "^4.14.167", - "color-convert": "^2.0.1", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.4.5", - "memoizerific": "^1.11.3", - "polished": "^4.2.2", - "react-colorful": "^5.1.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/builder-vite": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/channels": "8.0.10", - "@storybook/client-logger": "8.0.10", - "@storybook/core-common": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/csf-plugin": "8.0.10", - "@storybook/node-logger": "8.0.10", - "@storybook/preview": "8.0.10", - "@storybook/preview-api": "8.0.10", - "@storybook/types": "8.0.10", - "@types/find-cache-dir": "^3.2.1", - "browser-assert": "^1.2.1", - "es-module-lexer": "^0.9.3", - "express": "^4.17.3", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "magic-string": "^0.30.0", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/channels": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - } - }, - "@storybook/client-logger": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0" - } - }, - "@storybook/core": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.5.tgz", - "integrity": "sha512-GOGfTvdioNa/n+Huwg4u/dsyYyBcM+gEcdxi3B7i5x4yJ3I912KoVshumQAOF2myKSRdI8h8aGWdx7nnjd0+5Q==", - "dev": true, - "requires": { - "@storybook/csf": "^0.1.11", - "@types/express": "^4.17.21", - "better-opn": "^3.0.2", - "browser-assert": "^1.2.1", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", - "esbuild-register": "^3.5.0", - "express": "^4.19.2", - "jsdoc-type-pratt-parser": "^4.0.0", - "process": "^0.11.10", - "recast": "^0.23.5", - "semver": "^7.6.2", - "util": "^0.12.5", - "ws": "^8.2.3" - } - }, - "@storybook/core-common": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/core-events": "8.0.10", - "@storybook/csf-tools": "8.0.10", - "@storybook/node-logger": "8.0.10", - "@storybook/types": "8.0.10", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "semver": "^7.3.7", - "tempy": "^1.0.1", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" - }, - "dependencies": { - "glob": { - "version": "10.3.15", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" - } - }, - "minipass": { - "version": "7.1.1", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "@storybook/core-events": { - "version": "8.0.10", - "dev": true, - "requires": { - "ts-dedent": "^2.0.0" - } - }, - "@storybook/csf": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", - "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", - "dev": true, - "requires": { - "type-fest": "^2.19.0" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "dev": true - } - } - }, - "@storybook/csf-plugin": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/csf-tools": "8.0.10", - "unplugin": "^1.3.1" - } - }, - "@storybook/csf-tools": { - "version": "8.0.10", - "dev": true, - "requires": { - "@babel/generator": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "@storybook/csf": "^0.1.4", - "@storybook/types": "8.0.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/docs-tools": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/core-common": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/preview-api": "8.0.10", - "@storybook/types": "8.0.10", - "@types/doctrine": "^0.0.3", - "assert": "^2.1.0", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "@storybook/global": { - "version": "5.0.0", - "dev": true - }, - "@storybook/icons": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.12.tgz", - "integrity": "sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==", - "dev": true, - "requires": {} - }, - "@storybook/instrumenter": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/channels": "8.0.10", - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.0.10", - "@vitest/utils": "^1.3.1", - "util": "^0.12.4" - } - }, - "@storybook/node-logger": { - "version": "8.0.10", - "dev": true - }, - "@storybook/preview": { - "version": "8.0.10", - "dev": true - }, - "@storybook/preview-api": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/channels": "8.0.10", - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/csf": "^0.1.4", - "@storybook/global": "^5.0.0", - "@storybook/types": "8.0.10", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/react": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/client-logger": "8.0.10", - "@storybook/docs-tools": "8.0.10", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.0.10", - "@storybook/react-dom-shim": "8.0.10", - "@storybook/types": "8.0.10", - "@types/escodegen": "^0.0.6", - "@types/estree": "^0.0.51", - "@types/node": "^18.0.0", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "escodegen": "^2.1.0", - "html-tags": "^3.1.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^15.0.0", - "semver": "^7.3.7", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.51", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "dev": true - }, - "type-fest": { - "version": "2.19.0", - "dev": true - } - } - }, - "@storybook/react-dom-shim": { - "version": "8.0.10", - "dev": true, - "requires": {} - }, - "@storybook/react-vite": { - "version": "8.0.10", - "dev": true, - "requires": { - "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", - "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.0.10", - "@storybook/node-logger": "8.0.10", - "@storybook/react": "8.0.10", - "find-up": "^5.0.0", - "magic-string": "^0.30.0", - "react-docgen": "^7.0.0", - "resolve": "^1.22.8", - "tsconfig-paths": "^4.2.0" - } - }, - "@storybook/test": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/client-logger": "8.0.10", - "@storybook/core-events": "8.0.10", - "@storybook/instrumenter": "8.0.10", - "@storybook/preview-api": "8.0.10", - "@testing-library/dom": "^9.3.4", - "@testing-library/jest-dom": "^6.4.2", - "@testing-library/user-event": "^14.5.2", - "@vitest/expect": "1.3.1", - "@vitest/spy": "^1.3.1", - "util": "^0.12.4" - } - }, - "@storybook/types": { - "version": "8.0.10", - "dev": true, - "requires": { - "@storybook/channels": "8.0.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - } - }, - "@swc/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.4.tgz", - "integrity": "sha512-+wSycNxOw9QQz81AJAZlNS34EtOIifwUXMPACg05PWjECsjOKDTXLCVPx6J0lRaxhHSGBU2OYs9mRfIvxGt3CA==", - "dev": true, - "requires": { - "@swc/core-darwin-arm64": "1.7.4", - "@swc/core-darwin-x64": "1.7.4", - "@swc/core-linux-arm-gnueabihf": "1.7.4", - "@swc/core-linux-arm64-gnu": "1.7.4", - "@swc/core-linux-arm64-musl": "1.7.4", - "@swc/core-linux-x64-gnu": "1.7.4", - "@swc/core-linux-x64-musl": "1.7.4", - "@swc/core-win32-arm64-msvc": "1.7.4", - "@swc/core-win32-ia32-msvc": "1.7.4", - "@swc/core-win32-x64-msvc": "1.7.4", - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.12" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.4.tgz", - "integrity": "sha512-RbWrdGh+x9xKFUA9/kPZRR8OPxUsDUuPyLjPIGLYZMO+ftht2vhVH7QsUq6lg+jAP34eIya72UA1isiZe+BRaA==", - "dev": true, - "optional": true - }, - "@swc/core-darwin-x64": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.4.tgz", - "integrity": "sha512-TxCWMJs4OrqApjFuT8cUiqMz0zg97F0JsXBEeZ7zjkyv9XJ/rN2pdwqMlZv0Wv2C2rivOPo6FsWYlZ3V8ZHhyA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.4.tgz", - "integrity": "sha512-5IhwIJZAgkkfI6PqgQ3xk0/2hTAVsAczIPLiR2Epp30EgsNo1KIFL0ZHzrnvJPy5BZ3jy3T1dEbDE/memBOEmA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.4.tgz", - "integrity": "sha512-0787jri83jigf26mF8FndWehh7jqMaHwAm/OV6VdToyNo/g+d1AxVpkEizrywZK46el+AObnHUIHIHwZgO21LA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.4.tgz", - "integrity": "sha512-A45hGKWAGcjU5Ol0uQUoK0tHerwEKxfprYUZbmPLpD2yrpMZr+dTrwY2n075sixs7RuZEccBkgGNpehEe5BPBQ==", - "dev": true, - "optional": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.4.tgz", - "integrity": "sha512-bcO1MpAm39TXqqHuYW4ox4vDvhB7jkguwMwxvmL+cKBGsUHrIoUTfGt9NM9N4D4CvOwULlxqbyt19veUJ7CVPw==", - "dev": true, - "optional": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.4.tgz", - "integrity": "sha512-N6nXuHyDO/q5kPN2xQxz5BEvhFpgnFSkP+9wxg5xWq+qIQL5bv37jk8dkKvMLx/8fHzTqrIjPDSRzVbcL7sqXg==", - "dev": true, - "optional": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.4.tgz", - "integrity": "sha512-7W1owqCNR1cG+mpS55juiZlR/lrAdxB1pH32egeOipNKOLGwyqmlzQ0g9tkQTNgzwgfpCUg8z606+GqqXvajZw==", - "dev": true, - "optional": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.4.tgz", - "integrity": "sha512-saLkY+q7zNPk4gYiUBCc93FYPo4ECXMjHcSPtLVHoPZBIxRrklgaAf6aDpblBo30nVdoBE2V3YPd0Y/cPiY6RQ==", - "dev": true, - "optional": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.4.tgz", - "integrity": "sha512-zKF6jpRBNuVKgOf2W5dMcPyjwcNCp21syjl9lvLRbCeIg+1U+zjdoQCAmMWWoPNE7fLg+yfvohnnOJG2AdzQ9Q==", - "dev": true, - "optional": true - }, - "@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true - }, - "@swc/helpers": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", - "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "@swc/types": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", - "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", - "dev": true, - "requires": { - "@swc/counter": "^0.1.3" - } - }, - "@tailwindcss/container-queries": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", - "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", - "requires": {} - }, - "@tauri-apps/api": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.1.tgz", - "integrity": "sha512-eoQWT+Tq1qSwQpHV+nw1eNYe5B/nm1PoRjQCRiEOS12I1b+X4PUcREfXVX8dPcBT6GrzWGDtaecY0+1p0Rfqlw==" - }, - "@tauri-apps/cli": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.1.0.tgz", - "integrity": "sha512-K2VhcKqBhAeS5pNOVdnR/xQRU6jwpgmkSL2ejHXcl0m+kaTggT0WRDQnFtPq6NljA7aE03cvwsbCAoFG7vtkJw==", - "dev": true, - "requires": { - "@tauri-apps/cli-darwin-arm64": "2.1.0", - "@tauri-apps/cli-darwin-x64": "2.1.0", - "@tauri-apps/cli-linux-arm-gnueabihf": "2.1.0", - "@tauri-apps/cli-linux-arm64-gnu": "2.1.0", - "@tauri-apps/cli-linux-arm64-musl": "2.1.0", - "@tauri-apps/cli-linux-x64-gnu": "2.1.0", - "@tauri-apps/cli-linux-x64-musl": "2.1.0", - "@tauri-apps/cli-win32-arm64-msvc": "2.1.0", - "@tauri-apps/cli-win32-ia32-msvc": "2.1.0", - "@tauri-apps/cli-win32-x64-msvc": "2.1.0" - } - }, - "@tauri-apps/cli-darwin-arm64": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.1.0.tgz", - "integrity": "sha512-ESc6J6CE8hl1yKH2vJ+ALF+thq4Be+DM1mvmTyUCQObvezNCNhzfS6abIUd3ou4x5RGH51ouiANeT3wekU6dCw==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-darwin-x64": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.1.0.tgz", - "integrity": "sha512-TasHS442DFs8cSH2eUQzuDBXUST4ECjCd0yyP+zZzvAruiB0Bg+c8A+I/EnqCvBQ2G2yvWLYG8q/LI7c87A5UA==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.1.0.tgz", - "integrity": "sha512-aP7ZBGNL4ny07Cbb6kKpUOSrmhcIK2KhjviTzYlh+pPhAptxnC78xQGD3zKQkTi2WliJLPmBYbOHWWQa57lQ9w==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-linux-arm64-gnu": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.1.0.tgz", - "integrity": "sha512-ZTdgD5gLeMCzndMT2f358EkoYkZ5T+Qy6zPzU+l5vv5M7dHVN9ZmblNAYYXmoOuw7y+BY4X/rZvHV9pcGrcanQ==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-linux-arm64-musl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.1.0.tgz", - "integrity": "sha512-NzwqjUCilhnhJzusz3d/0i0F1GFrwCQbkwR6yAHUxItESbsGYkZRJk0yMEWkg3PzFnyK4cWTlQJMEU52TjhEzA==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-linux-x64-gnu": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.1.0.tgz", - "integrity": "sha512-TyiIpMEtZxNOQmuFyfJwaaYbg3movSthpBJLIdPlKxSAB2BW0VWLY3/ZfIxm/G2YGHyREkjJvimzYE0i37PnMA==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-linux-x64-musl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.1.0.tgz", - "integrity": "sha512-/dQd0TlaxBdJACrR72DhynWftzHDaX32eBtS5WBrNJ+nnNb+znM3gON6nJ9tSE9jgDa6n1v2BkI/oIDtypfUXw==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-win32-arm64-msvc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.1.0.tgz", - "integrity": "sha512-NdQJO7SmdYqOcE+JPU7bwg7+odfZMWO6g8xF9SXYCMdUzvM2Gv/AQfikNXz5yS7ralRhNFuW32i5dcHlxh4pDg==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-win32-ia32-msvc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.1.0.tgz", - "integrity": "sha512-f5h8gKT/cB8s1ticFRUpNmHqkmaLutT62oFDB7N//2YTXnxst7EpMIn1w+QimxTvTk2gcx6EcW6bEk/y2hZGzg==", - "dev": true, - "optional": true - }, - "@tauri-apps/cli-win32-x64-msvc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.1.0.tgz", - "integrity": "sha512-P/+LrdSSb5Xbho1LRP4haBjFHdyPdjWvGgeopL96OVtrFpYnfC+RctB45z2V2XxqFk3HweDDxk266btjttfjGw==", - "dev": true, - "optional": true - }, - "@tauri-apps/plugin-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.0.0.tgz", - "integrity": "sha512-glQmlL1IiCGEa1FHYa/PTPSeYhfu56omLRgHXWlJECDt6DbJyRuJWVgtkQfUxtqnVdYnnU+DGIGeiInoEqtjLw==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@testing-library/dom": { - "version": "9.3.4", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - } - }, - "@testing-library/jest-dom": { - "version": "6.4.5", - "dev": true, - "requires": { - "@adobe/css-tools": "^4.3.2", - "@babel/runtime": "^7.9.2", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", - "redent": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "dom-accessibility-api": { - "version": "0.6.3", - "dev": true - } - } - }, - "@testing-library/user-event": { - "version": "14.5.2", - "dev": true, - "requires": {} - }, - "@types/aria-query": { - "version": "5.0.4", - "dev": true - }, - "@types/babel__core": { - "version": "7.20.5", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.5", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/body-parser": { - "version": "1.19.5", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.38", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/doctrine": { - "version": "0.0.3", - "dev": true - }, - "@types/emscripten": { - "version": "1.39.12", - "dev": true - }, - "@types/escodegen": { - "version": "0.0.6", - "dev": true - }, - "@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "@types/express": { - "version": "4.17.21", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.19.0", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "@types/find-cache-dir": { - "version": "3.2.1", - "dev": true - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dev": true, - "requires": { - "@types/unist": "*" - } - }, - "@types/http-errors": { - "version": "2.0.4", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.15", - "dev": true - }, - "@types/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", - "dev": true - }, - "@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "dev": true - }, - "@types/mime": { - "version": "1.3.5", - "dev": true - }, - "@types/minimatch": { - "version": "5.1.2", - "dev": true - }, - "@types/node": { - "version": "18.19.33", - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/prop-types": { - "version": "15.7.12", - "dev": true - }, - "@types/qs": { - "version": "6.9.15", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.7", - "dev": true - }, - "@types/react": { - "version": "18.3.2", - "dev": true, - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "18.3.0", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/resolve": { - "version": "1.20.6", - "dev": true - }, - "@types/semver": { - "version": "7.5.8", - "dev": true - }, - "@types/send": { - "version": "0.17.4", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.15.7", - "dev": true, - "requires": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true - }, - "@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true - }, - "@types/w3c-web-serial": { - "version": "1.0.6", - "dev": true - }, - "@types/web-bluetooth": { - "version": "0.0.20", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - } - }, - "@typescript-eslint/parser": { - "version": "7.8.0", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "7.8.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "7.8.0", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - } - }, - "@typescript-eslint/types": { - "version": "7.8.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - } - }, - "@typescript-eslint/utils": { - "version": "7.8.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "dev": true - }, - "@vitejs/plugin-react-swc": { - "version": "3.6.0", - "dev": true, - "requires": { - "@swc/core": "^1.3.107" - } - }, - "@vitest/expect": { - "version": "1.3.1", - "dev": true, - "requires": { - "@vitest/spy": "1.3.1", - "@vitest/utils": "1.3.1", - "chai": "^4.3.10" - }, - "dependencies": { - "@vitest/spy": { - "version": "1.3.1", - "dev": true, - "requires": { - "tinyspy": "^2.2.0" - } - }, - "@vitest/utils": { - "version": "1.3.1", - "dev": true, - "requires": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - } - }, - "ansi-styles": { - "version": "5.2.0", - "dev": true - }, - "estree-walker": { - "version": "3.0.3", - "dev": true, - "requires": { - "@types/estree": "^1.0.0" - } - }, - "pretty-format": { - "version": "29.7.0", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.3.1", - "dev": true - } - } - }, - "@vitest/spy": { - "version": "1.6.0", - "dev": true, - "requires": { - "tinyspy": "^2.2.0" - } - }, - "@vitest/utils": { - "version": "1.6.0", - "dev": true, - "requires": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - }, - "estree-walker": { - "version": "3.0.3", - "dev": true, - "requires": { - "@types/estree": "^1.0.0" - } - }, - "pretty-format": { - "version": "29.7.0", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.3.1", - "dev": true - } - } - }, - "@yarnpkg/fslib": { - "version": "2.10.3", - "dev": true, - "requires": { - "@yarnpkg/libzip": "^2.3.0", - "tslib": "^1.13.0" - } - }, - "@yarnpkg/libzip": { - "version": "2.3.0", - "dev": true, - "requires": { - "@types/emscripten": "^1.39.6", - "tslib": "^1.13.0" - } - }, - "@zmkfirmware/zmk-studio-ts-client": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@zmkfirmware/zmk-studio-ts-client/-/zmk-studio-ts-client-0.0.18.tgz", - "integrity": "sha512-S3NIkwL0zGOMZCf69Fy6LhhsC07clHoeAEx0JdMtNKfBfPTBIn0CYlkkUvrophAQwBpOQqEyw3gi7uc9WzuOCQ==", - "requires": { - "async-mutex": "^0.5.0", - "protobufjs": "^7.3.2" - } - }, - "accepts": { - "version": "1.3.8", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.11.3", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0", - "dev": true - }, - "aggregate-error": { - "version": "3.1.0", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1" - }, - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "anymatch": { - "version": "3.1.3", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-dir": { - "version": "1.0.2", - "dev": true - }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "aria-query": { - "version": "5.1.3", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-flatten": { - "version": "1.1.1", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "assert": { - "version": "2.1.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "assertion-error": { - "version": "1.1.0", - "dev": true - }, - "ast-types": { - "version": "0.16.1", - "dev": true, - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.6.2", - "dev": true - } - } - }, - "async-mutex": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", - "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "available-typed-arrays": { - "version": "1.0.7", - "dev": true, - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2" - }, - "better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "requires": { - "open": "^8.0.4" - } - }, - "binary-extensions": { - "version": "2.3.0" - }, - "body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "brace-expansion": { - "version": "2.0.1", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "requires": { - "fill-range": "^7.1.1" - } - }, - "browser-assert": { - "version": "1.2.1", - "dev": true - }, - "browserslist": { - "version": "4.23.0", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "call-bind": { - "version": "1.0.7", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "callsites": { - "version": "3.1.0", - "dev": true - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-lite": { - "version": "1.0.30001617", - "dev": true - }, - "chai": { - "version": "4.4.1", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "check-error": { - "version": "1.0.3", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "chokidar": { - "version": "3.6.0", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chromatic": { - "version": "11.3.2", - "dev": true, - "requires": {} - }, - "clean-stack": { - "version": "2.2.0", - "dev": true - }, - "client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "commondir": { - "version": "1.0.1", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "convert-source-map": { - "version": "2.0.0", - "dev": true - }, - "cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "dev": true - }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "dev": true - }, - "css.escape": { - "version": "1.5.1", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "csstype": { - "version": "3.1.3", - "dev": true - }, - "debug": { - "version": "4.3.4", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-eql": { - "version": "4.1.3", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "2.2.3", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - } - }, - "deep-is": { - "version": "0.1.4", - "dev": true - }, - "define-data-property": { - "version": "1.1.4", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.2.1", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "6.1.1", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "dequal": { - "version": "2.0.3", - "dev": true - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "diff-sequences": { - "version": "29.6.3", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.16", - "dev": true - }, - "dotenv": { - "version": "16.4.5", - "dev": true - }, - "dotenv-expand": { - "version": "10.0.0", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.765", - "dev": true - }, - "emittery": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", - "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==" - }, - "emoji-regex": { - "version": "8.0.0" - }, - "encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true - }, - "es-define-property": { - "version": "1.0.0", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.3", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "dev": true - }, - "esbuild": { - "version": "0.20.2", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - }, - "dependencies": { - "@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "dev": true, - "optional": true - } - } - }, - "esbuild-register": { - "version": "3.5.0", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "escalade": { - "version": "3.1.2", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "escodegen": { - "version": "2.1.0", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "source-map": "~0.6.1" - } - }, - "eslint": { - "version": "8.57.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.2", - "dev": true, - "requires": {} - }, - "eslint-plugin-react-refresh": { - "version": "0.4.7", - "dev": true, - "requires": {} - }, - "eslint-plugin-storybook": { - "version": "0.8.0", - "dev": true, - "requires": { - "@storybook/csf": "^0.0.1", - "@typescript-eslint/utils": "^5.62.0", - "requireindex": "^1.2.0", - "ts-dedent": "^2.2.0" - }, - "dependencies": { - "@storybook/csf": { - "version": "0.0.1", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - } - }, - "@typescript-eslint/types": { - "version": "5.62.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.62.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.2.2", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "dev": true - }, - "espree": { - "version": "9.6.1", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "dev": true - }, - "fastq": { - "version": "1.17.1", - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-system-cache": { - "version": "2.3.0", - "dev": true, - "requires": { - "fs-extra": "11.1.1", - "ramda": "0.29.0" - }, - "dependencies": { - "fs-extra": { - "version": "11.1.1", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } - } - }, - "filesize": { - "version": "10.1.2", - "dev": true - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.2.0", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.3.1", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreground-child": { - "version": "3.1.1", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.1.0" - } - } - }, - "forwarded": { - "version": "0.2.0", - "dev": true - }, - "fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, - "fs-extra": { - "version": "11.2.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "function-bind": { - "version": "1.1.2" - }, - "functions-have-names": { - "version": "1.2.3", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-func-name": { - "version": "2.0.2", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-promise": { - "version": "4.2.2", - "dev": true, - "requires": { - "@types/glob": "^7.1.3" - } - }, - "globals": { - "version": "13.24.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "dev": true - }, - "handlebars": { - "version": "4.7.8", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "has-bigints": { - "version": "1.0.2", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.2", - "dev": true, - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.2", - "dev": true, - "requires": { - "has-symbols": "^1.0.3" - } - }, - "hasown": { - "version": "2.0.2", - "requires": { - "function-bind": "^1.1.2" - } - }, - "hast-util-heading-rank": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", - "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", - "dev": true, - "requires": { - "@types/hast": "^3.0.0" - } - }, - "hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "dev": true, - "requires": { - "@types/hast": "^3.0.0" - } - }, - "hast-util-to-string": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", - "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", - "dev": true, - "requires": { - "@types/hast": "^3.0.0" - } - }, - "html-tags": { - "version": "3.3.1", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.3.1", - "dev": true - }, - "immer": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==" - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "internal-slot": { - "version": "1.0.7", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "intl-messageformat": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", - "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - } - } - }, - "ipaddr.js": { - "version": "1.9.1", - "dev": true - }, - "is-absolute-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", - "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", - "dev": true - }, - "is-arguments": { - "version": "1.1.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-bigint": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "dev": true - }, - "is-core-module": { - "version": "2.13.1", - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1" - }, - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "is-generator-function": { - "version": "1.0.10", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-map": { - "version": "2.0.3", - "dev": true - }, - "is-nan": { - "version": "1.3.2", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-cwd": { - "version": "2.2.0", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.3", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "dev": true, - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.13", - "dev": true, - "requires": { - "which-typed-array": "^1.1.14" - } - }, - "is-weakmap": { - "version": "2.0.2", - "dev": true - }, - "is-weakset": { - "version": "2.0.3", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "2.0.5", - "dev": true - }, - "isexe": { - "version": "2.0.0" - }, - "jackspeak": { - "version": "2.3.6", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==" - }, - "js-tokens": { - "version": "4.0.0" - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsdoc-type-pratt-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", - "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true - }, - "json5": { - "version": "2.2.3", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keyv": { - "version": "4.5.4", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lazy-universal-dotenv": { - "version": "4.0.0", - "dev": true, - "requires": { - "app-root-dir": "^1.0.2", - "dotenv": "^16.0.0", - "dotenv-expand": "^10.0.0" - } - }, - "levn": { - "version": "0.4.1", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" - }, - "lines-and-columns": { - "version": "1.2.4" - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "dev": true - }, - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "loose-envify": { - "version": "1.4.0", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loupe": { - "version": "2.3.7", - "dev": true, - "requires": { - "get-func-name": "^2.0.1" - } - }, - "lru-cache": { - "version": "5.1.1", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "lucide-react": { - "version": "0.445.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.445.0.tgz", - "integrity": "sha512-YrLf3aAHvmd4dZ8ot+mMdNFrFpJD7YRwQ2pUcBhgqbmxtrMP4xDzIorcj+8y+6kpuXBF4JB0NOCTUWIYetJjgA==", - "requires": {} - }, - "lz-string": { - "version": "1.5.0", - "dev": true - }, - "magic-string": { - "version": "0.30.10", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "dev": true - } - } - }, - "map-or-similar": { - "version": "1.5.0", - "dev": true - }, - "markdown-to-jsx": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz", - "integrity": "sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==", - "dev": true, - "requires": {} - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, - "memoizerific": { - "version": "1.11.3", - "dev": true, - "requires": { - "map-or-similar": "^1.5.0" - } - }, - "merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "merge2": { - "version": "1.4.1" - }, - "methods": { - "version": "1.1.2", - "dev": true - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "dev": true - }, - "minimatch": { - "version": "9.0.4", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.8", - "dev": true - }, - "minipass": { - "version": "5.0.0" - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.7" - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "dev": true - }, - "node-fetch": { - "version": "2.7.0", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-releases": { - "version": "2.0.14", - "dev": true - }, - "normalize-path": { - "version": "3.0.0" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "object-assign": { - "version": "4.1.1" - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - }, - "object-inspect": { - "version": "1.13.1", - "dev": true - }, - "object-is": { - "version": "1.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - } - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object.assign": { - "version": "4.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.4", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - } - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-key": { - "version": "3.1.1" - }, - "path-parse": { - "version": "1.0.7" - }, - "path-scurry": { - "version": "1.11.1", - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.2.2" - } - } - }, - "path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "dev": true - }, - "picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" - }, - "picomatch": { - "version": "2.3.1" - }, - "pirates": { - "version": "4.0.6" - }, - "pkg-dir": { - "version": "5.0.0", - "dev": true, - "requires": { - "find-up": "^5.0.0" - } - }, - "polished": { - "version": "4.3.1", - "dev": true, - "requires": { - "@babel/runtime": "^7.17.8" - } - }, - "possible-typed-array-names": { - "version": "1.0.0", - "dev": true - }, - "postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - } - }, - "postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "requires": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "dependencies": { - "lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==" - } - } - }, - "postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "requires": { - "postcss-selector-parser": "^6.0.11" - } - }, - "postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "prelude-ls": { - "version": "1.2.1", - "dev": true - }, - "prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, - "prop-types": { - "version": "15.8.1", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1" - } - } - }, - "protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "punycode": { - "version": "2.3.1", - "dev": true - }, - "qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "requires": { - "side-channel": "^1.0.6" - } - }, - "queue-microtask": { - "version": "1.2.3" - }, - "ramda": { - "version": "0.29.0", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react": { - "version": "18.3.1", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-aria": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.35.0.tgz", - "integrity": "sha512-cbbd3iIveLDRnpVrpc1iuz8OMlDdH6u8EjncW3MQuYOiEGaho9xcDtWMKiSEIZASEnd7LK4Rgm5iVPr2O+cssw==", - "requires": { - "@internationalized/string": "^3.2.4", - "@react-aria/breadcrumbs": "^3.5.17", - "@react-aria/button": "^3.10.0", - "@react-aria/calendar": "^3.5.12", - "@react-aria/checkbox": "^3.14.7", - "@react-aria/color": "^3.0.0", - "@react-aria/combobox": "^3.10.4", - "@react-aria/datepicker": "^3.11.3", - "@react-aria/dialog": "^3.5.18", - "@react-aria/dnd": "^3.7.3", - "@react-aria/focus": "^3.18.3", - "@react-aria/gridlist": "^3.9.4", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/label": "^3.7.12", - "@react-aria/link": "^3.7.5", - "@react-aria/listbox": "^3.13.4", - "@react-aria/menu": "^3.15.4", - "@react-aria/meter": "^3.4.17", - "@react-aria/numberfield": "^3.11.7", - "@react-aria/overlays": "^3.23.3", - "@react-aria/progress": "^3.4.17", - "@react-aria/radio": "^3.10.8", - "@react-aria/searchfield": "^3.7.9", - "@react-aria/select": "^3.14.10", - "@react-aria/selection": "^3.20.0", - "@react-aria/separator": "^3.4.3", - "@react-aria/slider": "^3.7.12", - "@react-aria/ssr": "^3.9.6", - "@react-aria/switch": "^3.6.8", - "@react-aria/table": "^3.15.4", - "@react-aria/tabs": "^3.9.6", - "@react-aria/tag": "^3.4.6", - "@react-aria/textfield": "^3.14.9", - "@react-aria/tooltip": "^3.7.8", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-types/shared": "^3.25.0" - } - }, - "react-aria-components": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.4.0.tgz", - "integrity": "sha512-CpeSeGI2FVT3hOzA28fhIGkrPPQPtz3gVHBfMWkXSuLUBaKFZQhdCLBXlpO5MoZV1RrC+e7mhOVREkw6DvlxKw==", - "requires": { - "@internationalized/date": "^3.5.6", - "@internationalized/string": "^3.2.4", - "@react-aria/accordion": "3.0.0-alpha.34", - "@react-aria/collections": "3.0.0-alpha.5", - "@react-aria/color": "^3.0.0", - "@react-aria/disclosure": "3.0.0-alpha.0", - "@react-aria/dnd": "^3.7.3", - "@react-aria/focus": "^3.18.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/live-announcer": "^3.4.0", - "@react-aria/menu": "^3.15.4", - "@react-aria/toolbar": "3.0.0-beta.9", - "@react-aria/tree": "3.0.0-beta.0", - "@react-aria/utils": "^3.25.3", - "@react-aria/virtualizer": "^4.0.3", - "@react-stately/color": "^3.8.0", - "@react-stately/disclosure": "3.0.0-alpha.0", - "@react-stately/layout": "^4.0.3", - "@react-stately/menu": "^3.8.3", - "@react-stately/table": "^3.12.3", - "@react-stately/utils": "^3.10.4", - "@react-stately/virtualizer": "^4.1.0", - "@react-types/color": "^3.0.0", - "@react-types/form": "^3.7.7", - "@react-types/grid": "^3.2.9", - "@react-types/shared": "^3.25.0", - "@react-types/table": "^3.10.2", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "react-aria": "^3.35.0", - "react-stately": "^3.33.0", - "use-sync-external-store": "^1.2.0" - } - }, - "react-colorful": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", - "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", - "dev": true, - "requires": {} - }, - "react-confetti": { - "version": "6.1.0", - "dev": true, - "requires": { - "tween-functions": "^1.2.0" - } - }, - "react-docgen": { - "version": "7.0.3", - "dev": true, - "requires": { - "@babel/core": "^7.18.9", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", - "@types/babel__core": "^7.18.0", - "@types/babel__traverse": "^7.18.0", - "@types/doctrine": "^0.0.9", - "@types/resolve": "^1.20.2", - "doctrine": "^3.0.0", - "resolve": "^1.22.1", - "strip-indent": "^4.0.0" - }, - "dependencies": { - "@types/doctrine": { - "version": "0.0.9", - "dev": true - } - } - }, - "react-docgen-typescript": { - "version": "2.2.2", - "dev": true, - "requires": {} - }, - "react-dom": { - "version": "18.3.1", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - } - }, - "react-element-to-jsx-string": { - "version": "15.0.0", - "dev": true, - "requires": { - "@base2/pretty-print-object": "1.0.1", - "is-plain-object": "5.0.0", - "react-is": "18.1.0" - }, - "dependencies": { - "react-is": { - "version": "18.1.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "react-stately": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.33.0.tgz", - "integrity": "sha512-DNPOxYAPuhuXwSuE1s1K7iSgqG2QOBUZq3bsLAd4gUUZje6Qepkhe7TzK2LWarQYAZ3gC9Xhmnz8ie1fdCo0GA==", - "requires": { - "@react-stately/calendar": "^3.5.5", - "@react-stately/checkbox": "^3.6.9", - "@react-stately/collections": "^3.11.0", - "@react-stately/color": "^3.8.0", - "@react-stately/combobox": "^3.10.0", - "@react-stately/data": "^3.11.7", - "@react-stately/datepicker": "^3.10.3", - "@react-stately/dnd": "^3.4.3", - "@react-stately/form": "^3.0.6", - "@react-stately/list": "^3.11.0", - "@react-stately/menu": "^3.8.3", - "@react-stately/numberfield": "^3.9.7", - "@react-stately/overlays": "^3.6.11", - "@react-stately/radio": "^3.10.8", - "@react-stately/searchfield": "^3.5.7", - "@react-stately/select": "^3.6.8", - "@react-stately/selection": "^3.17.0", - "@react-stately/slider": "^3.5.8", - "@react-stately/table": "^3.12.3", - "@react-stately/tabs": "^3.6.10", - "@react-stately/toggle": "^3.7.8", - "@react-stately/tooltip": "^3.4.13", - "@react-stately/tree": "^3.8.5", - "@react-types/shared": "^3.25.0" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "requires": { - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" - } - } - }, - "readdirp": { - "version": "3.6.0", - "requires": { - "picomatch": "^2.2.1" - } - }, - "recast": { - "version": "0.23.7", - "dev": true, - "requires": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.6.2", - "dev": true - } - } - }, - "redent": { - "version": "3.0.0", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "dependencies": { - "strip-indent": { - "version": "3.0.0", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - } - } - }, - "regenerator-runtime": { - "version": "0.14.1", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "rehype-external-links": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", - "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", - "dev": true, - "requires": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-is-element": "^3.0.0", - "is-absolute-url": "^4.0.0", - "space-separated-tokens": "^2.0.0", - "unist-util-visit": "^5.0.0" - } - }, - "rehype-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", - "dev": true, - "requires": { - "@types/hast": "^3.0.0", - "github-slugger": "^2.0.0", - "hast-util-heading-rank": "^3.0.0", - "hast-util-to-string": "^3.0.0", - "unist-util-visit": "^5.0.0" - } - }, - "requireindex": { - "version": "1.2.0", - "dev": true - }, - "resolve": { - "version": "1.22.8", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - }, - "reusify": { - "version": "1.0.4" - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "@types/estree": "1.0.6", - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "scheduler": { - "version": "0.23.2", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "semver": { - "version": "7.6.2", - "dev": true - }, - "send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "requires": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - } - }, - "set-function-length": { - "version": "1.2.2", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0" - }, - "side-channel": { - "version": "1.0.6", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "signal-exit": { - "version": "3.0.7", - "dev": true - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" - }, - "space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "dev": true, - "requires": { - "internal-slot": "^1.0.4" - } - }, - "storybook": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.3.5.tgz", - "integrity": "sha512-hYQVtP2l+3kO8oKDn4fjXXQYxgTRsj/LaV6lUMJH0zt+OhVmDXKJLxmdUP4ieTm0T8wEbSYosFavgPcQZlxRfw==", - "dev": true, - "requires": { - "@storybook/core": "8.3.5" - } - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-indent": { - "version": "4.0.0", - "dev": true, - "requires": { - "min-indent": "^1.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "path-scurry": "^1.11.1" - } - }, - "jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" - } - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0" - }, - "tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", - "requires": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - } - }, - "tailwindcss-react-aria-components": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tailwindcss-react-aria-components/-/tailwindcss-react-aria-components-1.1.3.tgz", - "integrity": "sha512-j852nEhbvD7/zxpNI7hY+6mYm//2zSKuPPq3NNohMi+/nA0hxjaJGg0LYEPzumn/efNT0Itrq+/TMD+r/m1EqA==", - "requires": {} - }, - "telejson": { - "version": "7.2.0", - "dev": true, - "requires": { - "memoizerific": "^1.11.3" - } - }, - "temp-dir": { - "version": "2.0.0", - "dev": true - }, - "tempy": { - "version": "1.0.1", - "dev": true, - "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "tiny-invariant": { - "version": "1.3.3", - "dev": true - }, - "tinyspy": { - "version": "2.2.1", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "dev": true - }, - "ts-api-utils": { - "version": "1.3.0", - "dev": true, - "requires": {} - }, - "ts-dedent": { - "version": "2.2.0", - "dev": true - }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "tsconfig-paths": { - "version": "4.2.0", - "dev": true, - "requires": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tween-functions": { - "version": "1.2.0", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "5.4.5", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "dev": true, - "optional": true - }, - "undici-types": { - "version": "5.26.5" - }, - "unique-string": { - "version": "2.0.0", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - } - }, - "unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "unplugin": { - "version": "1.10.1", - "dev": true, - "requires": { - "acorn": "^8.11.3", - "chokidar": "^3.6.0", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.6.1" - } - }, - "update-browserslist-db": { - "version": "1.0.15", - "dev": true, - "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "requires": {} - }, - "util": { - "version": "0.12.5", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1", - "dev": true - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "dev": true - }, - "vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", - "dev": true, - "requires": { - "esbuild": "^0.21.3", - "fsevents": "~2.3.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "dependencies": { - "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "dev": true, - "optional": true - }, - "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - } - } - }, - "webidl-conversions": { - "version": "3.0.1", - "dev": true - }, - "webpack-sources": { - "version": "3.2.3", - "dev": true - }, - "webpack-virtual-modules": { - "version": "0.6.1", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - } - }, - "which-typed-array": { - "version": "1.1.15", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - } - }, - "word-wrap": { - "version": "1.2.5", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "dev": true - }, - "wrap-ansi": { - "version": "8.1.0", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1" - }, - "ansi-styles": { - "version": "6.2.1" - }, - "emoji-regex": { - "version": "9.2.2" - }, - "string-width": { - "version": "5.1.2", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "dev": true - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "requires": {} - }, - "yallist": { - "version": "3.1.1", - "dev": true - }, - "yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==" - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - } - } -} +{ + "name": "zmk-studio", + "version": "0.3.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "zmk-studio", + "version": "0.3.1", + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.7.1", + "@fortawesome/free-brands-svg-icons": "^6.7.1", + "@fortawesome/react-fontawesome": "^0.2.2", + "@tailwindcss/container-queries": "^0.1.1", + "@tauri-apps/api": "^2.0.0", + "@tauri-apps/plugin-cli": "^2.0.0", + "@zmkfirmware/zmk-studio-ts-client": "^0.0.18", + "emittery": "^1.0.3", + "immer": "^10.1.1", + "lucide-react": "^0.445.0", + "react": "^18.2.0", + "react-aria-components": "^1.4.0", + "react-dom": "^18.2.0", + "tailwindcss-react-aria-components": "^1.1.3" + }, + "devDependencies": { + "@chromatic-com/storybook": "^1.3.5", + "@storybook/addon-essentials": "^8.3.5", + "@storybook/addon-interactions": "^8.0.10", + "@storybook/addon-links": "^8.0.10", + "@storybook/addon-onboarding": "^8.0.10", + "@storybook/blocks": "^8.3.5", + "@storybook/react": "^8.0.10", + "@storybook/react-vite": "^8.0.10", + "@storybook/test": "^8.0.10", + "@tauri-apps/cli": "^2.0.0", + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@types/w3c-web-serial": "^1.0.6", + "@types/web-bluetooth": "^0.0.20", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "eslint-plugin-storybook": "^0.8.0", + "postcss": "^8.4.38", + "prettier": "3.3.2", + "run-script-os": "^1.1.6", + "storybook": "^8.0.10", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5", + "vite": "^5.4.8" + }, + "optionalDependencies": { + "@esbuild/darwin-arm64": "0.23.0", + "@rollup/rollup-darwin-arm64": "^4.18.1" + } + }, + "../zmk-studio-ts-client": { + "version": "0.0.1-development", + "extraneous": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0" + }, + "devDependencies": { + "@ryansonshine/commitizen": "^4.2.8", + "@ryansonshine/cz-conventional-changelog": "^3.3.4", + "@types/jest": "^29.0.0", + "@types/node": "^12.20.11", + "@types/w3c-web-serial": "^1.0.6", + "@types/web-bluetooth": "^0.0.20", + "@typescript-eslint/eslint-plugin": "^4.22.0", + "@typescript-eslint/parser": "^4.22.0", + "conventional-changelog-conventionalcommits": "^5.0.0", + "eslint": "^7.25.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^3.4.0", + "husky": "^6.0.0", + "jest": "^29.0.0", + "lint-staged": "^13.2.1", + "prettier": "^2.2.1", + "semantic-release": "^21.0.1", + "ts-jest": "^29.0.0", + "ts-node": "^10.2.1", + "ts-proto": "^1.174.0", + "typescript": "^4.2.4", + "web-streams-polyfill": "4.0.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "../zmk/rpc-clients/typescript/ts-zmk-rpc-core": { + "version": "0.0.1-development", + "extraneous": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0" + }, + "devDependencies": { + "@ryansonshine/commitizen": "^4.2.8", + "@ryansonshine/cz-conventional-changelog": "^3.3.4", + "@types/jest": "^27.5.2", + "@types/node": "^12.20.11", + "@types/w3c-web-serial": "^1.0.6", + "@types/web-bluetooth": "^0.0.20", + "@typescript-eslint/eslint-plugin": "^4.22.0", + "@typescript-eslint/parser": "^4.22.0", + "conventional-changelog-conventionalcommits": "^5.0.0", + "eslint": "^7.25.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^3.4.0", + "husky": "^6.0.0", + "jest": "^27.2.0", + "lint-staged": "^13.2.1", + "prettier": "^2.2.1", + "semantic-release": "^21.0.1", + "ts-jest": "^27.0.5", + "ts-node": "^10.2.1", + "ts-proto": "^1.174.0", + "typescript": "^4.2.4", + "web-streams-polyfill": "4.0.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@base2/pretty-print-object": { + "version": "1.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@chromatic-com/storybook": { + "version": "1.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "chromatic": "^11.3.2", + "filesize": "^10.0.12", + "jsonfile": "^6.1.0", + "react-confetti": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=16.0.0", + "yarn": ">=1.22.18" + } + }, + "node_modules/@chromatic-com/storybook/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@chromatic-com/storybook/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", + "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "dependencies": { + "@formatjs/intl-localematcher": "0.5.4", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/ecma402-abstract/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/fast-memoize/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", + "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/icu-skeleton-parser": "1.8.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", + "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", + "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz", + "integrity": "sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz", + "integrity": "sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g==", + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.1.tgz", + "integrity": "sha512-nJR76eqPzCnMyhbiGf6X0aclDirZriTPRcFm1YFvuupyJOGwlNF022w3YBqu+yrHRhnKRpzFX+8wJKqiIjWZkA==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", + "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.3" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@internationalized/date": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", + "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.5.tgz", + "integrity": "sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", + "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.4.tgz", + "integrity": "sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.2.0", + "glob-promise": "^4.2.0", + "magic-string": "^0.27.0", + "react-docgen-typescript": "^2.2.2" + }, + "peerDependencies": { + "typescript": ">= 4.3.x", + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/magic-string": { + "version": "0.27.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "dev": true, + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@react-aria/accordion": { + "version": "3.0.0-alpha.34", + "resolved": "https://registry.npmjs.org/@react-aria/accordion/-/accordion-3.0.0-alpha.34.tgz", + "integrity": "sha512-3Qoj3StyQbdTYvAXVIbAIk11WtRyo3cdgn6OgwPAvN6c1r8R7X/J9DHTykZRrlF6TOGcdE0H0yrmPrlG92ObmA==", + "dependencies": { + "@react-aria/button": "^3.10.0", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/tree": "^3.8.5", + "@react-types/accordion": "3.0.0-alpha.24", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/breadcrumbs": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.17.tgz", + "integrity": "sha512-LJQ+u3TbPmtAWZ3/qC6VfLCzXiwVoB6GmI+HJ2pbjs6H9L8MoiLHsA4mgcz+P0rvx7SCs0Rhvy4JurV6R/R4xw==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/link": "^3.7.5", + "@react-aria/utils": "^3.25.3", + "@react-types/breadcrumbs": "^3.7.8", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/button": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.10.0.tgz", + "integrity": "sha512-mhbn2tEsr991sjG6YMH6oN3ELWb4YvZZ8mnZHMNLa3l8T00PV0ClvQBsUndo6uSvuTHhpFzmMMkJFhYYUwCKlw==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/toggle": "^3.7.8", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/calendar": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.12.tgz", + "integrity": "sha512-C8VRjRwEVPaGoCtjOlC0lb3mVSz4ajbal8jfvcbp7LOqCcmOVTUbiM7EPTy60EfZRanFNSp2D1ZstEZDU+cqsg==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/calendar": "^3.5.5", + "@react-types/button": "^3.10.0", + "@react-types/calendar": "^3.4.10", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/checkbox": { + "version": "3.14.7", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.7.tgz", + "integrity": "sha512-aqVxXcr/8P7pQ7R34DlJX2SdBvWtHof9lLTVBY/9tgMplcKIoVBdlVUYPtqWxT3tGan+rruPQHbzTx8zJRFJyg==", + "dependencies": { + "@react-aria/form": "^3.0.9", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/toggle": "^3.10.8", + "@react-aria/utils": "^3.25.3", + "@react-stately/checkbox": "^3.6.9", + "@react-stately/form": "^3.0.6", + "@react-stately/toggle": "^3.7.8", + "@react-types/checkbox": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/collections": { + "version": "3.0.0-alpha.5", + "resolved": "https://registry.npmjs.org/@react-aria/collections/-/collections-3.0.0-alpha.5.tgz", + "integrity": "sha512-8m8yZe1c5PYCylEN4lcG3ZL/1nyrON95nVsoknC8shY1uKP01oJd7w+f6hvVza0tJRQuVe4zW3gO4FVjv33a5g==", + "dependencies": { + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "use-sync-external-store": "^1.2.0" + }, + "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" + } + }, + "node_modules/@react-aria/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.0.0.tgz", + "integrity": "sha512-IwHI4e2fUHUOZHRrL2MsxGZFp/RCR2cLjm39gT41jVSuH4zjxueUf96NDm6c7FD0mB5vfk0jo+KJMnShL1a2rg==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/numberfield": "^3.11.7", + "@react-aria/slider": "^3.7.12", + "@react-aria/spinbutton": "^3.6.9", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/color": "^3.8.0", + "@react-stately/form": "^3.0.6", + "@react-types/color": "^3.0.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/combobox": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.10.4.tgz", + "integrity": "sha512-jzLyRwpwH5SCfQl5giLSwLaw9EKlRiMG39kDZLRB4MQ1MN4sIdIP2TXBbdYcSLtYjduJm2JfRvs2ezI+QI+umA==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/listbox": "^3.13.4", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/menu": "^3.15.4", + "@react-aria/overlays": "^3.23.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/combobox": "^3.10.0", + "@react-stately/form": "^3.0.6", + "@react-types/button": "^3.10.0", + "@react-types/combobox": "^3.13.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/datepicker": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.11.3.tgz", + "integrity": "sha512-HwGxDctFry5ew3Cu7gWpUVodaCg//V6NCihSRjLvnW/TWG+UFLzTafxTqqm8eRbicT3DJlXCLOUPk8Ek0txW6A==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@internationalized/number": "^3.5.4", + "@internationalized/string": "^3.2.4", + "@react-aria/focus": "^3.18.3", + "@react-aria/form": "^3.0.9", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/spinbutton": "^3.6.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/datepicker": "^3.10.3", + "@react-stately/form": "^3.0.6", + "@react-types/button": "^3.10.0", + "@react-types/calendar": "^3.4.10", + "@react-types/datepicker": "^3.8.3", + "@react-types/dialog": "^3.5.13", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/dialog": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.18.tgz", + "integrity": "sha512-j0x0OwDZKyW2GqBZl2Dw/pHl0uSCzhHOg5jNeulkZC8xQa8COuksQf5NFzPmgRPnzqpbgvSzCSs41ymS8spmFg==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/overlays": "^3.23.3", + "@react-aria/utils": "^3.25.3", + "@react-types/dialog": "^3.5.13", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/disclosure": { + "version": "3.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@react-aria/disclosure/-/disclosure-3.0.0-alpha.0.tgz", + "integrity": "sha512-/tleriRORdkRJf2JXjiRfhLfXA5WY0nPT3DoodZJgD5Fj/aCjrWXarVGUQuEk9vsH5pwinQiQB5So+cA+xF+UQ==", + "dependencies": { + "@react-aria/button": "^3.10.0", + "@react-aria/selection": "^3.20.0", + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-stately/disclosure": "3.0.0-alpha.0", + "@react-stately/toggle": "^3.7.8", + "@react-stately/tree": "^3.8.5", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/dnd": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.7.3.tgz", + "integrity": "sha512-SF7v1AzpXr4CSf98pSzjcSBCaezpP6rsSnSJTz0j2jrYfdQhX0MPA2lyxS+kgU1AEzkK19THQeHuj8hxQc0bVw==", + "dependencies": { + "@internationalized/string": "^3.2.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/overlays": "^3.23.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/dnd": "^3.4.3", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.3.tgz", + "integrity": "sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==", + "dependencies": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/form": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.9.tgz", + "integrity": "sha512-9M6IfC5t47G19c8roHWnkKd275BrECTzyTsc4rzf5OepJfHfG4evST6x+4gGOFYi8soC9XoQdJl4TRh/mft+gw==", + "dependencies": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/form": "^3.0.6", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.10.4.tgz", + "integrity": "sha512-3AjJ0hwRhOCIHThIZrGWrjAuKDpaZuBkODW3dvgLqtsNm3tL46DI6U9O3vfp8lNbrWMsXJgjRXwvXvdv0/gwCA==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/grid": "^3.9.3", + "@react-stately/selection": "^3.17.0", + "@react-types/checkbox": "^3.8.4", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/gridlist": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.9.4.tgz", + "integrity": "sha512-gGzS4ToSynn2KBycf9UCsWIJIbVl4RjoCjPF4NnukwzHmrXwbtZnlF0xsORQ5QxfqHH9UehTAHWFvOOHJSZZ2w==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/grid": "^3.10.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/list": "^3.11.0", + "@react-stately/tree": "^3.8.5", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/i18n": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.3.tgz", + "integrity": "sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==", + "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-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.22.3", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.3.tgz", + "integrity": "sha512-RRUb/aG+P0IKTIWikY/SylB6bIbLZeztnZY2vbe7RAG5MgVaCgn5HQ45SI15GlTmhsFG8CnF6slJsUFJiNHpbQ==", + "dependencies": { + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/label": { + "version": "3.7.12", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.12.tgz", + "integrity": "sha512-u9xT90lAlgb7xiv+p0md9QwCHz65XL7tjS5e29e88Rs3ptkv3aQubTqxVOUTEwzbNUT4A1QqTjUm1yfHewIRUw==", + "dependencies": { + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/link": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.5.tgz", + "integrity": "sha512-j0F1BIdNoE7Tl+0KzzjbrmYuxt4aWAmDZDHvJKiYg71Jb1BAPz71eE1O1ybMoO04+OG/6HrRZTragfSQLAJ58A==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/link": "^3.5.8", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/listbox": { + "version": "3.13.4", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.13.4.tgz", + "integrity": "sha512-2aG4jzlB+srYBeM9ap/BNZe0E04yMjY2dPGXcigkaSJt6/yYAHCygXuouf2MzvBfkdV4QWyHIIgWZmAXXl6reg==", + "dependencies": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/list": "^3.11.0", + "@react-types/listbox": "^3.5.2", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/live-announcer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.0.tgz", + "integrity": "sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-aria/menu": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.15.4.tgz", + "integrity": "sha512-4wfq8Lb7AltgSzBHdtypiPOnsRm8hHv7PUuHhlq/VT9yAkEFk4Flc7vKVF6VSFqrnCfyCf66B5aeapjNInAONg==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/overlays": "^3.23.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/menu": "^3.8.3", + "@react-stately/tree": "^3.8.5", + "@react-types/button": "^3.10.0", + "@react-types/menu": "^3.9.12", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/meter": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.17.tgz", + "integrity": "sha512-08wbQhfvVWzpWilhn/WD7cQ7TqafS/66umTk7+X6BW6TrS1//6loNNJV62IC3F7sskel4iEAtl2gW0WpW8zEdg==", + "dependencies": { + "@react-aria/progress": "^3.4.17", + "@react-types/meter": "^3.4.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/numberfield": { + "version": "3.11.7", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.7.tgz", + "integrity": "sha512-9bqg4sKqc5XLppHzJFRhgtkoeMu0N6Zg0AuVSiE/3CxE5Ad+y8tKpFEx9zh4o5BItyOWy18w5ZXnKjJGjd7waQ==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/spinbutton": "^3.6.9", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/form": "^3.0.6", + "@react-stately/numberfield": "^3.9.7", + "@react-types/button": "^3.10.0", + "@react-types/numberfield": "^3.8.6", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/overlays": { + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.23.3.tgz", + "integrity": "sha512-vRW4DL466a27BBIP6dQqmmei4nX/nsur6DyF0Hmd46ygwOdvdA+5MwvXZUz9yUamB79UeS9BMQZuBVwhjoMwBQ==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/overlays": "^3.6.11", + "@react-types/button": "^3.10.0", + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/progress": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.17.tgz", + "integrity": "sha512-5+01WNibLoNS5KcfU5p6vg7Lhz17plqqzv/uITx28zzj3saaj0VLR7n57Ig2fXe8ZEQoUS89BS3sIEsIf96S1A==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-types/progress": "^3.5.7", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/radio": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.8.tgz", + "integrity": "sha512-/vKQhKqpoCB/VqHuc46OOU+31HFtg6svcYzHBbz0wN/DSVCygYeTfB/36kY7x2GWWkT0pCsB4OcHJ+/0G3EfkQ==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/form": "^3.0.9", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-stately/radio": "^3.10.8", + "@react-types/radio": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/searchfield": { + "version": "3.7.9", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.9.tgz", + "integrity": "sha512-EHODG7HDFthwG5tx4fh+WP2hjNOp/rPAqdNScKBAN73nEf0F/qQpIwmdZF0EycCOzGSM5hhihjm0yMtTFYuzOQ==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/searchfield": "^3.5.7", + "@react-types/button": "^3.10.0", + "@react-types/searchfield": "^3.5.9", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/select": { + "version": "3.14.10", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.10.tgz", + "integrity": "sha512-xHkAJqvfKgnH5mVYwZj3ME7/Q3wUzgUZDK/iVuXUs3cAYap8ybM2d/2zOGcqv1keZHBUzwp9QtaN//FYK13jIA==", + "dependencies": { + "@react-aria/form": "^3.0.9", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/listbox": "^3.13.4", + "@react-aria/menu": "^3.15.4", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/select": "^3.6.8", + "@react-types/button": "^3.10.0", + "@react-types/select": "^3.9.7", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/selection": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.20.0.tgz", + "integrity": "sha512-h3giMcXo4SMZRL5HrqZvOLNTsdh5jCXwLUx0wpj/2EF0tcYQL6WDfn1iJ+rHARkUIs7X70fUV8iwlbUySZy1xg==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/selection": "^3.17.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/separator": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.3.tgz", + "integrity": "sha512-L+eCmSGfRJ9jScHZqBkmOkp44LBARisDjRdYbGrLlsAEcOiHUXufnfpxz2rgkUGBdUgnI9hIk12q5kdy0UxGjg==", + "dependencies": { + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/slider": { + "version": "3.7.12", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.12.tgz", + "integrity": "sha512-yZWBGxDHBL5Gjjdnz+igdO7VfYND9iZsSqynadZthWtfy1jA+qBR25I+Soc0D9gkr/2/JUJkFgkllYF1RzWMUQ==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-stately/slider": "^3.5.8", + "@react-types/shared": "^3.25.0", + "@react-types/slider": "^3.7.6", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.9.tgz", + "integrity": "sha512-m+uVJdiIc2LrLVDGjU7p8P2O2gUvTN26GR+NgH4rl+tUSuAB0+T1rjls/C+oXEqQjCpQihEB9Bt4M+VHpzmyjA==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/utils": "^3.25.3", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.6.tgz", + "integrity": "sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/switch": { + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.8.tgz", + "integrity": "sha512-6Q0w7o+liB0ztKPL9UaRfX+hPPuy71AL3SuVCMK7RKfPqZwcmlwUDp2gr3j5fvs8gLev0r42XtEBqmGwkHTkEw==", + "dependencies": { + "@react-aria/toggle": "^3.10.8", + "@react-stately/toggle": "^3.7.8", + "@react-types/shared": "^3.25.0", + "@react-types/switch": "^3.5.6", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/table": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.15.4.tgz", + "integrity": "sha512-t4+vtUF63i6OrXmZ0AA/RmWyIt8cieUm7cSXhQMooAgUjkvVqTNkQQRsntVOb+UNI5KmiGSe4jB3H4GVXz2X9w==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/grid": "^3.10.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/collections": "^3.11.0", + "@react-stately/flags": "^3.0.4", + "@react-stately/table": "^3.12.3", + "@react-types/checkbox": "^3.8.4", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/tabs": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.6.tgz", + "integrity": "sha512-iPQ2Im+srnSB06xIdVNHZZDJnZmUR0IG0MZAp6FXmbkCeLAd9tZQHgSFYwswBfgAStNnyFQHP5aSBJOJMRCACg==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/tabs": "^3.6.10", + "@react-types/shared": "^3.25.0", + "@react-types/tabs": "^3.3.10", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/tag": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.4.6.tgz", + "integrity": "sha512-Uf1sPabwJx99diyXJTaVguiYozS49opjQxmK1PPbb87ipNN1YlSDVbP05IelVMbnbxXHudsRmzPOBmmblcj1GQ==", + "dependencies": { + "@react-aria/gridlist": "^3.9.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/list": "^3.11.0", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/textfield": { + "version": "3.14.9", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.9.tgz", + "integrity": "sha512-LPwZhthDVLyvnzXWco4eyYCD2pFmQ4Vw9ha9tb3QkZUIP6j8E52y76j0c59Nq7XYus3IHatVe7yYQk7kbo8Zrg==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/form": "^3.0.9", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@react-types/textfield": "^3.9.7", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.8.tgz", + "integrity": "sha512-N6WTgE8ByMYY+ZygUUPGON2vW5NrxwU91H98+Nozl+Rq6ZYR2fD9i8oRtLtrYPxjU2HmaFwDyQdWvmMJZuDxig==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/toggle": "^3.7.8", + "@react-types/checkbox": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toolbar": { + "version": "3.0.0-beta.9", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.9.tgz", + "integrity": "sha512-P80zgbPb0aIg22fHlgHRXXUSpNSAOnh1ljsLiSHAGdXPrC5nRijYwwKi7DNRsXqD+ljEJwF6ekZPo95dXXeYAA==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/tooltip": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.8.tgz", + "integrity": "sha512-dlWfS3w8E6dw5Xoist4cVX2GQE5oh3VQr88dRyLto7BAPLFrp3I+8c9mZCVUobLS/f5QcQzLkqw750s4ENCyiw==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/tooltip": "^3.4.13", + "@react-types/shared": "^3.25.0", + "@react-types/tooltip": "^3.4.12", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/tree": { + "version": "3.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@react-aria/tree/-/tree-3.0.0-beta.0.tgz", + "integrity": "sha512-bF9sp7x+Ciy0N2KJwy8epmDoNblyVmeB4vR/KWLVIKMjANCpzTbvhWZUBpQxkpO0eupInU2uN+FMNr0WKMyd7Q==", + "dependencies": { + "@react-aria/gridlist": "^3.9.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/tree": "^3.8.5", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", + "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", + "dependencies": { + "@react-aria/ssr": "^3.9.6", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/virtualizer": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-4.0.3.tgz", + "integrity": "sha512-neSf+EXtqmQiccHcp9CS2RbH3xA6FuZggLzGsM1NoqDdXIL7TLfc7lhaqi8VAZ03e1FCUSye08BCRk3DdpUiyA==", + "dependencies": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/virtualizer": "^4.1.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "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" + } + }, + "node_modules/@react-aria/visually-hidden": { + "version": "3.8.16", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.16.tgz", + "integrity": "sha512-3zThVIzEprez4A/GajOut6/JQ4WCu2ROHGZ1xH1+2GFjBJQaTfPBIjg6UIwaT7sgHRQIik8QidogLqXHbp81yA==", + "dependencies": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/calendar": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.5.tgz", + "integrity": "sha512-HzaiDRhrmaYIly8hRsjjIrydLkldiw1Ws6T/130NLQOt+VPwRW/x0R+nil42mA9LZ6oV0XN0NpmG5tn7TaKRGw==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@react-stately/utils": "^3.10.4", + "@react-types/calendar": "^3.4.10", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/checkbox": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.9.tgz", + "integrity": "sha512-JrY3ecnK/SSJPxw+qhGhg3YV4e0CpUcPDrVwY3mSiAE932DPd19xr+qVCknJ34H7JYYt/q0l2z0lmgPnl96RTg==", + "dependencies": { + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/checkbox": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/collections": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.11.0.tgz", + "integrity": "sha512-TiJeJjHMPSbbeAhmCXLJNSCk0fa5XnCvEuYw6HtQzDnYiq1AD7KAwkpjC5NfKkjqF3FLXs/v9RDm/P69q6rYzw==", + "dependencies": { + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/color": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.8.0.tgz", + "integrity": "sha512-lBH91HEStZeayhE/FkDMt9WC0UISQiAn8DoD2hfpTGeeWscX/soyxZA7oVL7zBOG9RfDBMNzF+CybVROrWSKAQ==", + "dependencies": { + "@internationalized/number": "^3.5.4", + "@internationalized/string": "^3.2.4", + "@react-aria/i18n": "^3.12.3", + "@react-stately/form": "^3.0.6", + "@react-stately/numberfield": "^3.9.7", + "@react-stately/slider": "^3.5.8", + "@react-stately/utils": "^3.10.4", + "@react-types/color": "^3.0.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/combobox": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.0.tgz", + "integrity": "sha512-4W4HCCjjoddW/LZM3pSSeLoV7ncYXlaICKmqlBcbtLR5jY4U5Kx+pPpy3oJ1vCdjDHatIxZ0tVKEBP7vBQVeGQ==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/form": "^3.0.6", + "@react-stately/list": "^3.11.0", + "@react-stately/overlays": "^3.6.11", + "@react-stately/select": "^3.6.8", + "@react-stately/utils": "^3.10.4", + "@react-types/combobox": "^3.13.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/data": { + "version": "3.11.7", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.7.tgz", + "integrity": "sha512-2YJ+Lmca18f/h7jiZiU9j2IhBJl6BFO1BWlwvcCAH/eCWTdveX8gzsUdW++0szzpJaoCilTCYoi8z7QWyVH9jQ==", + "dependencies": { + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/datepicker": { + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.10.3.tgz", + "integrity": "sha512-6PJW1QMwk6BQMktV9L6DA4f2rfAdLfbq3iTNLy4qxd5IfNPLMUZiJGGTj+cuqx0WcEl+q5irp+YhKBpbmhPZHg==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@internationalized/string": "^3.2.4", + "@react-stately/form": "^3.0.6", + "@react-stately/overlays": "^3.6.11", + "@react-stately/utils": "^3.10.4", + "@react-types/datepicker": "^3.8.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/disclosure": { + "version": "3.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@react-stately/disclosure/-/disclosure-3.0.0-alpha.0.tgz", + "integrity": "sha512-CbFUrEwhsP5+44PMHipn/Cd61VTvqyKmx1yeNDyvj/4bYhmxYLgQp/Ma+iEqe23JkXJh2JO/ws3l9FnebScCJQ==", + "dependencies": { + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/dnd": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.4.3.tgz", + "integrity": "sha512-sUvhmMxFEw6P2MW7walx0ntakIihxdPxA06K9YZ3+ReaUvzQuRw5cFDaTTHrlegWRMYD0CyQaKlGIaTQihhvVA==", + "dependencies": { + "@react-stately/selection": "^3.17.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/flags": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.4.tgz", + "integrity": "sha512-RNJEkOALwKg+JeYsfNlfPc4GXm7hiBLX0yuHOkRapWEyDOfi0cinkV/TZG4goOZdQ5tBpHmemf2qqiHAxqHlzQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-stately/form": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.6.tgz", + "integrity": "sha512-KMsxm3/V0iCv/6ikt4JEjVM3LW2AgCzo7aNotMzRobtwIo0RwaUo7DQNY00rGgFQ3/IjzI6DcVo13D+AVE/zXg==", + "dependencies": { + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/grid": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.3.tgz", + "integrity": "sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/selection": "^3.17.0", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/layout": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-4.0.3.tgz", + "integrity": "sha512-zFLXnPalWWVCdFGcPAb+nywSTz/xAnKRxb7zT+YDa5U80DHArDGKZcQ+by0+2Sf8yaYolROco4my+BERPXJB6A==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/table": "^3.12.3", + "@react-stately/virtualizer": "^4.1.0", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/list": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.11.0.tgz", + "integrity": "sha512-O+BxXcbtoLZWn4QIT54RoFUaM+QaJQm6s0ZBJ3Jv4ILIhukVOc55ra+aWMVlXFQSpbf6I3hyVP6cz1yyvd5Rtw==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/selection": "^3.17.0", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/menu": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.8.3.tgz", + "integrity": "sha512-sV63V+cMgzipx/N7dq5GaXoItfXIfFEpCtlk3PM2vKstlCJalszXrdo+x996bkeU96h0plB7znAlhlXOeTKzUg==", + "dependencies": { + "@react-stately/overlays": "^3.6.11", + "@react-types/menu": "^3.9.12", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/numberfield": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.7.tgz", + "integrity": "sha512-PjSgCCpYasGCEAznFQNqa2JhhEQ5+/2eMiV7ZI5j76q3edTNF8G5OOCl2RazDbzFp6vDAnRVT7Kctx5Tl5R/Zw==", + "dependencies": { + "@internationalized/number": "^3.5.4", + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/numberfield": "^3.8.6", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/overlays": { + "version": "3.6.11", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.11.tgz", + "integrity": "sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==", + "dependencies": { + "@react-stately/utils": "^3.10.4", + "@react-types/overlays": "^3.8.10", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/radio": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.8.tgz", + "integrity": "sha512-VRq6Gzsbk3jzX6hdrSoDoSra9vLRsOi2pLkvW/CMrJ0GSgMwr8jjvJKnNFvYJ3eYQb20EwkarsOAfk7vPSIt/Q==", + "dependencies": { + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/radio": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/searchfield": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.7.tgz", + "integrity": "sha512-VxEG4tWDypdXQ8f7clZBu5Qmc4osqDBeA/gNMA2i1j/h2zRVcCJ0fRCHuDeXLSWBqF1XXAI4TWV53fBBwJusbg==", + "dependencies": { + "@react-stately/utils": "^3.10.4", + "@react-types/searchfield": "^3.5.9", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select": { + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.8.tgz", + "integrity": "sha512-fLAVzGeYSdYdBdrEVws6Pb1ywFPdapA0eWphoW5s3fS0/pKcVWwbCHeHlaBEi1ISyqEubQZFGQdeFKm/M46Hew==", + "dependencies": { + "@react-stately/form": "^3.0.6", + "@react-stately/list": "^3.11.0", + "@react-stately/overlays": "^3.6.11", + "@react-types/select": "^3.9.7", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/selection": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.17.0.tgz", + "integrity": "sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/slider": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.8.tgz", + "integrity": "sha512-EDgbrxMq1w3+XTN72MGl3YtAG/j65EYX1Uc3Fh56K00+inJbTdRWyYTrb3NA310fXCd0WFBbzExuH2ohlKQycg==", + "dependencies": { + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@react-types/slider": "^3.7.6", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/table": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.12.3.tgz", + "integrity": "sha512-8uGrLcNJYeMbFtzRQZFWCBj5kV+7v3jzwoKIL1j9TmYUKow1PTDMQbPJpAZLQhnC2wVMlaFVgDbedSlbBij7Zg==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/flags": "^3.0.4", + "@react-stately/grid": "^3.9.3", + "@react-stately/selection": "^3.17.0", + "@react-stately/utils": "^3.10.4", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/tabs": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.10.tgz", + "integrity": "sha512-F7wfoiNsrBy7c02AYHyE1USGgj05HQ0hp7uXmQjp2LEa+AA0NKKi3HdswTHHySxb0ZRuoEE7E7vp/gXQYx2/Ow==", + "dependencies": { + "@react-stately/list": "^3.11.0", + "@react-types/shared": "^3.25.0", + "@react-types/tabs": "^3.3.10", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/toggle": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.8.tgz", + "integrity": "sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==", + "dependencies": { + "@react-stately/utils": "^3.10.4", + "@react-types/checkbox": "^3.8.4", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/tooltip": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.13.tgz", + "integrity": "sha512-zQ+8FQ7Pi0Cz852dltXb6yaryjE18K3byK4tIO3e5vnrZHEGvfdxowc+v9ak5UV93kVrYoOVmfZHRcEaTXTBNA==", + "dependencies": { + "@react-stately/overlays": "^3.6.11", + "@react-types/tooltip": "^3.4.12", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/tree": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.5.tgz", + "integrity": "sha512-0/tYhsKWQQJTOZFDwh8hY3Qk6ejNFRldGrLeK5kS22UZdvsMFyh7WAi40FTCJy561/VoB0WqQI4oyNPOa9lYWg==", + "dependencies": { + "@react-stately/collections": "^3.11.0", + "@react-stately/selection": "^3.17.0", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", + "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/virtualizer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.1.0.tgz", + "integrity": "sha512-MOaqpY3NloXrpCBvVUb3HL1p3Bh4YRtUq8D2ufC909u5vM6n6G5Swk1XPJ9KHfaftGhb5serwLkm2/Aha5CTbA==", + "dependencies": { + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/accordion": { + "version": "3.0.0-alpha.24", + "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.24.tgz", + "integrity": "sha512-hwDT4TJH7aHCG8m9QsTP+7xgW7x7k2TY+WHlMRr6qDS6WhTCwd41dCdagxC0SZtulzZuWqISBxZifVrh4Tynew==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/breadcrumbs": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.8.tgz", + "integrity": "sha512-+BW2a+PrY8ArZ+pKecz13oJFrUAhthvXx17o3x0BhWUhRpAdtmTYt2hjw8zNanm2j0Kvgo1HYKgvtskCRxYcOA==", + "dependencies": { + "@react-types/link": "^3.5.8", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/button": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.0.tgz", + "integrity": "sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/calendar": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.10.tgz", + "integrity": "sha512-PyjqxwJxSW2IpQx6y0D9O34fRCWn1gv9q0qFhgaIigIQrPg8zTE/CC7owHLxAtgCnnCt8exJ5rqi414csaHKlA==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/checkbox": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.4.tgz", + "integrity": "sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.0.0.tgz", + "integrity": "sha512-VUH8CROAM69GsMBilrJ1xyAdVsWL01nXQYrkZJxAEApv1OrcpIGSdsXLcGrjsrhjjiNVXxWFnqYRMsKkLzIl7g==", + "dependencies": { + "@react-types/shared": "^3.25.0", + "@react-types/slider": "^3.7.6" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/combobox": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.0.tgz", + "integrity": "sha512-kH/a+Fjpr54M2JbHg9RXwMjZ9O+XVsdOuE5JCpWRibJP1Mfl1md8gY6y6zstmVY8COrSqFvMZWB+PzwaTWjTGw==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/datepicker": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.8.3.tgz", + "integrity": "sha512-Y4qfPRBB6uzocosCOWSYMuwiZ3YXwLWQYiFB4KCglkvHyltbNz76LgoBEnclYA5HjwosIk4XywiXvHSYry8JnQ==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@react-types/calendar": "^3.4.10", + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/dialog": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.13.tgz", + "integrity": "sha512-9k8daVcAqQsySkzDY6NIVlyGxtpEip4TKuLyzAehthbv78GQardD5fHdjQ6eXPRS4I2qZrmytrFFrlOnwWVGHw==", + "dependencies": { + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/form": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.7.tgz", + "integrity": "sha512-CVRjCawPhYRHi/LuikOC2kz5vgvmjjKmF4/wUgR2QzD1Ok4wY1ZGSx9M9EZptCIZAt2mToR6woyLUdtzy+foeQ==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/grid": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.9.tgz", + "integrity": "sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/link": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.8.tgz", + "integrity": "sha512-l/YGXddgAbLnIT7ekftXrK1D4n8NlLQwx0d4usyZpaxP1KwPzuwng20DxynamLc1atoKBqbUtZAnz32pe7vYgw==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/listbox": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.2.tgz", + "integrity": "sha512-ML/Bt/MeO0FiixcuFQ+smpu1WguxTOqHDjSnhc1vcNxVQFWQOhyVy01LAY2J/T9TjfjyYGD41vyMTI0f6fcLEQ==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/menu": { + "version": "3.9.12", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.12.tgz", + "integrity": "sha512-1SPnkHKJdvOfwv9fEgK1DI6DYRs4D3hW2XcWlLhVXSjaC68CzOHGwFhKIKvZiDTW/11L770PRSEloIxHR09uFQ==", + "dependencies": { + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/meter": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.4.tgz", + "integrity": "sha512-0SEmPkShByC1gYkW7l+iJPg8QfEe2VrgwTciAtTfC4KIqAYmJVQtq6L+4d72EMxOh8RpQHePaY/RFHEJXAh72A==", + "dependencies": { + "@react-types/progress": "^3.5.7" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/numberfield": { + "version": "3.8.6", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.6.tgz", + "integrity": "sha512-VtWEMAXUO1S9EEZI8whc7xv6DVccxhbWsRthMCg/LxiwU3U5KAveadNc2c5rtXkRpd3cnD5xFzz3dExXdmHkAg==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.8.10", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.10.tgz", + "integrity": "sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/progress": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.7.tgz", + "integrity": "sha512-EqMDHmlpoZUZzTjdejGIkSM0pS2LBI9NdadHf3bDNTycHv+5L1xpMHUg8RGOW8a3sRVLRvfN1aO9l75QZkyj+w==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/radio": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.4.tgz", + "integrity": "sha512-GCuOwQL19iwKa74NAIk9hv4ivyI8oW1+ZCuc2fzyDdeQjzTIlv3qrIyShwpVy1IoI7/4DYTMZm/YXPoKhu5TTA==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/searchfield": { + "version": "3.5.9", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.9.tgz", + "integrity": "sha512-c/x8BWpH1Zq+fWpeBtzw2AhQhGi7ahWPicV7PlnqwIGO0MrH/QCjX0dj+I+1xpcAh8Eq6ECa79HE74Rw6aJmFg==", + "dependencies": { + "@react-types/shared": "^3.25.0", + "@react-types/textfield": "^3.9.7" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/select": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.7.tgz", + "integrity": "sha512-Jva4ixfB4EEdy+WmZkUoLiQI7vVfHPxM73VuL7XDxvAO+YKiIztDTcU720QVNhxTMmQvCxfRBXWar8aodCjLiw==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", + "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/slider": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.6.tgz", + "integrity": "sha512-z72wnEzSge6qTD9TUoUPp1A4j4jXk/MVii6rGE78XeE/Pq7HyyjU5bCagryMr9PC9MKa/oTiHcshKqWBDf57GA==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/switch": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.6.tgz", + "integrity": "sha512-gJ8t2yTCgcitz4ON4ELcLLmtlDkn2MUjjfu3ez/cwA1X/NUluPYkhXj5Z6H+KOlnveqrKCZDRoTgK74cQ6Cvfg==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/table": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.2.tgz", + "integrity": "sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==", + "dependencies": { + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/tabs": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.10.tgz", + "integrity": "sha512-s/Bw/HCIdWJPBw4O703ghKqhjGsIerRMIDxA88hbQYzfTDD6bkFDjCnsP2Tyy1G8Dg2rSPFUEE+k+PpLzqeEfQ==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/textfield": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.7.tgz", + "integrity": "sha512-vU5+QCOF9HgWGjAmmy+cpJibVW5voFomC5POmYHokm7kivYcMMjlonsgWwg/0xXrqE2qosH3tpz4jFoEuig1NQ==", + "dependencies": { + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/tooltip": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.12.tgz", + "integrity": "sha512-FwsdSQ3UDIDORanQMGMLyzSUabw4AkKhwcRdPv4d5OT8GmJr7mBdZynfcsrKLJ0fzskIypMqspoutZidsI0MQg==", + "dependencies": { + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/addon-actions": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.5.tgz", + "integrity": "sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "@types/uuid": "^9.0.1", + "dequal": "^2.0.2", + "polished": "^4.2.2", + "uuid": "^9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-backgrounds": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.5.tgz", + "integrity": "sha512-IQGjDujuw8+iSqKREdkL8I5E/5CAHZbfOWd4A75PQK2D6qZ0fu/xRwTOQOH4jP6xn/abvfACOdL6A0d5bU90ag==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-controls": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.5.tgz", + "integrity": "sha512-2eCVobUUvY1Rq7sp1U8Mx8t44VXwvi0E+hqyrsqOx5TTSC/FUQ+hNAX6GSYUcFIyQQ1ORpKNlUjAAdjxBv1ZHQ==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-docs": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.5.tgz", + "integrity": "sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==", + "dev": true, + "dependencies": { + "@mdx-js/react": "^3.0.0", + "@storybook/blocks": "8.3.5", + "@storybook/csf-plugin": "8.3.5", + "@storybook/global": "^5.0.0", + "@storybook/react-dom-shim": "8.3.5", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "fs-extra": "^11.1.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/csf-plugin": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.5.tgz", + "integrity": "sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==", + "dev": true, + "dependencies": { + "unplugin": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/react-dom-shim": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.5.tgz", + "integrity": "sha512-Hf0UitJ/K0C7ajooooUK/PxOR4ihUWqsC7iCV1Gqth8U37dTeLMbaEO4PBwu0VQ+Ufg0N8BJLWfg7o6G4hrODw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-essentials": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.5.tgz", + "integrity": "sha512-hXTtPuN4/IsXjUrkMPAuz1qKAl8DovdXpjQgjQs7jSAVx3kc4BZaGqJ3gaVenKtO8uDchmA92BoQygpkc8eWhw==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "8.3.5", + "@storybook/addon-backgrounds": "8.3.5", + "@storybook/addon-controls": "8.3.5", + "@storybook/addon-docs": "8.3.5", + "@storybook/addon-highlight": "8.3.5", + "@storybook/addon-measure": "8.3.5", + "@storybook/addon-outline": "8.3.5", + "@storybook/addon-toolbars": "8.3.5", + "@storybook/addon-viewport": "8.3.5", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-highlight": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.5.tgz", + "integrity": "sha512-ku0epul9aReCR3Gv/emwYnsqg3vgux5OmYMjoDcJC7s+LyfweSzLV/f5t9gSHazikJElh5TehtVkWbC4QfbGSw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-interactions": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.0.10", + "@storybook/test": "8.0.10", + "@storybook/types": "8.0.10", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.4", + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-measure": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.5.tgz", + "integrity": "sha512-6GVehgbHhFIFS69xSfRV+12VK0cnuIAtZdp1J3eUCc2ATrcigqVjTM6wzZz6kBuX6O3dcusr7Wg46KtNliqLqg==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-onboarding": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.5.tgz", + "integrity": "sha512-dwmK6GzjEnQP9Yo0VnBUQtJkXZlXdfjWyskZ/IlUVc+IFdeeCtIiMyA92oMfHo8eXt0k1g21ZqMaIn7ZltOuHw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-toolbars": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.5.tgz", + "integrity": "sha512-Ml2gc9q8WbteDvmuAZGgBxt5SqWMXzuTkMjlsA8EB53hlkN1w9esX4s8YtBeNqC3HKoUzcdq8uexSBqU8fDbSA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/addon-viewport": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.5.tgz", + "integrity": "sha512-FSWydoPiVWFXEittG7O1YgvuaqoU9Vb+qoq9XfP/hvQHHMDcMZvC40JaV8AnJeTXaM7ngIjcn9XDEfGbFfOzXw==", + "dev": true, + "dependencies": { + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.5" + } + }, + "node_modules/@storybook/blocks": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.5.tgz", + "integrity": "sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==", + "dev": true, + "dependencies": { + "@storybook/csf": "^0.1.11", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.10", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.4.5", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.5" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-vite": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "8.0.10", + "@storybook/client-logger": "8.0.10", + "@storybook/core-common": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/csf-plugin": "8.0.10", + "@storybook/node-logger": "8.0.10", + "@storybook/preview": "8.0.10", + "@storybook/preview-api": "8.0.10", + "@storybook/types": "8.0.10", + "@types/find-cache-dir": "^3.2.1", + "browser-assert": "^1.2.1", + "es-module-lexer": "^0.9.3", + "express": "^4.17.3", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "magic-string": "^0.30.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@preact/preset-vite": "*", + "typescript": ">= 4.3.x", + "vite": "^4.0.0 || ^5.0.0", + "vite-plugin-glimmerx": "*" + }, + "peerDependenciesMeta": { + "@preact/preset-vite": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vite-plugin-glimmerx": { + "optional": true + } + } + }, + "node_modules/@storybook/channels": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/global": "^5.0.0", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/client-logger": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.5.tgz", + "integrity": "sha512-GOGfTvdioNa/n+Huwg4u/dsyYyBcM+gEcdxi3B7i5x4yJ3I912KoVshumQAOF2myKSRdI8h8aGWdx7nnjd0+5Q==", + "dev": true, + "dependencies": { + "@storybook/csf": "^0.1.11", + "@types/express": "^4.17.21", + "better-opn": "^3.0.2", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", + "esbuild-register": "^3.5.0", + "express": "^4.19.2", + "jsdoc-type-pratt-parser": "^4.0.0", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-common": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core-events": "8.0.10", + "@storybook/csf-tools": "8.0.10", + "@storybook/node-logger": "8.0.10", + "@storybook/types": "8.0.10", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", + "chalk": "^4.1.0", + "cross-spawn": "^7.0.3", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", + "esbuild-register": "^3.5.0", + "execa": "^5.0.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "semver": "^7.3.7", + "tempy": "^1.0.1", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-common/node_modules/glob": { + "version": "10.3.15", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/core-common/node_modules/minipass": { + "version": "7.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@storybook/core-common/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-events": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", + "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", + "dev": true, + "dependencies": { + "type-fest": "^2.19.0" + } + }, + "node_modules/@storybook/csf-plugin": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf-tools": "8.0.10", + "unplugin": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-tools": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "@storybook/csf": "^0.1.4", + "@storybook/types": "8.0.10", + "fs-extra": "^11.1.0", + "recast": "^0.23.5", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/docs-tools": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core-common": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/preview-api": "8.0.10", + "@storybook/types": "8.0.10", + "@types/doctrine": "^0.0.3", + "assert": "^2.1.0", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/global": { + "version": "5.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/icons": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.12.tgz", + "integrity": "sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/instrumenter": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "8.0.10", + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.0.10", + "@vitest/utils": "^1.3.1", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/node-logger": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preview": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preview-api": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "8.0.10", + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/csf": "^0.1.4", + "@storybook/global": "^5.0.0", + "@storybook/types": "8.0.10", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/react": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "8.0.10", + "@storybook/docs-tools": "8.0.10", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.0.10", + "@storybook/react-dom-shim": "8.0.10", + "@storybook/types": "8.0.10", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^18.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/react-vite": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", + "@rollup/pluginutils": "^5.0.2", + "@storybook/builder-vite": "8.0.10", + "@storybook/node-logger": "8.0.10", + "@storybook/react": "8.0.10", + "find-up": "^5.0.0", + "magic-string": "^0.30.0", + "react-docgen": "^7.0.0", + "resolve": "^1.22.8", + "tsconfig-paths": "^4.2.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "vite": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@storybook/react/node_modules/@types/estree": { + "version": "0.0.51", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/react/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@storybook/react/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/test": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/instrumenter": "8.0.10", + "@storybook/preview-api": "8.0.10", + "@testing-library/dom": "^9.3.4", + "@testing-library/jest-dom": "^6.4.2", + "@testing-library/user-event": "^14.5.2", + "@vitest/expect": "1.3.1", + "@vitest/spy": "^1.3.1", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/types": { + "version": "8.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "8.0.10", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@swc/core": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.4.tgz", + "integrity": "sha512-+wSycNxOw9QQz81AJAZlNS34EtOIifwUXMPACg05PWjECsjOKDTXLCVPx6J0lRaxhHSGBU2OYs9mRfIvxGt3CA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.12" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.4", + "@swc/core-darwin-x64": "1.7.4", + "@swc/core-linux-arm-gnueabihf": "1.7.4", + "@swc/core-linux-arm64-gnu": "1.7.4", + "@swc/core-linux-arm64-musl": "1.7.4", + "@swc/core-linux-x64-gnu": "1.7.4", + "@swc/core-linux-x64-musl": "1.7.4", + "@swc/core-win32-arm64-msvc": "1.7.4", + "@swc/core-win32-ia32-msvc": "1.7.4", + "@swc/core-win32-x64-msvc": "1.7.4" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.4.tgz", + "integrity": "sha512-RbWrdGh+x9xKFUA9/kPZRR8OPxUsDUuPyLjPIGLYZMO+ftht2vhVH7QsUq6lg+jAP34eIya72UA1isiZe+BRaA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.4.tgz", + "integrity": "sha512-TxCWMJs4OrqApjFuT8cUiqMz0zg97F0JsXBEeZ7zjkyv9XJ/rN2pdwqMlZv0Wv2C2rivOPo6FsWYlZ3V8ZHhyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.4.tgz", + "integrity": "sha512-5IhwIJZAgkkfI6PqgQ3xk0/2hTAVsAczIPLiR2Epp30EgsNo1KIFL0ZHzrnvJPy5BZ3jy3T1dEbDE/memBOEmA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.4.tgz", + "integrity": "sha512-0787jri83jigf26mF8FndWehh7jqMaHwAm/OV6VdToyNo/g+d1AxVpkEizrywZK46el+AObnHUIHIHwZgO21LA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.4.tgz", + "integrity": "sha512-A45hGKWAGcjU5Ol0uQUoK0tHerwEKxfprYUZbmPLpD2yrpMZr+dTrwY2n075sixs7RuZEccBkgGNpehEe5BPBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.4.tgz", + "integrity": "sha512-bcO1MpAm39TXqqHuYW4ox4vDvhB7jkguwMwxvmL+cKBGsUHrIoUTfGt9NM9N4D4CvOwULlxqbyt19veUJ7CVPw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.4.tgz", + "integrity": "sha512-N6nXuHyDO/q5kPN2xQxz5BEvhFpgnFSkP+9wxg5xWq+qIQL5bv37jk8dkKvMLx/8fHzTqrIjPDSRzVbcL7sqXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.4.tgz", + "integrity": "sha512-7W1owqCNR1cG+mpS55juiZlR/lrAdxB1pH32egeOipNKOLGwyqmlzQ0g9tkQTNgzwgfpCUg8z606+GqqXvajZw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.4.tgz", + "integrity": "sha512-saLkY+q7zNPk4gYiUBCc93FYPo4ECXMjHcSPtLVHoPZBIxRrklgaAf6aDpblBo30nVdoBE2V3YPd0Y/cPiY6RQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.4.tgz", + "integrity": "sha512-zKF6jpRBNuVKgOf2W5dMcPyjwcNCp21syjl9lvLRbCeIg+1U+zjdoQCAmMWWoPNE7fLg+yfvohnnOJG2AdzQ9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/helpers": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", + "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/@swc/types": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tailwindcss/container-queries": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", + "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.2.0" + } + }, + "node_modules/@tauri-apps/api": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.1.tgz", + "integrity": "sha512-eoQWT+Tq1qSwQpHV+nw1eNYe5B/nm1PoRjQCRiEOS12I1b+X4PUcREfXVX8dPcBT6GrzWGDtaecY0+1p0Rfqlw==", + "license": "Apache-2.0 OR MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.1.0.tgz", + "integrity": "sha512-K2VhcKqBhAeS5pNOVdnR/xQRU6jwpgmkSL2ejHXcl0m+kaTggT0WRDQnFtPq6NljA7aE03cvwsbCAoFG7vtkJw==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "2.1.0", + "@tauri-apps/cli-darwin-x64": "2.1.0", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.1.0", + "@tauri-apps/cli-linux-arm64-gnu": "2.1.0", + "@tauri-apps/cli-linux-arm64-musl": "2.1.0", + "@tauri-apps/cli-linux-x64-gnu": "2.1.0", + "@tauri-apps/cli-linux-x64-musl": "2.1.0", + "@tauri-apps/cli-win32-arm64-msvc": "2.1.0", + "@tauri-apps/cli-win32-ia32-msvc": "2.1.0", + "@tauri-apps/cli-win32-x64-msvc": "2.1.0" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.1.0.tgz", + "integrity": "sha512-ESc6J6CE8hl1yKH2vJ+ALF+thq4Be+DM1mvmTyUCQObvezNCNhzfS6abIUd3ou4x5RGH51ouiANeT3wekU6dCw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.1.0.tgz", + "integrity": "sha512-TasHS442DFs8cSH2eUQzuDBXUST4ECjCd0yyP+zZzvAruiB0Bg+c8A+I/EnqCvBQ2G2yvWLYG8q/LI7c87A5UA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.1.0.tgz", + "integrity": "sha512-aP7ZBGNL4ny07Cbb6kKpUOSrmhcIK2KhjviTzYlh+pPhAptxnC78xQGD3zKQkTi2WliJLPmBYbOHWWQa57lQ9w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.1.0.tgz", + "integrity": "sha512-ZTdgD5gLeMCzndMT2f358EkoYkZ5T+Qy6zPzU+l5vv5M7dHVN9ZmblNAYYXmoOuw7y+BY4X/rZvHV9pcGrcanQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.1.0.tgz", + "integrity": "sha512-NzwqjUCilhnhJzusz3d/0i0F1GFrwCQbkwR6yAHUxItESbsGYkZRJk0yMEWkg3PzFnyK4cWTlQJMEU52TjhEzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.1.0.tgz", + "integrity": "sha512-TyiIpMEtZxNOQmuFyfJwaaYbg3movSthpBJLIdPlKxSAB2BW0VWLY3/ZfIxm/G2YGHyREkjJvimzYE0i37PnMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.1.0.tgz", + "integrity": "sha512-/dQd0TlaxBdJACrR72DhynWftzHDaX32eBtS5WBrNJ+nnNb+znM3gON6nJ9tSE9jgDa6n1v2BkI/oIDtypfUXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.1.0.tgz", + "integrity": "sha512-NdQJO7SmdYqOcE+JPU7bwg7+odfZMWO6g8xF9SXYCMdUzvM2Gv/AQfikNXz5yS7ralRhNFuW32i5dcHlxh4pDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.1.0.tgz", + "integrity": "sha512-f5h8gKT/cB8s1ticFRUpNmHqkmaLutT62oFDB7N//2YTXnxst7EpMIn1w+QimxTvTk2gcx6EcW6bEk/y2hZGzg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.1.0.tgz", + "integrity": "sha512-P/+LrdSSb5Xbho1LRP4haBjFHdyPdjWvGgeopL96OVtrFpYnfC+RctB45z2V2XxqFk3HweDDxk266btjttfjGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/plugin-cli": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.0.0.tgz", + "integrity": "sha512-glQmlL1IiCGEa1FHYa/PTPSeYhfu56omLRgHXWlJECDt6DbJyRuJWVgtkQfUxtqnVdYnnU+DGIGeiInoEqtjLw==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@tauri-apps/api": "^2.0.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.4.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.3.2", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@jest/globals": ">= 28", + "@types/bun": "latest", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "@types/bun": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/user-event": { + "version": "14.5.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/doctrine": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/emscripten": { + "version": "1.39.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/escodegen": { + "version": "0.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/find-cache-dir": { + "version": "3.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", + "dev": true + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.19.33", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/w3c-web-serial": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/type-utils": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.8.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.8.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "semver": "^7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc/core": "^1.3.107" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@vitest/expect": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/@vitest/spy": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/@vitest/utils": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/expect/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/expect/node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/expect/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@yarnpkg/fslib": { + "version": "2.10.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@yarnpkg/libzip": "^2.3.0", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/@yarnpkg/libzip": { + "version": "2.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/emscripten": "^1.39.6", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/@zmkfirmware/zmk-studio-ts-client": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@zmkfirmware/zmk-studio-ts-client/-/zmk-studio-ts-client-0.0.18.tgz", + "integrity": "sha512-S3NIkwL0zGOMZCf69Fy6LhhsC07clHoeAEx0JdMtNKfBfPTBIn0CYlkkUvrophAQwBpOQqEyw3gi7uc9WzuOCQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0", + "protobufjs": "^7.3.2" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-dir": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.1.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assert": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ast-types": { + "version": "0.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types/node_modules/tslib": { + "version": "2.6.2", + "dev": true, + "license": "0BSD" + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/async-mutex/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-assert": { + "version": "1.2.1", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.23.0", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001617", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chromatic": { + "version": "11.3.2", + "dev": true, + "license": "MIT", + "bin": { + "chroma": "dist/bin.js", + "chromatic": "dist/bin.js", + "chromatic-cli": "dist/bin.js" + }, + "peerDependencies": { + "@chromatic-com/cypress": "^0.*.* || ^1.0.0", + "@chromatic-com/playwright": "^0.*.* || ^1.0.0" + }, + "peerDependenciesMeta": { + "@chromatic-com/cypress": { + "optional": true + }, + "@chromatic-com/playwright": { + "optional": true + } + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "dev": true, + "license": "MIT" + }, + "node_modules/dotenv": { + "version": "16.4.5", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.765", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", + "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.20.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/esbuild-register": { + "version": "3.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, + "node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-storybook": { + "version": "0.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.62.0", + "requireindex": "^1.2.0", + "ts-dedent": "^2.2.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "eslint": ">=6" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { + "version": "0.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-system-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-extra": "11.1.1", + "ramda": "0.29.0" + } + }, + "node_modules/file-system-cache/node_modules/fs-extra": { + "version": "11.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/filesize": { + "version": "10.1.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-promise": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^7.1.6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/intl-messageformat": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", + "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.8", + "tslib": "^2.4.0" + } + }, + "node_modules/intl-messageformat/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", + "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-universal-dotenv": { + "version": "4.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "app-root-dir": "^1.0.2", + "dotenv": "^16.0.0", + "dotenv-expand": "^10.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.445.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.445.0.tgz", + "integrity": "sha512-YrLf3aAHvmd4dZ8ot+mMdNFrFpJD7YRwQ2pUcBhgqbmxtrMP4xDzIorcj+8y+6kpuXBF4JB0NOCTUWIYetJjgA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-or-similar": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-to-jsx": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz", + "integrity": "sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==", + "dev": true, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memoizerific": { + "version": "1.11.3", + "dev": true, + "license": "MIT", + "dependencies": { + "map-or-similar": "^1.5.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/polished": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.17.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/ramda": { + "version": "0.29.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-aria": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.35.0.tgz", + "integrity": "sha512-cbbd3iIveLDRnpVrpc1iuz8OMlDdH6u8EjncW3MQuYOiEGaho9xcDtWMKiSEIZASEnd7LK4Rgm5iVPr2O+cssw==", + "dependencies": { + "@internationalized/string": "^3.2.4", + "@react-aria/breadcrumbs": "^3.5.17", + "@react-aria/button": "^3.10.0", + "@react-aria/calendar": "^3.5.12", + "@react-aria/checkbox": "^3.14.7", + "@react-aria/color": "^3.0.0", + "@react-aria/combobox": "^3.10.4", + "@react-aria/datepicker": "^3.11.3", + "@react-aria/dialog": "^3.5.18", + "@react-aria/dnd": "^3.7.3", + "@react-aria/focus": "^3.18.3", + "@react-aria/gridlist": "^3.9.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/link": "^3.7.5", + "@react-aria/listbox": "^3.13.4", + "@react-aria/menu": "^3.15.4", + "@react-aria/meter": "^3.4.17", + "@react-aria/numberfield": "^3.11.7", + "@react-aria/overlays": "^3.23.3", + "@react-aria/progress": "^3.4.17", + "@react-aria/radio": "^3.10.8", + "@react-aria/searchfield": "^3.7.9", + "@react-aria/select": "^3.14.10", + "@react-aria/selection": "^3.20.0", + "@react-aria/separator": "^3.4.3", + "@react-aria/slider": "^3.7.12", + "@react-aria/ssr": "^3.9.6", + "@react-aria/switch": "^3.6.8", + "@react-aria/table": "^3.15.4", + "@react-aria/tabs": "^3.9.6", + "@react-aria/tag": "^3.4.6", + "@react-aria/textfield": "^3.14.9", + "@react-aria/tooltip": "^3.7.8", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-types/shared": "^3.25.0" + }, + "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" + } + }, + "node_modules/react-aria-components": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.4.0.tgz", + "integrity": "sha512-CpeSeGI2FVT3hOzA28fhIGkrPPQPtz3gVHBfMWkXSuLUBaKFZQhdCLBXlpO5MoZV1RrC+e7mhOVREkw6DvlxKw==", + "dependencies": { + "@internationalized/date": "^3.5.6", + "@internationalized/string": "^3.2.4", + "@react-aria/accordion": "3.0.0-alpha.34", + "@react-aria/collections": "3.0.0-alpha.5", + "@react-aria/color": "^3.0.0", + "@react-aria/disclosure": "3.0.0-alpha.0", + "@react-aria/dnd": "^3.7.3", + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/menu": "^3.15.4", + "@react-aria/toolbar": "3.0.0-beta.9", + "@react-aria/tree": "3.0.0-beta.0", + "@react-aria/utils": "^3.25.3", + "@react-aria/virtualizer": "^4.0.3", + "@react-stately/color": "^3.8.0", + "@react-stately/disclosure": "3.0.0-alpha.0", + "@react-stately/layout": "^4.0.3", + "@react-stately/menu": "^3.8.3", + "@react-stately/table": "^3.12.3", + "@react-stately/utils": "^3.10.4", + "@react-stately/virtualizer": "^4.1.0", + "@react-types/color": "^3.0.0", + "@react-types/form": "^3.7.7", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0", + "client-only": "^0.0.1", + "react-aria": "^3.35.0", + "react-stately": "^3.33.0", + "use-sync-external-store": "^1.2.0" + }, + "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" + } + }, + "node_modules/react-colorful": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "dev": true, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-confetti": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tween-functions": "^1.2.0" + }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.1 || ^18.0.0" + } + }, + "node_modules/react-docgen": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.18.9", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "@types/babel__core": "^7.18.0", + "@types/babel__traverse": "^7.18.0", + "@types/doctrine": "^0.0.9", + "@types/resolve": "^1.20.2", + "doctrine": "^3.0.0", + "resolve": "^1.22.1", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=16.14.0" + } + }, + "node_modules/react-docgen-typescript": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">= 4.3.x" + } + }, + "node_modules/react-docgen/node_modules/@types/doctrine": { + "version": "0.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/react-dom": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-element-to-jsx-string": { + "version": "15.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@base2/pretty-print-object": "1.0.1", + "is-plain-object": "5.0.0", + "react-is": "18.1.0" + }, + "peerDependencies": { + "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0", + "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0" + } + }, + "node_modules/react-element-to-jsx-string/node_modules/react-is": { + "version": "18.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/react-stately": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.33.0.tgz", + "integrity": "sha512-DNPOxYAPuhuXwSuE1s1K7iSgqG2QOBUZq3bsLAd4gUUZje6Qepkhe7TzK2LWarQYAZ3gC9Xhmnz8ie1fdCo0GA==", + "dependencies": { + "@react-stately/calendar": "^3.5.5", + "@react-stately/checkbox": "^3.6.9", + "@react-stately/collections": "^3.11.0", + "@react-stately/color": "^3.8.0", + "@react-stately/combobox": "^3.10.0", + "@react-stately/data": "^3.11.7", + "@react-stately/datepicker": "^3.10.3", + "@react-stately/dnd": "^3.4.3", + "@react-stately/form": "^3.0.6", + "@react-stately/list": "^3.11.0", + "@react-stately/menu": "^3.8.3", + "@react-stately/numberfield": "^3.9.7", + "@react-stately/overlays": "^3.6.11", + "@react-stately/radio": "^3.10.8", + "@react-stately/searchfield": "^3.5.7", + "@react-stately/select": "^3.6.8", + "@react-stately/selection": "^3.17.0", + "@react-stately/slider": "^3.5.8", + "@react-stately/table": "^3.12.3", + "@react-stately/tabs": "^3.6.10", + "@react-stately/toggle": "^3.7.8", + "@react-stately/tooltip": "^3.4.13", + "@react-stately/tree": "^3.8.5", + "@react-types/shared": "^3.25.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recast": { + "version": "0.23.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/tslib": { + "version": "2.6.2", + "dev": true, + "license": "0BSD" + }, + "node_modules/redent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redent/node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "dev": true, + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-script-os": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", + "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", + "dev": true, + "bin": { + "run-os": "index.js", + "run-script-os": "index.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.2", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/storybook": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.3.5.tgz", + "integrity": "sha512-hYQVtP2l+3kO8oKDn4fjXXQYxgTRsj/LaV6lUMJH0zt+OhVmDXKJLxmdUP4ieTm0T8wEbSYosFavgPcQZlxRfw==", + "dev": true, + "dependencies": { + "@storybook/core": "8.3.5" + }, + "bin": { + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/sucrase/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-react-aria-components": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tailwindcss-react-aria-components/-/tailwindcss-react-aria-components-1.1.3.tgz", + "integrity": "sha512-j852nEhbvD7/zxpNI7hY+6mYm//2zSKuPPq3NNohMi+/nA0hxjaJGg0LYEPzumn/efNT0Itrq+/TMD+r/m1EqA==", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/telejson": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "memoizerific": "^1.11.3" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tween-functions": { + "version": "1.2.0", + "dev": true, + "license": "BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "license": "MIT" + }, + "node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "chokidar": "^3.6.0", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.15", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.1", + "dev": true, + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@adobe/css-tools": { + "version": "4.3.3", + "dev": true + }, + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + }, + "@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/code-frame": { + "version": "7.24.2", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.4", + "dev": true + }, + "@babel/core": { + "version": "7.24.5", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.3", + "dev": true, + "requires": { + "@babel/types": "^7.24.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/types": "^7.24.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.1", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.5", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + } + }, + "@babel/highlight": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.5", + "dev": true + }, + "@babel/runtime": { + "version": "7.24.5", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.24.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.24.5", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + } + }, + "@base2/pretty-print-object": { + "version": "1.0.1", + "dev": true + }, + "@chromatic-com/storybook": { + "version": "1.3.5", + "dev": true, + "requires": { + "chromatic": "^11.3.2", + "filesize": "^10.0.12", + "jsonfile": "^6.1.0", + "react-confetti": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.20.2", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@eslint/js": { + "version": "8.57.0", + "dev": true + }, + "@formatjs/ecma402-abstract": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", + "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "requires": { + "@formatjs/intl-localematcher": "0.5.4", + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", + "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "requires": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/icu-skeleton-parser": "1.8.2", + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", + "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "requires": { + "@formatjs/ecma402-abstract": "2.0.0", + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "@formatjs/intl-localematcher": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", + "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "@fortawesome/fontawesome-common-types": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz", + "integrity": "sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz", + "integrity": "sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.7.1" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.1.tgz", + "integrity": "sha512-nJR76eqPzCnMyhbiGf6X0aclDirZriTPRcFm1YFvuupyJOGwlNF022w3YBqu+yrHRhnKRpzFX+8wJKqiIjWZkA==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.7.1" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", + "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", + "requires": { + "prop-types": "^15.8.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.14", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.3", + "dev": true + }, + "@internationalized/date": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", + "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@internationalized/message": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.5.tgz", + "integrity": "sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==", + "requires": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "@internationalized/number": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", + "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@internationalized/string": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.4.tgz", + "integrity": "sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@isaacs/cliui": { + "version": "8.0.2", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1" + }, + "emoji-regex": { + "version": "9.2.2" + }, + "string-width": { + "version": "5.1.2", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "@jest/schemas": { + "version": "29.6.3", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@joshwooding/vite-plugin-react-docgen-typescript": { + "version": "0.3.0", + "dev": true, + "requires": { + "glob": "^7.2.0", + "glob-promise": "^4.2.0", + "magic-string": "^0.27.0", + "react-docgen-typescript": "^2.2.2" + }, + "dependencies": { + "magic-string": { + "version": "0.27.0", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2" + }, + "@jridgewell/set-array": { + "version": "1.2.1" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "dev": true, + "requires": { + "@types/mdx": "^2.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "optional": true + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@react-aria/accordion": { + "version": "3.0.0-alpha.34", + "resolved": "https://registry.npmjs.org/@react-aria/accordion/-/accordion-3.0.0-alpha.34.tgz", + "integrity": "sha512-3Qoj3StyQbdTYvAXVIbAIk11WtRyo3cdgn6OgwPAvN6c1r8R7X/J9DHTykZRrlF6TOGcdE0H0yrmPrlG92ObmA==", + "requires": { + "@react-aria/button": "^3.10.0", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/tree": "^3.8.5", + "@react-types/accordion": "3.0.0-alpha.24", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/breadcrumbs": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.17.tgz", + "integrity": "sha512-LJQ+u3TbPmtAWZ3/qC6VfLCzXiwVoB6GmI+HJ2pbjs6H9L8MoiLHsA4mgcz+P0rvx7SCs0Rhvy4JurV6R/R4xw==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/link": "^3.7.5", + "@react-aria/utils": "^3.25.3", + "@react-types/breadcrumbs": "^3.7.8", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/button": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.10.0.tgz", + "integrity": "sha512-mhbn2tEsr991sjG6YMH6oN3ELWb4YvZZ8mnZHMNLa3l8T00PV0ClvQBsUndo6uSvuTHhpFzmMMkJFhYYUwCKlw==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/toggle": "^3.7.8", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/calendar": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.12.tgz", + "integrity": "sha512-C8VRjRwEVPaGoCtjOlC0lb3mVSz4ajbal8jfvcbp7LOqCcmOVTUbiM7EPTy60EfZRanFNSp2D1ZstEZDU+cqsg==", + "requires": { + "@internationalized/date": "^3.5.6", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/calendar": "^3.5.5", + "@react-types/button": "^3.10.0", + "@react-types/calendar": "^3.4.10", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/checkbox": { + "version": "3.14.7", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.7.tgz", + "integrity": "sha512-aqVxXcr/8P7pQ7R34DlJX2SdBvWtHof9lLTVBY/9tgMplcKIoVBdlVUYPtqWxT3tGan+rruPQHbzTx8zJRFJyg==", + "requires": { + "@react-aria/form": "^3.0.9", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/toggle": "^3.10.8", + "@react-aria/utils": "^3.25.3", + "@react-stately/checkbox": "^3.6.9", + "@react-stately/form": "^3.0.6", + "@react-stately/toggle": "^3.7.8", + "@react-types/checkbox": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/collections": { + "version": "3.0.0-alpha.5", + "resolved": "https://registry.npmjs.org/@react-aria/collections/-/collections-3.0.0-alpha.5.tgz", + "integrity": "sha512-8m8yZe1c5PYCylEN4lcG3ZL/1nyrON95nVsoknC8shY1uKP01oJd7w+f6hvVza0tJRQuVe4zW3gO4FVjv33a5g==", + "requires": { + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "use-sync-external-store": "^1.2.0" + } + }, + "@react-aria/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.0.0.tgz", + "integrity": "sha512-IwHI4e2fUHUOZHRrL2MsxGZFp/RCR2cLjm39gT41jVSuH4zjxueUf96NDm6c7FD0mB5vfk0jo+KJMnShL1a2rg==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/numberfield": "^3.11.7", + "@react-aria/slider": "^3.7.12", + "@react-aria/spinbutton": "^3.6.9", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/color": "^3.8.0", + "@react-stately/form": "^3.0.6", + "@react-types/color": "^3.0.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/combobox": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.10.4.tgz", + "integrity": "sha512-jzLyRwpwH5SCfQl5giLSwLaw9EKlRiMG39kDZLRB4MQ1MN4sIdIP2TXBbdYcSLtYjduJm2JfRvs2ezI+QI+umA==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/listbox": "^3.13.4", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/menu": "^3.15.4", + "@react-aria/overlays": "^3.23.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/combobox": "^3.10.0", + "@react-stately/form": "^3.0.6", + "@react-types/button": "^3.10.0", + "@react-types/combobox": "^3.13.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/datepicker": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.11.3.tgz", + "integrity": "sha512-HwGxDctFry5ew3Cu7gWpUVodaCg//V6NCihSRjLvnW/TWG+UFLzTafxTqqm8eRbicT3DJlXCLOUPk8Ek0txW6A==", + "requires": { + "@internationalized/date": "^3.5.6", + "@internationalized/number": "^3.5.4", + "@internationalized/string": "^3.2.4", + "@react-aria/focus": "^3.18.3", + "@react-aria/form": "^3.0.9", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/spinbutton": "^3.6.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/datepicker": "^3.10.3", + "@react-stately/form": "^3.0.6", + "@react-types/button": "^3.10.0", + "@react-types/calendar": "^3.4.10", + "@react-types/datepicker": "^3.8.3", + "@react-types/dialog": "^3.5.13", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/dialog": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.18.tgz", + "integrity": "sha512-j0x0OwDZKyW2GqBZl2Dw/pHl0uSCzhHOg5jNeulkZC8xQa8COuksQf5NFzPmgRPnzqpbgvSzCSs41ymS8spmFg==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/overlays": "^3.23.3", + "@react-aria/utils": "^3.25.3", + "@react-types/dialog": "^3.5.13", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/disclosure": { + "version": "3.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@react-aria/disclosure/-/disclosure-3.0.0-alpha.0.tgz", + "integrity": "sha512-/tleriRORdkRJf2JXjiRfhLfXA5WY0nPT3DoodZJgD5Fj/aCjrWXarVGUQuEk9vsH5pwinQiQB5So+cA+xF+UQ==", + "requires": { + "@react-aria/button": "^3.10.0", + "@react-aria/selection": "^3.20.0", + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-stately/disclosure": "3.0.0-alpha.0", + "@react-stately/toggle": "^3.7.8", + "@react-stately/tree": "^3.8.5", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/dnd": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.7.3.tgz", + "integrity": "sha512-SF7v1AzpXr4CSf98pSzjcSBCaezpP6rsSnSJTz0j2jrYfdQhX0MPA2lyxS+kgU1AEzkK19THQeHuj8hxQc0bVw==", + "requires": { + "@internationalized/string": "^3.2.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/overlays": "^3.23.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/dnd": "^3.4.3", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/focus": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.3.tgz", + "integrity": "sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==", + "requires": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + } + }, + "@react-aria/form": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.9.tgz", + "integrity": "sha512-9M6IfC5t47G19c8roHWnkKd275BrECTzyTsc4rzf5OepJfHfG4evST6x+4gGOFYi8soC9XoQdJl4TRh/mft+gw==", + "requires": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/form": "^3.0.6", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/grid": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.10.4.tgz", + "integrity": "sha512-3AjJ0hwRhOCIHThIZrGWrjAuKDpaZuBkODW3dvgLqtsNm3tL46DI6U9O3vfp8lNbrWMsXJgjRXwvXvdv0/gwCA==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/grid": "^3.9.3", + "@react-stately/selection": "^3.17.0", + "@react-types/checkbox": "^3.8.4", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/gridlist": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.9.4.tgz", + "integrity": "sha512-gGzS4ToSynn2KBycf9UCsWIJIbVl4RjoCjPF4NnukwzHmrXwbtZnlF0xsORQ5QxfqHH9UehTAHWFvOOHJSZZ2w==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/grid": "^3.10.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/list": "^3.11.0", + "@react-stately/tree": "^3.8.5", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/i18n": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.3.tgz", + "integrity": "sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==", + "requires": { + "@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-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/interactions": { + "version": "3.22.3", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.3.tgz", + "integrity": "sha512-RRUb/aG+P0IKTIWikY/SylB6bIbLZeztnZY2vbe7RAG5MgVaCgn5HQ45SI15GlTmhsFG8CnF6slJsUFJiNHpbQ==", + "requires": { + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/label": { + "version": "3.7.12", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.12.tgz", + "integrity": "sha512-u9xT90lAlgb7xiv+p0md9QwCHz65XL7tjS5e29e88Rs3ptkv3aQubTqxVOUTEwzbNUT4A1QqTjUm1yfHewIRUw==", + "requires": { + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/link": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.5.tgz", + "integrity": "sha512-j0F1BIdNoE7Tl+0KzzjbrmYuxt4aWAmDZDHvJKiYg71Jb1BAPz71eE1O1ybMoO04+OG/6HrRZTragfSQLAJ58A==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/link": "^3.5.8", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/listbox": { + "version": "3.13.4", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.13.4.tgz", + "integrity": "sha512-2aG4jzlB+srYBeM9ap/BNZe0E04yMjY2dPGXcigkaSJt6/yYAHCygXuouf2MzvBfkdV4QWyHIIgWZmAXXl6reg==", + "requires": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/list": "^3.11.0", + "@react-types/listbox": "^3.5.2", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/live-announcer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.0.tgz", + "integrity": "sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/menu": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.15.4.tgz", + "integrity": "sha512-4wfq8Lb7AltgSzBHdtypiPOnsRm8hHv7PUuHhlq/VT9yAkEFk4Flc7vKVF6VSFqrnCfyCf66B5aeapjNInAONg==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/overlays": "^3.23.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/collections": "^3.11.0", + "@react-stately/menu": "^3.8.3", + "@react-stately/tree": "^3.8.5", + "@react-types/button": "^3.10.0", + "@react-types/menu": "^3.9.12", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/meter": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.17.tgz", + "integrity": "sha512-08wbQhfvVWzpWilhn/WD7cQ7TqafS/66umTk7+X6BW6TrS1//6loNNJV62IC3F7sskel4iEAtl2gW0WpW8zEdg==", + "requires": { + "@react-aria/progress": "^3.4.17", + "@react-types/meter": "^3.4.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/numberfield": { + "version": "3.11.7", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.7.tgz", + "integrity": "sha512-9bqg4sKqc5XLppHzJFRhgtkoeMu0N6Zg0AuVSiE/3CxE5Ad+y8tKpFEx9zh4o5BItyOWy18w5ZXnKjJGjd7waQ==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/spinbutton": "^3.6.9", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/form": "^3.0.6", + "@react-stately/numberfield": "^3.9.7", + "@react-types/button": "^3.10.0", + "@react-types/numberfield": "^3.8.6", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/overlays": { + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.23.3.tgz", + "integrity": "sha512-vRW4DL466a27BBIP6dQqmmei4nX/nsur6DyF0Hmd46ygwOdvdA+5MwvXZUz9yUamB79UeS9BMQZuBVwhjoMwBQ==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/overlays": "^3.6.11", + "@react-types/button": "^3.10.0", + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/progress": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.17.tgz", + "integrity": "sha512-5+01WNibLoNS5KcfU5p6vg7Lhz17plqqzv/uITx28zzj3saaj0VLR7n57Ig2fXe8ZEQoUS89BS3sIEsIf96S1A==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-types/progress": "^3.5.7", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/radio": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.8.tgz", + "integrity": "sha512-/vKQhKqpoCB/VqHuc46OOU+31HFtg6svcYzHBbz0wN/DSVCygYeTfB/36kY7x2GWWkT0pCsB4OcHJ+/0G3EfkQ==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/form": "^3.0.9", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-stately/radio": "^3.10.8", + "@react-types/radio": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/searchfield": { + "version": "3.7.9", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.9.tgz", + "integrity": "sha512-EHODG7HDFthwG5tx4fh+WP2hjNOp/rPAqdNScKBAN73nEf0F/qQpIwmdZF0EycCOzGSM5hhihjm0yMtTFYuzOQ==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/textfield": "^3.14.9", + "@react-aria/utils": "^3.25.3", + "@react-stately/searchfield": "^3.5.7", + "@react-types/button": "^3.10.0", + "@react-types/searchfield": "^3.5.9", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/select": { + "version": "3.14.10", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.10.tgz", + "integrity": "sha512-xHkAJqvfKgnH5mVYwZj3ME7/Q3wUzgUZDK/iVuXUs3cAYap8ybM2d/2zOGcqv1keZHBUzwp9QtaN//FYK13jIA==", + "requires": { + "@react-aria/form": "^3.0.9", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/listbox": "^3.13.4", + "@react-aria/menu": "^3.15.4", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/select": "^3.6.8", + "@react-types/button": "^3.10.0", + "@react-types/select": "^3.9.7", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/selection": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.20.0.tgz", + "integrity": "sha512-h3giMcXo4SMZRL5HrqZvOLNTsdh5jCXwLUx0wpj/2EF0tcYQL6WDfn1iJ+rHARkUIs7X70fUV8iwlbUySZy1xg==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/selection": "^3.17.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/separator": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.3.tgz", + "integrity": "sha512-L+eCmSGfRJ9jScHZqBkmOkp44LBARisDjRdYbGrLlsAEcOiHUXufnfpxz2rgkUGBdUgnI9hIk12q5kdy0UxGjg==", + "requires": { + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/slider": { + "version": "3.7.12", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.12.tgz", + "integrity": "sha512-yZWBGxDHBL5Gjjdnz+igdO7VfYND9iZsSqynadZthWtfy1jA+qBR25I+Soc0D9gkr/2/JUJkFgkllYF1RzWMUQ==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-stately/slider": "^3.5.8", + "@react-types/shared": "^3.25.0", + "@react-types/slider": "^3.7.6", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/spinbutton": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.9.tgz", + "integrity": "sha512-m+uVJdiIc2LrLVDGjU7p8P2O2gUvTN26GR+NgH4rl+tUSuAB0+T1rjls/C+oXEqQjCpQihEB9Bt4M+VHpzmyjA==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/utils": "^3.25.3", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/ssr": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.6.tgz", + "integrity": "sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/switch": { + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.8.tgz", + "integrity": "sha512-6Q0w7o+liB0ztKPL9UaRfX+hPPuy71AL3SuVCMK7RKfPqZwcmlwUDp2gr3j5fvs8gLev0r42XtEBqmGwkHTkEw==", + "requires": { + "@react-aria/toggle": "^3.10.8", + "@react-stately/toggle": "^3.7.8", + "@react-types/shared": "^3.25.0", + "@react-types/switch": "^3.5.6", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/table": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.15.4.tgz", + "integrity": "sha512-t4+vtUF63i6OrXmZ0AA/RmWyIt8cieUm7cSXhQMooAgUjkvVqTNkQQRsntVOb+UNI5KmiGSe4jB3H4GVXz2X9w==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/grid": "^3.10.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/collections": "^3.11.0", + "@react-stately/flags": "^3.0.4", + "@react-stately/table": "^3.12.3", + "@react-types/checkbox": "^3.8.4", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/tabs": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.6.tgz", + "integrity": "sha512-iPQ2Im+srnSB06xIdVNHZZDJnZmUR0IG0MZAp6FXmbkCeLAd9tZQHgSFYwswBfgAStNnyFQHP5aSBJOJMRCACg==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/tabs": "^3.6.10", + "@react-types/shared": "^3.25.0", + "@react-types/tabs": "^3.3.10", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/tag": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.4.6.tgz", + "integrity": "sha512-Uf1sPabwJx99diyXJTaVguiYozS49opjQxmK1PPbb87ipNN1YlSDVbP05IelVMbnbxXHudsRmzPOBmmblcj1GQ==", + "requires": { + "@react-aria/gridlist": "^3.9.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/list": "^3.11.0", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/textfield": { + "version": "3.14.9", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.9.tgz", + "integrity": "sha512-LPwZhthDVLyvnzXWco4eyYCD2pFmQ4Vw9ha9tb3QkZUIP6j8E52y76j0c59Nq7XYus3IHatVe7yYQk7kbo8Zrg==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/form": "^3.0.9", + "@react-aria/label": "^3.7.12", + "@react-aria/utils": "^3.25.3", + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@react-types/textfield": "^3.9.7", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/toggle": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.8.tgz", + "integrity": "sha512-N6WTgE8ByMYY+ZygUUPGON2vW5NrxwU91H98+Nozl+Rq6ZYR2fD9i8oRtLtrYPxjU2HmaFwDyQdWvmMJZuDxig==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/toggle": "^3.7.8", + "@react-types/checkbox": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/toolbar": { + "version": "3.0.0-beta.9", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.9.tgz", + "integrity": "sha512-P80zgbPb0aIg22fHlgHRXXUSpNSAOnh1ljsLiSHAGdXPrC5nRijYwwKi7DNRsXqD+ljEJwF6ekZPo95dXXeYAA==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/tooltip": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.8.tgz", + "integrity": "sha512-dlWfS3w8E6dw5Xoist4cVX2GQE5oh3VQr88dRyLto7BAPLFrp3I+8c9mZCVUobLS/f5QcQzLkqw750s4ENCyiw==", + "requires": { + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/tooltip": "^3.4.13", + "@react-types/shared": "^3.25.0", + "@react-types/tooltip": "^3.4.12", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/tree": { + "version": "3.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@react-aria/tree/-/tree-3.0.0-beta.0.tgz", + "integrity": "sha512-bF9sp7x+Ciy0N2KJwy8epmDoNblyVmeB4vR/KWLVIKMjANCpzTbvhWZUBpQxkpO0eupInU2uN+FMNr0WKMyd7Q==", + "requires": { + "@react-aria/gridlist": "^3.9.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/selection": "^3.20.0", + "@react-aria/utils": "^3.25.3", + "@react-stately/tree": "^3.8.5", + "@react-types/button": "^3.10.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/utils": { + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", + "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", + "requires": { + "@react-aria/ssr": "^3.9.6", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + } + }, + "@react-aria/virtualizer": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-4.0.3.tgz", + "integrity": "sha512-neSf+EXtqmQiccHcp9CS2RbH3xA6FuZggLzGsM1NoqDdXIL7TLfc7lhaqi8VAZ03e1FCUSye08BCRk3DdpUiyA==", + "requires": { + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-stately/virtualizer": "^4.1.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-aria/visually-hidden": { + "version": "3.8.16", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.16.tgz", + "integrity": "sha512-3zThVIzEprez4A/GajOut6/JQ4WCu2ROHGZ1xH1+2GFjBJQaTfPBIjg6UIwaT7sgHRQIik8QidogLqXHbp81yA==", + "requires": { + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/calendar": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.5.tgz", + "integrity": "sha512-HzaiDRhrmaYIly8hRsjjIrydLkldiw1Ws6T/130NLQOt+VPwRW/x0R+nil42mA9LZ6oV0XN0NpmG5tn7TaKRGw==", + "requires": { + "@internationalized/date": "^3.5.6", + "@react-stately/utils": "^3.10.4", + "@react-types/calendar": "^3.4.10", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/checkbox": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.9.tgz", + "integrity": "sha512-JrY3ecnK/SSJPxw+qhGhg3YV4e0CpUcPDrVwY3mSiAE932DPd19xr+qVCknJ34H7JYYt/q0l2z0lmgPnl96RTg==", + "requires": { + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/checkbox": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/collections": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.11.0.tgz", + "integrity": "sha512-TiJeJjHMPSbbeAhmCXLJNSCk0fa5XnCvEuYw6HtQzDnYiq1AD7KAwkpjC5NfKkjqF3FLXs/v9RDm/P69q6rYzw==", + "requires": { + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/color": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.8.0.tgz", + "integrity": "sha512-lBH91HEStZeayhE/FkDMt9WC0UISQiAn8DoD2hfpTGeeWscX/soyxZA7oVL7zBOG9RfDBMNzF+CybVROrWSKAQ==", + "requires": { + "@internationalized/number": "^3.5.4", + "@internationalized/string": "^3.2.4", + "@react-aria/i18n": "^3.12.3", + "@react-stately/form": "^3.0.6", + "@react-stately/numberfield": "^3.9.7", + "@react-stately/slider": "^3.5.8", + "@react-stately/utils": "^3.10.4", + "@react-types/color": "^3.0.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/combobox": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.0.tgz", + "integrity": "sha512-4W4HCCjjoddW/LZM3pSSeLoV7ncYXlaICKmqlBcbtLR5jY4U5Kx+pPpy3oJ1vCdjDHatIxZ0tVKEBP7vBQVeGQ==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/form": "^3.0.6", + "@react-stately/list": "^3.11.0", + "@react-stately/overlays": "^3.6.11", + "@react-stately/select": "^3.6.8", + "@react-stately/utils": "^3.10.4", + "@react-types/combobox": "^3.13.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/data": { + "version": "3.11.7", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.7.tgz", + "integrity": "sha512-2YJ+Lmca18f/h7jiZiU9j2IhBJl6BFO1BWlwvcCAH/eCWTdveX8gzsUdW++0szzpJaoCilTCYoi8z7QWyVH9jQ==", + "requires": { + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/datepicker": { + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.10.3.tgz", + "integrity": "sha512-6PJW1QMwk6BQMktV9L6DA4f2rfAdLfbq3iTNLy4qxd5IfNPLMUZiJGGTj+cuqx0WcEl+q5irp+YhKBpbmhPZHg==", + "requires": { + "@internationalized/date": "^3.5.6", + "@internationalized/string": "^3.2.4", + "@react-stately/form": "^3.0.6", + "@react-stately/overlays": "^3.6.11", + "@react-stately/utils": "^3.10.4", + "@react-types/datepicker": "^3.8.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/disclosure": { + "version": "3.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@react-stately/disclosure/-/disclosure-3.0.0-alpha.0.tgz", + "integrity": "sha512-CbFUrEwhsP5+44PMHipn/Cd61VTvqyKmx1yeNDyvj/4bYhmxYLgQp/Ma+iEqe23JkXJh2JO/ws3l9FnebScCJQ==", + "requires": { + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/dnd": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.4.3.tgz", + "integrity": "sha512-sUvhmMxFEw6P2MW7walx0ntakIihxdPxA06K9YZ3+ReaUvzQuRw5cFDaTTHrlegWRMYD0CyQaKlGIaTQihhvVA==", + "requires": { + "@react-stately/selection": "^3.17.0", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/flags": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.4.tgz", + "integrity": "sha512-RNJEkOALwKg+JeYsfNlfPc4GXm7hiBLX0yuHOkRapWEyDOfi0cinkV/TZG4goOZdQ5tBpHmemf2qqiHAxqHlzQ==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/form": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.6.tgz", + "integrity": "sha512-KMsxm3/V0iCv/6ikt4JEjVM3LW2AgCzo7aNotMzRobtwIo0RwaUo7DQNY00rGgFQ3/IjzI6DcVo13D+AVE/zXg==", + "requires": { + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/grid": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.3.tgz", + "integrity": "sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/selection": "^3.17.0", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/layout": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-4.0.3.tgz", + "integrity": "sha512-zFLXnPalWWVCdFGcPAb+nywSTz/xAnKRxb7zT+YDa5U80DHArDGKZcQ+by0+2Sf8yaYolROco4my+BERPXJB6A==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/table": "^3.12.3", + "@react-stately/virtualizer": "^4.1.0", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/list": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.11.0.tgz", + "integrity": "sha512-O+BxXcbtoLZWn4QIT54RoFUaM+QaJQm6s0ZBJ3Jv4ILIhukVOc55ra+aWMVlXFQSpbf6I3hyVP6cz1yyvd5Rtw==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/selection": "^3.17.0", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/menu": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.8.3.tgz", + "integrity": "sha512-sV63V+cMgzipx/N7dq5GaXoItfXIfFEpCtlk3PM2vKstlCJalszXrdo+x996bkeU96h0plB7znAlhlXOeTKzUg==", + "requires": { + "@react-stately/overlays": "^3.6.11", + "@react-types/menu": "^3.9.12", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/numberfield": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.7.tgz", + "integrity": "sha512-PjSgCCpYasGCEAznFQNqa2JhhEQ5+/2eMiV7ZI5j76q3edTNF8G5OOCl2RazDbzFp6vDAnRVT7Kctx5Tl5R/Zw==", + "requires": { + "@internationalized/number": "^3.5.4", + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/numberfield": "^3.8.6", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/overlays": { + "version": "3.6.11", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.11.tgz", + "integrity": "sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==", + "requires": { + "@react-stately/utils": "^3.10.4", + "@react-types/overlays": "^3.8.10", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/radio": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.8.tgz", + "integrity": "sha512-VRq6Gzsbk3jzX6hdrSoDoSra9vLRsOi2pLkvW/CMrJ0GSgMwr8jjvJKnNFvYJ3eYQb20EwkarsOAfk7vPSIt/Q==", + "requires": { + "@react-stately/form": "^3.0.6", + "@react-stately/utils": "^3.10.4", + "@react-types/radio": "^3.8.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/searchfield": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.7.tgz", + "integrity": "sha512-VxEG4tWDypdXQ8f7clZBu5Qmc4osqDBeA/gNMA2i1j/h2zRVcCJ0fRCHuDeXLSWBqF1XXAI4TWV53fBBwJusbg==", + "requires": { + "@react-stately/utils": "^3.10.4", + "@react-types/searchfield": "^3.5.9", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/select": { + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.8.tgz", + "integrity": "sha512-fLAVzGeYSdYdBdrEVws6Pb1ywFPdapA0eWphoW5s3fS0/pKcVWwbCHeHlaBEi1ISyqEubQZFGQdeFKm/M46Hew==", + "requires": { + "@react-stately/form": "^3.0.6", + "@react-stately/list": "^3.11.0", + "@react-stately/overlays": "^3.6.11", + "@react-types/select": "^3.9.7", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/selection": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.17.0.tgz", + "integrity": "sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/slider": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.8.tgz", + "integrity": "sha512-EDgbrxMq1w3+XTN72MGl3YtAG/j65EYX1Uc3Fh56K00+inJbTdRWyYTrb3NA310fXCd0WFBbzExuH2ohlKQycg==", + "requires": { + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@react-types/slider": "^3.7.6", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/table": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.12.3.tgz", + "integrity": "sha512-8uGrLcNJYeMbFtzRQZFWCBj5kV+7v3jzwoKIL1j9TmYUKow1PTDMQbPJpAZLQhnC2wVMlaFVgDbedSlbBij7Zg==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/flags": "^3.0.4", + "@react-stately/grid": "^3.9.3", + "@react-stately/selection": "^3.17.0", + "@react-stately/utils": "^3.10.4", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/tabs": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.10.tgz", + "integrity": "sha512-F7wfoiNsrBy7c02AYHyE1USGgj05HQ0hp7uXmQjp2LEa+AA0NKKi3HdswTHHySxb0ZRuoEE7E7vp/gXQYx2/Ow==", + "requires": { + "@react-stately/list": "^3.11.0", + "@react-types/shared": "^3.25.0", + "@react-types/tabs": "^3.3.10", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/toggle": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.8.tgz", + "integrity": "sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==", + "requires": { + "@react-stately/utils": "^3.10.4", + "@react-types/checkbox": "^3.8.4", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/tooltip": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.13.tgz", + "integrity": "sha512-zQ+8FQ7Pi0Cz852dltXb6yaryjE18K3byK4tIO3e5vnrZHEGvfdxowc+v9ak5UV93kVrYoOVmfZHRcEaTXTBNA==", + "requires": { + "@react-stately/overlays": "^3.6.11", + "@react-types/tooltip": "^3.4.12", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/tree": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.5.tgz", + "integrity": "sha512-0/tYhsKWQQJTOZFDwh8hY3Qk6ejNFRldGrLeK5kS22UZdvsMFyh7WAi40FTCJy561/VoB0WqQI4oyNPOa9lYWg==", + "requires": { + "@react-stately/collections": "^3.11.0", + "@react-stately/selection": "^3.17.0", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/utils": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", + "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@react-stately/virtualizer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.1.0.tgz", + "integrity": "sha512-MOaqpY3NloXrpCBvVUb3HL1p3Bh4YRtUq8D2ufC909u5vM6n6G5Swk1XPJ9KHfaftGhb5serwLkm2/Aha5CTbA==", + "requires": { + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + } + }, + "@react-types/accordion": { + "version": "3.0.0-alpha.24", + "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.24.tgz", + "integrity": "sha512-hwDT4TJH7aHCG8m9QsTP+7xgW7x7k2TY+WHlMRr6qDS6WhTCwd41dCdagxC0SZtulzZuWqISBxZifVrh4Tynew==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/breadcrumbs": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.8.tgz", + "integrity": "sha512-+BW2a+PrY8ArZ+pKecz13oJFrUAhthvXx17o3x0BhWUhRpAdtmTYt2hjw8zNanm2j0Kvgo1HYKgvtskCRxYcOA==", + "requires": { + "@react-types/link": "^3.5.8", + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/button": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.0.tgz", + "integrity": "sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/calendar": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.10.tgz", + "integrity": "sha512-PyjqxwJxSW2IpQx6y0D9O34fRCWn1gv9q0qFhgaIigIQrPg8zTE/CC7owHLxAtgCnnCt8exJ5rqi414csaHKlA==", + "requires": { + "@internationalized/date": "^3.5.6", + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/checkbox": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.4.tgz", + "integrity": "sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.0.0.tgz", + "integrity": "sha512-VUH8CROAM69GsMBilrJ1xyAdVsWL01nXQYrkZJxAEApv1OrcpIGSdsXLcGrjsrhjjiNVXxWFnqYRMsKkLzIl7g==", + "requires": { + "@react-types/shared": "^3.25.0", + "@react-types/slider": "^3.7.6" + } + }, + "@react-types/combobox": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.0.tgz", + "integrity": "sha512-kH/a+Fjpr54M2JbHg9RXwMjZ9O+XVsdOuE5JCpWRibJP1Mfl1md8gY6y6zstmVY8COrSqFvMZWB+PzwaTWjTGw==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/datepicker": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.8.3.tgz", + "integrity": "sha512-Y4qfPRBB6uzocosCOWSYMuwiZ3YXwLWQYiFB4KCglkvHyltbNz76LgoBEnclYA5HjwosIk4XywiXvHSYry8JnQ==", + "requires": { + "@internationalized/date": "^3.5.6", + "@react-types/calendar": "^3.4.10", + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/dialog": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.13.tgz", + "integrity": "sha512-9k8daVcAqQsySkzDY6NIVlyGxtpEip4TKuLyzAehthbv78GQardD5fHdjQ6eXPRS4I2qZrmytrFFrlOnwWVGHw==", + "requires": { + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/form": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.7.tgz", + "integrity": "sha512-CVRjCawPhYRHi/LuikOC2kz5vgvmjjKmF4/wUgR2QzD1Ok4wY1ZGSx9M9EZptCIZAt2mToR6woyLUdtzy+foeQ==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/grid": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.9.tgz", + "integrity": "sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/link": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.8.tgz", + "integrity": "sha512-l/YGXddgAbLnIT7ekftXrK1D4n8NlLQwx0d4usyZpaxP1KwPzuwng20DxynamLc1atoKBqbUtZAnz32pe7vYgw==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/listbox": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.2.tgz", + "integrity": "sha512-ML/Bt/MeO0FiixcuFQ+smpu1WguxTOqHDjSnhc1vcNxVQFWQOhyVy01LAY2J/T9TjfjyYGD41vyMTI0f6fcLEQ==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/menu": { + "version": "3.9.12", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.12.tgz", + "integrity": "sha512-1SPnkHKJdvOfwv9fEgK1DI6DYRs4D3hW2XcWlLhVXSjaC68CzOHGwFhKIKvZiDTW/11L770PRSEloIxHR09uFQ==", + "requires": { + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/meter": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.4.tgz", + "integrity": "sha512-0SEmPkShByC1gYkW7l+iJPg8QfEe2VrgwTciAtTfC4KIqAYmJVQtq6L+4d72EMxOh8RpQHePaY/RFHEJXAh72A==", + "requires": { + "@react-types/progress": "^3.5.7" + } + }, + "@react-types/numberfield": { + "version": "3.8.6", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.6.tgz", + "integrity": "sha512-VtWEMAXUO1S9EEZI8whc7xv6DVccxhbWsRthMCg/LxiwU3U5KAveadNc2c5rtXkRpd3cnD5xFzz3dExXdmHkAg==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/overlays": { + "version": "3.8.10", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.10.tgz", + "integrity": "sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/progress": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.7.tgz", + "integrity": "sha512-EqMDHmlpoZUZzTjdejGIkSM0pS2LBI9NdadHf3bDNTycHv+5L1xpMHUg8RGOW8a3sRVLRvfN1aO9l75QZkyj+w==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/radio": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.4.tgz", + "integrity": "sha512-GCuOwQL19iwKa74NAIk9hv4ivyI8oW1+ZCuc2fzyDdeQjzTIlv3qrIyShwpVy1IoI7/4DYTMZm/YXPoKhu5TTA==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/searchfield": { + "version": "3.5.9", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.9.tgz", + "integrity": "sha512-c/x8BWpH1Zq+fWpeBtzw2AhQhGi7ahWPicV7PlnqwIGO0MrH/QCjX0dj+I+1xpcAh8Eq6ECa79HE74Rw6aJmFg==", + "requires": { + "@react-types/shared": "^3.25.0", + "@react-types/textfield": "^3.9.7" + } + }, + "@react-types/select": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.7.tgz", + "integrity": "sha512-Jva4ixfB4EEdy+WmZkUoLiQI7vVfHPxM73VuL7XDxvAO+YKiIztDTcU720QVNhxTMmQvCxfRBXWar8aodCjLiw==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/shared": { + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", + "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", + "requires": {} + }, + "@react-types/slider": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.6.tgz", + "integrity": "sha512-z72wnEzSge6qTD9TUoUPp1A4j4jXk/MVii6rGE78XeE/Pq7HyyjU5bCagryMr9PC9MKa/oTiHcshKqWBDf57GA==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/switch": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.6.tgz", + "integrity": "sha512-gJ8t2yTCgcitz4ON4ELcLLmtlDkn2MUjjfu3ez/cwA1X/NUluPYkhXj5Z6H+KOlnveqrKCZDRoTgK74cQ6Cvfg==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/table": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.2.tgz", + "integrity": "sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==", + "requires": { + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/tabs": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.10.tgz", + "integrity": "sha512-s/Bw/HCIdWJPBw4O703ghKqhjGsIerRMIDxA88hbQYzfTDD6bkFDjCnsP2Tyy1G8Dg2rSPFUEE+k+PpLzqeEfQ==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/textfield": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.7.tgz", + "integrity": "sha512-vU5+QCOF9HgWGjAmmy+cpJibVW5voFomC5POmYHokm7kivYcMMjlonsgWwg/0xXrqE2qosH3tpz4jFoEuig1NQ==", + "requires": { + "@react-types/shared": "^3.25.0" + } + }, + "@react-types/tooltip": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.12.tgz", + "integrity": "sha512-FwsdSQ3UDIDORanQMGMLyzSUabw4AkKhwcRdPv4d5OT8GmJr7mBdZynfcsrKLJ0fzskIypMqspoutZidsI0MQg==", + "requires": { + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0" + } + }, + "@rollup/pluginutils": { + "version": "5.1.0", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "dev": true, + "optional": true + }, + "@sinclair/typebox": { + "version": "0.27.8", + "dev": true + }, + "@storybook/addon-actions": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.5.tgz", + "integrity": "sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0", + "@types/uuid": "^9.0.1", + "dequal": "^2.0.2", + "polished": "^4.2.2", + "uuid": "^9.0.0" + } + }, + "@storybook/addon-backgrounds": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.5.tgz", + "integrity": "sha512-IQGjDujuw8+iSqKREdkL8I5E/5CAHZbfOWd4A75PQK2D6qZ0fu/xRwTOQOH4jP6xn/abvfACOdL6A0d5bU90ag==", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-controls": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.5.tgz", + "integrity": "sha512-2eCVobUUvY1Rq7sp1U8Mx8t44VXwvi0E+hqyrsqOx5TTSC/FUQ+hNAX6GSYUcFIyQQ1ORpKNlUjAAdjxBv1ZHQ==", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-docs": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.5.tgz", + "integrity": "sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==", + "dev": true, + "requires": { + "@mdx-js/react": "^3.0.0", + "@storybook/blocks": "8.3.5", + "@storybook/csf-plugin": "8.3.5", + "@storybook/global": "^5.0.0", + "@storybook/react-dom-shim": "8.3.5", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "fs-extra": "^11.1.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "ts-dedent": "^2.0.0" + }, + "dependencies": { + "@storybook/csf-plugin": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.5.tgz", + "integrity": "sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==", + "dev": true, + "requires": { + "unplugin": "^1.3.1" + } + }, + "@storybook/react-dom-shim": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.5.tgz", + "integrity": "sha512-Hf0UitJ/K0C7ajooooUK/PxOR4ihUWqsC7iCV1Gqth8U37dTeLMbaEO4PBwu0VQ+Ufg0N8BJLWfg7o6G4hrODw==", + "dev": true, + "requires": {} + } + } + }, + "@storybook/addon-essentials": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.5.tgz", + "integrity": "sha512-hXTtPuN4/IsXjUrkMPAuz1qKAl8DovdXpjQgjQs7jSAVx3kc4BZaGqJ3gaVenKtO8uDchmA92BoQygpkc8eWhw==", + "dev": true, + "requires": { + "@storybook/addon-actions": "8.3.5", + "@storybook/addon-backgrounds": "8.3.5", + "@storybook/addon-controls": "8.3.5", + "@storybook/addon-docs": "8.3.5", + "@storybook/addon-highlight": "8.3.5", + "@storybook/addon-measure": "8.3.5", + "@storybook/addon-outline": "8.3.5", + "@storybook/addon-toolbars": "8.3.5", + "@storybook/addon-viewport": "8.3.5", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-highlight": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.5.tgz", + "integrity": "sha512-ku0epul9aReCR3Gv/emwYnsqg3vgux5OmYMjoDcJC7s+LyfweSzLV/f5t9gSHazikJElh5TehtVkWbC4QfbGSw==", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0" + } + }, + "@storybook/addon-interactions": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.0.10", + "@storybook/test": "8.0.10", + "@storybook/types": "8.0.10", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" + } + }, + "@storybook/addon-links": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/csf": "^0.1.4", + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-measure": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.5.tgz", + "integrity": "sha512-6GVehgbHhFIFS69xSfRV+12VK0cnuIAtZdp1J3eUCc2ATrcigqVjTM6wzZz6kBuX6O3dcusr7Wg46KtNliqLqg==", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0", + "tiny-invariant": "^1.3.1" + } + }, + "@storybook/addon-onboarding": { + "version": "8.0.10", + "dev": true + }, + "@storybook/addon-outline": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.5.tgz", + "integrity": "sha512-dwmK6GzjEnQP9Yo0VnBUQtJkXZlXdfjWyskZ/IlUVc+IFdeeCtIiMyA92oMfHo8eXt0k1g21ZqMaIn7ZltOuHw==", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-toolbars": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.5.tgz", + "integrity": "sha512-Ml2gc9q8WbteDvmuAZGgBxt5SqWMXzuTkMjlsA8EB53hlkN1w9esX4s8YtBeNqC3HKoUzcdq8uexSBqU8fDbSA==", + "dev": true, + "requires": {} + }, + "@storybook/addon-viewport": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.5.tgz", + "integrity": "sha512-FSWydoPiVWFXEittG7O1YgvuaqoU9Vb+qoq9XfP/hvQHHMDcMZvC40JaV8AnJeTXaM7ngIjcn9XDEfGbFfOzXw==", + "dev": true, + "requires": { + "memoizerific": "^1.11.3" + } + }, + "@storybook/blocks": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.5.tgz", + "integrity": "sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==", + "dev": true, + "requires": { + "@storybook/csf": "^0.1.11", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.10", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.4.5", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/builder-vite": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/channels": "8.0.10", + "@storybook/client-logger": "8.0.10", + "@storybook/core-common": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/csf-plugin": "8.0.10", + "@storybook/node-logger": "8.0.10", + "@storybook/preview": "8.0.10", + "@storybook/preview-api": "8.0.10", + "@storybook/types": "8.0.10", + "@types/find-cache-dir": "^3.2.1", + "browser-assert": "^1.2.1", + "es-module-lexer": "^0.9.3", + "express": "^4.17.3", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "magic-string": "^0.30.0", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/channels": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/global": "^5.0.0", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1" + } + }, + "@storybook/client-logger": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/global": "^5.0.0" + } + }, + "@storybook/core": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.5.tgz", + "integrity": "sha512-GOGfTvdioNa/n+Huwg4u/dsyYyBcM+gEcdxi3B7i5x4yJ3I912KoVshumQAOF2myKSRdI8h8aGWdx7nnjd0+5Q==", + "dev": true, + "requires": { + "@storybook/csf": "^0.1.11", + "@types/express": "^4.17.21", + "better-opn": "^3.0.2", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", + "esbuild-register": "^3.5.0", + "express": "^4.19.2", + "jsdoc-type-pratt-parser": "^4.0.0", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" + } + }, + "@storybook/core-common": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/core-events": "8.0.10", + "@storybook/csf-tools": "8.0.10", + "@storybook/node-logger": "8.0.10", + "@storybook/types": "8.0.10", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", + "chalk": "^4.1.0", + "cross-spawn": "^7.0.3", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", + "esbuild-register": "^3.5.0", + "execa": "^5.0.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "semver": "^7.3.7", + "tempy": "^1.0.1", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util": "^0.12.4" + }, + "dependencies": { + "glob": { + "version": "10.3.15", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + } + }, + "minipass": { + "version": "7.1.1", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + } + } + }, + "@storybook/core-events": { + "version": "8.0.10", + "dev": true, + "requires": { + "ts-dedent": "^2.0.0" + } + }, + "@storybook/csf": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", + "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", + "dev": true, + "requires": { + "type-fest": "^2.19.0" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "dev": true + } + } + }, + "@storybook/csf-plugin": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/csf-tools": "8.0.10", + "unplugin": "^1.3.1" + } + }, + "@storybook/csf-tools": { + "version": "8.0.10", + "dev": true, + "requires": { + "@babel/generator": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "@storybook/csf": "^0.1.4", + "@storybook/types": "8.0.10", + "fs-extra": "^11.1.0", + "recast": "^0.23.5", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/docs-tools": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/core-common": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/preview-api": "8.0.10", + "@storybook/types": "8.0.10", + "@types/doctrine": "^0.0.3", + "assert": "^2.1.0", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + } + }, + "@storybook/global": { + "version": "5.0.0", + "dev": true + }, + "@storybook/icons": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.12.tgz", + "integrity": "sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==", + "dev": true, + "requires": {} + }, + "@storybook/instrumenter": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/channels": "8.0.10", + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.0.10", + "@vitest/utils": "^1.3.1", + "util": "^0.12.4" + } + }, + "@storybook/node-logger": { + "version": "8.0.10", + "dev": true + }, + "@storybook/preview": { + "version": "8.0.10", + "dev": true + }, + "@storybook/preview-api": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/channels": "8.0.10", + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/csf": "^0.1.4", + "@storybook/global": "^5.0.0", + "@storybook/types": "8.0.10", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/react": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/client-logger": "8.0.10", + "@storybook/docs-tools": "8.0.10", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.0.10", + "@storybook/react-dom-shim": "8.0.10", + "@storybook/types": "8.0.10", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^18.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.51", + "dev": true + }, + "acorn": { + "version": "7.4.1", + "dev": true + }, + "type-fest": { + "version": "2.19.0", + "dev": true + } + } + }, + "@storybook/react-dom-shim": { + "version": "8.0.10", + "dev": true, + "requires": {} + }, + "@storybook/react-vite": { + "version": "8.0.10", + "dev": true, + "requires": { + "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", + "@rollup/pluginutils": "^5.0.2", + "@storybook/builder-vite": "8.0.10", + "@storybook/node-logger": "8.0.10", + "@storybook/react": "8.0.10", + "find-up": "^5.0.0", + "magic-string": "^0.30.0", + "react-docgen": "^7.0.0", + "resolve": "^1.22.8", + "tsconfig-paths": "^4.2.0" + } + }, + "@storybook/test": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/client-logger": "8.0.10", + "@storybook/core-events": "8.0.10", + "@storybook/instrumenter": "8.0.10", + "@storybook/preview-api": "8.0.10", + "@testing-library/dom": "^9.3.4", + "@testing-library/jest-dom": "^6.4.2", + "@testing-library/user-event": "^14.5.2", + "@vitest/expect": "1.3.1", + "@vitest/spy": "^1.3.1", + "util": "^0.12.4" + } + }, + "@storybook/types": { + "version": "8.0.10", + "dev": true, + "requires": { + "@storybook/channels": "8.0.10", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + } + }, + "@swc/core": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.4.tgz", + "integrity": "sha512-+wSycNxOw9QQz81AJAZlNS34EtOIifwUXMPACg05PWjECsjOKDTXLCVPx6J0lRaxhHSGBU2OYs9mRfIvxGt3CA==", + "dev": true, + "requires": { + "@swc/core-darwin-arm64": "1.7.4", + "@swc/core-darwin-x64": "1.7.4", + "@swc/core-linux-arm-gnueabihf": "1.7.4", + "@swc/core-linux-arm64-gnu": "1.7.4", + "@swc/core-linux-arm64-musl": "1.7.4", + "@swc/core-linux-x64-gnu": "1.7.4", + "@swc/core-linux-x64-musl": "1.7.4", + "@swc/core-win32-arm64-msvc": "1.7.4", + "@swc/core-win32-ia32-msvc": "1.7.4", + "@swc/core-win32-x64-msvc": "1.7.4", + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.12" + } + }, + "@swc/core-darwin-arm64": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.4.tgz", + "integrity": "sha512-RbWrdGh+x9xKFUA9/kPZRR8OPxUsDUuPyLjPIGLYZMO+ftht2vhVH7QsUq6lg+jAP34eIya72UA1isiZe+BRaA==", + "dev": true, + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.4.tgz", + "integrity": "sha512-TxCWMJs4OrqApjFuT8cUiqMz0zg97F0JsXBEeZ7zjkyv9XJ/rN2pdwqMlZv0Wv2C2rivOPo6FsWYlZ3V8ZHhyA==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.4.tgz", + "integrity": "sha512-5IhwIJZAgkkfI6PqgQ3xk0/2hTAVsAczIPLiR2Epp30EgsNo1KIFL0ZHzrnvJPy5BZ3jy3T1dEbDE/memBOEmA==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.4.tgz", + "integrity": "sha512-0787jri83jigf26mF8FndWehh7jqMaHwAm/OV6VdToyNo/g+d1AxVpkEizrywZK46el+AObnHUIHIHwZgO21LA==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.4.tgz", + "integrity": "sha512-A45hGKWAGcjU5Ol0uQUoK0tHerwEKxfprYUZbmPLpD2yrpMZr+dTrwY2n075sixs7RuZEccBkgGNpehEe5BPBQ==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.4.tgz", + "integrity": "sha512-bcO1MpAm39TXqqHuYW4ox4vDvhB7jkguwMwxvmL+cKBGsUHrIoUTfGt9NM9N4D4CvOwULlxqbyt19veUJ7CVPw==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.4.tgz", + "integrity": "sha512-N6nXuHyDO/q5kPN2xQxz5BEvhFpgnFSkP+9wxg5xWq+qIQL5bv37jk8dkKvMLx/8fHzTqrIjPDSRzVbcL7sqXg==", + "dev": true, + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.4.tgz", + "integrity": "sha512-7W1owqCNR1cG+mpS55juiZlR/lrAdxB1pH32egeOipNKOLGwyqmlzQ0g9tkQTNgzwgfpCUg8z606+GqqXvajZw==", + "dev": true, + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.4.tgz", + "integrity": "sha512-saLkY+q7zNPk4gYiUBCc93FYPo4ECXMjHcSPtLVHoPZBIxRrklgaAf6aDpblBo30nVdoBE2V3YPd0Y/cPiY6RQ==", + "dev": true, + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.4.tgz", + "integrity": "sha512-zKF6jpRBNuVKgOf2W5dMcPyjwcNCp21syjl9lvLRbCeIg+1U+zjdoQCAmMWWoPNE7fLg+yfvohnnOJG2AdzQ9Q==", + "dev": true, + "optional": true + }, + "@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "@swc/helpers": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", + "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + } + } + }, + "@swc/types": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "dev": true, + "requires": { + "@swc/counter": "^0.1.3" + } + }, + "@tailwindcss/container-queries": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", + "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", + "requires": {} + }, + "@tauri-apps/api": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.1.tgz", + "integrity": "sha512-eoQWT+Tq1qSwQpHV+nw1eNYe5B/nm1PoRjQCRiEOS12I1b+X4PUcREfXVX8dPcBT6GrzWGDtaecY0+1p0Rfqlw==" + }, + "@tauri-apps/cli": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.1.0.tgz", + "integrity": "sha512-K2VhcKqBhAeS5pNOVdnR/xQRU6jwpgmkSL2ejHXcl0m+kaTggT0WRDQnFtPq6NljA7aE03cvwsbCAoFG7vtkJw==", + "dev": true, + "requires": { + "@tauri-apps/cli-darwin-arm64": "2.1.0", + "@tauri-apps/cli-darwin-x64": "2.1.0", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.1.0", + "@tauri-apps/cli-linux-arm64-gnu": "2.1.0", + "@tauri-apps/cli-linux-arm64-musl": "2.1.0", + "@tauri-apps/cli-linux-x64-gnu": "2.1.0", + "@tauri-apps/cli-linux-x64-musl": "2.1.0", + "@tauri-apps/cli-win32-arm64-msvc": "2.1.0", + "@tauri-apps/cli-win32-ia32-msvc": "2.1.0", + "@tauri-apps/cli-win32-x64-msvc": "2.1.0" + } + }, + "@tauri-apps/cli-darwin-arm64": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.1.0.tgz", + "integrity": "sha512-ESc6J6CE8hl1yKH2vJ+ALF+thq4Be+DM1mvmTyUCQObvezNCNhzfS6abIUd3ou4x5RGH51ouiANeT3wekU6dCw==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-darwin-x64": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.1.0.tgz", + "integrity": "sha512-TasHS442DFs8cSH2eUQzuDBXUST4ECjCd0yyP+zZzvAruiB0Bg+c8A+I/EnqCvBQ2G2yvWLYG8q/LI7c87A5UA==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.1.0.tgz", + "integrity": "sha512-aP7ZBGNL4ny07Cbb6kKpUOSrmhcIK2KhjviTzYlh+pPhAptxnC78xQGD3zKQkTi2WliJLPmBYbOHWWQa57lQ9w==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.1.0.tgz", + "integrity": "sha512-ZTdgD5gLeMCzndMT2f358EkoYkZ5T+Qy6zPzU+l5vv5M7dHVN9ZmblNAYYXmoOuw7y+BY4X/rZvHV9pcGrcanQ==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-arm64-musl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.1.0.tgz", + "integrity": "sha512-NzwqjUCilhnhJzusz3d/0i0F1GFrwCQbkwR6yAHUxItESbsGYkZRJk0yMEWkg3PzFnyK4cWTlQJMEU52TjhEzA==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-x64-gnu": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.1.0.tgz", + "integrity": "sha512-TyiIpMEtZxNOQmuFyfJwaaYbg3movSthpBJLIdPlKxSAB2BW0VWLY3/ZfIxm/G2YGHyREkjJvimzYE0i37PnMA==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-x64-musl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.1.0.tgz", + "integrity": "sha512-/dQd0TlaxBdJACrR72DhynWftzHDaX32eBtS5WBrNJ+nnNb+znM3gON6nJ9tSE9jgDa6n1v2BkI/oIDtypfUXw==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.1.0.tgz", + "integrity": "sha512-NdQJO7SmdYqOcE+JPU7bwg7+odfZMWO6g8xF9SXYCMdUzvM2Gv/AQfikNXz5yS7ralRhNFuW32i5dcHlxh4pDg==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.1.0.tgz", + "integrity": "sha512-f5h8gKT/cB8s1ticFRUpNmHqkmaLutT62oFDB7N//2YTXnxst7EpMIn1w+QimxTvTk2gcx6EcW6bEk/y2hZGzg==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-win32-x64-msvc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.1.0.tgz", + "integrity": "sha512-P/+LrdSSb5Xbho1LRP4haBjFHdyPdjWvGgeopL96OVtrFpYnfC+RctB45z2V2XxqFk3HweDDxk266btjttfjGw==", + "dev": true, + "optional": true + }, + "@tauri-apps/plugin-cli": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.0.0.tgz", + "integrity": "sha512-glQmlL1IiCGEa1FHYa/PTPSeYhfu56omLRgHXWlJECDt6DbJyRuJWVgtkQfUxtqnVdYnnU+DGIGeiInoEqtjLw==", + "requires": { + "@tauri-apps/api": "^2.0.0" + } + }, + "@testing-library/dom": { + "version": "9.3.4", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + } + }, + "@testing-library/jest-dom": { + "version": "6.4.5", + "dev": true, + "requires": { + "@adobe/css-tools": "^4.3.2", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "dom-accessibility-api": { + "version": "0.6.3", + "dev": true + } + } + }, + "@testing-library/user-event": { + "version": "14.5.2", + "dev": true, + "requires": {} + }, + "@types/aria-query": { + "version": "5.0.4", + "dev": true + }, + "@types/babel__core": { + "version": "7.20.5", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.5", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/body-parser": { + "version": "1.19.5", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.38", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/doctrine": { + "version": "0.0.3", + "dev": true + }, + "@types/emscripten": { + "version": "1.39.12", + "dev": true + }, + "@types/escodegen": { + "version": "0.0.6", + "dev": true + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/express": { + "version": "4.17.21", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.19.0", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/find-cache-dir": { + "version": "3.2.1", + "dev": true + }, + "@types/glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, + "@types/http-errors": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.15", + "dev": true + }, + "@types/lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", + "dev": true + }, + "@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true + }, + "@types/mime": { + "version": "1.3.5", + "dev": true + }, + "@types/minimatch": { + "version": "5.1.2", + "dev": true + }, + "@types/node": { + "version": "18.19.33", + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/prop-types": { + "version": "15.7.12", + "dev": true + }, + "@types/qs": { + "version": "6.9.15", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.7", + "dev": true + }, + "@types/react": { + "version": "18.3.2", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.3.0", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "1.20.6", + "dev": true + }, + "@types/semver": { + "version": "7.5.8", + "dev": true + }, + "@types/send": { + "version": "0.17.4", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "1.15.7", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, + "@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "@types/w3c-web-serial": { + "version": "1.0.6", + "dev": true + }, + "@types/web-bluetooth": { + "version": "0.0.20", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "7.8.0", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/type-utils": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/parser": { + "version": "7.8.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "7.8.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "7.8.0", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/types": { + "version": "7.8.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "7.8.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/utils": { + "version": "7.8.0", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "semver": "^7.6.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "dev": true + }, + "@vitejs/plugin-react-swc": { + "version": "3.6.0", + "dev": true, + "requires": { + "@swc/core": "^1.3.107" + } + }, + "@vitest/expect": { + "version": "1.3.1", + "dev": true, + "requires": { + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "chai": "^4.3.10" + }, + "dependencies": { + "@vitest/spy": { + "version": "1.3.1", + "dev": true, + "requires": { + "tinyspy": "^2.2.0" + } + }, + "@vitest/utils": { + "version": "1.3.1", + "dev": true, + "requires": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + } + }, + "ansi-styles": { + "version": "5.2.0", + "dev": true + }, + "estree-walker": { + "version": "3.0.3", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.3.1", + "dev": true + } + } + }, + "@vitest/spy": { + "version": "1.6.0", + "dev": true, + "requires": { + "tinyspy": "^2.2.0" + } + }, + "@vitest/utils": { + "version": "1.6.0", + "dev": true, + "requires": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "dev": true + }, + "estree-walker": { + "version": "3.0.3", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.3.1", + "dev": true + } + } + }, + "@yarnpkg/fslib": { + "version": "2.10.3", + "dev": true, + "requires": { + "@yarnpkg/libzip": "^2.3.0", + "tslib": "^1.13.0" + } + }, + "@yarnpkg/libzip": { + "version": "2.3.0", + "dev": true, + "requires": { + "@types/emscripten": "^1.39.6", + "tslib": "^1.13.0" + } + }, + "@zmkfirmware/zmk-studio-ts-client": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@zmkfirmware/zmk-studio-ts-client/-/zmk-studio-ts-client-0.0.18.tgz", + "integrity": "sha512-S3NIkwL0zGOMZCf69Fy6LhhsC07clHoeAEx0JdMtNKfBfPTBIn0CYlkkUvrophAQwBpOQqEyw3gi7uc9WzuOCQ==", + "requires": { + "async-mutex": "^0.5.0", + "protobufjs": "^7.3.2" + } + }, + "accepts": { + "version": "1.3.8", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.11.3", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "7.2.0", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1" + }, + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "anymatch": { + "version": "3.1.3", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-dir": { + "version": "1.0.2", + "dev": true + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "aria-query": { + "version": "5.1.3", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, + "array-buffer-byte-length": { + "version": "1.0.1", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "assert": { + "version": "2.1.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "assertion-error": { + "version": "1.1.0", + "dev": true + }, + "ast-types": { + "version": "0.16.1", + "dev": true, + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.6.2", + "dev": true + } + } + }, + "async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "requires": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.7", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2" + }, + "better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "requires": { + "open": "^8.0.4" + } + }, + "binary-extensions": { + "version": "2.3.0" + }, + "body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "brace-expansion": { + "version": "2.0.1", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "browser-assert": { + "version": "1.2.1", + "dev": true + }, + "browserslist": { + "version": "4.23.0", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "call-bind": { + "version": "1.0.7", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-lite": { + "version": "1.0.30001617", + "dev": true + }, + "chai": { + "version": "4.4.1", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "check-error": { + "version": "1.0.3", + "dev": true, + "requires": { + "get-func-name": "^2.0.2" + } + }, + "chokidar": { + "version": "3.6.0", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chromatic": { + "version": "11.3.2", + "dev": true, + "requires": {} + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "commondir": { + "version": "1.0.1", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "dev": true + }, + "cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "dev": true + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "css.escape": { + "version": "1.5.1", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csstype": { + "version": "3.1.3", + "dev": true + }, + "debug": { + "version": "4.3.4", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-eql": { + "version": "4.1.3", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "2.2.3", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + } + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "define-data-property": { + "version": "1.1.4", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.2.1", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "dequal": { + "version": "2.0.3", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "diff-sequences": { + "version": "29.6.3", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.16", + "dev": true + }, + "dotenv": { + "version": "16.4.5", + "dev": true + }, + "dotenv-expand": { + "version": "10.0.0", + "dev": true + }, + "eastasianwidth": { + "version": "0.2.0" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.765", + "dev": true + }, + "emittery": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", + "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==" + }, + "emoji-regex": { + "version": "8.0.0" + }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, + "es-define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "dev": true + }, + "es-get-iterator": { + "version": "1.1.3", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "dev": true + }, + "esbuild": { + "version": "0.20.2", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + }, + "dependencies": { + "@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "dev": true, + "optional": true + } + } + }, + "esbuild-register": { + "version": "3.5.0", + "dev": true, + "requires": { + "debug": "^4.3.4" + } + }, + "escalade": { + "version": "3.1.2", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "escodegen": { + "version": "2.1.0", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, + "eslint": { + "version": "8.57.0", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.6.2", + "dev": true, + "requires": {} + }, + "eslint-plugin-react-refresh": { + "version": "0.4.7", + "dev": true, + "requires": {} + }, + "eslint-plugin-storybook": { + "version": "0.8.0", + "dev": true, + "requires": { + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.62.0", + "requireindex": "^1.2.0", + "ts-dedent": "^2.2.0" + }, + "dependencies": { + "@storybook/csf": { + "version": "0.0.1", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.62.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + } + }, + "@typescript-eslint/types": { + "version": "5.62.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.62.0", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.2.2", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "dev": true + }, + "espree": { + "version": "9.6.1", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fastq": { + "version": "1.17.1", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-system-cache": { + "version": "2.3.0", + "dev": true, + "requires": { + "fs-extra": "11.1.1", + "ramda": "0.29.0" + }, + "dependencies": { + "fs-extra": { + "version": "11.1.1", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "filesize": { + "version": "10.1.2", + "dev": true + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.3.1", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "3.1.1", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0" + } + } + }, + "forwarded": { + "version": "0.2.0", + "dev": true + }, + "fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "11.2.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2" + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "dev": true + }, + "get-func-name": { + "version": "2.0.2", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.4", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "dev": true + }, + "github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-promise": { + "version": "4.2.2", + "dev": true, + "requires": { + "@types/glob": "^7.1.3" + } + }, + "globals": { + "version": "13.24.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "dev": true + }, + "handlebars": { + "version": "4.7.8", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.2", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0" + } + }, + "hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0" + } + }, + "hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0" + } + }, + "html-tags": { + "version": "3.3.1", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "5.3.1", + "dev": true + }, + "immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==" + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "dev": true + }, + "internal-slot": { + "version": "1.0.7", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + } + }, + "intl-messageformat": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", + "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", + "requires": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.8", + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "ipaddr.js": { + "version": "1.9.1", + "dev": true + }, + "is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true + }, + "is-arguments": { + "version": "1.1.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + } + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "dev": true + }, + "is-core-module": { + "version": "2.13.1", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1" + }, + "is-fullwidth-code-point": { + "version": "3.0.0" + }, + "is-generator-function": { + "version": "1.0.10", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.3", + "dev": true + }, + "is-nan": { + "version": "1.3.2", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.3", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.3", + "dev": true, + "requires": { + "call-bind": "^1.0.7" + } + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.13", + "dev": true, + "requires": { + "which-typed-array": "^1.1.14" + } + }, + "is-weakmap": { + "version": "2.0.2", + "dev": true + }, + "is-weakset": { + "version": "2.0.3", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "2.0.5", + "dev": true + }, + "isexe": { + "version": "2.0.0" + }, + "jackspeak": { + "version": "2.3.6", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==" + }, + "js-tokens": { + "version": "4.0.0" + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsdoc-type-pratt-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", + "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json5": { + "version": "2.2.3", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.5.4", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lazy-universal-dotenv": { + "version": "4.0.0", + "dev": true, + "requires": { + "app-root-dir": "^1.0.2", + "dotenv": "^16.0.0", + "dotenv-expand": "^10.0.0" + } + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "lines-and-columns": { + "version": "1.2.4" + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "loose-envify": { + "version": "1.4.0", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loupe": { + "version": "2.3.7", + "dev": true, + "requires": { + "get-func-name": "^2.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lucide-react": { + "version": "0.445.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.445.0.tgz", + "integrity": "sha512-YrLf3aAHvmd4dZ8ot+mMdNFrFpJD7YRwQ2pUcBhgqbmxtrMP4xDzIorcj+8y+6kpuXBF4JB0NOCTUWIYetJjgA==", + "requires": {} + }, + "lz-string": { + "version": "1.5.0", + "dev": true + }, + "magic-string": { + "version": "0.30.10", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "map-or-similar": { + "version": "1.5.0", + "dev": true + }, + "markdown-to-jsx": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz", + "integrity": "sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==", + "dev": true, + "requires": {} + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memoizerific": { + "version": "1.11.3", + "dev": true, + "requires": { + "map-or-similar": "^1.5.0" + } + }, + "merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "dev": true + }, + "merge2": { + "version": "1.4.1" + }, + "methods": { + "version": "1.1.2", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "9.0.4", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "dev": true + }, + "minipass": { + "version": "5.0.0" + }, + "ms": { + "version": "2.1.2", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.7" + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "dev": true + }, + "node-fetch": { + "version": "2.7.0", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-releases": { + "version": "2.0.14", + "dev": true + }, + "normalize-path": { + "version": "3.0.0" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.13.1", + "dev": true + }, + "object-is": { + "version": "1.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + } + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.4", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + } + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-key": { + "version": "3.1.1" + }, + "path-parse": { + "version": "1.0.7" + }, + "path-scurry": { + "version": "1.11.1", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.2.2" + } + } + }, + "path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "dev": true + }, + "picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "picomatch": { + "version": "2.3.1" + }, + "pirates": { + "version": "4.0.6" + }, + "pkg-dir": { + "version": "5.0.0", + "dev": true, + "requires": { + "find-up": "^5.0.0" + } + }, + "polished": { + "version": "4.3.1", + "dev": true, + "requires": { + "@babel/runtime": "^7.17.8" + } + }, + "possible-typed-array-names": { + "version": "1.0.0", + "dev": true + }, + "postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + } + }, + "postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "requires": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "dependencies": { + "lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==" + } + } + }, + "postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "requires": { + "postcss-selector-parser": "^6.0.11" + } + }, + "postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true + }, + "pretty-format": { + "version": "27.5.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "dev": true + } + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1" + } + } + }, + "protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "2.3.1", + "dev": true + }, + "qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "requires": { + "side-channel": "^1.0.6" + } + }, + "queue-microtask": { + "version": "1.2.3" + }, + "ramda": { + "version": "0.29.0", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react": { + "version": "18.3.1", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-aria": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.35.0.tgz", + "integrity": "sha512-cbbd3iIveLDRnpVrpc1iuz8OMlDdH6u8EjncW3MQuYOiEGaho9xcDtWMKiSEIZASEnd7LK4Rgm5iVPr2O+cssw==", + "requires": { + "@internationalized/string": "^3.2.4", + "@react-aria/breadcrumbs": "^3.5.17", + "@react-aria/button": "^3.10.0", + "@react-aria/calendar": "^3.5.12", + "@react-aria/checkbox": "^3.14.7", + "@react-aria/color": "^3.0.0", + "@react-aria/combobox": "^3.10.4", + "@react-aria/datepicker": "^3.11.3", + "@react-aria/dialog": "^3.5.18", + "@react-aria/dnd": "^3.7.3", + "@react-aria/focus": "^3.18.3", + "@react-aria/gridlist": "^3.9.4", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/label": "^3.7.12", + "@react-aria/link": "^3.7.5", + "@react-aria/listbox": "^3.13.4", + "@react-aria/menu": "^3.15.4", + "@react-aria/meter": "^3.4.17", + "@react-aria/numberfield": "^3.11.7", + "@react-aria/overlays": "^3.23.3", + "@react-aria/progress": "^3.4.17", + "@react-aria/radio": "^3.10.8", + "@react-aria/searchfield": "^3.7.9", + "@react-aria/select": "^3.14.10", + "@react-aria/selection": "^3.20.0", + "@react-aria/separator": "^3.4.3", + "@react-aria/slider": "^3.7.12", + "@react-aria/ssr": "^3.9.6", + "@react-aria/switch": "^3.6.8", + "@react-aria/table": "^3.15.4", + "@react-aria/tabs": "^3.9.6", + "@react-aria/tag": "^3.4.6", + "@react-aria/textfield": "^3.14.9", + "@react-aria/tooltip": "^3.7.8", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-types/shared": "^3.25.0" + } + }, + "react-aria-components": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.4.0.tgz", + "integrity": "sha512-CpeSeGI2FVT3hOzA28fhIGkrPPQPtz3gVHBfMWkXSuLUBaKFZQhdCLBXlpO5MoZV1RrC+e7mhOVREkw6DvlxKw==", + "requires": { + "@internationalized/date": "^3.5.6", + "@internationalized/string": "^3.2.4", + "@react-aria/accordion": "3.0.0-alpha.34", + "@react-aria/collections": "3.0.0-alpha.5", + "@react-aria/color": "^3.0.0", + "@react-aria/disclosure": "3.0.0-alpha.0", + "@react-aria/dnd": "^3.7.3", + "@react-aria/focus": "^3.18.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/live-announcer": "^3.4.0", + "@react-aria/menu": "^3.15.4", + "@react-aria/toolbar": "3.0.0-beta.9", + "@react-aria/tree": "3.0.0-beta.0", + "@react-aria/utils": "^3.25.3", + "@react-aria/virtualizer": "^4.0.3", + "@react-stately/color": "^3.8.0", + "@react-stately/disclosure": "3.0.0-alpha.0", + "@react-stately/layout": "^4.0.3", + "@react-stately/menu": "^3.8.3", + "@react-stately/table": "^3.12.3", + "@react-stately/utils": "^3.10.4", + "@react-stately/virtualizer": "^4.1.0", + "@react-types/color": "^3.0.0", + "@react-types/form": "^3.7.7", + "@react-types/grid": "^3.2.9", + "@react-types/shared": "^3.25.0", + "@react-types/table": "^3.10.2", + "@swc/helpers": "^0.5.0", + "client-only": "^0.0.1", + "react-aria": "^3.35.0", + "react-stately": "^3.33.0", + "use-sync-external-store": "^1.2.0" + } + }, + "react-colorful": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "dev": true, + "requires": {} + }, + "react-confetti": { + "version": "6.1.0", + "dev": true, + "requires": { + "tween-functions": "^1.2.0" + } + }, + "react-docgen": { + "version": "7.0.3", + "dev": true, + "requires": { + "@babel/core": "^7.18.9", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "@types/babel__core": "^7.18.0", + "@types/babel__traverse": "^7.18.0", + "@types/doctrine": "^0.0.9", + "@types/resolve": "^1.20.2", + "doctrine": "^3.0.0", + "resolve": "^1.22.1", + "strip-indent": "^4.0.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.9", + "dev": true + } + } + }, + "react-docgen-typescript": { + "version": "2.2.2", + "dev": true, + "requires": {} + }, + "react-dom": { + "version": "18.3.1", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + } + }, + "react-element-to-jsx-string": { + "version": "15.0.0", + "dev": true, + "requires": { + "@base2/pretty-print-object": "1.0.1", + "is-plain-object": "5.0.0", + "react-is": "18.1.0" + }, + "dependencies": { + "react-is": { + "version": "18.1.0", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "dev": true + }, + "react-stately": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.33.0.tgz", + "integrity": "sha512-DNPOxYAPuhuXwSuE1s1K7iSgqG2QOBUZq3bsLAd4gUUZje6Qepkhe7TzK2LWarQYAZ3gC9Xhmnz8ie1fdCo0GA==", + "requires": { + "@react-stately/calendar": "^3.5.5", + "@react-stately/checkbox": "^3.6.9", + "@react-stately/collections": "^3.11.0", + "@react-stately/color": "^3.8.0", + "@react-stately/combobox": "^3.10.0", + "@react-stately/data": "^3.11.7", + "@react-stately/datepicker": "^3.10.3", + "@react-stately/dnd": "^3.4.3", + "@react-stately/form": "^3.0.6", + "@react-stately/list": "^3.11.0", + "@react-stately/menu": "^3.8.3", + "@react-stately/numberfield": "^3.9.7", + "@react-stately/overlays": "^3.6.11", + "@react-stately/radio": "^3.10.8", + "@react-stately/searchfield": "^3.5.7", + "@react-stately/select": "^3.6.8", + "@react-stately/selection": "^3.17.0", + "@react-stately/slider": "^3.5.8", + "@react-stately/table": "^3.12.3", + "@react-stately/tabs": "^3.6.10", + "@react-stately/toggle": "^3.7.8", + "@react-stately/tooltip": "^3.4.13", + "@react-stately/tree": "^3.8.5", + "@react-types/shared": "^3.25.0" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "requires": { + "picomatch": "^2.2.1" + } + }, + "recast": { + "version": "0.23.7", + "dev": true, + "requires": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.6.2", + "dev": true + } + } + }, + "redent": { + "version": "3.0.0", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "strip-indent": { + "version": "3.0.0", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + } + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.2", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + } + }, + "rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + } + }, + "rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + } + }, + "requireindex": { + "version": "1.2.0", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "dev": true + }, + "reusify": { + "version": "1.0.4" + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@types/estree": "1.0.6", + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-script-os": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", + "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "scheduler": { + "version": "0.23.2", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "7.6.2", + "dev": true + }, + "send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "requires": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0" + }, + "side-channel": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + "space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "stop-iteration-iterator": { + "version": "1.0.0", + "dev": true, + "requires": { + "internal-slot": "^1.0.4" + } + }, + "storybook": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.3.5.tgz", + "integrity": "sha512-hYQVtP2l+3kO8oKDn4fjXXQYxgTRsj/LaV6lUMJH0zt+OhVmDXKJLxmdUP4ieTm0T8wEbSYosFavgPcQZlxRfw==", + "dev": true, + "requires": { + "@storybook/core": "8.3.5" + } + }, + "string-width": { + "version": "4.2.3", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true + }, + "strip-indent": { + "version": "4.0.0", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + } + }, + "jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" + } + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0" + }, + "tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "requires": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + } + }, + "tailwindcss-react-aria-components": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tailwindcss-react-aria-components/-/tailwindcss-react-aria-components-1.1.3.tgz", + "integrity": "sha512-j852nEhbvD7/zxpNI7hY+6mYm//2zSKuPPq3NNohMi+/nA0hxjaJGg0LYEPzumn/efNT0Itrq+/TMD+r/m1EqA==", + "requires": {} + }, + "telejson": { + "version": "7.2.0", + "dev": true, + "requires": { + "memoizerific": "^1.11.3" + } + }, + "temp-dir": { + "version": "2.0.0", + "dev": true + }, + "tempy": { + "version": "1.0.1", + "dev": true, + "requires": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "tiny-invariant": { + "version": "1.3.3", + "dev": true + }, + "tinyspy": { + "version": "2.2.1", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "dev": true + }, + "ts-api-utils": { + "version": "1.3.0", + "dev": true, + "requires": {} + }, + "ts-dedent": { + "version": "2.2.0", + "dev": true + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "tsconfig-paths": { + "version": "4.2.0", + "dev": true, + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tween-functions": { + "version": "1.2.0", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "5.4.5", + "dev": true + }, + "uglify-js": { + "version": "3.17.4", + "dev": true, + "optional": true + }, + "undici-types": { + "version": "5.26.5" + }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + } + }, + "unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + } + }, + "universalify": { + "version": "2.0.1", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unplugin": { + "version": "1.10.1", + "dev": true, + "requires": { + "acorn": "^8.11.3", + "chokidar": "^3.6.0", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + } + }, + "update-browserslist-db": { + "version": "1.0.15", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "requires": {} + }, + "util": { + "version": "0.12.5", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2" + }, + "utils-merge": { + "version": "1.0.1", + "dev": true + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "dev": true + }, + "vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "requires": { + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "dependencies": { + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, + "webidl-conversions": { + "version": "3.0.1", + "dev": true + }, + "webpack-sources": { + "version": "3.2.3", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.6.1", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-typed-array": { + "version": "1.1.15", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + } + }, + "word-wrap": { + "version": "1.2.5", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "dev": true + }, + "wrap-ansi": { + "version": "8.1.0", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1" + }, + "ansi-styles": { + "version": "6.2.1" + }, + "emoji-regex": { + "version": "9.2.2" + }, + "string-width": { + "version": "5.1.2", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "requires": {} + }, + "yallist": { + "version": "3.1.1", + "dev": true + }, + "yaml": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==" + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } +} diff --git a/package.json b/package.json index 1505bcaf..d499ebd0 100644 --- a/package.json +++ b/package.json @@ -1,67 +1,67 @@ -{ - "name": "zmk-studio", - "private": true, - "version": "0.3.1", - "type": "module", - "scripts": { - "generate-data": "node scripts/generate-release-data.js", - "dev": "npm run generate-data && vite", - "build": "npm run generate-data && tsc && vite build", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview", - "tauri": "tauri", - "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build" - }, - "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.7.1", - "@fortawesome/free-brands-svg-icons": "^6.7.1", - "@fortawesome/react-fontawesome": "^0.2.2", - "@tailwindcss/container-queries": "^0.1.1", - "@tauri-apps/api": "^2.0.0", - "@tauri-apps/plugin-cli": "^2.0.0", - "@zmkfirmware/zmk-studio-ts-client": "^0.0.18", - "emittery": "^1.0.3", - "immer": "^10.1.1", - "lucide-react": "^0.445.0", - "react": "^18.2.0", - "react-aria-components": "^1.4.0", - "react-dom": "^18.2.0", - "tailwindcss-react-aria-components": "^1.1.3" - }, - "devDependencies": { - "@chromatic-com/storybook": "^1.3.5", - "@storybook/addon-essentials": "^8.3.5", - "@storybook/addon-interactions": "^8.0.10", - "@storybook/addon-links": "^8.0.10", - "@storybook/addon-onboarding": "^8.0.10", - "@storybook/blocks": "^8.3.5", - "@storybook/react": "^8.0.10", - "@storybook/react-vite": "^8.0.10", - "@storybook/test": "^8.0.10", - "@tauri-apps/cli": "^2.0.0", - "@types/react": "^18.2.66", - "@types/react-dom": "^18.2.22", - "@types/w3c-web-serial": "^1.0.6", - "@types/web-bluetooth": "^0.0.20", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "@vitejs/plugin-react-swc": "^3.5.0", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", - "eslint-plugin-storybook": "^0.8.0", - "postcss": "^8.4.38", - "prettier": "3.3.2", - "run-script-os": "^1.1.6", - "storybook": "^8.0.10", - "tailwindcss": "^3.4.4", - "typescript": "^5.4.5", - "vite": "^5.4.8" - }, - "optionalDependencies": { - "@esbuild/darwin-arm64": "0.23.0", - "@rollup/rollup-darwin-arm64": "^4.18.1" - } +{ + "name": "zmk-studio", + "private": true, + "version": "0.3.1", + "type": "module", + "scripts": { + "generate-data": "node scripts/generate-release-data.js", + "dev": "npm run generate-data && vite --host", + "build": "npm run generate-data && tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview", + "tauri": "NO_STRIP=true tauri", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.7.1", + "@fortawesome/free-brands-svg-icons": "^6.7.1", + "@fortawesome/react-fontawesome": "^0.2.2", + "@tailwindcss/container-queries": "^0.1.1", + "@tauri-apps/api": "^2.0.0", + "@tauri-apps/plugin-cli": "^2.0.0", + "@zmkfirmware/zmk-studio-ts-client": "^0.0.18", + "emittery": "^1.0.3", + "immer": "^10.1.1", + "lucide-react": "^0.445.0", + "react": "^18.2.0", + "react-aria-components": "^1.4.0", + "react-dom": "^18.2.0", + "tailwindcss-react-aria-components": "^1.1.3" + }, + "devDependencies": { + "@chromatic-com/storybook": "^1.3.5", + "@storybook/addon-essentials": "^8.3.5", + "@storybook/addon-interactions": "^8.0.10", + "@storybook/addon-links": "^8.0.10", + "@storybook/addon-onboarding": "^8.0.10", + "@storybook/blocks": "^8.3.5", + "@storybook/react": "^8.0.10", + "@storybook/react-vite": "^8.0.10", + "@storybook/test": "^8.0.10", + "@tauri-apps/cli": "^2.0.0", + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@types/w3c-web-serial": "^1.0.6", + "@types/web-bluetooth": "^0.0.20", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "eslint-plugin-storybook": "^0.8.0", + "postcss": "^8.4.38", + "prettier": "3.3.2", + "run-script-os": "^1.1.6", + "storybook": "^8.0.10", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5", + "vite": "^5.4.8" + }, + "optionalDependencies": { + "@esbuild/darwin-arm64": "0.23.0", + "@rollup/rollup-darwin-arm64": "^4.18.1" + } } \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js index 2aa7205d..daedffd2 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,6 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/vite.svg b/public/vite.svg index ee9fadaf..7a20b247 100644 --- a/public/vite.svg +++ b/public/vite.svg @@ -1 +1 @@ - + diff --git a/public/zmk.svg b/public/zmk.svg index 31977a60..f45eac72 100644 --- a/public/zmk.svg +++ b/public/zmk.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/release-please-config.json b/release-please-config.json index b5399d3a..7c7cb9fd 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,20 +1,20 @@ -{ - "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", - "release-type": "node", - "include-component-in-tag": false, - "extra-files": [ - { - "type": "toml", - "path": "src-tauri/Cargo.toml", - "jsonpath": "$.package.version" - }, - { - "type": "json", - "path": "src-tauri/tauri.conf.json", - "jsonpath": "$.version" - } - ], - "packages": { - ".": {} - } -} +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "release-type": "node", + "include-component-in-tag": false, + "extra-files": [ + { + "type": "toml", + "path": "src-tauri/Cargo.toml", + "jsonpath": "$.package.version" + }, + { + "type": "json", + "path": "src-tauri/tauri.conf.json", + "jsonpath": "$.version" + } + ], + "packages": { + ".": {} + } +} diff --git a/requirements.txt b/requirements.txt index 416634f5..323d5b0d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pre-commit +pre-commit diff --git a/scripts/generate-release-data.js b/scripts/generate-release-data.js index 9349c352..e3813ce6 100644 --- a/scripts/generate-release-data.js +++ b/scripts/generate-release-data.js @@ -1,39 +1,39 @@ -import fs from "fs/promises"; -import path from "path"; -import url from "url"; - -const __filename = url.fileURLToPath(import.meta.url); -const __dirname = path.resolve(__filename, "../.."); - -async function generateReleaseData() { - try { - const response = await fetch( - "https://api.github.com/repos/zmkfirmware/zmk-studio/releases/latest", - { - headers: process.env.GITHUB_TOKEN - ? { Authorization: `Bearer ${process.env.GITHUB_TOKEN}` } - : {}, - }, - ); - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - - const data = await response.json(); - const dataFilePath = path.resolve( - __dirname, - "src", - "data", - "release-data.json", - ); - await fs.mkdir(path.dirname(dataFilePath), { recursive: true }); - await fs.writeFile(dataFilePath, JSON.stringify(data)); - - console.log("Release data generated successfully!"); - } catch (error) { - console.error("Error generating release data:", error); - process.exit(1); - } -} - -generateReleaseData(); +import fs from "fs/promises"; +import path from "path"; +import url from "url"; + +const __filename = url.fileURLToPath(import.meta.url); +const __dirname = path.resolve(__filename, "../.."); + +async function generateReleaseData() { + try { + const response = await fetch( + "https://api.github.com/repos/zmkfirmware/zmk-studio/releases/latest", + { + headers: process.env.GITHUB_TOKEN + ? { Authorization: `Bearer ${process.env.GITHUB_TOKEN}` } + : {}, + }, + ); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + const dataFilePath = path.resolve( + __dirname, + "src", + "data", + "release-data.json", + ); + await fs.mkdir(path.dirname(dataFilePath), { recursive: true }); + await fs.writeFile(dataFilePath, JSON.stringify(data)); + + console.log("Release data generated successfully!"); + } catch (error) { + console.error("Error generating release data:", error); + process.exit(1); + } +} + +generateReleaseData(); diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore index 502406b4..489be327 100644 --- a/src-tauri/.gitignore +++ b/src-tauri/.gitignore @@ -1,4 +1,4 @@ -# Generated by Cargo -# will have compiled files and executables -/target/ -/gen/schemas +# Generated by Cargo +# will have compiled files and executables +/target/ +/gen/schemas diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 91fbadf2..63959285 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -113,7 +113,7 @@ checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" [[package]] name = "app" -version = "0.1.0" +version = "0.3.1" dependencies = [ "async-std", "blocking", diff --git a/src-tauri/Info.plist b/src-tauri/Info.plist index 3fc104d3..5d3bc296 100644 --- a/src-tauri/Info.plist +++ b/src-tauri/Info.plist @@ -1,8 +1,8 @@ - - - - - NSBluetoothAlwaysUsageDescription - Request bluetooth access for wireless access for config - + + + + + NSBluetoothAlwaysUsageDescription + Request bluetooth access for wireless access for config + \ No newline at end of file diff --git a/src-tauri/build.rs b/src-tauri/build.rs index d860e1e6..2ba80a8b 100644 --- a/src-tauri/build.rs +++ b/src-tauri/build.rs @@ -1,3 +1,3 @@ -fn main() { - tauri_build::build() -} +fn main() { + tauri_build::build() +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index ca7ad8ff..d74297d5 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -1,20 +1,20 @@ -{ - "$schema": "../gen/schemas/desktop-schema.json", - "identifier": "default", - "description": "enables the default permissions", - "windows": [ - "main" - ], - "permissions": [ - "core:path:default", - "core:event:default", - "core:window:default", - "core:webview:default", - "core:app:default", - "core:resources:default", - "core:image:default", - "core:menu:default", - "core:tray:default", - "cli:default" - ] -} +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "enables the default permissions", + "windows": [ + "main" + ], + "permissions": [ + "core:path:default", + "core:event:default", + "core:window:default", + "core:webview:default", + "core:app:default", + "core:resources:default", + "core:image:default", + "core:menu:default", + "core:tray:default", + "cli:default" + ] +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 3b48e91a..531a2055 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,6 +1,6 @@ -#[cfg_attr(mobile, tauri::mobile_entry_point)] -pub fn run() { - tauri::Builder::default() - .run(tauri::generate_context!()) - .expect("error while running tauri application"); -} +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e9d7348e..5184f4fa 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,30 +1,30 @@ -// Prevents additional console window on Windows in release, DO NOT REMOVE!! -#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] - -use std::env; - -use futures::lock::Mutex; - -mod transport; -use transport::commands::{transport_close, transport_send_data, ActiveConnection}; - -use transport::gatt::{gatt_connect, gatt_list_devices}; -use transport::serial::{serial_connect, serial_list_devices}; - -fn main() { - tauri::Builder::default() - .plugin(tauri_plugin_cli::init()) - .manage(ActiveConnection { - conn: Mutex::new(None), - }) - .invoke_handler(tauri::generate_handler![ - transport_send_data, - transport_close, - gatt_list_devices, - gatt_connect, - serial_list_devices, - serial_connect, - ]) - .run(tauri::generate_context!()) - .expect("error while running tauri application"); -} +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +use std::env; + +use futures::lock::Mutex; + +mod transport; +use transport::commands::{transport_close, transport_send_data, ActiveConnection}; + +use transport::gatt::{gatt_connect, gatt_list_devices}; +use transport::serial::{serial_connect, serial_list_devices}; + +fn main() { + tauri::Builder::default() + .plugin(tauri_plugin_cli::init()) + .manage(ActiveConnection { + conn: Mutex::new(None), + }) + .invoke_handler(tauri::generate_handler![ + transport_send_data, + transport_close, + gatt_list_devices, + gatt_connect, + serial_list_devices, + serial_connect, + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/transport/commands.rs b/src-tauri/src/transport/commands.rs index 8b638535..41760b58 100644 --- a/src-tauri/src/transport/commands.rs +++ b/src-tauri/src/transport/commands.rs @@ -1,50 +1,50 @@ -use futures::lock::Mutex; -use futures::Sink; -use futures::SinkExt; - -use futures::channel::mpsc::SendError; - -use serde::{Deserialize, Serialize}; - -use tauri::ipc::InvokeBody; -use tauri::{ - command, - ipc::{Request}, - State, -}; - -#[derive(Debug, Serialize, Deserialize)] -pub struct AvailableDevice { - pub label: String, - pub id: String, -} - -#[derive(Debug, Default)] -pub struct ActiveConnection<'a> { - pub conn: Mutex, Error = SendError> + Unpin + Send + 'a>>>, -} - -#[command] -pub async fn transport_send_data( - req: Request<'_>, - state: State<'_, ActiveConnection<'_>>, -) -> Result<(), ()> { - if let InvokeBody::Raw(data) = req.body() { - let mut lock = state.conn.lock().await; - - let sink = lock.as_mut().unwrap(); - sink.send(data.clone()).await; - } - - Ok(()) -} - -#[command] -pub async fn transport_close( - req: Request<'_>, - state: State<'_, ActiveConnection<'_>>, -) -> Result<(), ()> { - *state.conn.lock().await = None; - - Ok(()) -} +use futures::lock::Mutex; +use futures::Sink; +use futures::SinkExt; + +use futures::channel::mpsc::SendError; + +use serde::{Deserialize, Serialize}; + +use tauri::ipc::InvokeBody; +use tauri::{ + command, + ipc::{Request}, + State, +}; + +#[derive(Debug, Serialize, Deserialize)] +pub struct AvailableDevice { + pub label: String, + pub id: String, +} + +#[derive(Debug, Default)] +pub struct ActiveConnection<'a> { + pub conn: Mutex, Error = SendError> + Unpin + Send + 'a>>>, +} + +#[command] +pub async fn transport_send_data( + req: Request<'_>, + state: State<'_, ActiveConnection<'_>>, +) -> Result<(), ()> { + if let InvokeBody::Raw(data) = req.body() { + let mut lock = state.conn.lock().await; + + let sink = lock.as_mut().unwrap(); + sink.send(data.clone()).await; + } + + Ok(()) +} + +#[command] +pub async fn transport_close( + req: Request<'_>, + state: State<'_, ActiveConnection<'_>>, +) -> Result<(), ()> { + *state.conn.lock().await = None; + + Ok(()) +} diff --git a/src-tauri/src/transport/gatt.rs b/src-tauri/src/transport/gatt.rs index 357fc25c..3fd51f57 100644 --- a/src-tauri/src/transport/gatt.rs +++ b/src-tauri/src/transport/gatt.rs @@ -1,158 +1,158 @@ -use async_std::future::timeout; -use futures::future::ready; -use futures::{channel::mpsc::channel, FutureExt}; -use futures::{StreamExt, TryFutureExt}; - -use std::time::Duration; -use uuid::Uuid; - -use bluest::{Adapter, ConnectionEvent, Device, DeviceId}; - -use tauri::{command, AppHandle, State}; - -const SVC_UUID: Uuid = Uuid::from_u128(0x00000000_0196_6107_c967_c5cfb1c2482a); -const RPC_CHRC_UUID: Uuid = Uuid::from_u128(0x00000001_0196_6107_c967_c5cfb1c2482a); - -#[command] -pub async fn gatt_connect( - id: String, - app_handle: AppHandle, - state: State<'_, super::commands::ActiveConnection<'_>>, -) -> Result { - let adapter = Adapter::default().await.ok_or("Failed to access the BT adapter".to_string())?; - - adapter.wait_available().await.map_err(|e| format!("Failed to wait for the BT adapter access: {}", e.message()))?; - - let device_id: DeviceId = serde_json::from_str(&id).unwrap(); - let d = adapter.open_device(&device_id).await.map_err(|e| format!("Failed to open the device: {}", e.message()))?; - - if !d.is_connected().await { - adapter.connect_device(&d).await.map_err(|e| format!("Failed to connect to the device: {}", e.message()))?; - } - - let service = d - .discover_services_with_uuid(SVC_UUID) - .await - .map_err(|e| format!("Failed to find the device services: {}", e.message()))? - .get(0) - .cloned(); - - if let Some(s) = service { - let char = s - .discover_characteristics_with_uuid(RPC_CHRC_UUID) - .await - .map_err(|e| format!("Failed to find the studio service characteristics: {}", e.message()))? - .get(0) - .cloned(); - - if let Some(c) = char { - let c2 = c.clone(); - let ah1 = app_handle.clone(); - let notify_handle = tauri::async_runtime::spawn(async move { - if let Ok(mut n) = c2.notify().await { - use tauri::Emitter; - - while let Some(Ok(vn)) = n.next().await { - ah1.emit("connection_data", vn.clone()); - } - } - }); - - let ah2 = app_handle.clone(); - let disconnect_handle = tauri::async_runtime::spawn(async move { - // Need to keep adapter from being dropped while active/connected - let a = adapter; - - use tauri::Emitter; - use tauri::Manager; - - if let Ok(mut events) = a.device_connection_events(&d).await { - while let Some(ev) = events.next().await { - if ev == ConnectionEvent::Disconnected { - let state = ah2.state::(); - *state.conn.lock().await = None; - - if let Err(e) = ah2.emit("connection_disconnected", ()) { - println!("ERROR RAISING! {:?}", e); - } - - *state.conn.lock().await = None; - } - } - }; - }); - - let (send, mut recv) = channel(5); - *state.conn.lock().await = Some(Box::new(send)); - tauri::async_runtime::spawn(async move { - while let Some(data) = recv.next().await { - c.write(&data).await.expect("Write uneventfully"); - } - - disconnect_handle.abort(); - notify_handle.abort(); - }); - - Ok(true) - } else { - Err("Failed to connect: Unable to locate the required studio GATT characteristic".to_string()) - } - } else { - Err("Failed to connect: Unable to locate the required studio GATT service".to_string()) - } -} - -#[cfg(target_os = "macos")] -async fn check_connected(adapter: &Adapter, device: &Device) -> bool { - if let Ok(()) = adapter.connect_device(&device).await { - true - } else { - false - } -} - -#[cfg(not(target_os = "macos"))] -async fn check_connected(_: &Adapter, device: &Device) -> bool { - device.is_connected().await -} - -const ADAPTER_TIMEOUT: Duration = Duration::from_secs(2); - -#[command] -pub async fn gatt_list_devices() -> Result, ()> { - let adapter = Adapter::default() - .map(|a| a.ok_or(())) - .and_then(|a| async { - timeout(ADAPTER_TIMEOUT, a.wait_available()) - .await - .map_err(|_| ()) - .map(|_| a) - }) - .await; - - let mut ret = vec![]; - - if let Ok(a) = adapter { - let devices = a - .discover_devices(&[SVC_UUID]) - .await - .expect("GET DEVICES!") - .take_until(async_std::task::sleep(Duration::from_secs(2))) - .filter_map(|d| ready(d.ok())); - - futures::pin_mut!(devices); - - while let Some(device) = devices.next().await { - if check_connected(&a, &device).await { - let label = device.name_async().await.unwrap_or("Unknown".to_string()); - let id = serde_json::to_string(&device.id()).unwrap(); - - ret.push(super::commands::AvailableDevice { label, id }); - } else { - println!("Device isn't connected: {:?}", device); - } - } - } - - Ok(ret) -} +use async_std::future::timeout; +use futures::future::ready; +use futures::{channel::mpsc::channel, FutureExt}; +use futures::{StreamExt, TryFutureExt}; + +use std::time::Duration; +use uuid::Uuid; + +use bluest::{Adapter, ConnectionEvent, Device, DeviceId}; + +use tauri::{command, AppHandle, State}; + +const SVC_UUID: Uuid = Uuid::from_u128(0x00000000_0196_6107_c967_c5cfb1c2482a); +const RPC_CHRC_UUID: Uuid = Uuid::from_u128(0x00000001_0196_6107_c967_c5cfb1c2482a); + +#[command] +pub async fn gatt_connect( + id: String, + app_handle: AppHandle, + state: State<'_, super::commands::ActiveConnection<'_>>, +) -> Result { + let adapter = Adapter::default().await.ok_or("Failed to access the BT adapter".to_string())?; + + adapter.wait_available().await.map_err(|e| format!("Failed to wait for the BT adapter access: {}", e.message()))?; + + let device_id: DeviceId = serde_json::from_str(&id).unwrap(); + let d = adapter.open_device(&device_id).await.map_err(|e| format!("Failed to open the device: {}", e.message()))?; + + if !d.is_connected().await { + adapter.connect_device(&d).await.map_err(|e| format!("Failed to connect to the device: {}", e.message()))?; + } + + let service = d + .discover_services_with_uuid(SVC_UUID) + .await + .map_err(|e| format!("Failed to find the device services: {}", e.message()))? + .get(0) + .cloned(); + + if let Some(s) = service { + let char = s + .discover_characteristics_with_uuid(RPC_CHRC_UUID) + .await + .map_err(|e| format!("Failed to find the studio service characteristics: {}", e.message()))? + .get(0) + .cloned(); + + if let Some(c) = char { + let c2 = c.clone(); + let ah1 = app_handle.clone(); + let notify_handle = tauri::async_runtime::spawn(async move { + if let Ok(mut n) = c2.notify().await { + use tauri::Emitter; + + while let Some(Ok(vn)) = n.next().await { + ah1.emit("connection_data", vn.clone()); + } + } + }); + + let ah2 = app_handle.clone(); + let disconnect_handle = tauri::async_runtime::spawn(async move { + // Need to keep adapter from being dropped while active/connected + let a = adapter; + + use tauri::Emitter; + use tauri::Manager; + + if let Ok(mut events) = a.device_connection_events(&d).await { + while let Some(ev) = events.next().await { + if ev == ConnectionEvent::Disconnected { + let state = ah2.state::(); + *state.conn.lock().await = None; + + if let Err(e) = ah2.emit("connection_disconnected", ()) { + println!("ERROR RAISING! {:?}", e); + } + + *state.conn.lock().await = None; + } + } + }; + }); + + let (send, mut recv) = channel(5); + *state.conn.lock().await = Some(Box::new(send)); + tauri::async_runtime::spawn(async move { + while let Some(data) = recv.next().await { + c.write(&data).await.expect("Write uneventfully"); + } + + disconnect_handle.abort(); + notify_handle.abort(); + }); + + Ok(true) + } else { + Err("Failed to connect: Unable to locate the required studio GATT characteristic".to_string()) + } + } else { + Err("Failed to connect: Unable to locate the required studio GATT service".to_string()) + } +} + +#[cfg(target_os = "macos")] +async fn check_connected(adapter: &Adapter, device: &Device) -> bool { + if let Ok(()) = adapter.connect_device(&device).await { + true + } else { + false + } +} + +#[cfg(not(target_os = "macos"))] +async fn check_connected(_: &Adapter, device: &Device) -> bool { + device.is_connected().await +} + +const ADAPTER_TIMEOUT: Duration = Duration::from_secs(2); + +#[command] +pub async fn gatt_list_devices() -> Result, ()> { + let adapter = Adapter::default() + .map(|a| a.ok_or(())) + .and_then(|a| async { + timeout(ADAPTER_TIMEOUT, a.wait_available()) + .await + .map_err(|_| ()) + .map(|_| a) + }) + .await; + + let mut ret = vec![]; + + if let Ok(a) = adapter { + let devices = a + .discover_devices(&[SVC_UUID]) + .await + .expect("GET DEVICES!") + .take_until(async_std::task::sleep(Duration::from_secs(2))) + .filter_map(|d| ready(d.ok())); + + futures::pin_mut!(devices); + + while let Some(device) = devices.next().await { + if check_connected(&a, &device).await { + let label = device.name_async().await.unwrap_or("Unknown".to_string()); + let id = serde_json::to_string(&device.id()).unwrap(); + + ret.push(super::commands::AvailableDevice { label, id }); + } else { + println!("Device isn't connected: {:?}", device); + } + } + } + + Ok(ret) +} diff --git a/src-tauri/src/transport/mod.rs b/src-tauri/src/transport/mod.rs index 61492f91..9849a9e9 100644 --- a/src-tauri/src/transport/mod.rs +++ b/src-tauri/src/transport/mod.rs @@ -1,3 +1,3 @@ -pub mod commands; -pub mod gatt; -pub mod serial; +pub mod commands; +pub mod gatt; +pub mod serial; diff --git a/src-tauri/src/transport/serial.rs b/src-tauri/src/transport/serial.rs index cebba80f..4b6fe514 100644 --- a/src-tauri/src/transport/serial.rs +++ b/src-tauri/src/transport/serial.rs @@ -1,103 +1,103 @@ -use blocking::unblock; -use futures::channel::mpsc::channel; -use futures::StreamExt; - -use tokio::io::{AsyncReadExt, AsyncWriteExt}; -use tokio_serial::{available_ports, SerialPortBuilderExt, SerialPortType}; - -use tauri::{command, AppHandle, State}; -use tauri_plugin_cli::CliExt; - -const READ_BUF_SIZE: usize = 1024; - -#[command] -pub async fn serial_connect( - id: String, - app_handle: AppHandle, - state: State<'_, super::commands::ActiveConnection<'_>>, -) -> Result { - match tokio_serial::new(id, 9600).open_native_async() { - Ok(mut port) => { - #[cfg(unix)] - port.set_exclusive(false) - .expect("Unable to set serial port exclusive to false"); - - let (mut reader, mut writer) = tokio::io::split(port); - - let ahc = app_handle.clone(); - let (send, mut recv) = channel(5); - *state.conn.lock().await = Some(Box::new(send)); - - let read_process = tauri::async_runtime::spawn(async move { - use tauri::Manager; - use tauri::Emitter; - - let mut buffer = vec![0; READ_BUF_SIZE]; - while let Ok(size) = reader.read(&mut buffer).await { - if size > 0 { - app_handle.emit("connection_data", &buffer[..size]); - } else { - break; - } - } - - let state = app_handle.state::(); - *state.conn.lock().await = None; - - app_handle.emit("connection_disconnected", ()); - }); - - tauri::async_runtime::spawn(async move { - use tauri::Manager; - - while let Some(data) = recv.next().await { - let _res = writer.write(&data).await; - } - - let state = ahc.state::(); - read_process.abort(); - *state.conn.lock().await = None; - }); - - Ok(true) - } - Err(e) => { - Err(format!("Failed to open the serial port: {}", e.description)) - } - } -} - -#[command] -pub async fn serial_list_devices(app_handle: AppHandle) -> Result, ()> { - let ports = unblock(|| available_ports()).await.unwrap(); - - let mut candidates = ports - .into_iter() - .filter_map(|pi| { - if let SerialPortType::UsbPort(u) = pi.port_type { - Some(super::commands::AvailableDevice { - id: pi.port_name, - label: u.product.unwrap_or("TODO".to_string()), - }) - } else { - None - } - }) - .collect::>(); - - match app_handle.cli().matches() { - Ok(m) => { - if let Some(p) = m.args.get("serial-port") { - if let serde_json::Value::String(path) = &p.value { - candidates.push(super::commands::AvailableDevice { - id: path.to_string(), - label: format!("CLI Port: {path}").to_string(), - }) - } - } - }, - Err(_) => {}, - } - - Ok(candidates) -} +use blocking::unblock; +use futures::channel::mpsc::channel; +use futures::StreamExt; + +use tokio::io::{AsyncReadExt, AsyncWriteExt}; +use tokio_serial::{available_ports, SerialPortBuilderExt, SerialPortType}; + +use tauri::{command, AppHandle, State}; +use tauri_plugin_cli::CliExt; + +const READ_BUF_SIZE: usize = 1024; + +#[command] +pub async fn serial_connect( + id: String, + app_handle: AppHandle, + state: State<'_, super::commands::ActiveConnection<'_>>, +) -> Result { + match tokio_serial::new(id, 9600).open_native_async() { + Ok(mut port) => { + #[cfg(unix)] + port.set_exclusive(false) + .expect("Unable to set serial port exclusive to false"); + + let (mut reader, mut writer) = tokio::io::split(port); + + let ahc = app_handle.clone(); + let (send, mut recv) = channel(5); + *state.conn.lock().await = Some(Box::new(send)); + + let read_process = tauri::async_runtime::spawn(async move { + use tauri::Manager; + use tauri::Emitter; + + let mut buffer = vec![0; READ_BUF_SIZE]; + while let Ok(size) = reader.read(&mut buffer).await { + if size > 0 { + app_handle.emit("connection_data", &buffer[..size]); + } else { + break; + } + } + + let state = app_handle.state::(); + *state.conn.lock().await = None; + + app_handle.emit("connection_disconnected", ()); + }); + + tauri::async_runtime::spawn(async move { + use tauri::Manager; + + while let Some(data) = recv.next().await { + let _res = writer.write(&data).await; + } + + let state = ahc.state::(); + read_process.abort(); + *state.conn.lock().await = None; + }); + + Ok(true) + } + Err(e) => { + Err(format!("Failed to open the serial port: {}", e.description)) + } + } +} + +#[command] +pub async fn serial_list_devices(app_handle: AppHandle) -> Result, ()> { + let ports = unblock(|| available_ports()).await.unwrap(); + + let mut candidates = ports + .into_iter() + .filter_map(|pi| { + if let SerialPortType::UsbPort(u) = pi.port_type { + Some(super::commands::AvailableDevice { + id: pi.port_name, + label: u.product.unwrap_or("TODO".to_string()), + }) + } else { + None + } + }) + .collect::>(); + + match app_handle.cli().matches() { + Ok(m) => { + if let Some(p) = m.args.get("serial-port") { + if let serde_json::Value::String(path) = &p.value { + candidates.push(super::commands::AvailableDevice { + id: path.to_string(), + label: format!("CLI Port: {path}").to_string(), + }) + } + } + }, + Err(_) => {}, + } + + Ok(candidates) +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 8fd57bfd..65b7eef3 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,77 +1,77 @@ -{ - "$schema": "../node_modules/@tauri-apps/cli/schema.json", - "build": { - "beforeBuildCommand": "npm run build", - "beforeDevCommand": "npm run dev", - "devUrl": "http://localhost:5173", - "frontendDist": "../dist/" - }, - "productName": "ZMK Studio", - "mainBinaryName": "zmk-studio", - "version": "0.3.1", - "identifier": "dev.zmk.studio", - "bundle": { - "active": true, - "category": "Productivity", - "copyright": "", - "linux": { - "deb": { - "depends": [] - } - }, - "externalBin": [], - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ], - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": "-" - }, - "resources": [], - "shortDescription": "", - "targets": "all", - "windows": { - "signCommand": "signtool.exe sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 /dlib ..\\Microsoft.Trusted.Signing.Client\\bin\\x64\\Azure.CodeSigning.Dlib.dll /dmdf trusted-signing-metadata.json %1" - } - }, - "plugins": { - "cli": { - "description": "Tauri CLI Plugin Example", - "args": [ - { - "name": "serial-port", - "takesValue": true, - "description": "Specific serial port to connect to" - } - ] - } - }, - "app": { - "security": { - "capabilities": [ - "default" - ], - "csp": { - "default-src": "'self' customprotocol: asset:", - "connect-src": "ipc: http://ipc.localhost" - } - }, - "windows": [ - { - "fullscreen": false, - "height": 600, - "resizable": true, - "title": "ZMK Studio", - "width": 800 - } - ] - } -} +{ + "$schema": "../node_modules/@tauri-apps/cli/schema.json", + "build": { + "beforeBuildCommand": "npm run build", + "beforeDevCommand": "npm run dev", + "devUrl": "http://localhost:5173", + "frontendDist": "../dist/" + }, + "productName": "ZMK Studio", + "mainBinaryName": "zmk-studio", + "version": "0.3.1", + "identifier": "dev.zmk.studio", + "bundle": { + "active": true, + "category": "Productivity", + "copyright": "", + "linux": { + "deb": { + "depends": [] + } + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": "-" + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "signCommand": "signtool.exe sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 /dlib ..\\Microsoft.Trusted.Signing.Client\\bin\\x64\\Azure.CodeSigning.Dlib.dll /dmdf trusted-signing-metadata.json %1" + } + }, + "plugins": { + "cli": { + "description": "Tauri CLI Plugin Example", + "args": [ + { + "name": "serial-port", + "takesValue": true, + "description": "Specific serial port to connect to" + } + ] + } + }, + "app": { + "security": { + "capabilities": [ + "default" + ], + "csp": { + "default-src": "'self' customprotocol: asset:", + "connect-src": "ipc: http://ipc.localhost" + } + }, + "windows": [ + { + "fullscreen": false, + "height": 600, + "resizable": true, + "title": "ZMK Studio", + "width": 800 + } + ] + } +} diff --git a/src-tauri/trusted-signing-metadata.json b/src-tauri/trusted-signing-metadata.json index 8fbf80cd..1538d93d 100644 --- a/src-tauri/trusted-signing-metadata.json +++ b/src-tauri/trusted-signing-metadata.json @@ -1,17 +1,17 @@ -{ - "Endpoint": "https://eus.codesigning.azure.net", - "CodeSigningAccountName": "ZMKStudio", - "CertificateProfileName": "ZMKStudioCertProfile", - "ExcludeCredentials": [ - "ManagedIdentityCredential", - "WorkloadIdentityCredential", - "SharedTokenCacheCredential", - "VisualStudioCredential", - "VisualStudioCodeCredential", - - "AzurePowerShellCredential", - "AzureCliCredential", - "AzureDeveloperCliCredential", - "InteractiveBrowserCredential" - ] - } +{ + "Endpoint": "https://eus.codesigning.azure.net", + "CodeSigningAccountName": "ZMKStudio", + "CertificateProfileName": "ZMKStudioCertProfile", + "ExcludeCredentials": [ + "ManagedIdentityCredential", + "WorkloadIdentityCredential", + "SharedTokenCacheCredential", + "VisualStudioCredential", + "VisualStudioCodeCredential", + + "AzurePowerShellCredential", + "AzureCliCredential", + "AzureDeveloperCliCredential", + "InteractiveBrowserCredential" + ] + } diff --git a/src/AboutModal.tsx b/src/AboutModal.tsx index 8ecf5940..4cdc23fb 100644 --- a/src/AboutModal.tsx +++ b/src/AboutModal.tsx @@ -1,254 +1,254 @@ -import React from "react"; -import { useModalRef } from "./misc/useModalRef"; - -import cannonKeys from "./assets/cannonkeys.png"; -import cannonKeysDarkMode from "./assets/cannonkeys-dark-mode.png"; - -import niceAndTyperactive from "./assets/niceandtyperactive.png"; -import niceAndTyperactiveDarkMode from "./assets/niceandtyperactive-dark-mode.png"; - -import kinesis from "./assets/kinesis.png"; -import kinesisDarkMode from "./assets/kinesis-dark-mode.png"; - -import keychron from "./assets/keychron.png"; -import keychronDarkMode from "./assets/keychron-dark-mode.png"; - -import littleKeyboards from "./assets/littlekeyboards.avif"; -import littleKeyboardsDarkMode from "./assets/littlekeyboards-dark-mode.avif"; - -import keebmaker from "./assets/keebmaker.png"; -import keebmakerDarkMode from "./assets/keebmaker-dark-mode.png"; - -import keebio from "./assets/keebio.avif"; - -import deskHero from "./assets/deskhero.webp"; -import deskHeroDarkMode from "./assets/deskhero-dark-mode.webp"; - -import mode from "./assets/mode.png"; -import modeDarkMode from "./assets/mode-dark-mode.png"; - -import mechlovin from "./assets/mechloving.png"; -import mechlovinDarkMode from "./assets/mechlovin-dark-mode.png"; - -import phaseByte from "./assets/phasebyte.png"; - -import keycapsss from "./assets/keycapsss.png"; -import keycapsssDarkMode from "./assets/keycapsss-dark-mode.png"; - -import mekibo from "./assets/mekibo.png"; -import mekiboDarkMode from "./assets/mekibo-dark-mode.png"; - -import splitkb from "./assets/splitkb.png"; -import splitkbDarkMode from "./assets/splitkb-dark-mode.png"; -import { GenericModal } from "./GenericModal"; -import { ExternalLink } from "./misc/ExternalLink"; - -export interface AboutModalProps { - open: boolean; - onClose: () => void; -} - -enum SponsorSize { - Large, - Medium, - Small, -} - -const sponsors = [ - { - level: "Platinum", - size: SponsorSize.Large, - vendors: [ - { - name: "nice!keyboards / typeractive", - img: niceAndTyperactive, - darkModeImg: niceAndTyperactiveDarkMode, - url: "https://typeractive.xyz/", - }, - { - name: "Kinesis", - img: kinesis, - darkModeImg: kinesisDarkMode, - url: "https://kinesis-ergo.com/", - }, - ], - }, - { - level: "Gold+", - size: SponsorSize.Large, - vendors: [ - { - name: "CannonKeys", - img: cannonKeys, - darkModeImg: cannonKeysDarkMode, - url: "https://cannonkeys.com/", - }, - { - name: "Keychron", - img: keychron, - darkModeImg: keychronDarkMode, - url: "https://keychron.com/", - }, - ], - }, - { - level: "Gold", - size: SponsorSize.Medium, - vendors: [ - { - name: "Little Keyboards", - img: littleKeyboards, - darkModeImg: littleKeyboardsDarkMode, - url: "https://littlekeyboards.com/", - }, - { - name: "Keebmaker", - img: keebmaker, - darkModeImg: keebmakerDarkMode, - url: "https://keebmaker.com/", - }, - ], - }, - { - level: "Silver", - size: SponsorSize.Medium, - vendors: [ - { - name: "keeb.io", - img: keebio, - url: "https://keeb.io/", - }, - { - name: "Mode Designs", - img: mode, - darkModeImg: modeDarkMode, - url: "https://modedesigns.com/", - }, - ], - }, - { - level: "Bronze", - size: SponsorSize.Small, - vendors: [ - { - name: "deskhero", - img: deskHero, - darkModeImg: deskHeroDarkMode, - url: "https://deskhero.ca/", - }, - { - name: "PhaseByte", - img: phaseByte, - url: "https://phasebyte.com/", - }, - { - name: "Mechlovin'", - img: mechlovin, - darkModeImg: mechlovinDarkMode, - url: "https://mechlovin.studio/", - }, - ], - }, - { - level: "Additional", - size: SponsorSize.Small, - vendors: [ - { - name: "splitkb.com", - img: splitkb, - darkModeImg: splitkbDarkMode, - url: "https://splitkb.com/", - }, - { - name: "keycapsss", - img: keycapsss, - darkModeImg: keycapsssDarkMode, - url: "https://keycapsss.com/", - }, - { - name: "mekibo", - img: mekibo, - darkModeImg: mekiboDarkMode, - url: "https://mekibo.com/", - }, - ], - }, -]; - -export const AboutModal = ({ open, onClose }: AboutModalProps) => { - const ref = useModalRef(open, true); - - return ( - -
-

- The ZMK Project:{" "} - website,{" "} - - GitHub Issues - - ,{" "} - - Discord Server - -

- -
-
-

- ZMK Studio is made possible thanks to the generous donation of time - from our contributors, as well as the financial sponsorship from the - following vendors: -

-
-
- {sponsors.map((s) => { - const heightVariants = { - [SponsorSize.Large]: "h-16", - [SponsorSize.Medium]: "h-12", - [SponsorSize.Small]: "h-8", - }; - - return ( - - -
- {s.vendors.map((v) => { - const maxSizeVariants = { - [SponsorSize.Large]: "max-h-16", - [SponsorSize.Medium]: "max-h-12", - [SponsorSize.Small]: "max-h-8", - }; - - return ( - - - {v.darkModeImg && ( - - )} - - - - ); - })} -
-
- ); - })} -
-
- ); -}; +import React from "react"; +import { useModalRef } from "./misc/useModalRef"; + +import cannonKeys from "./assets/cannonkeys.png"; +import cannonKeysDarkMode from "./assets/cannonkeys-dark-mode.png"; + +import niceAndTyperactive from "./assets/niceandtyperactive.png"; +import niceAndTyperactiveDarkMode from "./assets/niceandtyperactive-dark-mode.png"; + +import kinesis from "./assets/kinesis.png"; +import kinesisDarkMode from "./assets/kinesis-dark-mode.png"; + +import keychron from "./assets/keychron.png"; +import keychronDarkMode from "./assets/keychron-dark-mode.png"; + +import littleKeyboards from "./assets/littlekeyboards.avif"; +import littleKeyboardsDarkMode from "./assets/littlekeyboards-dark-mode.avif"; + +import keebmaker from "./assets/keebmaker.png"; +import keebmakerDarkMode from "./assets/keebmaker-dark-mode.png"; + +import keebio from "./assets/keebio.avif"; + +import deskHero from "./assets/deskhero.webp"; +import deskHeroDarkMode from "./assets/deskhero-dark-mode.webp"; + +import mode from "./assets/mode.png"; +import modeDarkMode from "./assets/mode-dark-mode.png"; + +import mechlovin from "./assets/mechloving.png"; +import mechlovinDarkMode from "./assets/mechlovin-dark-mode.png"; + +import phaseByte from "./assets/phasebyte.png"; + +import keycapsss from "./assets/keycapsss.png"; +import keycapsssDarkMode from "./assets/keycapsss-dark-mode.png"; + +import mekibo from "./assets/mekibo.png"; +import mekiboDarkMode from "./assets/mekibo-dark-mode.png"; + +import splitkb from "./assets/splitkb.png"; +import splitkbDarkMode from "./assets/splitkb-dark-mode.png"; +import { GenericModal } from "./GenericModal"; +import { ExternalLink } from "./misc/ExternalLink"; + +export interface AboutModalProps { + open: boolean; + onClose: () => void; +} + +enum SponsorSize { + Large, + Medium, + Small, +} + +const sponsors = [ + { + level: "Platinum", + size: SponsorSize.Large, + vendors: [ + { + name: "nice!keyboards / typeractive", + img: niceAndTyperactive, + darkModeImg: niceAndTyperactiveDarkMode, + url: "https://typeractive.xyz/", + }, + { + name: "Kinesis", + img: kinesis, + darkModeImg: kinesisDarkMode, + url: "https://kinesis-ergo.com/", + }, + ], + }, + { + level: "Gold+", + size: SponsorSize.Large, + vendors: [ + { + name: "CannonKeys", + img: cannonKeys, + darkModeImg: cannonKeysDarkMode, + url: "https://cannonkeys.com/", + }, + { + name: "Keychron", + img: keychron, + darkModeImg: keychronDarkMode, + url: "https://keychron.com/", + }, + ], + }, + { + level: "Gold", + size: SponsorSize.Medium, + vendors: [ + { + name: "Little Keyboards", + img: littleKeyboards, + darkModeImg: littleKeyboardsDarkMode, + url: "https://littlekeyboards.com/", + }, + { + name: "Keebmaker", + img: keebmaker, + darkModeImg: keebmakerDarkMode, + url: "https://keebmaker.com/", + }, + ], + }, + { + level: "Silver", + size: SponsorSize.Medium, + vendors: [ + { + name: "keeb.io", + img: keebio, + url: "https://keeb.io/", + }, + { + name: "Mode Designs", + img: mode, + darkModeImg: modeDarkMode, + url: "https://modedesigns.com/", + }, + ], + }, + { + level: "Bronze", + size: SponsorSize.Small, + vendors: [ + { + name: "deskhero", + img: deskHero, + darkModeImg: deskHeroDarkMode, + url: "https://deskhero.ca/", + }, + { + name: "PhaseByte", + img: phaseByte, + url: "https://phasebyte.com/", + }, + { + name: "Mechlovin'", + img: mechlovin, + darkModeImg: mechlovinDarkMode, + url: "https://mechlovin.studio/", + }, + ], + }, + { + level: "Additional", + size: SponsorSize.Small, + vendors: [ + { + name: "splitkb.com", + img: splitkb, + darkModeImg: splitkbDarkMode, + url: "https://splitkb.com/", + }, + { + name: "keycapsss", + img: keycapsss, + darkModeImg: keycapsssDarkMode, + url: "https://keycapsss.com/", + }, + { + name: "mekibo", + img: mekibo, + darkModeImg: mekiboDarkMode, + url: "https://mekibo.com/", + }, + ], + }, +]; + +export const AboutModal = ({ open, onClose }: AboutModalProps) => { + const ref = useModalRef(open, true); + + return ( + +
+

+ The ZMK Project:{" "} + website,{" "} + + GitHub Issues + + ,{" "} + + Discord Server + +

+ +
+
+

+ ZMK Studio is made possible thanks to the generous donation of time + from our contributors, as well as the financial sponsorship from the + following vendors: +

+
+
+ {sponsors.map((s) => { + const heightVariants = { + [SponsorSize.Large]: "h-16", + [SponsorSize.Medium]: "h-12", + [SponsorSize.Small]: "h-8", + }; + + return ( + + +
+ {s.vendors.map((v) => { + const maxSizeVariants = { + [SponsorSize.Large]: "max-h-16", + [SponsorSize.Medium]: "max-h-12", + [SponsorSize.Small]: "max-h-8", + }; + + return ( + + + {v.darkModeImg && ( + + )} + + + + ); + })} +
+
+ ); + })} +
+
+ ); +}; diff --git a/src/App.tsx b/src/App.tsx index e09ed0cb..fcfb831f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,322 +1,325 @@ -import { AppHeader } from "./AppHeader"; - -import { create_rpc_connection } from "@zmkfirmware/zmk-studio-ts-client"; -import { call_rpc } from "./rpc/logging"; - -import type { Notification } from "@zmkfirmware/zmk-studio-ts-client/studio"; -import { ConnectionState, ConnectionContext } from "./rpc/ConnectionContext"; -import { Dispatch, useCallback, useEffect, useState } from "react"; -import { ConnectModal, TransportFactory } from "./ConnectModal"; - -import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; -import { connect as gatt_connect } from "@zmkfirmware/zmk-studio-ts-client/transport/gatt"; -import { connect as serial_connect } from "@zmkfirmware/zmk-studio-ts-client/transport/serial"; -import { - connect as tauri_ble_connect, - list_devices as ble_list_devices, -} from "./tauri/ble"; -import { - connect as tauri_serial_connect, - list_devices as serial_list_devices, -} from "./tauri/serial"; -import Keyboard from "./keyboard/Keyboard"; -import { UndoRedoContext, useUndoRedo } from "./undoRedo"; -import { usePub, useSub } from "./usePubSub"; -import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; -import { LockStateContext } from "./rpc/LockStateContext"; -import { UnlockModal } from "./UnlockModal"; -import { valueAfter } from "./misc/async"; -import { AppFooter } from "./AppFooter"; -import { AboutModal } from "./AboutModal"; -import { LicenseNoticeModal } from "./misc/LicenseNoticeModal"; - -declare global { - interface Window { - __TAURI_INTERNALS__?: object; - } -} - -const TRANSPORTS: TransportFactory[] = [ - navigator.serial && { label: "USB", connect: serial_connect }, - ...(navigator.bluetooth && navigator.userAgent.indexOf("Linux") >= 0 - ? [{ label: "BLE", connect: gatt_connect }] - : []), - ...(window.__TAURI_INTERNALS__ - ? [ - { - label: "BLE", - isWireless: true, - pick_and_connect: { - connect: tauri_ble_connect, - list: ble_list_devices, - }, - }, - ] - : []), - ...(window.__TAURI_INTERNALS__ - ? [ - { - label: "USB", - pick_and_connect: { - connect: tauri_serial_connect, - list: serial_list_devices, - }, - }, - ] - : []), -].filter((t) => t !== undefined); - -async function listen_for_notifications( - notification_stream: ReadableStream, - signal: AbortSignal -): Promise { - let reader = notification_stream.getReader(); - const onAbort = () => { - reader.cancel(); - reader.releaseLock(); - }; - signal.addEventListener("abort", onAbort, { once: true }); - do { - let pub = usePub(); - - try { - let { done, value } = await reader.read(); - if (done) { - break; - } - - if (!value) { - continue; - } - - console.log("Notification", value); - pub("rpc_notification", value); - - const subsystem = Object.entries(value).find( - ([_k, v]) => v !== undefined - ); - if (!subsystem) { - continue; - } - - const [subId, subData] = subsystem; - const event = Object.entries(subData).find(([_k, v]) => v !== undefined); - - if (!event) { - continue; - } - - const [eventName, eventData] = event; - const topic = ["rpc_notification", subId, eventName].join("."); - - pub(topic, eventData); - } catch (e) { - signal.removeEventListener("abort", onAbort); - reader.releaseLock(); - throw e; - } - } while (true); - - signal.removeEventListener("abort", onAbort); - reader.releaseLock(); - notification_stream.cancel(); -} - -async function connect( - transport: RpcTransport, - setConn: Dispatch, - setConnectedDeviceName: Dispatch, - signal: AbortSignal -) { - let conn = await create_rpc_connection(transport, { signal }); - - let details = await Promise.race([ - call_rpc(conn, { core: { getDeviceInfo: true } }) - .then((r) => r?.core?.getDeviceInfo) - .catch((e) => { - console.error("Failed first RPC call", e); - return undefined; - }), - valueAfter(undefined, 1000), - ]); - - if (!details) { - // TODO: Show a proper toast/alert not using `window.alert` - window.alert("Failed to connect to the chosen device"); - return; - } - - listen_for_notifications(conn.notification_readable, signal) - .then(() => { - setConnectedDeviceName(undefined); - setConn({ conn: null }); - }) - .catch((_e) => { - setConnectedDeviceName(undefined); - setConn({ conn: null }); - }); - - setConnectedDeviceName(details.name); - setConn({ conn }); -} - -function App() { - const [conn, setConn] = useState({ conn: null }); - const [connectedDeviceName, setConnectedDeviceName] = useState< - string | undefined - >(undefined); - const [doIt, undo, redo, canUndo, canRedo, reset] = useUndoRedo(); - const [showAbout, setShowAbout] = useState(false); - const [showLicenseNotice, setShowLicenseNotice] = useState(false); - const [connectionAbort, setConnectionAbort] = useState(new AbortController()); - - const [lockState, setLockState] = useState( - LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED - ); - - useSub("rpc_notification.core.lockStateChanged", (ls) => { - setLockState(ls); - }); - - useEffect(() => { - if (!conn) { - reset(); - setLockState(LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED); - } - - async function updateLockState() { - if (!conn.conn) { - return; - } - - let locked_resp = await call_rpc(conn.conn, { - core: { getLockState: true }, - }); - - setLockState( - locked_resp.core?.getLockState || - LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED - ); - } - - updateLockState(); - }, [conn, setLockState]); - - const save = useCallback(() => { - async function doSave() { - if (!conn.conn) { - return; - } - - let resp = await call_rpc(conn.conn, { keymap: { saveChanges: true } }); - if (!resp.keymap?.saveChanges || resp.keymap?.saveChanges.err) { - console.error("Failed to save changes", resp.keymap?.saveChanges); - } - } - - doSave(); - }, [conn]); - - const discard = useCallback(() => { - async function doDiscard() { - if (!conn.conn) { - return; - } - - let resp = await call_rpc(conn.conn, { - keymap: { discardChanges: true }, - }); - if (!resp.keymap?.discardChanges) { - console.error("Failed to discard changes", resp); - } - - reset(); - setConn({ conn: conn.conn }); - } - - doDiscard(); - }, [conn]); - - const resetSettings = useCallback(() => { - async function doReset() { - if (!conn.conn) { - return; - } - - let resp = await call_rpc(conn.conn, { - core: { resetSettings: true }, - }); - if (!resp.core?.resetSettings) { - console.error("Failed to settings reset", resp); - } - - reset(); - setConn({ conn: conn.conn }); - } - - doReset(); - }, [conn]); - - const disconnect = useCallback(() => { - async function doDisconnect() { - if (!conn.conn) { - return; - } - - await conn.conn.request_writable.close(); - connectionAbort.abort("User disconnected"); - setConnectionAbort(new AbortController()); - } - - doDisconnect(); - }, [conn]); - - const onConnect = useCallback( - (t: RpcTransport) => { - const ac = new AbortController(); - setConnectionAbort(ac); - connect(t, setConn, setConnectedDeviceName, ac.signal); - }, - [setConn, setConnectedDeviceName, setConnectedDeviceName] - ); - - return ( - - - - - - setShowAbout(false)} /> - setShowLicenseNotice(false)} - /> -
- - - setShowAbout(true)} - onShowLicenseNotice={() => setShowLicenseNotice(true)} - /> -
-
-
-
- ); -} - -export default App; +import { AppHeader } from "./AppHeader"; + +import { create_rpc_connection } from "@zmkfirmware/zmk-studio-ts-client"; +import { call_rpc } from "./rpc/logging"; + +import type { Notification } from "@zmkfirmware/zmk-studio-ts-client/studio"; +import { ConnectionState, ConnectionContext } from "./rpc/ConnectionContext"; +import { Dispatch, useCallback, useEffect, useState } from "react"; +import { ConnectModal, TransportFactory } from "./ConnectModal"; + +import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; +import { connect as gatt_connect } from "@zmkfirmware/zmk-studio-ts-client/transport/gatt"; +import { connect as serial_connect } from "@zmkfirmware/zmk-studio-ts-client/transport/serial"; +import { + connect as tauri_ble_connect, + list_devices as ble_list_devices, +} from "./tauri/ble"; +import { + connect as tauri_serial_connect, + list_devices as serial_list_devices, +} from "./tauri/serial"; +import Keyboard from "./keyboard/Keyboard"; +import { UndoRedoContext, useUndoRedo } from "./undoRedo"; +import { usePub, useSub } from "./usePubSub"; +import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; +import { LockStateContext } from "./rpc/LockStateContext"; +import { UnlockModal } from "./UnlockModal"; +import { valueAfter } from "./misc/async"; +import { AppFooter } from "./AppFooter"; +import { AboutModal } from "./AboutModal"; +import { LicenseNoticeModal } from "./misc/LicenseNoticeModal"; +import { KeymapProvider } from "./context/keymap"; + +declare global { + interface Window { + __TAURI_INTERNALS__?: object; + } +} + +const TRANSPORTS: TransportFactory[] = [ + navigator.serial && { label: "USB", connect: serial_connect }, + ...(navigator.bluetooth && navigator.userAgent.indexOf("Linux") >= 0 + ? [{ label: "BLE", connect: gatt_connect }] + : []), + ...(window.__TAURI_INTERNALS__ + ? [ + { + label: "BLE", + isWireless: true, + pick_and_connect: { + connect: tauri_ble_connect, + list: ble_list_devices, + }, + }, + ] + : []), + ...(window.__TAURI_INTERNALS__ + ? [ + { + label: "USB", + pick_and_connect: { + connect: tauri_serial_connect, + list: serial_list_devices, + }, + }, + ] + : []), +].filter((t) => t !== undefined); + +async function listen_for_notifications( + notification_stream: ReadableStream, + signal: AbortSignal +): Promise { + let reader = notification_stream.getReader(); + const onAbort = () => { + reader.cancel(); + reader.releaseLock(); + }; + signal.addEventListener("abort", onAbort, { once: true }); + do { + let pub = usePub(); + + try { + let { done, value } = await reader.read(); + if (done) { + break; + } + + if (!value) { + continue; + } + + console.log("Notification", value); + pub("rpc_notification", value); + + const subsystem = Object.entries(value).find( + ([_k, v]) => v !== undefined + ); + if (!subsystem) { + continue; + } + + const [subId, subData] = subsystem; + const event = Object.entries(subData).find(([_k, v]) => v !== undefined); + + if (!event) { + continue; + } + + const [eventName, eventData] = event; + const topic = ["rpc_notification", subId, eventName].join("."); + + pub(topic, eventData); + } catch (e) { + signal.removeEventListener("abort", onAbort); + reader.releaseLock(); + throw e; + } + } while (true); + + signal.removeEventListener("abort", onAbort); + reader.releaseLock(); + notification_stream.cancel(); +} + +async function connect( + transport: RpcTransport, + setConn: Dispatch, + setConnectedDeviceName: Dispatch, + signal: AbortSignal +) { + let conn = await create_rpc_connection(transport, { signal }); + + let details = await Promise.race([ + call_rpc(conn, { core: { getDeviceInfo: true } }) + .then((r) => r?.core?.getDeviceInfo) + .catch((e) => { + console.error("Failed first RPC call", e); + return undefined; + }), + valueAfter(undefined, 1000), + ]); + + if (!details) { + // TODO: Show a proper toast/alert not using `window.alert` + window.alert("Failed to connect to the chosen device"); + return; + } + + listen_for_notifications(conn.notification_readable, signal) + .then(() => { + setConnectedDeviceName(undefined); + setConn({ conn: null }); + }) + .catch((_e) => { + setConnectedDeviceName(undefined); + setConn({ conn: null }); + }); + + setConnectedDeviceName(details.name); + setConn({ conn }); +} + +function App() { + const [conn, setConn] = useState({ conn: null }); + const [connectedDeviceName, setConnectedDeviceName] = useState< + string | undefined + >(undefined); + const [doIt, undo, redo, canUndo, canRedo, reset] = useUndoRedo(); + const [showAbout, setShowAbout] = useState(false); + const [showLicenseNotice, setShowLicenseNotice] = useState(false); + const [connectionAbort, setConnectionAbort] = useState(new AbortController()); + + const [lockState, setLockState] = useState( + LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED + ); + + useSub("rpc_notification.core.lockStateChanged", (ls) => { + setLockState(ls); + }); + + useEffect(() => { + if (!conn) { + reset(); + setLockState(LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED); + } + + async function updateLockState() { + if (!conn.conn) { + return; + } + + let locked_resp = await call_rpc(conn.conn, { + core: { getLockState: true }, + }); + + setLockState( + locked_resp.core?.getLockState || + LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED + ); + } + + updateLockState(); + }, [conn, setLockState]); + + const save = useCallback(() => { + async function doSave() { + if (!conn.conn) { + return; + } + + let resp = await call_rpc(conn.conn, { keymap: { saveChanges: true } }); + if (!resp.keymap?.saveChanges || resp.keymap?.saveChanges.err) { + console.error("Failed to save changes", resp.keymap?.saveChanges); + } + } + + doSave(); + }, [conn]); + + const discard = useCallback(() => { + async function doDiscard() { + if (!conn.conn) { + return; + } + + let resp = await call_rpc(conn.conn, { + keymap: { discardChanges: true }, + }); + if (!resp.keymap?.discardChanges) { + console.error("Failed to discard changes", resp); + } + + reset(); + setConn({ conn: conn.conn }); + } + + doDiscard(); + }, [conn]); + + const resetSettings = useCallback(() => { + async function doReset() { + if (!conn.conn) { + return; + } + + let resp = await call_rpc(conn.conn, { + core: { resetSettings: true }, + }); + if (!resp.core?.resetSettings) { + console.error("Failed to settings reset", resp); + } + + reset(); + setConn({ conn: conn.conn }); + } + + doReset(); + }, [conn]); + + const disconnect = useCallback(() => { + async function doDisconnect() { + if (!conn.conn) { + return; + } + + await conn.conn.request_writable.close(); + connectionAbort.abort("User disconnected"); + setConnectionAbort(new AbortController()); + } + + doDisconnect(); + }, [conn]); + + const onConnect = useCallback( + (t: RpcTransport) => { + const ac = new AbortController(); + setConnectionAbort(ac); + connect(t, setConn, setConnectedDeviceName, ac.signal); + }, + [setConn, setConnectedDeviceName, setConnectedDeviceName] + ); + + return ( + + + + + + + setShowAbout(false)} /> + setShowLicenseNotice(false)} + /> +
+ + + setShowAbout(true)} + onShowLicenseNotice={() => setShowLicenseNotice(true)} + /> +
+
+
+
+
+ ); +} + +export default App; diff --git a/src/AppFooter.tsx b/src/AppFooter.tsx index e0d9af43..6b32b905 100644 --- a/src/AppFooter.tsx +++ b/src/AppFooter.tsx @@ -1,24 +1,24 @@ -export interface AppFooterProps { - onShowAbout: () => void; - onShowLicenseNotice: () => void; -} - -export const AppFooter = ({ - onShowAbout, - onShowLicenseNotice, -}: AppFooterProps) => { - return ( -
-
- © 2024 - The ZMK Contributors -{" "} - - About ZMK Studio - {" "} - -{" "} - - License NOTICE - -
-
- ); -}; +export interface AppFooterProps { + onShowAbout: () => void; + onShowLicenseNotice: () => void; +} + +export const AppFooter = ({ + onShowAbout, + onShowLicenseNotice, +}: AppFooterProps) => { + return ( +
+
+ © 2024 - The ZMK Contributors -{" "} + + About ZMK Studio + {" "} + -{" "} + + License NOTICE + +
+
+ ); +}; diff --git a/src/AppHeader.stories.ts b/src/AppHeader.stories.ts index 62ff88b0..5e6f7b5b 100644 --- a/src/AppHeader.stories.ts +++ b/src/AppHeader.stories.ts @@ -1,27 +1,27 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { AppHeader } from "./AppHeader"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Application/AppHeader", - component: AppHeader, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: {}, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Standard: Story = { - args: {}, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { AppHeader } from "./AppHeader"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Application/AppHeader", + component: AppHeader, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: {}, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Standard: Story = { + args: {}, +}; diff --git a/src/AppHeader.tsx b/src/AppHeader.tsx index 52a6658d..4bf76548 100644 --- a/src/AppHeader.tsx +++ b/src/AppHeader.tsx @@ -1,170 +1,234 @@ -import { - Button, - Menu, - MenuItem, - MenuTrigger, - Popover, -} from "react-aria-components"; -import { useConnectedDeviceData } from "./rpc/useConnectedDeviceData"; -import { useSub } from "./usePubSub"; -import { useContext, useEffect, useState } from "react"; -import { useModalRef } from "./misc/useModalRef"; -import { LockStateContext } from "./rpc/LockStateContext"; -import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; -import { ConnectionContext } from "./rpc/ConnectionContext"; -import { ChevronDown, Undo2, Redo2, Save, Trash2 } from "lucide-react"; -import { Tooltip } from "./misc/Tooltip"; -import { GenericModal } from "./GenericModal"; - -export interface AppHeaderProps { - connectedDeviceLabel?: string; - onSave?: () => void | Promise; - onDiscard?: () => void | Promise; - onUndo?: () => Promise; - onRedo?: () => Promise; - onResetSettings?: () => void | Promise; - onDisconnect?: () => void | Promise; - canUndo?: boolean; - canRedo?: boolean; -} - -export const AppHeader = ({ - connectedDeviceLabel, - canRedo, - canUndo, - onRedo, - onUndo, - onSave, - onDiscard, - onDisconnect, - onResetSettings, -}: AppHeaderProps) => { - const [showSettingsReset, setShowSettingsReset] = useState(false); - - const lockState = useContext(LockStateContext); - const connectionState = useContext(ConnectionContext); - - useEffect(() => { - if ( - (!connectionState.conn || - lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED) && - showSettingsReset - ) { - setShowSettingsReset(false); - } - }, [lockState, showSettingsReset]); - - const showSettingsRef = useModalRef(showSettingsReset); - const [unsaved, setUnsaved] = useConnectedDeviceData( - { keymap: { checkUnsavedChanges: true } }, - (r) => r.keymap?.checkUnsavedChanges - ); - - useSub("rpc_notification.keymap.unsavedChangesStatusChanged", (unsaved) => - setUnsaved(unsaved) - ); - - return ( -
-
- ZMK Logo -

Studio

-
- -

Restore Stock Settings

-
-

- Settings reset will remove any customizations previously made in ZMK - Studio and restore the stock keymap -

-

Continue?

-
- - -
-
-
- - - - - - Disconnect - - setShowSettingsReset(true)} - > - Restore Stock Settings - - - - -
- {onUndo && ( - - - - )} - - {onRedo && ( - - - - )} - - - - - - -
-
- ); -}; +import { + Button, + Menu, + MenuItem, + MenuTrigger, + Popover, +} from "react-aria-components"; +import { useConnectedDeviceData } from "./rpc/useConnectedDeviceData"; +import { useSub } from "./usePubSub"; +import { useCallback, useContext, useEffect, useState } from "react"; +import { useModalRef } from "./misc/useModalRef"; +import { LockStateContext } from "./rpc/LockStateContext"; +import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; +import { ConnectionContext } from "./rpc/ConnectionContext"; +import { ChevronDown, Undo2, Redo2, Save, Trash2, Download } from "lucide-react"; +import { Tooltip } from "./misc/Tooltip"; +import { GenericModal } from "./GenericModal"; +import { useKeymap } from "./context/keymap"; +import { useBehaviors } from "./keyboard/Keyboard"; +import { hid_usage_page_and_id_from_usage } from "./hid-usages"; + +export interface AppHeaderProps { + connectedDeviceLabel?: string; + onSave?: () => void | Promise; + onDiscard?: () => void | Promise; + onUndo?: () => Promise; + onRedo?: () => Promise; + onResetSettings?: () => void | Promise; + onDisconnect?: () => void | Promise; + canUndo?: boolean; + canRedo?: boolean; +} + +export const AppHeader = ({ + connectedDeviceLabel, + canRedo, + canUndo, + onRedo, + onUndo, + onSave, + onDiscard, + onDisconnect, + onResetSettings, +}: AppHeaderProps) => { + const [showSettingsReset, setShowSettingsReset] = useState(false); + + const lockState = useContext(LockStateContext); + const connectionState = useContext(ConnectionContext); + + const { keymap } = useKeymap(); + const behaviors = useBehaviors(); + + useEffect(() => { + if ( + (!connectionState.conn || + lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED) && + showSettingsReset + ) { + setShowSettingsReset(false); + } + }, [lockState, showSettingsReset]); + + const showSettingsRef = useModalRef(showSettingsReset); + const [unsaved, setUnsaved] = useConnectedDeviceData( + { keymap: { checkUnsavedChanges: true } }, + (r) => r.keymap?.checkUnsavedChanges + ); + + useSub("rpc_notification.keymap.unsavedChangesStatusChanged", (unsaved) => + setUnsaved(unsaved) + ); + + const onExportKeymap = useCallback(() => { + async function doExport() { + console.log("Exporting keymap", keymap); + console.log("Exporting behaviors", behaviors); + if (!keymap || !behaviors) { + return; + } + + const extendedKeymaps = { + layers: keymap.layers.map((layer) => { + return { + ...layer, + bindings: layer.bindings.map((binding) => { + const behavior = behaviors[binding.behaviorId]; + const param1Type = behavior.metadata[0]?.param1[0]?.name + const param2Type = behavior.metadata[0]?.param2[0]?.name + const param1Meta = param1Type === "Key" ? hid_usage_page_and_id_from_usage(binding.param1) : undefined + const param2Meta = param2Type === "Key" ? hid_usage_page_and_id_from_usage(binding.param1) : undefined + + if (param1Meta) { + console.log("param1Meta", param1Meta) + + } + return { + ...binding, + behavior, + param1Meta, + param2Meta + } + }) + } + }) + } + + // we download the keymap to the user downloads folder + const blob = new Blob([JSON.stringify(extendedKeymaps)], { + type: "application/json", + }); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = "keymap.json"; + a.click(); + URL.revokeObjectURL(url); + a.remove(); + } + + doExport() + }, [keymap, behaviors]); + + return ( +
+
+ ZMK Logo +

Studio

+
+ +

Restore Stock Settings

+
+

+ Settings reset will remove any customizations previously made in ZMK + Studio and restore the stock keymap +

+

Continue?

+
+ + +
+
+
+ + + + + + Disconnect + + setShowSettingsReset(true)} + > + Restore Stock Settings + + + + +
+ {onUndo && ( + + + + )} + + {onRedo && ( + + + + )} + + + + + + + + + +
+
+ ); +}; diff --git a/src/ConnectModal.tsx b/src/ConnectModal.tsx index c65e780c..cc104ffc 100644 --- a/src/ConnectModal.tsx +++ b/src/ConnectModal.tsx @@ -1,293 +1,293 @@ -import { useCallback, useEffect, useMemo, useState } from "react"; - -import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; -import { UserCancelledError } from "@zmkfirmware/zmk-studio-ts-client/transport/errors"; -import type { AvailableDevice } from "./tauri/index"; -import { Bluetooth, RefreshCw } from "lucide-react"; -import { Key, ListBox, ListBoxItem, Selection } from "react-aria-components"; -import { useModalRef } from "./misc/useModalRef"; -import { ExternalLink } from "./misc/ExternalLink"; -import { GenericModal } from "./GenericModal"; - -export type TransportFactory = { - label: string; - isWireless?: boolean; - connect?: () => Promise; - pick_and_connect?: { - list: () => Promise>; - connect: (dev: AvailableDevice) => Promise; - }; -}; - -export interface ConnectModalProps { - open?: boolean; - transports: TransportFactory[]; - onTransportCreated: (t: RpcTransport) => void; -} - -function deviceList( - open: boolean, - transports: TransportFactory[], - onTransportCreated: (t: RpcTransport) => void -) { - const [devices, setDevices] = useState< - Array<[TransportFactory, AvailableDevice]> - >([]); - const [selectedDev, setSelectedDev] = useState(new Set()); - const [refreshing, setRefreshing] = useState(false); - - async function LoadEm() { - setRefreshing(true); - let entries: Array<[TransportFactory, AvailableDevice]> = []; - for (const t of transports.filter((t) => t.pick_and_connect)) { - const devices = await t.pick_and_connect?.list(); - if (!devices) { - continue; - } - - entries.push( - ...devices.map<[TransportFactory, AvailableDevice]>((d) => { - return [t, d]; - }) - ); - } - - setDevices(entries); - setRefreshing(false); - } - - useEffect(() => { - setSelectedDev(new Set()); - setDevices([]); - - LoadEm(); - }, [transports, open, setDevices]); - - const onRefresh = useCallback(() => { - setSelectedDev(new Set()); - setDevices([]); - - LoadEm(); - }, [setDevices]); - - const onSelect = useCallback( - async (keys: Selection) => { - if (keys === "all") { - return; - } - const dev = devices.find(([_t, d]) => keys.has(d.id)); - if (dev) { - dev[0] - .pick_and_connect!.connect(dev[1]) - .then(onTransportCreated) - .catch((e) => alert(e)); - } - }, - [devices, onTransportCreated] - ); - - return ( -
-
- - -
- - {([t, d]) => ( - - {t.isWireless && ( - - )} - {d.label} - - )} - -
- ); -} - -function simpleDevicePicker( - transports: TransportFactory[], - onTransportCreated: (t: RpcTransport) => void -) { - const [availableDevices, setAvailableDevices] = useState< - AvailableDevice[] | undefined - >(undefined); - const [selectedTransport, setSelectedTransport] = useState< - TransportFactory | undefined - >(undefined); - - useEffect(() => { - if (!selectedTransport) { - setAvailableDevices(undefined); - return; - } - - let ignore = false; - - if (selectedTransport.connect) { - async function connectTransport() { - try { - const transport = await selectedTransport?.connect?.(); - - if (!ignore) { - if (transport) { - onTransportCreated(transport); - } - setSelectedTransport(undefined); - } - } catch (e) { - if (!ignore) { - console.error(e); - if (e instanceof Error && !(e instanceof UserCancelledError)) { - alert(e.message); - } - setSelectedTransport(undefined); - } - } - } - - connectTransport(); - } else { - async function loadAvailableDevices() { - const devices = await selectedTransport?.pick_and_connect?.list(); - - if (!ignore) { - setAvailableDevices(devices); - } - } - - loadAvailableDevices(); - } - - return () => { - ignore = true; - }; - }, [selectedTransport]); - - let connections = transports.map((t) => ( -
  • - -
  • - )); - return ( -
    -

    Select a connection type.

    -
      {connections}
    - {selectedTransport && availableDevices && ( -
      - {availableDevices.map((d) => ( -
    • { - onTransportCreated( - await selectedTransport!.pick_and_connect!.connect(d) - ); - setSelectedTransport(undefined); - }} - > - {d.label} -
    • - ))} -
    - )} -
    - ); -} - -function noTransportsOptionsPrompt() { - return ( -
    -

    - Your browser is not supported. ZMK Studio uses either{" "} - - Web Serial - {" "} - or{" "} - - Web Bluetooth - {" "} - (Linux only) to connect to ZMK devices. -

    - -
    -

    To use ZMK Studio, either:

    -
      -
    • - Use a browser that supports the above web technologies, e.g. - Chrome/Edge, or -
    • -
    • - Download our{" "} - - cross platform application - - . -
    • -
    -
    -
    - ); -} - -function connectOptions( - transports: TransportFactory[], - onTransportCreated: (t: RpcTransport) => void, - open?: boolean -) { - const useSimplePicker = useMemo( - () => transports.every((t) => !t.pick_and_connect), - [transports] - ); - - return useSimplePicker - ? simpleDevicePicker(transports, onTransportCreated) - : deviceList(open || false, transports, onTransportCreated); -} - -export const ConnectModal = ({ - open, - transports, - onTransportCreated, -}: ConnectModalProps) => { - const dialog = useModalRef(open || false, false, false); - - const haveTransports = useMemo(() => transports.length > 0, [transports]); - - return ( - -

    Welcome to ZMK Studio

    - {haveTransports - ? connectOptions(transports, onTransportCreated, open) - : noTransportsOptionsPrompt()} -
    - ); -}; +import { useCallback, useEffect, useMemo, useState } from "react"; + +import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; +import { UserCancelledError } from "@zmkfirmware/zmk-studio-ts-client/transport/errors"; +import type { AvailableDevice } from "./tauri/index"; +import { Bluetooth, RefreshCw } from "lucide-react"; +import { Key, ListBox, ListBoxItem, Selection } from "react-aria-components"; +import { useModalRef } from "./misc/useModalRef"; +import { ExternalLink } from "./misc/ExternalLink"; +import { GenericModal } from "./GenericModal"; + +export type TransportFactory = { + label: string; + isWireless?: boolean; + connect?: () => Promise; + pick_and_connect?: { + list: () => Promise>; + connect: (dev: AvailableDevice) => Promise; + }; +}; + +export interface ConnectModalProps { + open?: boolean; + transports: TransportFactory[]; + onTransportCreated: (t: RpcTransport) => void; +} + +function deviceList( + open: boolean, + transports: TransportFactory[], + onTransportCreated: (t: RpcTransport) => void +) { + const [devices, setDevices] = useState< + Array<[TransportFactory, AvailableDevice]> + >([]); + const [selectedDev, setSelectedDev] = useState(new Set()); + const [refreshing, setRefreshing] = useState(false); + + async function LoadEm() { + setRefreshing(true); + let entries: Array<[TransportFactory, AvailableDevice]> = []; + for (const t of transports.filter((t) => t.pick_and_connect)) { + const devices = await t.pick_and_connect?.list(); + if (!devices) { + continue; + } + + entries.push( + ...devices.map<[TransportFactory, AvailableDevice]>((d) => { + return [t, d]; + }) + ); + } + + setDevices(entries); + setRefreshing(false); + } + + useEffect(() => { + setSelectedDev(new Set()); + setDevices([]); + + LoadEm(); + }, [transports, open, setDevices]); + + const onRefresh = useCallback(() => { + setSelectedDev(new Set()); + setDevices([]); + + LoadEm(); + }, [setDevices]); + + const onSelect = useCallback( + async (keys: Selection) => { + if (keys === "all") { + return; + } + const dev = devices.find(([_t, d]) => keys.has(d.id)); + if (dev) { + dev[0] + .pick_and_connect!.connect(dev[1]) + .then(onTransportCreated) + .catch((e) => alert(e)); + } + }, + [devices, onTransportCreated] + ); + + return ( +
    +
    + + +
    + + {([t, d]) => ( + + {t.isWireless && ( + + )} + {d.label} + + )} + +
    + ); +} + +function simpleDevicePicker( + transports: TransportFactory[], + onTransportCreated: (t: RpcTransport) => void +) { + const [availableDevices, setAvailableDevices] = useState< + AvailableDevice[] | undefined + >(undefined); + const [selectedTransport, setSelectedTransport] = useState< + TransportFactory | undefined + >(undefined); + + useEffect(() => { + if (!selectedTransport) { + setAvailableDevices(undefined); + return; + } + + let ignore = false; + + if (selectedTransport.connect) { + async function connectTransport() { + try { + const transport = await selectedTransport?.connect?.(); + + if (!ignore) { + if (transport) { + onTransportCreated(transport); + } + setSelectedTransport(undefined); + } + } catch (e) { + if (!ignore) { + console.error(e); + if (e instanceof Error && !(e instanceof UserCancelledError)) { + alert(e.message); + } + setSelectedTransport(undefined); + } + } + } + + connectTransport(); + } else { + async function loadAvailableDevices() { + const devices = await selectedTransport?.pick_and_connect?.list(); + + if (!ignore) { + setAvailableDevices(devices); + } + } + + loadAvailableDevices(); + } + + return () => { + ignore = true; + }; + }, [selectedTransport]); + + let connections = transports.map((t) => ( +
  • + +
  • + )); + return ( +
    +

    Select a connection type.

    +
      {connections}
    + {selectedTransport && availableDevices && ( +
      + {availableDevices.map((d) => ( +
    • { + onTransportCreated( + await selectedTransport!.pick_and_connect!.connect(d) + ); + setSelectedTransport(undefined); + }} + > + {d.label} +
    • + ))} +
    + )} +
    + ); +} + +function noTransportsOptionsPrompt() { + return ( +
    +

    + Your browser is not supported. ZMK Studio uses either{" "} + + Web Serial + {" "} + or{" "} + + Web Bluetooth + {" "} + (Linux only) to connect to ZMK devices. +

    + +
    +

    To use ZMK Studio, either:

    +
      +
    • + Use a browser that supports the above web technologies, e.g. + Chrome/Edge, or +
    • +
    • + Download our{" "} + + cross platform application + + . +
    • +
    +
    +
    + ); +} + +function connectOptions( + transports: TransportFactory[], + onTransportCreated: (t: RpcTransport) => void, + open?: boolean +) { + const useSimplePicker = useMemo( + () => transports.every((t) => !t.pick_and_connect), + [transports] + ); + + return useSimplePicker + ? simpleDevicePicker(transports, onTransportCreated) + : deviceList(open || false, transports, onTransportCreated); +} + +export const ConnectModal = ({ + open, + transports, + onTransportCreated, +}: ConnectModalProps) => { + const dialog = useModalRef(open || false, false, false); + + const haveTransports = useMemo(() => transports.length > 0, [transports]); + + return ( + +

    Welcome to ZMK Studio

    + {haveTransports + ? connectOptions(transports, onTransportCreated, open) + : noTransportsOptionsPrompt()} +
    + ); +}; diff --git a/src/DownloadPage.tsx b/src/DownloadPage.tsx index 19e01d7b..818dbf72 100644 --- a/src/DownloadPage.tsx +++ b/src/DownloadPage.tsx @@ -1,177 +1,177 @@ -import { useEffect, useState } from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { - faAndroid, - faApple, - faLinux, - faWindows, - IconDefinition, -} from "@fortawesome/free-brands-svg-icons"; -import { DownloadIcon } from "lucide-react"; -import releaseData from "./data/release-data.json"; - -type Platform = "windows" | "mac" | "linux" | "ios" | "android" | "unknown"; - -const PlatformMetadata: Record< - Platform, - { name: string; icon: IconDefinition } -> = { - windows: { - name: "Windows", - icon: faWindows, - }, - mac: { - name: "macOS", - icon: faApple, - }, - linux: { - name: "Linux", - icon: faLinux, - }, - ios: { - name: "iOS", - icon: faApple, - }, - android: { - name: "Android", - icon: faAndroid, - }, - unknown: { - name: "Unknown", - icon: faAndroid, - }, -}; - -type DownloadLink = { - name: string; - urlPattern: RegExp; -}; - -const DownloadLinks: Record = { - windows_exe: { - name: "Windows (exe)", - urlPattern: /.*\.exe/, - }, - windows_msi: { - name: "Windows (msi)", - urlPattern: /.*\.msi/, - }, - macos: { - name: "macOS", - urlPattern: /.*\.dmg/, - }, - linux_appimage: { - name: "Linux (AppImage)", - urlPattern: /.*\.AppImage/, - }, - linux_deb: { - name: "Linux (deb)", - urlPattern: /.*\.deb/, - }, -}; - -const PlatformLinks: Record = { - windows: [DownloadLinks.windows_exe, DownloadLinks.windows_msi], - mac: [DownloadLinks.macos], - linux: [DownloadLinks.linux_appimage, DownloadLinks.linux_deb], - ios: [], - android: [], - unknown: [], -}; - -const ReleaseAssets = releaseData.assets.map((asset: any) => asset.browser_download_url); -const ReleaseVersion = releaseData.tag_name; - -function detectPlatform(): Platform { - if (typeof window === "undefined") return "unknown"; - - const userAgent = window.navigator.userAgent.toLowerCase(); - - if (userAgent.includes("win")) return "windows"; - if (userAgent.includes("mac")) return "mac"; - if (userAgent.includes("linux")) return "linux"; - if (/iphone|ipad|ipod/.test(userAgent)) return "ios"; - if (userAgent.includes("android")) return "android"; - - return "unknown"; -} - -function getUrlFromPattern(assets: string[], pattern: RegExp) { - const asset = assets.find((asset) => pattern.test(asset)); - return asset; -} - -export const Download = () => { - const [platform, setPlatform] = useState("unknown"); - const [showAll, setShowAll] = useState(false); - - useEffect(() => { - const platform = detectPlatform(); - setPlatform(platform); - if (PlatformLinks[platform].length === 0) { - setShowAll(true); - } - }, []); - - return ( -
    - ZMK Studio -
    ZMK Studio
    -
    - {ReleaseVersion} -
    -
    - {PlatformLinks[platform].length > 0 && ( - <> -
    - {PlatformLinks[platform].map((link) => ( - - {" "} - Download for {link.name} - - ))} -
    - - )} -
    - {PlatformLinks[platform].length > 0 && ( - - )} - {showAll && ( -
    - {Object.entries(PlatformLinks).map(([platform, links]) => ( -
    - {links.map((link) => ( - - - {link.name} - - ))} -
    - ))} -
    - )} -
    -
    - - See GitHub Releases → - -
    - ); -}; +import { useEffect, useState } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faAndroid, + faApple, + faLinux, + faWindows, + IconDefinition, +} from "@fortawesome/free-brands-svg-icons"; +import { DownloadIcon } from "lucide-react"; +import releaseData from "./data/release-data.json"; + +type Platform = "windows" | "mac" | "linux" | "ios" | "android" | "unknown"; + +const PlatformMetadata: Record< + Platform, + { name: string; icon: IconDefinition } +> = { + windows: { + name: "Windows", + icon: faWindows, + }, + mac: { + name: "macOS", + icon: faApple, + }, + linux: { + name: "Linux", + icon: faLinux, + }, + ios: { + name: "iOS", + icon: faApple, + }, + android: { + name: "Android", + icon: faAndroid, + }, + unknown: { + name: "Unknown", + icon: faAndroid, + }, +}; + +type DownloadLink = { + name: string; + urlPattern: RegExp; +}; + +const DownloadLinks: Record = { + windows_exe: { + name: "Windows (exe)", + urlPattern: /.*\.exe/, + }, + windows_msi: { + name: "Windows (msi)", + urlPattern: /.*\.msi/, + }, + macos: { + name: "macOS", + urlPattern: /.*\.dmg/, + }, + linux_appimage: { + name: "Linux (AppImage)", + urlPattern: /.*\.AppImage/, + }, + linux_deb: { + name: "Linux (deb)", + urlPattern: /.*\.deb/, + }, +}; + +const PlatformLinks: Record = { + windows: [DownloadLinks.windows_exe, DownloadLinks.windows_msi], + mac: [DownloadLinks.macos], + linux: [DownloadLinks.linux_appimage, DownloadLinks.linux_deb], + ios: [], + android: [], + unknown: [], +}; + +const ReleaseAssets = releaseData.assets.map((asset: any) => asset.browser_download_url); +const ReleaseVersion = releaseData.tag_name; + +function detectPlatform(): Platform { + if (typeof window === "undefined") return "unknown"; + + const userAgent = window.navigator.userAgent.toLowerCase(); + + if (userAgent.includes("win")) return "windows"; + if (userAgent.includes("mac")) return "mac"; + if (userAgent.includes("linux")) return "linux"; + if (/iphone|ipad|ipod/.test(userAgent)) return "ios"; + if (userAgent.includes("android")) return "android"; + + return "unknown"; +} + +function getUrlFromPattern(assets: string[], pattern: RegExp) { + const asset = assets.find((asset) => pattern.test(asset)); + return asset; +} + +export const Download = () => { + const [platform, setPlatform] = useState("unknown"); + const [showAll, setShowAll] = useState(false); + + useEffect(() => { + const platform = detectPlatform(); + setPlatform(platform); + if (PlatformLinks[platform].length === 0) { + setShowAll(true); + } + }, []); + + return ( +
    + ZMK Studio +
    ZMK Studio
    +
    + {ReleaseVersion} +
    +
    + {PlatformLinks[platform].length > 0 && ( + <> +
    + {PlatformLinks[platform].map((link) => ( + + {" "} + Download for {link.name} + + ))} +
    + + )} +
    + {PlatformLinks[platform].length > 0 && ( + + )} + {showAll && ( +
    + {Object.entries(PlatformLinks).map(([platform, links]) => ( +
    + {links.map((link) => ( + + + {link.name} + + ))} +
    + ))} +
    + )} +
    +
    + + See GitHub Releases → + +
    + ); +}; diff --git a/src/GenericModal.tsx b/src/GenericModal.tsx index 8aad01b6..4f69d615 100644 --- a/src/GenericModal.tsx +++ b/src/GenericModal.tsx @@ -1,19 +1,19 @@ -import React from 'react'; - -export interface GenericModalProps { - onClose?: () => void; - className?: string; - children: React.ReactNode; -} - -export const GenericModal = React.forwardRef(({ onClose, children, className }: GenericModalProps, ref: React.Ref) => { - return ( - - {children} - - ); -}); +import React from 'react'; + +export interface GenericModalProps { + onClose?: () => void; + className?: string; + children: React.ReactNode; +} + +export const GenericModal = React.forwardRef(({ onClose, children, className }: GenericModalProps, ref: React.Ref) => { + return ( + + {children} + + ); +}); diff --git a/src/UnlockModal.tsx b/src/UnlockModal.tsx index dd981239..080ae6da 100644 --- a/src/UnlockModal.tsx +++ b/src/UnlockModal.tsx @@ -1,50 +1,50 @@ -import { useContext, useMemo } from "react"; - -import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; -import type { AvailableDevice } from "./tauri/index"; -import { LockStateContext } from "./rpc/LockStateContext"; -import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; -import { ConnectionContext } from "./rpc/ConnectionContext"; -import { useModalRef } from "./misc/useModalRef"; -import { GenericModal } from "./GenericModal"; -import { ExternalLink } from "./misc/ExternalLink"; - -export type TransportFactory = { - label: string; - connect?: () => Promise; - pick_and_connect?: { - list: () => Promise>; - connect: (dev: AvailableDevice) => Promise; - }; -}; - -export interface UnlockModalProps {} - -export const UnlockModal = ({}: UnlockModalProps) => { - let conn = useContext(ConnectionContext); - let lockState = useContext(LockStateContext); - - let open = useMemo( - () => - !!conn.conn && lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED, - [conn, lockState] - ); - const dialog = useModalRef(open, false, false); - - return ( - -

    Unlock To Continue

    -

    - For security reasons, your keyboard requires unlocking before using ZMK - Studio. -

    -

    - If studio unlocking hasn't been added to your keymap or a combo, see the{" "} - - Studio Unlock Behavior - {" "} - documentation for more infomation. -

    -
    - ); -}; +import { useContext, useMemo } from "react"; + +import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; +import type { AvailableDevice } from "./tauri/index"; +import { LockStateContext } from "./rpc/LockStateContext"; +import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; +import { ConnectionContext } from "./rpc/ConnectionContext"; +import { useModalRef } from "./misc/useModalRef"; +import { GenericModal } from "./GenericModal"; +import { ExternalLink } from "./misc/ExternalLink"; + +export type TransportFactory = { + label: string; + connect?: () => Promise; + pick_and_connect?: { + list: () => Promise>; + connect: (dev: AvailableDevice) => Promise; + }; +}; + +export interface UnlockModalProps {} + +export const UnlockModal = ({}: UnlockModalProps) => { + let conn = useContext(ConnectionContext); + let lockState = useContext(LockStateContext); + + let open = useMemo( + () => + !!conn.conn && lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED, + [conn, lockState] + ); + const dialog = useModalRef(open, false, false); + + return ( + +

    Unlock To Continue

    +

    + For security reasons, your keyboard requires unlocking before using ZMK + Studio. +

    +

    + If studio unlocking hasn't been added to your keymap or a combo, see the{" "} + + Studio Unlock Behavior + {" "} + documentation for more infomation. +

    +
    + ); +}; diff --git a/src/assets/mode.svg b/src/assets/mode.svg index b8e88dcb..8e8a7a1e 100644 --- a/src/assets/mode.svg +++ b/src/assets/mode.svg @@ -1 +1 @@ - + diff --git a/src/behaviors/BehaviorBindingPicker.stories.ts b/src/behaviors/BehaviorBindingPicker.stories.ts index bc83e03b..860d8f85 100644 --- a/src/behaviors/BehaviorBindingPicker.stories.ts +++ b/src/behaviors/BehaviorBindingPicker.stories.ts @@ -1,50 +1,50 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { BehaviorBindingPicker } from "./BehaviorBindingPicker"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Behaviors/BehaviorBindingPicker", - component: BehaviorBindingPicker, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { - layers: [ - { name: "Base", id: 0 }, - { id: 1, name: "Num" }, - ], - onBindingChanged: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Example: Story = { - args: { - binding: { behaviorId: 0, param1: 0, param2: 0 }, - behaviors: [ - { - id: 0, - displayName: "Key Press", - metadata: [ - { - param1: [ - { name: "Key", hidUsage: { consumerMax: 0, keyboardMax: 0 } }, - ], - param2: [], - }, - ], - }, - ], - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { BehaviorBindingPicker } from "./BehaviorBindingPicker"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Behaviors/BehaviorBindingPicker", + component: BehaviorBindingPicker, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { + layers: [ + { name: "Base", id: 0 }, + { id: 1, name: "Num" }, + ], + onBindingChanged: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Example: Story = { + args: { + binding: { behaviorId: 0, param1: 0, param2: 0 }, + behaviors: [ + { + id: 0, + displayName: "Key Press", + metadata: [ + { + param1: [ + { name: "Key", hidUsage: { consumerMax: 0, keyboardMax: 0 } }, + ], + param2: [], + }, + ], + }, + ], + }, +}; diff --git a/src/behaviors/BehaviorBindingPicker.tsx b/src/behaviors/BehaviorBindingPicker.tsx index 8c3f54e7..9ae38499 100644 --- a/src/behaviors/BehaviorBindingPicker.tsx +++ b/src/behaviors/BehaviorBindingPicker.tsx @@ -1,133 +1,133 @@ -import { useEffect, useMemo, useState } from "react"; - -import { - GetBehaviorDetailsResponse, - BehaviorBindingParametersSet, -} from "@zmkfirmware/zmk-studio-ts-client/behaviors"; -import { BehaviorBinding } from "@zmkfirmware/zmk-studio-ts-client/keymap"; -import { BehaviorParametersPicker } from "./BehaviorParametersPicker"; -import { validateValue } from "./parameters"; - -export interface BehaviorBindingPickerProps { - binding: BehaviorBinding; - behaviors: GetBehaviorDetailsResponse[]; - layers: { id: number; name: string }[]; - onBindingChanged: (binding: BehaviorBinding) => void; -} - -function validateBinding( - metadata: BehaviorBindingParametersSet[], - layerIds: number[], - param1?: number, - param2?: number -): boolean { - if ( - (param1 === undefined || param1 === 0) && - metadata.every((s) => !s.param1 || s.param1.length === 0) - ) { - return true; - } - - let matchingSet = metadata.find((s) => - validateValue(layerIds, param1, s.param1) - ); - - if (!matchingSet) { - return false; - } - - return validateValue(layerIds, param2, matchingSet.param2); -} - -export const BehaviorBindingPicker = ({ - binding, - layers, - behaviors, - onBindingChanged, -}: BehaviorBindingPickerProps) => { - const [behaviorId, setBehaviorId] = useState(binding.behaviorId); - const [param1, setParam1] = useState(binding.param1); - const [param2, setParam2] = useState(binding.param2); - - const metadata = useMemo( - () => behaviors.find((b) => b.id == behaviorId)?.metadata, - [behaviorId, behaviors] - ); - - const sortedBehaviors = useMemo( - () => behaviors.sort((a, b) => a.displayName.localeCompare(b.displayName)), - [behaviors] - ); - - useEffect(() => { - if ( - binding.behaviorId === behaviorId && - binding.param1 === param1 && - binding.param2 === param2 - ) { - return; - } - - if (!metadata) { - console.error( - "Can't find metadata for the selected behaviorId", - behaviorId - ); - return; - } - - if ( - validateBinding( - metadata, - layers.map(({ id }) => id), - param1, - param2 - ) - ) { - onBindingChanged({ - behaviorId, - param1: param1 || 0, - param2: param2 || 0, - }); - } - }, [behaviorId, param1, param2]); - - useEffect(() => { - setBehaviorId(binding.behaviorId); - setParam1(binding.param1); - setParam2(binding.param2); - }, [binding]); - - return ( -
    -
    - - -
    - {metadata && ( - - )} -
    - ); -}; +import { useEffect, useMemo, useState } from "react"; + +import { + GetBehaviorDetailsResponse, + BehaviorBindingParametersSet, +} from "@zmkfirmware/zmk-studio-ts-client/behaviors"; +import { BehaviorBinding } from "@zmkfirmware/zmk-studio-ts-client/keymap"; +import { BehaviorParametersPicker } from "./BehaviorParametersPicker"; +import { validateValue } from "./parameters"; + +export interface BehaviorBindingPickerProps { + binding: BehaviorBinding; + behaviors: GetBehaviorDetailsResponse[]; + layers: { id: number; name: string }[]; + onBindingChanged: (binding: BehaviorBinding) => void; +} + +function validateBinding( + metadata: BehaviorBindingParametersSet[], + layerIds: number[], + param1?: number, + param2?: number +): boolean { + if ( + (param1 === undefined || param1 === 0) && + metadata.every((s) => !s.param1 || s.param1.length === 0) + ) { + return true; + } + + let matchingSet = metadata.find((s) => + validateValue(layerIds, param1, s.param1) + ); + + if (!matchingSet) { + return false; + } + + return validateValue(layerIds, param2, matchingSet.param2); +} + +export const BehaviorBindingPicker = ({ + binding, + layers, + behaviors, + onBindingChanged, +}: BehaviorBindingPickerProps) => { + const [behaviorId, setBehaviorId] = useState(binding.behaviorId); + const [param1, setParam1] = useState(binding.param1); + const [param2, setParam2] = useState(binding.param2); + + const metadata = useMemo( + () => behaviors.find((b) => b.id == behaviorId)?.metadata, + [behaviorId, behaviors] + ); + + const sortedBehaviors = useMemo( + () => behaviors.sort((a, b) => a.displayName.localeCompare(b.displayName)), + [behaviors] + ); + + useEffect(() => { + if ( + binding.behaviorId === behaviorId && + binding.param1 === param1 && + binding.param2 === param2 + ) { + return; + } + + if (!metadata) { + console.error( + "Can't find metadata for the selected behaviorId", + behaviorId + ); + return; + } + + if ( + validateBinding( + metadata, + layers.map(({ id }) => id), + param1, + param2 + ) + ) { + onBindingChanged({ + behaviorId, + param1: param1 || 0, + param2: param2 || 0, + }); + } + }, [behaviorId, param1, param2]); + + useEffect(() => { + setBehaviorId(binding.behaviorId); + setParam1(binding.param1); + setParam2(binding.param2); + }, [binding]); + + return ( +
    +
    + + +
    + {metadata && ( + + )} +
    + ); +}; diff --git a/src/behaviors/BehaviorParametersPicker.stories.ts b/src/behaviors/BehaviorParametersPicker.stories.ts index 8c085bc1..25da5bb9 100644 --- a/src/behaviors/BehaviorParametersPicker.stories.ts +++ b/src/behaviors/BehaviorParametersPicker.stories.ts @@ -1,65 +1,65 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; - -import { BehaviorParametersPicker } from "./BehaviorParametersPicker"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Behaviors/BehaviorParametersPicker", - component: BehaviorParametersPicker, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { - layers: [ - { name: "Base", id: 0 }, - { id: 1, name: "Num" }, - ], - onParam1Changed: fn(), - onParam2Changed: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Example: Story = { - args: { - metadata: [ - { - param1: [ - { name: "Const #1", constant: 1 }, - { name: "Const #2", constant: 2 }, - ], - param2: [], - }, - ], - }, -}; - -export const SecondParamBasedOnFirst: Story = { - args: { - param1: 3, - metadata: [ - { - param1: [ - { name: "Const #1", constant: 1 }, - { name: "Const #2", constant: 2 }, - ], - param2: [], - }, - { - param1: [{ name: "Const #3", constant: 3 }], - param2: [{ name: "Second Range", range: { min: 0, max: 4 } }], - }, - ], - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; + +import { BehaviorParametersPicker } from "./BehaviorParametersPicker"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Behaviors/BehaviorParametersPicker", + component: BehaviorParametersPicker, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { + layers: [ + { name: "Base", id: 0 }, + { id: 1, name: "Num" }, + ], + onParam1Changed: fn(), + onParam2Changed: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Example: Story = { + args: { + metadata: [ + { + param1: [ + { name: "Const #1", constant: 1 }, + { name: "Const #2", constant: 2 }, + ], + param2: [], + }, + ], + }, +}; + +export const SecondParamBasedOnFirst: Story = { + args: { + param1: 3, + metadata: [ + { + param1: [ + { name: "Const #1", constant: 1 }, + { name: "Const #2", constant: 2 }, + ], + param2: [], + }, + { + param1: [{ name: "Const #3", constant: 3 }], + param2: [{ name: "Second Range", range: { min: 0, max: 4 } }], + }, + ], + }, +}; diff --git a/src/behaviors/BehaviorParametersPicker.tsx b/src/behaviors/BehaviorParametersPicker.tsx index 1a1f035b..db60b5d5 100644 --- a/src/behaviors/BehaviorParametersPicker.tsx +++ b/src/behaviors/BehaviorParametersPicker.tsx @@ -1,59 +1,59 @@ -import { BehaviorBindingParametersSet } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; -import { ParameterValuePicker } from "./ParameterValuePicker"; -import { validateValue } from "./parameters"; - -export interface BehaviorParametersPickerProps { - param1?: number; - param2?: number; - metadata: BehaviorBindingParametersSet[]; - layers: { id: number; name: string }[]; - onParam1Changed: (value?: number) => void; - onParam2Changed: (value?: number) => void; -} - -export const BehaviorParametersPicker = ({ - param1, - param2, - metadata, - layers, - onParam1Changed, - onParam2Changed, -}: BehaviorParametersPickerProps) => { - if (param1 === undefined) { - return ( -
    - m.param1)} - onValueChanged={onParam1Changed} - layers={layers} - /> -
    - ); - } else { - const set = metadata.find((s) => - validateValue( - layers.map((l) => l.id), - param1, - s.param1 - ) - ); - return ( - <> - m.param1)} - value={param1} - layers={layers} - onValueChanged={onParam1Changed} - /> - {(set?.param2?.length || 0) > 0 && ( - - )} - - ); - } -}; +import { BehaviorBindingParametersSet } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; +import { ParameterValuePicker } from "./ParameterValuePicker"; +import { validateValue } from "./parameters"; + +export interface BehaviorParametersPickerProps { + param1?: number; + param2?: number; + metadata: BehaviorBindingParametersSet[]; + layers: { id: number; name: string }[]; + onParam1Changed: (value?: number) => void; + onParam2Changed: (value?: number) => void; +} + +export const BehaviorParametersPicker = ({ + param1, + param2, + metadata, + layers, + onParam1Changed, + onParam2Changed, +}: BehaviorParametersPickerProps) => { + if (param1 === undefined) { + return ( +
    + m.param1)} + onValueChanged={onParam1Changed} + layers={layers} + /> +
    + ); + } else { + const set = metadata.find((s) => + validateValue( + layers.map((l) => l.id), + param1, + s.param1 + ) + ); + return ( + <> + m.param1)} + value={param1} + layers={layers} + onValueChanged={onParam1Changed} + /> + {(set?.param2?.length || 0) > 0 && ( + + )} + + ); + } +}; diff --git a/src/behaviors/HidUsagePicker.stories.ts b/src/behaviors/HidUsagePicker.stories.ts index e0618df1..9d667a4d 100644 --- a/src/behaviors/HidUsagePicker.stories.ts +++ b/src/behaviors/HidUsagePicker.stories.ts @@ -1,39 +1,39 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { HidUsagePicker } from "./HidUsagePicker"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Behaviors/HidUsagePicker", - component: HidUsagePicker, - parameters: { - layout: "centered", - }, - tags: ["autodocs"], - argTypes: {}, - args: { - onValueChanged: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Keyboard: Story = { - args: { - usagePages: [{ id: 7 }], - }, -}; - -export const KeyboardModSelection: Story = { - args: { - usagePages: [{ id: 7 }], - value: 458756, - }, -}; - -export const KeyboardAndConsumer: Story = { - args: { - usagePages: [{ id: 7 }, { id: 12 }], - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { HidUsagePicker } from "./HidUsagePicker"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Behaviors/HidUsagePicker", + component: HidUsagePicker, + parameters: { + layout: "centered", + }, + tags: ["autodocs"], + argTypes: {}, + args: { + onValueChanged: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Keyboard: Story = { + args: { + usagePages: [{ id: 7 }], + }, +}; + +export const KeyboardModSelection: Story = { + args: { + usagePages: [{ id: 7 }], + value: 458756, + }, +}; + +export const KeyboardAndConsumer: Story = { + args: { + usagePages: [{ id: 7 }, { id: 12 }], + }, +}; diff --git a/src/behaviors/HidUsagePicker.tsx b/src/behaviors/HidUsagePicker.tsx index 4cbf8566..8119d748 100644 --- a/src/behaviors/HidUsagePicker.tsx +++ b/src/behaviors/HidUsagePicker.tsx @@ -1,192 +1,265 @@ -import { - Button, - Checkbox, - CheckboxGroup, - Collection, - ComboBox, - Header, - Input, - Key, - Label, - ListBox, - ListBoxItem, - Popover, - Section, -} from "react-aria-components"; -import { - hid_usage_from_page_and_id, - hid_usage_page_get_ids, -} from "../hid-usages"; -import { useCallback, useMemo } from "react"; -import { ChevronDown } from "lucide-react"; - -export interface HidUsagePage { - id: number; - min?: number; - max?: number; -} - -export interface HidUsagePickerProps { - label?: string; - value?: number; - usagePages: HidUsagePage[]; - onValueChanged: (value?: number) => void; -} - -type UsageSectionProps = HidUsagePage; - -const UsageSection = ({ id, min, max }: UsageSectionProps) => { - const info = useMemo(() => hid_usage_page_get_ids(id), [id]); - - let usages = useMemo(() => { - let usages = info?.UsageIds || []; - if (max || min) { - usages = usages.filter( - (i) => - (i.Id <= (max || Number.MAX_SAFE_INTEGER) && i.Id >= (min || 0)) || - (id === 7 && i.Id >= 0xe0 && i.Id <= 0xe7) - ); - } - - return usages; - }, [id, min, max, info]); - - return ( -
    -
    {info?.Name}
    - - {(i) => ( - - {i.Name} - - )} - -
    - ); -}; - -enum Mods { - LeftControl = 0x01, - LeftShift = 0x02, - LeftAlt = 0x04, - LeftGUI = 0x08, - RightControl = 0x10, - RightShift = 0x20, - RightAlt = 0x40, - RightGUI = 0x80, -} - -const mod_labels: Record = { - [Mods.LeftControl]: "L Ctrl", - [Mods.LeftShift]: "L Shift", - [Mods.LeftAlt]: "L Alt", - [Mods.LeftGUI]: "L GUI", - [Mods.RightControl]: "R Ctrl", - [Mods.RightShift]: "R Shift", - [Mods.RightAlt]: "R Alt", - [Mods.RightGUI]: "R GUI", -}; - -const all_mods = [ - Mods.LeftControl, - Mods.LeftShift, - Mods.LeftAlt, - Mods.LeftGUI, - Mods.RightControl, - Mods.RightShift, - Mods.RightAlt, - Mods.RightGUI, -]; - -function mods_to_flags(mods: Mods[]): number { - return mods.reduce((a, v) => a + v, 0); -} - -function mask_mods(value: number) { - return value & ~(mods_to_flags(all_mods) << 24); -} - -export const HidUsagePicker = ({ - label, - value, - usagePages, - onValueChanged, -}: HidUsagePickerProps) => { - const mods = useMemo(() => { - let flags = value ? value >> 24 : 0; - - return all_mods.filter((m) => m & flags).map((m) => m.toLocaleString()); - }, [value]); - - const selectionChanged = useCallback( - (e: Key | null) => { - let value = typeof e == "number" ? e : undefined; - if (value !== undefined) { - let mod_flags = mods_to_flags(mods.map((m) => parseInt(m))); - value = value | (mod_flags << 24); - } - - onValueChanged(value); - }, - [onValueChanged, mods] - ); - - const modifiersChanged = useCallback( - (m: string[]) => { - if (!value) { - return; - } - - let mod_flags = mods_to_flags(m.map((m) => parseInt(m))); - let new_value = mask_mods(value) | (mod_flags << 24); - onValueChanged(new_value); - }, - [value] - ); - - return ( -
    - {label && } - -
    - - -
    - - - {({ id, min, max }) => } - - -
    - - {all_mods.map((m) => ( - - {mod_labels[m]} - - ))} - -
    - ); -}; +import { + Button, + Checkbox, + CheckboxGroup, + Collection, + ComboBox, + Header, + Input, + Key, + Label, + ListBox, + ListBoxItem, + Popover, + Section, +} from "react-aria-components"; +import { + hid_usage_from_page_and_id, + hid_usage_get_labels, + hid_usage_get_labels, + hid_usage_page_get_ids, + UsageId, +} from "../hid-usages"; +import { useCallback, useMemo, useState } from "react"; +import { ChevronDown } from "lucide-react"; + +export interface HidUsagePage { + id: number; + min?: number; + max?: number; +} + +export interface HidUsagePickerProps { + label?: string; + value?: number; + usagePages: HidUsagePage[]; + onValueChanged: (value?: number) => void; +} + +export interface UsageSectionGridProps { + id: number; + min?: number; + max?: number; + onMouseOver?: (mouseOverData: { + id: number, i: UsageId + }) => void; +} + +type UsageSectionProps = HidUsagePage; + +const UsageSection = ({ id, min, max }: UsageSectionProps) => { + const info = useMemo(() => hid_usage_page_get_ids(id), [id]); + + let usages = useMemo(() => { + let usages = info?.UsageIds || []; + if (max || min) { + usages = usages.filter( + (i) => + (i.Id <= (max || Number.MAX_SAFE_INTEGER) && i.Id >= (min || 0)) || + (id === 7 && i.Id >= 0xe0 && i.Id <= 0xe7) + ); + } + + return usages; + }, [id, min, max, info]); + + return ( +
    +
    {info?.Name}
    + + {(i) => ( + + {i.Name} + + )} + +
    + ); +}; + +const UsageSectionGrid = ({ id, min, max }: UsageSectionProps) => { + const info = useMemo(() => hid_usage_page_get_ids(id), [id]); + + let usages = useMemo(() => { + let usages = info?.UsageIds || []; + if (max || min) { + usages = usages.filter( + (i) => + (i.Id <= (max || Number.MAX_SAFE_INTEGER) && i.Id >= (min || 0)) || + (id === 7 && i.Id >= 0xe0 && i.Id <= 0xe7) + ); + } + + return usages; + }, [id, min, max, info]); + + return ( +
    +
    {info?.Name}
    + + {(i) => ( + + {({isSelected}) => { + const labels = hid_usage_get_labels(id, i.Id, { removePrefix: true }) + console.log(labels) + return ( +
    +

    + {labels.short || labels.med || labels.long || i.Name} +

    + {labels.secondary && ( +

    + {labels.secondary} +

    + )} +
    + )}} +
    + )} +
    +
    + ); +}; + +enum Mods { + LeftControl = 0x01, + LeftShift = 0x02, + LeftAlt = 0x04, + LeftGUI = 0x08, + RightControl = 0x10, + RightShift = 0x20, + RightAlt = 0x40, + RightGUI = 0x80, +} + +const mod_labels: Record = { + [Mods.LeftControl]: "L Ctrl", + [Mods.LeftShift]: "L Shift", + [Mods.LeftAlt]: "L Alt", + [Mods.LeftGUI]: "L GUI", + [Mods.RightControl]: "R Ctrl", + [Mods.RightShift]: "R Shift", + [Mods.RightAlt]: "R Alt", + [Mods.RightGUI]: "R GUI", +}; + +const all_mods = [ + Mods.LeftControl, + Mods.LeftShift, + Mods.LeftAlt, + Mods.LeftGUI, + Mods.RightControl, + Mods.RightShift, + Mods.RightAlt, + Mods.RightGUI, +]; + +function mods_to_flags(mods: Mods[]): number { + return mods.reduce((a, v) => a + v, 0); +} + +function mask_mods(value: number) { + return value & ~(mods_to_flags(all_mods) << 24); +} + +export const HidUsagePicker = ({ + label, + value, + usagePages, + onValueChanged, +}: HidUsagePickerProps) => { + const mods = useMemo(() => { + let flags = value ? value >> 24 : 0; + + return all_mods.filter((m) => m & flags).map((m) => m.toLocaleString()); + }, [value]); + + const selectionChanged = useCallback( + (e: Key | null) => { + let value = typeof e == "number" ? e : undefined; + if (value !== undefined) { + let mod_flags = mods_to_flags(mods.map((m) => parseInt(m))); + value = value | (mod_flags << 24); + } + + onValueChanged(value); + }, + [onValueChanged, mods] + ); + + const modifiersChanged = useCallback( + (m: string[]) => { + if (!value) { + return; + } + + let mod_flags = mods_to_flags(m.map((m) => parseInt(m))); + let new_value = mask_mods(value) | (mod_flags << 24); + onValueChanged(new_value); + }, + [value] + ); + + console.log("A", value ? mask_mods(value) : null) + + return ( +
    +
    + {label && } + +
    + + +
    + + + {({ id, min, max }) => } + + +
    + + {all_mods.map((m) => ( + + {mod_labels[m]} + + ))} + +
    + selectionChanged(currentKey)} + aria-labelledby="hid-usage-picker" + > + {({ id, min, max }) => } + +
    + ); +}; diff --git a/src/behaviors/ParameterValuePicker.stories.ts b/src/behaviors/ParameterValuePicker.stories.ts index cbd0db8e..8d8adf2f 100644 --- a/src/behaviors/ParameterValuePicker.stories.ts +++ b/src/behaviors/ParameterValuePicker.stories.ts @@ -1,57 +1,57 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { ParameterValuePicker } from "./ParameterValuePicker"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Behaviors/ParameterValuePicker", - component: ParameterValuePicker, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { - layers: [ - { name: "Base", id: 0 }, - { id: 1, name: "Num" }, - ], - onValueChanged: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Const: Story = { - args: { - values: [ - { name: "Const #1", constant: 1 }, - { name: "Const #2", constant: 2 }, - ], - }, -}; - -export const Range: Story = { - args: { - values: [{ name: "Profile", range: { min: 0, max: 4 } }], - }, -}; - -export const HID: Story = { - args: { - values: [{ name: "Key", hidUsage: { consumerMax: 0, keyboardMax: 0 } }], - }, -}; - -export const LayerId: Story = { - args: { - values: [{ name: "Layer", layerId: {} }], - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { ParameterValuePicker } from "./ParameterValuePicker"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Behaviors/ParameterValuePicker", + component: ParameterValuePicker, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { + layers: [ + { name: "Base", id: 0 }, + { id: 1, name: "Num" }, + ], + onValueChanged: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Const: Story = { + args: { + values: [ + { name: "Const #1", constant: 1 }, + { name: "Const #2", constant: 2 }, + ], + }, +}; + +export const Range: Story = { + args: { + values: [{ name: "Profile", range: { min: 0, max: 4 } }], + }, +}; + +export const HID: Story = { + args: { + values: [{ name: "Key", hidUsage: { consumerMax: 0, keyboardMax: 0 } }], + }, +}; + +export const LayerId: Story = { + args: { + values: [{ name: "Layer", layerId: {} }], + }, +}; diff --git a/src/behaviors/ParameterValuePicker.tsx b/src/behaviors/ParameterValuePicker.tsx index ca0aaae4..3ee384a1 100644 --- a/src/behaviors/ParameterValuePicker.tsx +++ b/src/behaviors/ParameterValuePicker.tsx @@ -1,85 +1,85 @@ -import { BehaviorParameterValueDescription } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; -import { HidUsagePicker } from "./HidUsagePicker"; - -export interface ParameterValuePickerProps { - value?: number; - values: BehaviorParameterValueDescription[]; - layers: { id: number; name: string }[]; - onValueChanged: (value?: number) => void; -} - -export const ParameterValuePicker = ({ - value, - values, - layers, - onValueChanged, -}: ParameterValuePickerProps) => { - if (values.length == 0) { - return <>; - } else if (values.every((v) => v.constant !== undefined)) { - return ( -
    - -
    - ); - } else if (values.length == 1) { - if (values[0].range) { - return ( -
    - - onValueChanged(parseInt(e.target.value))} - /> -
    - ); - } else if (values[0].hidUsage) { - return ( - - ); - } else if (values[0].layerId) { - return ( -
    - - -
    - ); - } - } else { - console.log("Not sure how to handle", values); - return ( - <> -

    Some composite?

    - - ); - } - - return <>; -}; +import { BehaviorParameterValueDescription } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; +import { HidUsagePicker } from "./HidUsagePicker"; + +export interface ParameterValuePickerProps { + value?: number; + values: BehaviorParameterValueDescription[]; + layers: { id: number; name: string }[]; + onValueChanged: (value?: number) => void; +} + +export const ParameterValuePicker = ({ + value, + values, + layers, + onValueChanged, +}: ParameterValuePickerProps) => { + if (values.length == 0) { + return <>; + } else if (values.every((v) => v.constant !== undefined)) { + return ( +
    + +
    + ); + } else if (values.length == 1) { + if (values[0].range) { + return ( +
    + + onValueChanged(parseInt(e.target.value))} + /> +
    + ); + } else if (values[0].hidUsage) { + return ( + + ); + } else if (values[0].layerId) { + return ( +
    + + +
    + ); + } + } else { + console.log("Not sure how to handle", values); + return ( + <> +

    Some composite?

    + + ); + } + + return <>; +}; diff --git a/src/behaviors/parameters.ts b/src/behaviors/parameters.ts index 96f91527..f812f9f5 100644 --- a/src/behaviors/parameters.ts +++ b/src/behaviors/parameters.ts @@ -1,32 +1,32 @@ -import { BehaviorParameterValueDescription } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; -import { hid_usage_page_and_id_from_usage } from "../hid-usages"; - -export function validateValue( - layerIds: number[], - value?: number, - values?: BehaviorParameterValueDescription[] -): boolean { - if (value === undefined) { - return values === undefined || values?.length === 0 || !!values[0].nil; - } - - const matchingValue = values?.find((v) => { - if (v.constant !== undefined) { - return v.constant == value; - } else if (v.range) { - return value >= v.range.min && value <= v.range.max; - } else if (v.hidUsage) { - const [page, id] = hid_usage_page_and_id_from_usage(value); - return page !== 0 && id !== 0; - } else if (v.layerId) { - return layerIds.includes(value); - } else if (v.nil) { - return value === 0; - } else { - console.error("Unknown check type!"); - return false; - } - }); - - return !!matchingValue || (value === 0 && (!values || values.length === 0)); -} +import { BehaviorParameterValueDescription } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; +import { hid_usage_page_and_id_from_usage } from "../hid-usages"; + +export function validateValue( + layerIds: number[], + value?: number, + values?: BehaviorParameterValueDescription[] +): boolean { + if (value === undefined) { + return values === undefined || values?.length === 0 || !!values[0].nil; + } + + const matchingValue = values?.find((v) => { + if (v.constant !== undefined) { + return v.constant == value; + } else if (v.range) { + return value >= v.range.min && value <= v.range.max; + } else if (v.hidUsage) { + const [page, id] = hid_usage_page_and_id_from_usage(value); + return page !== 0 && id !== 0; + } else if (v.layerId) { + return layerIds.includes(value); + } else if (v.nil) { + return value === 0; + } else { + console.error("Unknown check type!"); + return false; + } + }); + + return !!matchingValue || (value === 0 && (!values || values.length === 0)); +} diff --git a/src/context/keymap.tsx b/src/context/keymap.tsx new file mode 100644 index 00000000..6c6ce061 --- /dev/null +++ b/src/context/keymap.tsx @@ -0,0 +1,35 @@ +import { Keymap } from '@zmkfirmware/zmk-studio-ts-client/keymap'; +import { createContext, Dispatch, PropsWithChildren, SetStateAction, useContext } from 'react'; +import { useConnectedDeviceData } from '../rpc/useConnectedDeviceData'; + +interface KeymapContextValue { + keymap: Keymap | undefined; + setKeymap: Dispatch>; +} + +const KeymapContext = createContext(undefined); + +export const KeymapProvider = ({ children }: PropsWithChildren<{}>) => { + const [keymap, setKeymap] = useConnectedDeviceData( + { keymap: { getKeymap: true } }, + (keymap) => { + console.log("Got the keymap!"); + return keymap?.keymap?.getKeymap; + }, + true + ); + + return ( + + {children} + + ); +} + +export const useKeymap = (): KeymapContextValue => { + const context = useContext(KeymapContext); + if (!context) { + throw new Error('useKeymap must be used within a KeymapProvider'); + } + return context; +} \ No newline at end of file diff --git a/src/download.tsx b/src/download.tsx index 180a70d2..7340eea2 100644 --- a/src/download.tsx +++ b/src/download.tsx @@ -1,11 +1,11 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; -import "./index.css"; - -import { Download } from "./DownloadPage"; - -ReactDOM.createRoot(document.getElementById("root")!).render( - - - , -); +import React from "react"; +import ReactDOM from "react-dom/client"; +import "./index.css"; + +import { Download } from "./DownloadPage"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + , +); diff --git a/src/hid-usage-name-overrides.json b/src/hid-usage-name-overrides.json index f2773ff5..aed18d71 100644 --- a/src/hid-usage-name-overrides.json +++ b/src/hid-usage-name-overrides.json @@ -1,85 +1,159 @@ -{ - "7": { - "30": { "short": "1" }, - "31": { "short": "2" }, - "32": { "short": "3" }, - "33": { "short": "4" }, - "34": { "short": "5" }, - "35": { "short": "6" }, - "36": { "short": "7" }, - "37": { "short": "8" }, - "38": { "short": "9" }, - "39": { "short": "0" }, - "40": { "short": "Ret", "med": "Return" }, - "41": { "short": "Esc", "long": "Escape" }, - "42": { "short": "BkSp", "med": "BkSpc", "long": "Backspace" }, - "44": { "short": "␣", "med": "Space" }, - "45": { "short": "-", "med": "Dash" }, - "46": { "short": "=", "med": "Equals" }, - "47": { "short": "{" }, - "48": { "short": "}" }, - "49": { "short": "\\" }, - "50": { "short": "NUHS", "long": "NonUS Hash" }, - "51": { "short": ";" }, - "52": { "short": "'" }, - "53": { "short": "`" }, - "54": { "short": "," }, - "55": { "short": "." }, - "56": { "short": "/" }, - "57": { "short": "Cap", "long": "Caps Lock" }, - "70": { "short": "PrSc", "long": "Print Scr" }, - "71": { "short": "ScLk", "long": "ScrollLock" }, - "72": { "short": "Paus", "med": "Pause" }, - "73": { "short": "Ins", "med": "Insert" }, - "75": { "short": "PgUp", "med": "PageUp", "long": "Page Up" }, - "76": { "short": "Del", "med": "Delete" }, - "78": { "short": "PgDn", "med": "PageDn", "long": "Page Down" }, - "79": { "short": "→" }, - "80": { "short": "←" }, - "81": { "short": "↓" }, - "82": { "short": "↑" }, - "83": { "short": "Num", "med": "NumLck", "long": "Num Lock" }, - "84": { "short": "/" }, - "85": { "short": "*" }, - "86": { "short": "-" }, - "87": { "short": "+" }, - "88": { "short": "Ent", "med": "KP Ent", "long": "KP Enter" }, - "89": { "short": "1 En", "med": "1 End" }, - "90": { "short": "2 ↓" }, - "91": { "short": "3 PD", "med": "3 PgDn" }, - "92": { "short": "4 ←" }, - "93": { "short": "5" }, - "94": { "short": "6 →" }, - "95": { "short": "7 Hm", "med": "7 Home" }, - "96": { "short": "8 ↑" }, - "97": { "short": "9 PU", "med": "9 PgUp" }, - "98": { "short": "0 In", "med": "0 Ins", "long": "0 Insert" }, - "99": { "short": ". Dl", "med": ". Del", "long": ". Delete" }, - "101": { "short": "Appl", "med": "Appl", "long": "Applicat'n" }, - "102": { "short": "Power", "med": "Power" }, - "100": { "short": "NUBS" }, - "103": { "short": "=" }, - "133": { "short": "," }, - "134": { "short": "=" }, - "176": { "short": "00" }, - "177": { "short": "000" }, - "224": { "short": "Ctrl", "med": "L Ctrl" }, - "225": { "short": "Shft", "med": "L Shft", "long": "L Shift" }, - "226": { "short": "Alt", "med": "L Alt", "long": "Left Alt" }, - "227": { "short": "GUI", "med": "L GUI", "long": "Left GUI" }, - "228": { "short": "Ctrl", "med": "R Ctrl" }, - "229": { "short": "Shft", "med": "R Shft", "long": "R Shift" }, - "230": { "short": "AltG", "med": "AltGr" }, - "231": { "short": "GUI", "med": "R GUI", "long": "Right GUI" } - }, - "12": { - "111": { "short": "🔆" }, - "112": { "short": "🔅" }, - "181": { "short": "⇥" }, - "182": { "short": "⇤" }, - "205": { "short": "⏯️" }, - "226": { "short": "🔇" }, - "233": { "short": "🔊" }, - "234": { "short": "🔉" } - } -} +{ + "7": { + "30": { "short": "1", "secondary": "!" }, + "31": { "short": "2", "secondary": "\"" }, + "32": { "short": "3", "secondary": "£" }, + "33": { "short": "4", "secondary": "$" }, + "34": { "short": "5", "secondary": "%" }, + "35": { "short": "6", "secondary": "&" }, + "36": { "short": "7", "secondary": "/" }, + "37": { "short": "8", "secondary": "(" }, + "38": { "short": "9", "secondary": ")" }, + "39": { "short": "0", "secondary": "=" }, + "40": { "short": "Ret", "med": "Return" }, + "41": { "short": "Esc", "long": "Escape" }, + "42": { "short": "BkSp", "med": "BkSpc", "long": "Backspace" }, + "44": { "short": "␣", "med": "Space" }, + "45": { "short": "-", "med": "Dash" }, + "46": { "short": "=", "med": "Equals" }, + "47": { "short": "{" }, + "48": { "short": "}" }, + "49": { "short": "\\" }, + "50": { "short": "NUHS", "long": "NonUS Hash" }, + "51": { "short": ";" }, + "52": { "short": "'" }, + "53": { "short": "`" }, + "54": { "short": "," }, + "55": { "short": "." }, + "56": { "short": "/" }, + "57": { "short": "Cap", "long": "Caps Lock" }, + "70": { "short": "PrSc", "long": "Print Scr" }, + "71": { "short": "ScLk", "long": "ScrollLock" }, + "72": { "short": "Paus", "med": "Pause" }, + "73": { "short": "Ins", "med": "Insert" }, + "75": { "short": "PgUp", "med": "PageUp", "long": "Page Up" }, + "76": { "short": "Del", "med": "Delete" }, + "78": { "short": "PgDn", "med": "PageDn", "long": "Page Down" }, + "79": { "short": "→" }, + "80": { "short": "←" }, + "81": { "short": "↓" }, + "82": { "short": "↑" }, + "83": { "short": "Num", "med": "NumLck", "long": "Num Lock" }, + "84": { "short": "/" }, + "85": { "short": "*" }, + "86": { "short": "-" }, + "87": { "short": "+" }, + "88": { "short": "Ent", "med": "KP Ent", "long": "KP Enter" }, + "89": { "short": "1 En", "med": "1 End" }, + "90": { "short": "2 ↓" }, + "91": { "short": "3 PD", "med": "3 PgDn" }, + "92": { "short": "4 ←" }, + "93": { "short": "5" }, + "94": { "short": "6 →" }, + "95": { "short": "7 Hm", "med": "7 Home" }, + "96": { "short": "8 ↑" }, + "97": { "short": "9 PU", "med": "9 PgUp" }, + "98": { "short": "0 In", "med": "0 Ins", "long": "0 Insert" }, + "99": { "short": ". Dl", "med": ". Del", "long": ". Delete" }, + "101": { "short": "Appl", "med": "Appl", "long": "Applicat'n" }, + "102": { "short": "Power", "med": "Power" }, + "100": { "short": "NUBS" }, + "103": { "short": "=" }, + "133": { "short": "," }, + "134": { "short": "=" }, + "176": { "short": "00" }, + "177": { "short": "000" }, + "224": { "short": "Ctrl", "med": "L Ctrl" }, + "225": { "short": "Shft", "med": "L Shft", "long": "L Shift" }, + "226": { "short": "Alt", "med": "L Alt", "long": "Left Alt" }, + "227": { "short": "GUI", "med": "L GUI", "long": "Left GUI" }, + "228": { "short": "Ctrl", "med": "R Ctrl" }, + "229": { "short": "Shft", "med": "R Shft", "long": "R Shift" }, + "230": { "short": "AltG", "med": "AltGr" }, + "231": { "short": "GUI", "med": "R GUI", "long": "Right GUI" } + }, + "12": { + + "2": { "short": "🔢" }, + "3": { "short": "⚙️⌨" }, + "4": { "short": "🎤" }, + "5": { "short": "🎧" }, + "6": { "short": "🎵 EQ" }, + "48": { "short": "⚡" }, + "49": { "short": "🔄" }, + "50": { "short": "💤" }, + "51": { "short": "💤🔜" }, + "52": { "short": "💤⚙️" }, + "53": { "short": "✨" }, + "54": { "short": "📊⌨" }, + "64": { "short": "📜" }, + "65": { "short": "📜👈" }, + "66": { "short": "📜⬆️" }, + "67": { "short": "📜⬇️" }, + "68": { "short": "📜⬅️" }, + "69": { "short": "📜➡️" }, + "70": { "short": "📜🏃‍♂️" }, + "71": { "short": "📜🔼" }, + "72": { "short": "📜🔽" }, + "96": { "short": "📺📊" }, + "97": { "short": "📺💬" }, + "98": { "short": "📺🎯" }, + "99": { "short": "📼📺" }, + "100": { "short": "🗣️" }, + "101": { "short": "🖼️" }, + "102": { "short": "❄️" }, + "103": { "short": "🔳🔁" }, + "104": { "short": "🔳🔃" }, + "105": { "short": "🔴" }, + "106": { "short": "🟢" }, + "107": { "short": "🔵" }, + "108": { "short": "🟡" }, + "109": { "short": "📐" }, + "110": { "short": "🎨" }, + "111": { "short": "🔆🔼" }, + "112": { "short": "🔅🔽" }, + "113": { "short": "🔆" }, + "114": { "short": "🌞🌑" }, + "115": { "short": "🌙" }, + "116": { "short": "🌞" }, + "117": { "short": "🌅" }, + "118": { "short": "📷✔️" }, + "119": { "short": "📷❌" }, + "120": { "short": "📷🔁" }, + "136": { "short": "👉💻" }, + "137": { "short": "👉📺" }, + "138": { "short": "👉🌍" }, + "139": { "short": "👉📀" }, + "140": { "short": "👉📞" }, + "141": { "short": "👉📅" }, + "142": { "short": "👉📱" }, + "143": { "short": "👉🎮" }, + "144": { "short": "👉💬" }, + "145": { "short": "👉💿" }, + "146": { "short": "👉📼" }, + "147": { "short": "👉📻" }, + "148": { "short": "🛑" }, + "149": { "short": "❓" }, + "150": { "short": "👉🎞️" }, + "151": { "short": "👉🔌" }, + "152": { "short": "👉📡" }, + "153": { "short": "👉🛡️" }, + "154": { "short": "👉🏠" }, + "155": { "short": "👉📲" }, + "176": { "short": "▶️" }, + "177": { "short": "⏸️" }, + "178": { "short": "⏺️" }, + "179": { "short": "⏩" }, + "180": { "short": "⏪" }, + "181": { "short": "⏭️" }, + "182": { "short": "⏮️" }, + "183": { "short": "⏹️" }, + "184": { "short": "⏏️" }, + "185": { "short": "🔀" }, + "188": { "short": "🔁" }, + "205": { "short": "⏯️" }, + "226": { "short": "🔇" }, + "233": { "short": "🔊" }, + "234": { "short": "🔉" } + } +} \ No newline at end of file diff --git a/src/hid-usages.ts b/src/hid-usages.ts index a3e3dd84..f308ecf6 100644 --- a/src/hid-usages.ts +++ b/src/hid-usages.ts @@ -1,52 +1,70 @@ -// import { UsagePages } from "./HidUsageTables-1.5.json"; -// Filtered with `cat src/HidUsageTables-1.5.json | jq '{ UsagePages: [.UsagePages[] | select([.Id] |inside([7, 12]))] }' > src/keyboard-and-consumer-usage-tables.json` -import { UsagePages } from "./keyboard-and-consumer-usage-tables.json"; -import HidOverrides from "./hid-usage-name-overrides.json"; - -interface HidLabels { - short?: string; - med?: string; - long?: string; -} - -const overrides: Record> = HidOverrides; - -export interface UsageId { - Id: number; - Name: string; -} - -export interface UsagePageInfo { - Name: string; - UsageIds: UsageId[]; -} - -export const hid_usage_from_page_and_id = (page: number, id: number) => - (page << 16) + id; - -export const hid_usage_page_and_id_from_usage = ( - usage: number -): [number, number] => [(usage >> 16) & 0xffff, usage & 0xffff]; - -export const hid_usage_page_get_ids = ( - usage_page: number -): UsagePageInfo | undefined => UsagePages.find((p) => p.Id === usage_page); - -export const hid_usage_get_label = ( - usage_page: number, - usage_id: number -): string | undefined => - overrides[usage_page.toString()]?.[usage_id.toString()]?.short || - UsagePages.find((p) => p.Id === usage_page)?.UsageIds?.find( - (u) => u.Id === usage_id - )?.Name; - -export const hid_usage_get_labels = ( - usage_page: number, - usage_id: number -): { short?: string; med?: string; long?: string } => - overrides[usage_page.toString()]?.[usage_id.toString()] || { - short: UsagePages.find((p) => p.Id === usage_page)?.UsageIds?.find( - (u) => u.Id === usage_id - )?.Name, - }; +// import { UsagePages } from "./HidUsageTables-1.5.json"; +// Filtered with `cat src/HidUsageTables-1.5.json | jq '{ UsagePages: [.UsagePages[] | select([.Id] |inside([7, 12]))] }' > src/keyboard-and-consumer-usage-tables.json` +import { UsagePages } from "./keyboard-and-consumer-usage-tables.json"; +import HidOverrides from "./hid-usage-name-overrides.json"; + +interface HidLabels { + short?: string; + med?: string; + long?: string; + secondary?: string; +} + +const overrides: Record> = HidOverrides; + +export interface UsageId { + Id: number; + Name: string; +} + +export interface UsagePageInfo { + Name: string; + UsageIds: UsageId[]; +} + +function remove_prefix(s?: string) { + return s?.replace(/^Keyboard /, ""); +} + +export const hid_usage_from_page_and_id = (page: number, id: number) => + (page << 16) + id; + +export const hid_usage_page_and_id_from_usage = ( + usage: number +): [number, number] => [(usage >> 16) & 0xffff, usage & 0xffff]; + +export const hid_usage_page_get_ids = ( + usage_page: number +): UsagePageInfo | undefined => UsagePages.find((p) => p.Id === usage_page); + +export const hid_usage_get_label = ( + usage_page: number, + usage_id: number +): string | undefined => + overrides[usage_page.toString()]?.[usage_id.toString()]?.short || + UsagePages.find((p) => p.Id === usage_page)?.UsageIds?.find( + (u) => u.Id === usage_id + )?.Name; + +export const hid_usage_get_labels = ( + usage_page: number, + usage_id: number, + options: { + removePrefix?: boolean; + } = {} +): HidLabels => { + const labels = overrides[usage_page.toString()]?.[usage_id.toString()] || { + short: UsagePages.find((p) => p.Id === usage_page)?.UsageIds?.find( + (u) => u.Id === usage_id + )?.Name, + }; + if (options.removePrefix) { + return { + short: remove_prefix(labels.short), + med: remove_prefix(labels.med), + long: remove_prefix(labels.long), + secondary: labels.secondary, + }; + } + return labels; +} diff --git a/src/index.css b/src/index.css index 3432b94a..8fcd040e 100644 --- a/src/index.css +++ b/src/index.css @@ -1,28 +1,28 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - @font-face { - font-family: "Inter"; - src: url("/Inter.woff2") format("woff2"); - font-display: fallback; - } -} - -html { - color-scheme: light dark; -} - -#root { - height: 100%; - width: 100%; -} - -body { - margin: 0; - min-width: 320px; - - width: 100vw; - height: 100vh; -} +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + @font-face { + font-family: "Inter"; + src: url("/Inter.woff2") format("woff2"); + font-display: fallback; + } +} + +html { + color-scheme: light dark; +} + +#root { + height: 100%; + width: 100%; +} + +body { + margin: 0; + min-width: 320px; + + width: 100vw; + height: 100vh; +} diff --git a/src/keyboard-and-consumer-usage-tables.json b/src/keyboard-and-consumer-usage-tables.json index cff60885..9f69d107 100644 --- a/src/keyboard-and-consumer-usage-tables.json +++ b/src/keyboard-and-consumer-usage-tables.json @@ -1,4696 +1,4696 @@ -{ - "UsagePages": [ - { - "Kind": "Defined", - "Id": 12, - "Name": "Consumer", - "UsageIds": [ - { - "Id": 1, - "Name": "Consumer Control", - "Kinds": [ - "CA" - ] - }, - { - "Id": 2, - "Name": "Numeric Key Pad", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 3, - "Name": "Programmable Buttons", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 4, - "Name": "Microphone", - "Kinds": [ - "CA" - ] - }, - { - "Id": 5, - "Name": "Headphone", - "Kinds": [ - "CA" - ] - }, - { - "Id": 6, - "Name": "Graphic Equalizer", - "Kinds": [ - "CA" - ] - }, - { - "Id": 32, - "Name": "+10", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 33, - "Name": "+100", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 34, - "Name": "AM/PM", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 48, - "Name": "Power", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 49, - "Name": "Reset", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 50, - "Name": "Sleep", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 51, - "Name": "Sleep After", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 52, - "Name": "Sleep Mode", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 53, - "Name": "Illumination", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 54, - "Name": "Function Buttons", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 64, - "Name": "Menu", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 65, - "Name": "Menu Pick", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 66, - "Name": "Menu Up", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 67, - "Name": "Menu Down", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 68, - "Name": "Menu Left", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 69, - "Name": "Menu Right", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 70, - "Name": "Menu Escape", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 71, - "Name": "Menu Value Increase", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 72, - "Name": "Menu Value Decrease", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 96, - "Name": "Data On Screen", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 97, - "Name": "Closed Caption", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 98, - "Name": "Closed Caption Select", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 99, - "Name": "VCR/TV", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 100, - "Name": "Broadcast Mode", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 101, - "Name": "Snapshot", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 102, - "Name": "Still", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 103, - "Name": "Picture-in-Picture Toggle", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 104, - "Name": "Picture-in-Picture Swap", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 105, - "Name": "Red Menu Button", - "Kinds": [ - "MC" - ] - }, - { - "Id": 106, - "Name": "Green Menu Button", - "Kinds": [ - "MC" - ] - }, - { - "Id": 107, - "Name": "Blue Menu Button", - "Kinds": [ - "MC" - ] - }, - { - "Id": 108, - "Name": "Yellow Menu Button", - "Kinds": [ - "MC" - ] - }, - { - "Id": 109, - "Name": "Aspect", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 110, - "Name": "3D Mode Select", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 111, - "Name": "Display Brightness Increment", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 112, - "Name": "Display Brightness Decrement", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 113, - "Name": "Display Brightness", - "Kinds": [ - "LC" - ] - }, - { - "Id": 114, - "Name": "Display Backlight Toggle", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 115, - "Name": "Display Set Brightness to Minimum", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 116, - "Name": "Display Set Brightness to Maximum", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 117, - "Name": "Display Set Auto Brightness", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 118, - "Name": "Camera Access Enabled", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 119, - "Name": "Camera Access Disabled", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 120, - "Name": "Camera Access Toggle", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 121, - "Name": "Keyboard Brightness Increment", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 122, - "Name": "Keyboard Brightness Decrement", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 123, - "Name": "Keyboard Backlight Set Level", - "Kinds": [ - "LC" - ] - }, - { - "Id": 124, - "Name": "Keyboard Backlight OOC", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 125, - "Name": "Keyboard Backlight Set Minimum", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 126, - "Name": "Keyboard Backlight Set Maximum", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 127, - "Name": "Keyboard Backlight Auto", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 128, - "Name": "Selection", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 129, - "Name": "Assign Selection", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 130, - "Name": "Mode Step", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 131, - "Name": "Recall Last", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 132, - "Name": "Enter Channel", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 133, - "Name": "Order Movie", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 134, - "Name": "Channel", - "Kinds": [ - "LC" - ] - }, - { - "Id": 135, - "Name": "Media Selection", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 136, - "Name": "Media Select Computer", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 137, - "Name": "Media Select TV", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 138, - "Name": "Media Select WWW", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 139, - "Name": "Media Select DVD", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 140, - "Name": "Media Select Telephone", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 141, - "Name": "Media Select Program Guide", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 142, - "Name": "Media Select Video Phone", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 143, - "Name": "Media Select Games", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 144, - "Name": "Media Select Messages", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 145, - "Name": "Media Select CD", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 146, - "Name": "Media Select VCR", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 147, - "Name": "Media Select Tuner", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 148, - "Name": "Quit", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 149, - "Name": "Help", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 150, - "Name": "Media Select Tape", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 151, - "Name": "Media Select Cable", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 152, - "Name": "Media Select Satellite", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 153, - "Name": "Media Select Security", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 154, - "Name": "Media Select Home", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 155, - "Name": "Media Select Call", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 156, - "Name": "Channel Increment", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 157, - "Name": "Channel Decrement", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 158, - "Name": "Media Select SAP", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 160, - "Name": "VCR Plus", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 161, - "Name": "Once", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 162, - "Name": "Daily", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 163, - "Name": "Weekly", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 164, - "Name": "Monthly", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 176, - "Name": "Play", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 177, - "Name": "Pause", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 178, - "Name": "Record", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 179, - "Name": "Fast Forward", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 180, - "Name": "Rewind", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 181, - "Name": "Scan Next Track", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 182, - "Name": "Scan Previous Track", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 183, - "Name": "Stop", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 184, - "Name": "Eject", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 185, - "Name": "Random Play", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 186, - "Name": "Select Disc", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 187, - "Name": "Enter Disc", - "Kinds": [ - "MC" - ] - }, - { - "Id": 188, - "Name": "Repeat", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 189, - "Name": "Tracking", - "Kinds": [ - "LC" - ] - }, - { - "Id": 190, - "Name": "Track Normal", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 191, - "Name": "Slow Tracking", - "Kinds": [ - "LC" - ] - }, - { - "Id": 192, - "Name": "Frame Forward", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 193, - "Name": "Frame Back", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 194, - "Name": "Mark", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 195, - "Name": "Clear Mark", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 196, - "Name": "Repeat From Mark", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 197, - "Name": "Return To Mark", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 198, - "Name": "Search Mark Forward", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 199, - "Name": "Search Mark Backwards", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 200, - "Name": "Counter Reset", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 201, - "Name": "Show Counter", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 202, - "Name": "Tracking Increment", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 203, - "Name": "Tracking Decrement", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 204, - "Name": "Stop/Eject", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 205, - "Name": "Play/Pause", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 206, - "Name": "Play/Skip", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 207, - "Name": "Voice Command", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 208, - "Name": "Invoke Capture Interface", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 209, - "Name": "Start or Stop Game Recording", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 210, - "Name": "Historical Game Capture", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 211, - "Name": "Capture Game Screenshot", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 212, - "Name": "Show or Hide Recording Indicator", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 213, - "Name": "Start or Stop Microphone Capture", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 214, - "Name": "Start or Stop Camera Capture", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 215, - "Name": "Start or Stop Game Broadcast", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 216, - "Name": "Start or Stop Voice Dictation Session", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 217, - "Name": "Invoke/Dismiss Emoji Picker", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 224, - "Name": "Volume", - "Kinds": [ - "LC" - ] - }, - { - "Id": 225, - "Name": "Balance", - "Kinds": [ - "LC" - ] - }, - { - "Id": 226, - "Name": "Mute", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 227, - "Name": "Bass", - "Kinds": [ - "LC" - ] - }, - { - "Id": 228, - "Name": "Treble", - "Kinds": [ - "LC" - ] - }, - { - "Id": 229, - "Name": "Bass Boost", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 230, - "Name": "Surround Mode", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 231, - "Name": "Loudness", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 232, - "Name": "MPX", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 233, - "Name": "Volume Increment", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 234, - "Name": "Volume Decrement", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 240, - "Name": "Speed Select", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 241, - "Name": "Playback Speed", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 242, - "Name": "Standard Play", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 243, - "Name": "Long Play", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 244, - "Name": "Extended Play", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 245, - "Name": "Slow", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 256, - "Name": "Fan Enable", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 257, - "Name": "Fan Speed", - "Kinds": [ - "LC" - ] - }, - { - "Id": 258, - "Name": "Light Enable", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 259, - "Name": "Light Illumination Level", - "Kinds": [ - "LC" - ] - }, - { - "Id": 260, - "Name": "Climate Control Enable", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 261, - "Name": "Room Temperature", - "Kinds": [ - "LC" - ] - }, - { - "Id": 262, - "Name": "Security Enable", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 263, - "Name": "Fire Alarm", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 264, - "Name": "Police Alarm", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 265, - "Name": "Proximity", - "Kinds": [ - "LC" - ] - }, - { - "Id": 266, - "Name": "Motion", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 267, - "Name": "Duress Alarm", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 268, - "Name": "Holdup Alarm", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 269, - "Name": "Medical Alarm", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 336, - "Name": "Balance Right", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 337, - "Name": "Balance Left", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 338, - "Name": "Bass Increment", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 339, - "Name": "Bass Decrement", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 340, - "Name": "Treble Increment", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 341, - "Name": "Treble Decrement", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 352, - "Name": "Speaker System", - "Kinds": [ - "CL" - ] - }, - { - "Id": 353, - "Name": "Channel Left", - "Kinds": [ - "CL" - ] - }, - { - "Id": 354, - "Name": "Channel Right", - "Kinds": [ - "CL" - ] - }, - { - "Id": 355, - "Name": "Channel Center", - "Kinds": [ - "CL" - ] - }, - { - "Id": 356, - "Name": "Channel Front", - "Kinds": [ - "CL" - ] - }, - { - "Id": 357, - "Name": "Channel Center Front", - "Kinds": [ - "CL" - ] - }, - { - "Id": 358, - "Name": "Channel Side", - "Kinds": [ - "CL" - ] - }, - { - "Id": 359, - "Name": "Channel Surround", - "Kinds": [ - "CL" - ] - }, - { - "Id": 360, - "Name": "Channel Low Frequency Enhancement", - "Kinds": [ - "CL" - ] - }, - { - "Id": 361, - "Name": "Channel Top", - "Kinds": [ - "CL" - ] - }, - { - "Id": 362, - "Name": "Channel Unknown", - "Kinds": [ - "CL" - ] - }, - { - "Id": 368, - "Name": "Sub-channel", - "Kinds": [ - "LC" - ] - }, - { - "Id": 369, - "Name": "Sub-channel Increment", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 370, - "Name": "Sub-channel Decrement", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 371, - "Name": "Alternate Audio Increment", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 372, - "Name": "Alternate Audio Decrement", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 384, - "Name": "Application Launch Buttons", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 385, - "Name": "AL Launch Button Configuration Tool", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 386, - "Name": "AL Programmable Button Configuration", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 387, - "Name": "AL Consumer Control Configuration", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 388, - "Name": "AL Word Processor", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 389, - "Name": "AL Text Editor", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 390, - "Name": "AL Spreadsheet", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 391, - "Name": "AL Graphics Editor", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 392, - "Name": "AL Presentation App", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 393, - "Name": "AL Database App", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 394, - "Name": "AL Email Reader", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 395, - "Name": "AL Newsreader", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 396, - "Name": "AL Voicemail", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 397, - "Name": "AL Contacts/Address Book", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 398, - "Name": "AL Calendar/Schedule", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 399, - "Name": "AL Task/Project Manager", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 400, - "Name": "AL Log/Journal/Timecard", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 401, - "Name": "AL Checkbook/Finance", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 402, - "Name": "AL Calculator", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 403, - "Name": "AL A/V Capture/Playback", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 404, - "Name": "AL Local Machine Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 405, - "Name": "AL LAN/WAN Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 406, - "Name": "AL Internet Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 407, - "Name": "AL Remote Networking/ISP Connect", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 408, - "Name": "AL Network Conference", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 409, - "Name": "AL Network Chat", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 410, - "Name": "AL Telephony/Dialer", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 411, - "Name": "AL Logon", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 412, - "Name": "AL Logoff", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 413, - "Name": "AL Logon/Logoff", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 414, - "Name": "AL Terminal Lock/Screensaver", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 415, - "Name": "AL Control Panel", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 416, - "Name": "AL Command Line Processor/Run", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 417, - "Name": "AL Process/Task Manager", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 418, - "Name": "AL Select Task/Application", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 419, - "Name": "AL Next Task/Application", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 420, - "Name": "AL Previous Task/Application", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 421, - "Name": "AL Preemptive Halt Task/Application", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 422, - "Name": "AL Integrated Help Center", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 423, - "Name": "AL Documents", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 424, - "Name": "AL Thesaurus", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 425, - "Name": "AL Dictionary", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 426, - "Name": "AL Desktop", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 427, - "Name": "AL Spell Check", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 428, - "Name": "AL Grammar Check", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 429, - "Name": "AL Wireless Status", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 430, - "Name": "AL Keyboard Layout", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 431, - "Name": "AL Virus Protection", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 432, - "Name": "AL Encryption", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 433, - "Name": "AL Screen Saver", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 434, - "Name": "AL Alarms", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 435, - "Name": "AL Clock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 436, - "Name": "AL File Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 437, - "Name": "AL Power Status", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 438, - "Name": "AL Image Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 439, - "Name": "AL Audio Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 440, - "Name": "AL Movie Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 441, - "Name": "AL Digital Rights Manager", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 442, - "Name": "AL Digital Wallet", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 444, - "Name": "AL Instant Messaging", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 445, - "Name": "AL OEM Features/ Tips/Tutorial Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 446, - "Name": "AL OEM Help", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 447, - "Name": "AL Online Community", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 448, - "Name": "AL Entertainment Content Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 449, - "Name": "AL Online Shopping Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 450, - "Name": "AL SmartCard Information/Help", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 451, - "Name": "AL Market Monitor/Finance Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 452, - "Name": "AL Customized Corporate News Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 453, - "Name": "AL Online Activity Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 454, - "Name": "AL Research/Search Browser", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 455, - "Name": "AL Audio Player", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 456, - "Name": "AL Message Status", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 457, - "Name": "AL Contact Sync", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 458, - "Name": "AL Navigation", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 459, - "Name": "AL Context‐aware Desktop Assistant", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 512, - "Name": "Generic GUI Application Controls", - "Kinds": [ - "NAry" - ] - }, - { - "Id": 513, - "Name": "AC New", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 514, - "Name": "AC Open", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 515, - "Name": "AC Close", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 516, - "Name": "AC Exit", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 517, - "Name": "AC Maximize", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 518, - "Name": "AC Minimize", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 519, - "Name": "AC Save", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 520, - "Name": "AC Print", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 521, - "Name": "AC Properties", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 538, - "Name": "AC Undo", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 539, - "Name": "AC Copy", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 540, - "Name": "AC Cut", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 541, - "Name": "AC Paste", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 542, - "Name": "AC Select All", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 543, - "Name": "AC Find", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 544, - "Name": "AC Find and Replace", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 545, - "Name": "AC Search", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 546, - "Name": "AC Go To", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 547, - "Name": "AC Home", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 548, - "Name": "AC Back", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 549, - "Name": "AC Forward", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 550, - "Name": "AC Stop", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 551, - "Name": "AC Refresh", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 552, - "Name": "AC Previous Link", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 553, - "Name": "AC Next Link", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 554, - "Name": "AC Bookmarks", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 555, - "Name": "AC History", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 556, - "Name": "AC Subscriptions", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 557, - "Name": "AC Zoom In", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 558, - "Name": "AC Zoom Out", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 559, - "Name": "AC Zoom", - "Kinds": [ - "LC" - ] - }, - { - "Id": 560, - "Name": "AC Full Screen View", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 561, - "Name": "AC Normal View", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 562, - "Name": "AC View Toggle", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 563, - "Name": "AC Scroll Up", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 564, - "Name": "AC Scroll Down", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 565, - "Name": "AC Scroll", - "Kinds": [ - "LC" - ] - }, - { - "Id": 566, - "Name": "AC Pan Left", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 567, - "Name": "AC Pan Right", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 568, - "Name": "AC Pan", - "Kinds": [ - "LC" - ] - }, - { - "Id": 569, - "Name": "AC New Window", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 570, - "Name": "AC Tile Horizontally", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 571, - "Name": "AC Tile Vertically", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 572, - "Name": "AC Format", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 573, - "Name": "AC Edit", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 574, - "Name": "AC Bold", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 575, - "Name": "AC Italics", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 576, - "Name": "AC Underline", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 577, - "Name": "AC Strikethrough", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 578, - "Name": "AC Subscript", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 579, - "Name": "AC Superscript", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 580, - "Name": "AC All Caps", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 581, - "Name": "AC Rotate", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 582, - "Name": "AC Resize", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 583, - "Name": "AC Flip Horizontal", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 584, - "Name": "AC Flip Vertical", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 585, - "Name": "AC Mirror Horizontal", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 586, - "Name": "AC Mirror Vertical", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 587, - "Name": "AC Font Select", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 588, - "Name": "AC Font Color", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 589, - "Name": "AC Font Size", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 590, - "Name": "AC Justify Left", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 591, - "Name": "AC Justify Center H", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 592, - "Name": "AC Justify Right", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 593, - "Name": "AC Justify Block H", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 594, - "Name": "AC Justify Top", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 595, - "Name": "AC Justify Center V", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 596, - "Name": "AC Justify Bottom", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 597, - "Name": "AC Justify Block V", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 598, - "Name": "AC Indent Decrease", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 599, - "Name": "AC Indent Increase", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 600, - "Name": "AC Numbered List", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 601, - "Name": "AC Restart Numbering", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 602, - "Name": "AC Bulleted List", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 603, - "Name": "AC Promote", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 604, - "Name": "AC Demote", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 605, - "Name": "AC Yes", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 606, - "Name": "AC No", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 607, - "Name": "AC Cancel", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 608, - "Name": "AC Catalog", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 609, - "Name": "AC Buy/Checkout", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 610, - "Name": "AC Add to Cart", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 611, - "Name": "AC Expand", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 612, - "Name": "AC Expand All", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 613, - "Name": "AC Collapse", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 614, - "Name": "AC Collapse All", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 615, - "Name": "AC Print Preview", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 616, - "Name": "AC Paste Special", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 617, - "Name": "AC Insert Mode", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 618, - "Name": "AC Delete", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 619, - "Name": "AC Lock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 620, - "Name": "AC Unlock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 621, - "Name": "AC Protect", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 622, - "Name": "AC Unprotect", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 623, - "Name": "AC Attach Comment", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 624, - "Name": "AC Delete Comment", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 625, - "Name": "AC View Comment", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 626, - "Name": "AC Select Word", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 627, - "Name": "AC Select Sentence", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 628, - "Name": "AC Select Paragraph", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 629, - "Name": "AC Select Column", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 630, - "Name": "AC Select Row", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 631, - "Name": "AC Select Table", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 632, - "Name": "AC Select Object", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 633, - "Name": "AC Redo/Repeat", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 634, - "Name": "AC Sort", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 635, - "Name": "AC Sort Ascending", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 636, - "Name": "AC Sort Descending", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 637, - "Name": "AC Filter", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 638, - "Name": "AC Set Clock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 639, - "Name": "AC View Clock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 640, - "Name": "AC Select Time Zone", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 641, - "Name": "AC Edit Time Zones", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 642, - "Name": "AC Set Alarm", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 643, - "Name": "AC Clear Alarm", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 644, - "Name": "AC Snooze Alarm", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 645, - "Name": "AC Reset Alarm", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 646, - "Name": "AC Synchronize", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 647, - "Name": "AC Send/Receive", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 648, - "Name": "AC Send To", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 649, - "Name": "AC Reply", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 650, - "Name": "AC Reply All", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 651, - "Name": "AC Forward Msg", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 652, - "Name": "AC Send", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 653, - "Name": "AC Attach File", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 654, - "Name": "AC Upload", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 655, - "Name": "AC Download (Save Target As)", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 656, - "Name": "AC Set Borders", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 657, - "Name": "AC Insert Row", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 658, - "Name": "AC Insert Column", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 659, - "Name": "AC Insert File", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 660, - "Name": "AC Insert Picture", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 661, - "Name": "AC Insert Object", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 662, - "Name": "AC Insert Symbol", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 663, - "Name": "AC Save and Close", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 664, - "Name": "AC Rename", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 665, - "Name": "AC Merge", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 666, - "Name": "AC Split", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 667, - "Name": "AC Disribute Horizontally", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 668, - "Name": "AC Distribute Vertically", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 669, - "Name": "AC Next Keyboard Layout Select", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 670, - "Name": "AC Navigation Guidance", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 671, - "Name": "AC Desktop Show All Windows", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 672, - "Name": "AC Soft Key Left", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 673, - "Name": "AC Soft Key Right", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 674, - "Name": "AC Desktop Show All Applications", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 688, - "Name": "AC Idle Keep Alive", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 704, - "Name": "Extended Keyboard Attributes Collection", - "Kinds": [ - "CL" - ] - }, - { - "Id": 705, - "Name": "Keyboard Form Factor", - "Kinds": [ - "SV" - ] - }, - { - "Id": 706, - "Name": "Keyboard Key Type", - "Kinds": [ - "SV" - ] - }, - { - "Id": 707, - "Name": "Keyboard Physical Layout", - "Kinds": [ - "SV" - ] - }, - { - "Id": 708, - "Name": "Vendor‐Specific Keyboard Physical Layout", - "Kinds": [ - "SV" - ] - }, - { - "Id": 709, - "Name": "Keyboard IETF Language Tag Index", - "Kinds": [ - "SV" - ] - }, - { - "Id": 710, - "Name": "Implemented Keyboard Input Assist Controls", - "Kinds": [ - "SV" - ] - }, - { - "Id": 711, - "Name": "Keyboard Input Assist Previous", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 712, - "Name": "Keyboard Input Assist Next", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 713, - "Name": "Keyboard Input Assist Previous Group", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 714, - "Name": "Keyboard Input Assist Next Group", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 715, - "Name": "Keyboard Input Assist Accept", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 716, - "Name": "Keyboard Input Assist Cancel", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 720, - "Name": "Privacy Screen Toggle", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 721, - "Name": "Privacy Screen Level Decrement", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 722, - "Name": "Privacy Screen Level Increment", - "Kinds": [ - "RTC" - ] - }, - { - "Id": 723, - "Name": "Privacy Screen Level Minimum", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 724, - "Name": "Privacy Screen Level Maximum", - "Kinds": [ - "OSC" - ] - }, - { - "Id": 1280, - "Name": "Contact Edited", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 1281, - "Name": "Contact Added", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 1282, - "Name": "Contact Record Active", - "Kinds": [ - "OOC" - ] - }, - { - "Id": 1283, - "Name": "Contact Index", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1284, - "Name": "Contact Nickname", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1285, - "Name": "Contact First Name", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1286, - "Name": "Contact Last Name", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1287, - "Name": "Contact Full Name", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1288, - "Name": "Contact Phone Number Personal", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1289, - "Name": "Contact Phone Number Business", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1290, - "Name": "Contact Phone Number Mobile", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1291, - "Name": "Contact Phone Number Pager", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1292, - "Name": "Contact Phone Number Fax", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1293, - "Name": "Contact Phone Number Other", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1294, - "Name": "Contact Email Personal", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1295, - "Name": "Contact Email Business", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1296, - "Name": "Contact Email Other", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1297, - "Name": "Contact Email Main", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1298, - "Name": "Contact Speed Dial Number", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1299, - "Name": "Contact Status Flag", - "Kinds": [ - "DV" - ] - }, - { - "Id": 1300, - "Name": "Contact Misc.", - "Kinds": [ - "DV" - ] - } - ], - "UsageIdGenerator": null - }, - { - "Kind": "Defined", - "Id": 7, - "Name": "Keyboard/Keypad", - "UsageIds": [ - { - "Id": 1, - "Name": "ErrorRollOver", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 2, - "Name": "POSTFail", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 3, - "Name": "ErrorUndefined", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 4, - "Name": "Keyboard A", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 5, - "Name": "Keyboard B", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 6, - "Name": "Keyboard C", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 7, - "Name": "Keyboard D", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 8, - "Name": "Keyboard E", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 9, - "Name": "Keyboard F", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 10, - "Name": "Keyboard G", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 11, - "Name": "Keyboard H", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 12, - "Name": "Keyboard I", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 13, - "Name": "Keyboard J", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 14, - "Name": "Keyboard K", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 15, - "Name": "Keyboard L", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 16, - "Name": "Keyboard M", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 17, - "Name": "Keyboard N", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 18, - "Name": "Keyboard O", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 19, - "Name": "Keyboard P", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 20, - "Name": "Keyboard Q", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 21, - "Name": "Keyboard R", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 22, - "Name": "Keyboard S", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 23, - "Name": "Keyboard T", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 24, - "Name": "Keyboard U", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 25, - "Name": "Keyboard V", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 26, - "Name": "Keyboard W", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 27, - "Name": "Keyboard X", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 28, - "Name": "Keyboard Y", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 29, - "Name": "Keyboard Z", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 30, - "Name": "Keyboard 1 and Bang", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 31, - "Name": "Keyboard 2 and At", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 32, - "Name": "Keyboard 3 and Hash", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 33, - "Name": "Keyboard 4 and Dollar", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 34, - "Name": "Keyboard 5 and Percent", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 35, - "Name": "Keyboard 6 and Caret", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 36, - "Name": "Keyboard 7 and Ampersand", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 37, - "Name": "Keyboard 8 and Star", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 38, - "Name": "Keyboard 9 and Left Bracket", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 39, - "Name": "Keyboard 0 and Right Bracket", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 40, - "Name": "Keyboard Return Enter", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 41, - "Name": "Keyboard Escape", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 42, - "Name": "Keyboard Delete", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 43, - "Name": "Keyboard Tab", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 44, - "Name": "Keyboard Spacebar", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 45, - "Name": "Keyboard Dash and Underscore", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 46, - "Name": "Keyboard Equals and Plus", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 47, - "Name": "Keyboard Left Brace", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 48, - "Name": "Keyboard Right Brace", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 49, - "Name": "Keyboard Backslash and Pipe", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 50, - "Name": "Keyboard Non-US Hash and Tilde", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 51, - "Name": "Keyboard SemiColon and Colon", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 52, - "Name": "Keyboard Left Apos and Double", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 53, - "Name": "Keyboard Grave Accent and Tilde", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 54, - "Name": "Keyboard Comma and LessThan", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 55, - "Name": "Keyboard Period and GreaterThan", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 56, - "Name": "Keyboard ForwardSlash and QuestionMark", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 57, - "Name": "Keyboard Caps Lock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 58, - "Name": "Keyboard F1", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 59, - "Name": "Keyboard F2", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 60, - "Name": "Keyboard F3", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 61, - "Name": "Keyboard F4", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 62, - "Name": "Keyboard F5", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 63, - "Name": "Keyboard F6", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 64, - "Name": "Keyboard F7", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 65, - "Name": "Keyboard F8", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 66, - "Name": "Keyboard F9", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 67, - "Name": "Keyboard F10", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 68, - "Name": "Keyboard F11", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 69, - "Name": "Keyboard F12", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 70, - "Name": "Keyboard PrintScreen", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 71, - "Name": "Keyboard Scroll Lock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 72, - "Name": "Keyboard Pause", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 73, - "Name": "Keyboard Insert", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 74, - "Name": "Keyboard Home", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 75, - "Name": "Keyboard PageUp", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 76, - "Name": "Keyboard Delete Forward", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 77, - "Name": "Keyboard End", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 78, - "Name": "Keyboard PageDown", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 79, - "Name": "Keyboard RightArrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 80, - "Name": "Keyboard LeftArrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 81, - "Name": "Keyboard DownArrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 82, - "Name": "Keyboard UpArrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 83, - "Name": "Keypad Num Lock and Clear", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 84, - "Name": "Keypad ForwardSlash", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 85, - "Name": "Keypad Star", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 86, - "Name": "Keypad Dash", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 87, - "Name": "Keypad Plus", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 88, - "Name": "Keypad ENTER", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 89, - "Name": "Keypad 1 and End", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 90, - "Name": "Keypad 2 and Down Arrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 91, - "Name": "Keypad 3 and PageDn", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 92, - "Name": "Keypad 4 and Left Arrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 93, - "Name": "Keypad 5", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 94, - "Name": "Keypad 6 and Right Arrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 95, - "Name": "Keypad 7 and Home", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 96, - "Name": "Keypad 8 and Up Arrow", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 97, - "Name": "Keypad 9 and PageUp", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 98, - "Name": "Keypad 0 and Insert", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 99, - "Name": "Keypad Period and Delete", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 100, - "Name": "Keyboard Non-US Backslash and Pipe", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 101, - "Name": "Keyboard Application", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 102, - "Name": "Keyboard Power", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 103, - "Name": "Keypad Equals", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 104, - "Name": "Keyboard F13", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 105, - "Name": "Keyboard F14", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 106, - "Name": "Keyboard F15", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 107, - "Name": "Keyboard F16", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 108, - "Name": "Keyboard F17", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 109, - "Name": "Keyboard F18", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 110, - "Name": "Keyboard F19", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 111, - "Name": "Keyboard F20", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 112, - "Name": "Keyboard F21", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 113, - "Name": "Keyboard F22", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 114, - "Name": "Keyboard F23", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 115, - "Name": "Keyboard F24", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 116, - "Name": "Keyboard Execute", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 117, - "Name": "Keyboard Help", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 118, - "Name": "Keyboard Menu", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 119, - "Name": "Keyboard Select", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 120, - "Name": "Keyboard Stop", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 121, - "Name": "Keyboard Again", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 122, - "Name": "Keyboard Undo", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 123, - "Name": "Keyboard Cut", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 124, - "Name": "Keyboard Copy", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 125, - "Name": "Keyboard Paste", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 126, - "Name": "Keyboard Find", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 127, - "Name": "Keyboard Mute", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 128, - "Name": "Keyboard Volume Up", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 129, - "Name": "Keyboard Volume Down", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 130, - "Name": "Keyboard Locking Caps Lock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 131, - "Name": "Keyboard Locking Num Lock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 132, - "Name": "Keyboard Locking Scroll Lock", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 133, - "Name": "Keypad Comma", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 134, - "Name": "Keypad Equal Sign", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 135, - "Name": "Keyboard International1", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 136, - "Name": "Keyboard International2", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 137, - "Name": "Keyboard International3", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 138, - "Name": "Keyboard International4", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 139, - "Name": "Keyboard International5", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 140, - "Name": "Keyboard International6", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 141, - "Name": "Keyboard International7", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 142, - "Name": "Keyboard International8", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 143, - "Name": "Keyboard International9", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 144, - "Name": "Keyboard LANG1", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 145, - "Name": "Keyboard LANG2", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 146, - "Name": "Keyboard LANG3", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 147, - "Name": "Keyboard LANG4", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 148, - "Name": "Keyboard LANG5", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 149, - "Name": "Keyboard LANG6", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 150, - "Name": "Keyboard LANG7", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 151, - "Name": "Keyboard LANG8", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 152, - "Name": "Keyboard LANG9", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 153, - "Name": "Keyboard Alternate Erase", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 154, - "Name": "Keyboard SysReq Attention", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 155, - "Name": "Keyboard Cancel", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 156, - "Name": "Keyboard Clear", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 157, - "Name": "Keyboard Prior", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 158, - "Name": "Keyboard Return", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 159, - "Name": "Keyboard Separator", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 160, - "Name": "Keyboard Out", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 161, - "Name": "Keyboard Oper", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 162, - "Name": "Keyboard Clear Again", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 163, - "Name": "Keyboard CrSel Props", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 164, - "Name": "Keyboard ExSel", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 176, - "Name": "Keypad Double 0", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 177, - "Name": "Keypad Triple 0", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 178, - "Name": "Thousands Separator", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 179, - "Name": "Decimal Separator", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 180, - "Name": "Currency Unit", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 181, - "Name": "Currency Sub-unit", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 182, - "Name": "Keypad Left Bracket", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 183, - "Name": "Keypad Right Bracket", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 184, - "Name": "Keypad Left Brace", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 185, - "Name": "Keypad Right Brace", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 186, - "Name": "Keypad Tab", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 187, - "Name": "Keypad Backspace", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 188, - "Name": "Keypad A", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 189, - "Name": "Keypad B", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 190, - "Name": "Keypad C", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 191, - "Name": "Keypad D", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 192, - "Name": "Keypad E", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 193, - "Name": "Keypad F", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 194, - "Name": "Keypad XOR", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 195, - "Name": "Keypad Caret", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 196, - "Name": "Keypad Percentage", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 197, - "Name": "Keypad Less", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 198, - "Name": "Keypad Greater", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 199, - "Name": "Keypad Ampersand", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 200, - "Name": "Keypad Double Ampersand", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 201, - "Name": "Keypad Bar", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 202, - "Name": "Keypad Double Bar", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 203, - "Name": "Keypad Colon", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 204, - "Name": "Keypad Hash", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 205, - "Name": "Keypad Space", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 206, - "Name": "Keypad At", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 207, - "Name": "Keypad Bang", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 208, - "Name": "Keypad Memory Store", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 209, - "Name": "Keypad Memory Recall", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 210, - "Name": "Keypad Memory Clear", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 211, - "Name": "Keypad Memory Add", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 212, - "Name": "Keypad Memory Subtract", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 213, - "Name": "Keypad Memory Multiply", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 214, - "Name": "Keypad Memory Divide", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 215, - "Name": "Keypad Plus Minus", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 216, - "Name": "Keypad Clear", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 217, - "Name": "Keypad Clear Entry", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 218, - "Name": "Keypad Binary", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 219, - "Name": "Keypad Octal", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 220, - "Name": "Keypad Decimal", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 221, - "Name": "Keypad Hexadecimal", - "Kinds": [ - "Sel" - ] - }, - { - "Id": 224, - "Name": "Keyboard LeftControl", - "Kinds": [ - "DV" - ] - }, - { - "Id": 225, - "Name": "Keyboard LeftShift", - "Kinds": [ - "DV" - ] - }, - { - "Id": 226, - "Name": "Keyboard LeftAlt", - "Kinds": [ - "DV" - ] - }, - { - "Id": 227, - "Name": "Keyboard Left GUI", - "Kinds": [ - "DV" - ] - }, - { - "Id": 228, - "Name": "Keyboard RightControl", - "Kinds": [ - "DV" - ] - }, - { - "Id": 229, - "Name": "Keyboard RightShift", - "Kinds": [ - "DV" - ] - }, - { - "Id": 230, - "Name": "Keyboard RightAlt", - "Kinds": [ - "DV" - ] - }, - { - "Id": 231, - "Name": "Keyboard Right GUI", - "Kinds": [ - "DV" - ] - } - ], - "UsageIdGenerator": null - } - ] -} +{ + "UsagePages": [ + { + "Kind": "Defined", + "Id": 12, + "Name": "Consumer", + "UsageIds": [ + { + "Id": 1, + "Name": "Consumer Control", + "Kinds": [ + "CA" + ] + }, + { + "Id": 2, + "Name": "Numeric Key Pad", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 3, + "Name": "Programmable Buttons", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 4, + "Name": "Microphone", + "Kinds": [ + "CA" + ] + }, + { + "Id": 5, + "Name": "Headphone", + "Kinds": [ + "CA" + ] + }, + { + "Id": 6, + "Name": "Graphic Equalizer", + "Kinds": [ + "CA" + ] + }, + { + "Id": 32, + "Name": "+10", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 33, + "Name": "+100", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 34, + "Name": "AM/PM", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 48, + "Name": "Power", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 49, + "Name": "Reset", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 50, + "Name": "Sleep", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 51, + "Name": "Sleep After", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 52, + "Name": "Sleep Mode", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 53, + "Name": "Illumination", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 54, + "Name": "Function Buttons", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 64, + "Name": "Menu", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 65, + "Name": "Menu Pick", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 66, + "Name": "Menu Up", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 67, + "Name": "Menu Down", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 68, + "Name": "Menu Left", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 69, + "Name": "Menu Right", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 70, + "Name": "Menu Escape", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 71, + "Name": "Menu Value Increase", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 72, + "Name": "Menu Value Decrease", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 96, + "Name": "Data On Screen", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 97, + "Name": "Closed Caption", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 98, + "Name": "Closed Caption Select", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 99, + "Name": "VCR/TV", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 100, + "Name": "Broadcast Mode", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 101, + "Name": "Snapshot", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 102, + "Name": "Still", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 103, + "Name": "Picture-in-Picture Toggle", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 104, + "Name": "Picture-in-Picture Swap", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 105, + "Name": "Red Menu Button", + "Kinds": [ + "MC" + ] + }, + { + "Id": 106, + "Name": "Green Menu Button", + "Kinds": [ + "MC" + ] + }, + { + "Id": 107, + "Name": "Blue Menu Button", + "Kinds": [ + "MC" + ] + }, + { + "Id": 108, + "Name": "Yellow Menu Button", + "Kinds": [ + "MC" + ] + }, + { + "Id": 109, + "Name": "Aspect", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 110, + "Name": "3D Mode Select", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 111, + "Name": "Display Brightness Increment", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 112, + "Name": "Display Brightness Decrement", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 113, + "Name": "Display Brightness", + "Kinds": [ + "LC" + ] + }, + { + "Id": 114, + "Name": "Display Backlight Toggle", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 115, + "Name": "Display Set Brightness to Minimum", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 116, + "Name": "Display Set Brightness to Maximum", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 117, + "Name": "Display Set Auto Brightness", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 118, + "Name": "Camera Access Enabled", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 119, + "Name": "Camera Access Disabled", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 120, + "Name": "Camera Access Toggle", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 121, + "Name": "Keyboard Brightness Increment", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 122, + "Name": "Keyboard Brightness Decrement", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 123, + "Name": "Keyboard Backlight Set Level", + "Kinds": [ + "LC" + ] + }, + { + "Id": 124, + "Name": "Keyboard Backlight OOC", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 125, + "Name": "Keyboard Backlight Set Minimum", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 126, + "Name": "Keyboard Backlight Set Maximum", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 127, + "Name": "Keyboard Backlight Auto", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 128, + "Name": "Selection", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 129, + "Name": "Assign Selection", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 130, + "Name": "Mode Step", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 131, + "Name": "Recall Last", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 132, + "Name": "Enter Channel", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 133, + "Name": "Order Movie", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 134, + "Name": "Channel", + "Kinds": [ + "LC" + ] + }, + { + "Id": 135, + "Name": "Media Selection", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 136, + "Name": "Media Select Computer", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 137, + "Name": "Media Select TV", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 138, + "Name": "Media Select WWW", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 139, + "Name": "Media Select DVD", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 140, + "Name": "Media Select Telephone", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 141, + "Name": "Media Select Program Guide", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 142, + "Name": "Media Select Video Phone", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 143, + "Name": "Media Select Games", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 144, + "Name": "Media Select Messages", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 145, + "Name": "Media Select CD", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 146, + "Name": "Media Select VCR", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 147, + "Name": "Media Select Tuner", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 148, + "Name": "Quit", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 149, + "Name": "Help", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 150, + "Name": "Media Select Tape", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 151, + "Name": "Media Select Cable", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 152, + "Name": "Media Select Satellite", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 153, + "Name": "Media Select Security", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 154, + "Name": "Media Select Home", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 155, + "Name": "Media Select Call", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 156, + "Name": "Channel Increment", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 157, + "Name": "Channel Decrement", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 158, + "Name": "Media Select SAP", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 160, + "Name": "VCR Plus", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 161, + "Name": "Once", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 162, + "Name": "Daily", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 163, + "Name": "Weekly", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 164, + "Name": "Monthly", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 176, + "Name": "Play", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 177, + "Name": "Pause", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 178, + "Name": "Record", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 179, + "Name": "Fast Forward", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 180, + "Name": "Rewind", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 181, + "Name": "Scan Next Track", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 182, + "Name": "Scan Previous Track", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 183, + "Name": "Stop", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 184, + "Name": "Eject", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 185, + "Name": "Random Play", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 186, + "Name": "Select Disc", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 187, + "Name": "Enter Disc", + "Kinds": [ + "MC" + ] + }, + { + "Id": 188, + "Name": "Repeat", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 189, + "Name": "Tracking", + "Kinds": [ + "LC" + ] + }, + { + "Id": 190, + "Name": "Track Normal", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 191, + "Name": "Slow Tracking", + "Kinds": [ + "LC" + ] + }, + { + "Id": 192, + "Name": "Frame Forward", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 193, + "Name": "Frame Back", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 194, + "Name": "Mark", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 195, + "Name": "Clear Mark", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 196, + "Name": "Repeat From Mark", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 197, + "Name": "Return To Mark", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 198, + "Name": "Search Mark Forward", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 199, + "Name": "Search Mark Backwards", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 200, + "Name": "Counter Reset", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 201, + "Name": "Show Counter", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 202, + "Name": "Tracking Increment", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 203, + "Name": "Tracking Decrement", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 204, + "Name": "Stop/Eject", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 205, + "Name": "Play/Pause", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 206, + "Name": "Play/Skip", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 207, + "Name": "Voice Command", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 208, + "Name": "Invoke Capture Interface", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 209, + "Name": "Start or Stop Game Recording", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 210, + "Name": "Historical Game Capture", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 211, + "Name": "Capture Game Screenshot", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 212, + "Name": "Show or Hide Recording Indicator", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 213, + "Name": "Start or Stop Microphone Capture", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 214, + "Name": "Start or Stop Camera Capture", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 215, + "Name": "Start or Stop Game Broadcast", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 216, + "Name": "Start or Stop Voice Dictation Session", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 217, + "Name": "Invoke/Dismiss Emoji Picker", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 224, + "Name": "Volume", + "Kinds": [ + "LC" + ] + }, + { + "Id": 225, + "Name": "Balance", + "Kinds": [ + "LC" + ] + }, + { + "Id": 226, + "Name": "Mute", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 227, + "Name": "Bass", + "Kinds": [ + "LC" + ] + }, + { + "Id": 228, + "Name": "Treble", + "Kinds": [ + "LC" + ] + }, + { + "Id": 229, + "Name": "Bass Boost", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 230, + "Name": "Surround Mode", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 231, + "Name": "Loudness", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 232, + "Name": "MPX", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 233, + "Name": "Volume Increment", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 234, + "Name": "Volume Decrement", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 240, + "Name": "Speed Select", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 241, + "Name": "Playback Speed", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 242, + "Name": "Standard Play", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 243, + "Name": "Long Play", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 244, + "Name": "Extended Play", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 245, + "Name": "Slow", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 256, + "Name": "Fan Enable", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 257, + "Name": "Fan Speed", + "Kinds": [ + "LC" + ] + }, + { + "Id": 258, + "Name": "Light Enable", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 259, + "Name": "Light Illumination Level", + "Kinds": [ + "LC" + ] + }, + { + "Id": 260, + "Name": "Climate Control Enable", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 261, + "Name": "Room Temperature", + "Kinds": [ + "LC" + ] + }, + { + "Id": 262, + "Name": "Security Enable", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 263, + "Name": "Fire Alarm", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 264, + "Name": "Police Alarm", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 265, + "Name": "Proximity", + "Kinds": [ + "LC" + ] + }, + { + "Id": 266, + "Name": "Motion", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 267, + "Name": "Duress Alarm", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 268, + "Name": "Holdup Alarm", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 269, + "Name": "Medical Alarm", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 336, + "Name": "Balance Right", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 337, + "Name": "Balance Left", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 338, + "Name": "Bass Increment", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 339, + "Name": "Bass Decrement", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 340, + "Name": "Treble Increment", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 341, + "Name": "Treble Decrement", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 352, + "Name": "Speaker System", + "Kinds": [ + "CL" + ] + }, + { + "Id": 353, + "Name": "Channel Left", + "Kinds": [ + "CL" + ] + }, + { + "Id": 354, + "Name": "Channel Right", + "Kinds": [ + "CL" + ] + }, + { + "Id": 355, + "Name": "Channel Center", + "Kinds": [ + "CL" + ] + }, + { + "Id": 356, + "Name": "Channel Front", + "Kinds": [ + "CL" + ] + }, + { + "Id": 357, + "Name": "Channel Center Front", + "Kinds": [ + "CL" + ] + }, + { + "Id": 358, + "Name": "Channel Side", + "Kinds": [ + "CL" + ] + }, + { + "Id": 359, + "Name": "Channel Surround", + "Kinds": [ + "CL" + ] + }, + { + "Id": 360, + "Name": "Channel Low Frequency Enhancement", + "Kinds": [ + "CL" + ] + }, + { + "Id": 361, + "Name": "Channel Top", + "Kinds": [ + "CL" + ] + }, + { + "Id": 362, + "Name": "Channel Unknown", + "Kinds": [ + "CL" + ] + }, + { + "Id": 368, + "Name": "Sub-channel", + "Kinds": [ + "LC" + ] + }, + { + "Id": 369, + "Name": "Sub-channel Increment", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 370, + "Name": "Sub-channel Decrement", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 371, + "Name": "Alternate Audio Increment", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 372, + "Name": "Alternate Audio Decrement", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 384, + "Name": "Application Launch Buttons", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 385, + "Name": "AL Launch Button Configuration Tool", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 386, + "Name": "AL Programmable Button Configuration", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 387, + "Name": "AL Consumer Control Configuration", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 388, + "Name": "AL Word Processor", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 389, + "Name": "AL Text Editor", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 390, + "Name": "AL Spreadsheet", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 391, + "Name": "AL Graphics Editor", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 392, + "Name": "AL Presentation App", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 393, + "Name": "AL Database App", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 394, + "Name": "AL Email Reader", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 395, + "Name": "AL Newsreader", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 396, + "Name": "AL Voicemail", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 397, + "Name": "AL Contacts/Address Book", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 398, + "Name": "AL Calendar/Schedule", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 399, + "Name": "AL Task/Project Manager", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 400, + "Name": "AL Log/Journal/Timecard", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 401, + "Name": "AL Checkbook/Finance", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 402, + "Name": "AL Calculator", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 403, + "Name": "AL A/V Capture/Playback", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 404, + "Name": "AL Local Machine Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 405, + "Name": "AL LAN/WAN Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 406, + "Name": "AL Internet Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 407, + "Name": "AL Remote Networking/ISP Connect", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 408, + "Name": "AL Network Conference", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 409, + "Name": "AL Network Chat", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 410, + "Name": "AL Telephony/Dialer", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 411, + "Name": "AL Logon", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 412, + "Name": "AL Logoff", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 413, + "Name": "AL Logon/Logoff", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 414, + "Name": "AL Terminal Lock/Screensaver", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 415, + "Name": "AL Control Panel", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 416, + "Name": "AL Command Line Processor/Run", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 417, + "Name": "AL Process/Task Manager", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 418, + "Name": "AL Select Task/Application", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 419, + "Name": "AL Next Task/Application", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 420, + "Name": "AL Previous Task/Application", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 421, + "Name": "AL Preemptive Halt Task/Application", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 422, + "Name": "AL Integrated Help Center", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 423, + "Name": "AL Documents", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 424, + "Name": "AL Thesaurus", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 425, + "Name": "AL Dictionary", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 426, + "Name": "AL Desktop", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 427, + "Name": "AL Spell Check", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 428, + "Name": "AL Grammar Check", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 429, + "Name": "AL Wireless Status", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 430, + "Name": "AL Keyboard Layout", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 431, + "Name": "AL Virus Protection", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 432, + "Name": "AL Encryption", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 433, + "Name": "AL Screen Saver", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 434, + "Name": "AL Alarms", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 435, + "Name": "AL Clock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 436, + "Name": "AL File Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 437, + "Name": "AL Power Status", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 438, + "Name": "AL Image Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 439, + "Name": "AL Audio Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 440, + "Name": "AL Movie Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 441, + "Name": "AL Digital Rights Manager", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 442, + "Name": "AL Digital Wallet", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 444, + "Name": "AL Instant Messaging", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 445, + "Name": "AL OEM Features/ Tips/Tutorial Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 446, + "Name": "AL OEM Help", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 447, + "Name": "AL Online Community", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 448, + "Name": "AL Entertainment Content Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 449, + "Name": "AL Online Shopping Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 450, + "Name": "AL SmartCard Information/Help", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 451, + "Name": "AL Market Monitor/Finance Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 452, + "Name": "AL Customized Corporate News Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 453, + "Name": "AL Online Activity Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 454, + "Name": "AL Research/Search Browser", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 455, + "Name": "AL Audio Player", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 456, + "Name": "AL Message Status", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 457, + "Name": "AL Contact Sync", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 458, + "Name": "AL Navigation", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 459, + "Name": "AL Context‐aware Desktop Assistant", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 512, + "Name": "Generic GUI Application Controls", + "Kinds": [ + "NAry" + ] + }, + { + "Id": 513, + "Name": "AC New", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 514, + "Name": "AC Open", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 515, + "Name": "AC Close", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 516, + "Name": "AC Exit", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 517, + "Name": "AC Maximize", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 518, + "Name": "AC Minimize", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 519, + "Name": "AC Save", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 520, + "Name": "AC Print", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 521, + "Name": "AC Properties", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 538, + "Name": "AC Undo", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 539, + "Name": "AC Copy", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 540, + "Name": "AC Cut", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 541, + "Name": "AC Paste", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 542, + "Name": "AC Select All", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 543, + "Name": "AC Find", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 544, + "Name": "AC Find and Replace", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 545, + "Name": "AC Search", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 546, + "Name": "AC Go To", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 547, + "Name": "AC Home", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 548, + "Name": "AC Back", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 549, + "Name": "AC Forward", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 550, + "Name": "AC Stop", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 551, + "Name": "AC Refresh", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 552, + "Name": "AC Previous Link", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 553, + "Name": "AC Next Link", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 554, + "Name": "AC Bookmarks", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 555, + "Name": "AC History", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 556, + "Name": "AC Subscriptions", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 557, + "Name": "AC Zoom In", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 558, + "Name": "AC Zoom Out", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 559, + "Name": "AC Zoom", + "Kinds": [ + "LC" + ] + }, + { + "Id": 560, + "Name": "AC Full Screen View", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 561, + "Name": "AC Normal View", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 562, + "Name": "AC View Toggle", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 563, + "Name": "AC Scroll Up", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 564, + "Name": "AC Scroll Down", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 565, + "Name": "AC Scroll", + "Kinds": [ + "LC" + ] + }, + { + "Id": 566, + "Name": "AC Pan Left", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 567, + "Name": "AC Pan Right", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 568, + "Name": "AC Pan", + "Kinds": [ + "LC" + ] + }, + { + "Id": 569, + "Name": "AC New Window", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 570, + "Name": "AC Tile Horizontally", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 571, + "Name": "AC Tile Vertically", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 572, + "Name": "AC Format", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 573, + "Name": "AC Edit", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 574, + "Name": "AC Bold", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 575, + "Name": "AC Italics", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 576, + "Name": "AC Underline", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 577, + "Name": "AC Strikethrough", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 578, + "Name": "AC Subscript", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 579, + "Name": "AC Superscript", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 580, + "Name": "AC All Caps", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 581, + "Name": "AC Rotate", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 582, + "Name": "AC Resize", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 583, + "Name": "AC Flip Horizontal", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 584, + "Name": "AC Flip Vertical", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 585, + "Name": "AC Mirror Horizontal", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 586, + "Name": "AC Mirror Vertical", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 587, + "Name": "AC Font Select", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 588, + "Name": "AC Font Color", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 589, + "Name": "AC Font Size", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 590, + "Name": "AC Justify Left", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 591, + "Name": "AC Justify Center H", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 592, + "Name": "AC Justify Right", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 593, + "Name": "AC Justify Block H", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 594, + "Name": "AC Justify Top", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 595, + "Name": "AC Justify Center V", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 596, + "Name": "AC Justify Bottom", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 597, + "Name": "AC Justify Block V", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 598, + "Name": "AC Indent Decrease", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 599, + "Name": "AC Indent Increase", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 600, + "Name": "AC Numbered List", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 601, + "Name": "AC Restart Numbering", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 602, + "Name": "AC Bulleted List", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 603, + "Name": "AC Promote", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 604, + "Name": "AC Demote", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 605, + "Name": "AC Yes", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 606, + "Name": "AC No", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 607, + "Name": "AC Cancel", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 608, + "Name": "AC Catalog", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 609, + "Name": "AC Buy/Checkout", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 610, + "Name": "AC Add to Cart", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 611, + "Name": "AC Expand", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 612, + "Name": "AC Expand All", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 613, + "Name": "AC Collapse", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 614, + "Name": "AC Collapse All", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 615, + "Name": "AC Print Preview", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 616, + "Name": "AC Paste Special", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 617, + "Name": "AC Insert Mode", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 618, + "Name": "AC Delete", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 619, + "Name": "AC Lock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 620, + "Name": "AC Unlock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 621, + "Name": "AC Protect", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 622, + "Name": "AC Unprotect", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 623, + "Name": "AC Attach Comment", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 624, + "Name": "AC Delete Comment", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 625, + "Name": "AC View Comment", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 626, + "Name": "AC Select Word", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 627, + "Name": "AC Select Sentence", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 628, + "Name": "AC Select Paragraph", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 629, + "Name": "AC Select Column", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 630, + "Name": "AC Select Row", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 631, + "Name": "AC Select Table", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 632, + "Name": "AC Select Object", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 633, + "Name": "AC Redo/Repeat", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 634, + "Name": "AC Sort", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 635, + "Name": "AC Sort Ascending", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 636, + "Name": "AC Sort Descending", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 637, + "Name": "AC Filter", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 638, + "Name": "AC Set Clock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 639, + "Name": "AC View Clock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 640, + "Name": "AC Select Time Zone", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 641, + "Name": "AC Edit Time Zones", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 642, + "Name": "AC Set Alarm", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 643, + "Name": "AC Clear Alarm", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 644, + "Name": "AC Snooze Alarm", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 645, + "Name": "AC Reset Alarm", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 646, + "Name": "AC Synchronize", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 647, + "Name": "AC Send/Receive", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 648, + "Name": "AC Send To", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 649, + "Name": "AC Reply", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 650, + "Name": "AC Reply All", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 651, + "Name": "AC Forward Msg", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 652, + "Name": "AC Send", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 653, + "Name": "AC Attach File", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 654, + "Name": "AC Upload", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 655, + "Name": "AC Download (Save Target As)", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 656, + "Name": "AC Set Borders", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 657, + "Name": "AC Insert Row", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 658, + "Name": "AC Insert Column", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 659, + "Name": "AC Insert File", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 660, + "Name": "AC Insert Picture", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 661, + "Name": "AC Insert Object", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 662, + "Name": "AC Insert Symbol", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 663, + "Name": "AC Save and Close", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 664, + "Name": "AC Rename", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 665, + "Name": "AC Merge", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 666, + "Name": "AC Split", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 667, + "Name": "AC Disribute Horizontally", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 668, + "Name": "AC Distribute Vertically", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 669, + "Name": "AC Next Keyboard Layout Select", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 670, + "Name": "AC Navigation Guidance", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 671, + "Name": "AC Desktop Show All Windows", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 672, + "Name": "AC Soft Key Left", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 673, + "Name": "AC Soft Key Right", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 674, + "Name": "AC Desktop Show All Applications", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 688, + "Name": "AC Idle Keep Alive", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 704, + "Name": "Extended Keyboard Attributes Collection", + "Kinds": [ + "CL" + ] + }, + { + "Id": 705, + "Name": "Keyboard Form Factor", + "Kinds": [ + "SV" + ] + }, + { + "Id": 706, + "Name": "Keyboard Key Type", + "Kinds": [ + "SV" + ] + }, + { + "Id": 707, + "Name": "Keyboard Physical Layout", + "Kinds": [ + "SV" + ] + }, + { + "Id": 708, + "Name": "Vendor‐Specific Keyboard Physical Layout", + "Kinds": [ + "SV" + ] + }, + { + "Id": 709, + "Name": "Keyboard IETF Language Tag Index", + "Kinds": [ + "SV" + ] + }, + { + "Id": 710, + "Name": "Implemented Keyboard Input Assist Controls", + "Kinds": [ + "SV" + ] + }, + { + "Id": 711, + "Name": "Keyboard Input Assist Previous", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 712, + "Name": "Keyboard Input Assist Next", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 713, + "Name": "Keyboard Input Assist Previous Group", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 714, + "Name": "Keyboard Input Assist Next Group", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 715, + "Name": "Keyboard Input Assist Accept", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 716, + "Name": "Keyboard Input Assist Cancel", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 720, + "Name": "Privacy Screen Toggle", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 721, + "Name": "Privacy Screen Level Decrement", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 722, + "Name": "Privacy Screen Level Increment", + "Kinds": [ + "RTC" + ] + }, + { + "Id": 723, + "Name": "Privacy Screen Level Minimum", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 724, + "Name": "Privacy Screen Level Maximum", + "Kinds": [ + "OSC" + ] + }, + { + "Id": 1280, + "Name": "Contact Edited", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 1281, + "Name": "Contact Added", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 1282, + "Name": "Contact Record Active", + "Kinds": [ + "OOC" + ] + }, + { + "Id": 1283, + "Name": "Contact Index", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1284, + "Name": "Contact Nickname", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1285, + "Name": "Contact First Name", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1286, + "Name": "Contact Last Name", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1287, + "Name": "Contact Full Name", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1288, + "Name": "Contact Phone Number Personal", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1289, + "Name": "Contact Phone Number Business", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1290, + "Name": "Contact Phone Number Mobile", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1291, + "Name": "Contact Phone Number Pager", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1292, + "Name": "Contact Phone Number Fax", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1293, + "Name": "Contact Phone Number Other", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1294, + "Name": "Contact Email Personal", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1295, + "Name": "Contact Email Business", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1296, + "Name": "Contact Email Other", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1297, + "Name": "Contact Email Main", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1298, + "Name": "Contact Speed Dial Number", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1299, + "Name": "Contact Status Flag", + "Kinds": [ + "DV" + ] + }, + { + "Id": 1300, + "Name": "Contact Misc.", + "Kinds": [ + "DV" + ] + } + ], + "UsageIdGenerator": null + }, + { + "Kind": "Defined", + "Id": 7, + "Name": "Keyboard/Keypad", + "UsageIds": [ + { + "Id": 1, + "Name": "ErrorRollOver", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 2, + "Name": "POSTFail", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 3, + "Name": "ErrorUndefined", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 4, + "Name": "Keyboard A", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 5, + "Name": "Keyboard B", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 6, + "Name": "Keyboard C", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 7, + "Name": "Keyboard D", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 8, + "Name": "Keyboard E", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 9, + "Name": "Keyboard F", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 10, + "Name": "Keyboard G", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 11, + "Name": "Keyboard H", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 12, + "Name": "Keyboard I", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 13, + "Name": "Keyboard J", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 14, + "Name": "Keyboard K", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 15, + "Name": "Keyboard L", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 16, + "Name": "Keyboard M", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 17, + "Name": "Keyboard N", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 18, + "Name": "Keyboard O", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 19, + "Name": "Keyboard P", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 20, + "Name": "Keyboard Q", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 21, + "Name": "Keyboard R", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 22, + "Name": "Keyboard S", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 23, + "Name": "Keyboard T", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 24, + "Name": "Keyboard U", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 25, + "Name": "Keyboard V", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 26, + "Name": "Keyboard W", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 27, + "Name": "Keyboard X", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 28, + "Name": "Keyboard Y", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 29, + "Name": "Keyboard Z", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 30, + "Name": "Keyboard 1 and Bang", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 31, + "Name": "Keyboard 2 and At", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 32, + "Name": "Keyboard 3 and Hash", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 33, + "Name": "Keyboard 4 and Dollar", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 34, + "Name": "Keyboard 5 and Percent", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 35, + "Name": "Keyboard 6 and Caret", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 36, + "Name": "Keyboard 7 and Ampersand", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 37, + "Name": "Keyboard 8 and Star", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 38, + "Name": "Keyboard 9 and Left Bracket", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 39, + "Name": "Keyboard 0 and Right Bracket", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 40, + "Name": "Keyboard Return Enter", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 41, + "Name": "Keyboard Escape", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 42, + "Name": "Keyboard Delete", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 43, + "Name": "Keyboard Tab", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 44, + "Name": "Keyboard Spacebar", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 45, + "Name": "Keyboard Dash and Underscore", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 46, + "Name": "Keyboard Equals and Plus", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 47, + "Name": "Keyboard Left Brace", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 48, + "Name": "Keyboard Right Brace", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 49, + "Name": "Keyboard Backslash and Pipe", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 50, + "Name": "Keyboard Non-US Hash and Tilde", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 51, + "Name": "Keyboard SemiColon and Colon", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 52, + "Name": "Keyboard Left Apos and Double", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 53, + "Name": "Keyboard Grave Accent and Tilde", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 54, + "Name": "Keyboard Comma and LessThan", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 55, + "Name": "Keyboard Period and GreaterThan", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 56, + "Name": "Keyboard ForwardSlash and QuestionMark", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 57, + "Name": "Keyboard Caps Lock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 58, + "Name": "Keyboard F1", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 59, + "Name": "Keyboard F2", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 60, + "Name": "Keyboard F3", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 61, + "Name": "Keyboard F4", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 62, + "Name": "Keyboard F5", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 63, + "Name": "Keyboard F6", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 64, + "Name": "Keyboard F7", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 65, + "Name": "Keyboard F8", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 66, + "Name": "Keyboard F9", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 67, + "Name": "Keyboard F10", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 68, + "Name": "Keyboard F11", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 69, + "Name": "Keyboard F12", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 70, + "Name": "Keyboard PrintScreen", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 71, + "Name": "Keyboard Scroll Lock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 72, + "Name": "Keyboard Pause", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 73, + "Name": "Keyboard Insert", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 74, + "Name": "Keyboard Home", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 75, + "Name": "Keyboard PageUp", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 76, + "Name": "Keyboard Delete Forward", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 77, + "Name": "Keyboard End", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 78, + "Name": "Keyboard PageDown", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 79, + "Name": "Keyboard RightArrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 80, + "Name": "Keyboard LeftArrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 81, + "Name": "Keyboard DownArrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 82, + "Name": "Keyboard UpArrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 83, + "Name": "Keypad Num Lock and Clear", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 84, + "Name": "Keypad ForwardSlash", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 85, + "Name": "Keypad Star", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 86, + "Name": "Keypad Dash", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 87, + "Name": "Keypad Plus", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 88, + "Name": "Keypad ENTER", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 89, + "Name": "Keypad 1 and End", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 90, + "Name": "Keypad 2 and Down Arrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 91, + "Name": "Keypad 3 and PageDn", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 92, + "Name": "Keypad 4 and Left Arrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 93, + "Name": "Keypad 5", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 94, + "Name": "Keypad 6 and Right Arrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 95, + "Name": "Keypad 7 and Home", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 96, + "Name": "Keypad 8 and Up Arrow", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 97, + "Name": "Keypad 9 and PageUp", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 98, + "Name": "Keypad 0 and Insert", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 99, + "Name": "Keypad Period and Delete", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 100, + "Name": "Keyboard Non-US Backslash and Pipe", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 101, + "Name": "Keyboard Application", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 102, + "Name": "Keyboard Power", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 103, + "Name": "Keypad Equals", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 104, + "Name": "Keyboard F13", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 105, + "Name": "Keyboard F14", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 106, + "Name": "Keyboard F15", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 107, + "Name": "Keyboard F16", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 108, + "Name": "Keyboard F17", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 109, + "Name": "Keyboard F18", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 110, + "Name": "Keyboard F19", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 111, + "Name": "Keyboard F20", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 112, + "Name": "Keyboard F21", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 113, + "Name": "Keyboard F22", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 114, + "Name": "Keyboard F23", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 115, + "Name": "Keyboard F24", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 116, + "Name": "Keyboard Execute", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 117, + "Name": "Keyboard Help", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 118, + "Name": "Keyboard Menu", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 119, + "Name": "Keyboard Select", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 120, + "Name": "Keyboard Stop", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 121, + "Name": "Keyboard Again", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 122, + "Name": "Keyboard Undo", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 123, + "Name": "Keyboard Cut", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 124, + "Name": "Keyboard Copy", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 125, + "Name": "Keyboard Paste", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 126, + "Name": "Keyboard Find", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 127, + "Name": "Keyboard Mute", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 128, + "Name": "Keyboard Volume Up", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 129, + "Name": "Keyboard Volume Down", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 130, + "Name": "Keyboard Locking Caps Lock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 131, + "Name": "Keyboard Locking Num Lock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 132, + "Name": "Keyboard Locking Scroll Lock", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 133, + "Name": "Keypad Comma", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 134, + "Name": "Keypad Equal Sign", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 135, + "Name": "Keyboard International1", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 136, + "Name": "Keyboard International2", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 137, + "Name": "Keyboard International3", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 138, + "Name": "Keyboard International4", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 139, + "Name": "Keyboard International5", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 140, + "Name": "Keyboard International6", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 141, + "Name": "Keyboard International7", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 142, + "Name": "Keyboard International8", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 143, + "Name": "Keyboard International9", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 144, + "Name": "Keyboard LANG1", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 145, + "Name": "Keyboard LANG2", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 146, + "Name": "Keyboard LANG3", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 147, + "Name": "Keyboard LANG4", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 148, + "Name": "Keyboard LANG5", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 149, + "Name": "Keyboard LANG6", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 150, + "Name": "Keyboard LANG7", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 151, + "Name": "Keyboard LANG8", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 152, + "Name": "Keyboard LANG9", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 153, + "Name": "Keyboard Alternate Erase", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 154, + "Name": "Keyboard SysReq Attention", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 155, + "Name": "Keyboard Cancel", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 156, + "Name": "Keyboard Clear", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 157, + "Name": "Keyboard Prior", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 158, + "Name": "Keyboard Return", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 159, + "Name": "Keyboard Separator", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 160, + "Name": "Keyboard Out", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 161, + "Name": "Keyboard Oper", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 162, + "Name": "Keyboard Clear Again", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 163, + "Name": "Keyboard CrSel Props", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 164, + "Name": "Keyboard ExSel", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 176, + "Name": "Keypad Double 0", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 177, + "Name": "Keypad Triple 0", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 178, + "Name": "Thousands Separator", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 179, + "Name": "Decimal Separator", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 180, + "Name": "Currency Unit", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 181, + "Name": "Currency Sub-unit", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 182, + "Name": "Keypad Left Bracket", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 183, + "Name": "Keypad Right Bracket", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 184, + "Name": "Keypad Left Brace", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 185, + "Name": "Keypad Right Brace", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 186, + "Name": "Keypad Tab", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 187, + "Name": "Keypad Backspace", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 188, + "Name": "Keypad A", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 189, + "Name": "Keypad B", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 190, + "Name": "Keypad C", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 191, + "Name": "Keypad D", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 192, + "Name": "Keypad E", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 193, + "Name": "Keypad F", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 194, + "Name": "Keypad XOR", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 195, + "Name": "Keypad Caret", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 196, + "Name": "Keypad Percentage", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 197, + "Name": "Keypad Less", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 198, + "Name": "Keypad Greater", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 199, + "Name": "Keypad Ampersand", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 200, + "Name": "Keypad Double Ampersand", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 201, + "Name": "Keypad Bar", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 202, + "Name": "Keypad Double Bar", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 203, + "Name": "Keypad Colon", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 204, + "Name": "Keypad Hash", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 205, + "Name": "Keypad Space", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 206, + "Name": "Keypad At", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 207, + "Name": "Keypad Bang", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 208, + "Name": "Keypad Memory Store", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 209, + "Name": "Keypad Memory Recall", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 210, + "Name": "Keypad Memory Clear", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 211, + "Name": "Keypad Memory Add", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 212, + "Name": "Keypad Memory Subtract", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 213, + "Name": "Keypad Memory Multiply", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 214, + "Name": "Keypad Memory Divide", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 215, + "Name": "Keypad Plus Minus", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 216, + "Name": "Keypad Clear", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 217, + "Name": "Keypad Clear Entry", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 218, + "Name": "Keypad Binary", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 219, + "Name": "Keypad Octal", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 220, + "Name": "Keypad Decimal", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 221, + "Name": "Keypad Hexadecimal", + "Kinds": [ + "Sel" + ] + }, + { + "Id": 224, + "Name": "Keyboard LeftControl", + "Kinds": [ + "DV" + ] + }, + { + "Id": 225, + "Name": "Keyboard LeftShift", + "Kinds": [ + "DV" + ] + }, + { + "Id": 226, + "Name": "Keyboard LeftAlt", + "Kinds": [ + "DV" + ] + }, + { + "Id": 227, + "Name": "Keyboard Left GUI", + "Kinds": [ + "DV" + ] + }, + { + "Id": 228, + "Name": "Keyboard RightControl", + "Kinds": [ + "DV" + ] + }, + { + "Id": 229, + "Name": "Keyboard RightShift", + "Kinds": [ + "DV" + ] + }, + { + "Id": 230, + "Name": "Keyboard RightAlt", + "Kinds": [ + "DV" + ] + }, + { + "Id": 231, + "Name": "Keyboard Right GUI", + "Kinds": [ + "DV" + ] + } + ], + "UsageIdGenerator": null + } + ] +} diff --git a/src/keyboard/HidUsageLabel.tsx b/src/keyboard/HidUsageLabel.tsx index aa15195c..64cc9410 100644 --- a/src/keyboard/HidUsageLabel.tsx +++ b/src/keyboard/HidUsageLabel.tsx @@ -1,32 +1,29 @@ -import { - hid_usage_get_labels, - hid_usage_page_and_id_from_usage, -} from "../hid-usages"; - -export interface HidUsageLabelProps { - hid_usage: number; -} - -function remove_prefix(s?: string) { - return s?.replace(/^Keyboard /, ""); -} - -export const HidUsageLabel = ({ hid_usage }: HidUsageLabelProps) => { - let [page, id] = hid_usage_page_and_id_from_usage(hid_usage); - - // TODO: Do something with implicit mods! - page &= 0xff; - - let labels = hid_usage_get_labels(page, id); - - return ( - - ); -}; +import { + hid_usage_get_labels, + hid_usage_page_and_id_from_usage, +} from "../hid-usages"; + +export interface HidUsageLabelProps { + hid_usage: number; +} +export const HidUsageLabel = ({ hid_usage }: HidUsageLabelProps) => { + let [page, id] = hid_usage_page_and_id_from_usage(hid_usage); + + // TODO: Do something with implicit mods! + page &= 0xff; + + let labels = hid_usage_get_labels(page, id, { + removePrefix: true, + }); + + return ( + + ); +}; diff --git a/src/keyboard/Key.stories.tsx b/src/keyboard/Key.stories.tsx index 2b81a38a..5f26c8e5 100644 --- a/src/keyboard/Key.stories.tsx +++ b/src/keyboard/Key.stories.tsx @@ -1,53 +1,53 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { Key } from "./Key"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Keyboard/Key", - component: Key, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { oneU: 48, onClick: fn() }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args -export const Normal: Story = { - args: { - width: 1, - height: 1, - header: "Key Press", - children: [A], - }, -}; - -export const Selected: Story = { - args: { - selected: true, - width: 1, - height: 1, - header: "Key Press", - children: [B], - }, -}; - -export const Large: Story = { - args: { - width: 2, - height: 1, - header: "Key Press", - children: [C], - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { Key } from "./Key"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Keyboard/Key", + component: Key, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { oneU: 48, onClick: fn() }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args +export const Normal: Story = { + args: { + width: 1, + height: 1, + header: "Key Press", + children: [A], + }, +}; + +export const Selected: Story = { + args: { + selected: true, + width: 1, + height: 1, + header: "Key Press", + children: [B], + }, +}; + +export const Large: Story = { + args: { + width: 2, + height: 1, + header: "Key Press", + children: [C], + }, +}; diff --git a/src/keyboard/Key.tsx b/src/keyboard/Key.tsx index 80babd4d..6c42b35f 100644 --- a/src/keyboard/Key.tsx +++ b/src/keyboard/Key.tsx @@ -1,88 +1,88 @@ -// import './key.css'; - -import { PropsWithChildren, Children, CSSProperties } from "react"; - -interface KeyProps { - /** - * Is this the principal call to action on the page? - */ - selected?: boolean; - /** - * How large should the button be? - */ - width: number; - height: number; - - oneU: number; - - hoverZoom?: boolean; - /** - * Button contents - */ - header?: string; - /** - * Optional click handler - */ - onClick?: () => void; -} - -interface KeyDimension { - width: number; - height: number; -} - -function makeSize( - { width, height }: KeyDimension, - oneU: number -): CSSProperties { - width *= oneU; - height *= oneU; - - return { - "--zmk-key-center-width": "calc(" + width + "px - 2px)", - "--zmk-key-center-height": "calc(" + height + "px - 2px)", - }; -} - -export const Key = ({ - selected = false, - header, - oneU, - hoverZoom = true, - ...props -}: PropsWithChildren) => { - const size = makeSize(props, oneU); - - const children = Children.map(props.children, (c) => ( -
    - {c} -
    - )); - - return ( -
    - -
    - ); -}; +// import './key.css'; + +import { PropsWithChildren, Children, CSSProperties } from "react"; + +interface KeyProps { + /** + * Is this the principal call to action on the page? + */ + selected?: boolean; + /** + * How large should the button be? + */ + width: number; + height: number; + + oneU: number; + + hoverZoom?: boolean; + /** + * Button contents + */ + header?: string; + /** + * Optional click handler + */ + onClick?: () => void; +} + +interface KeyDimension { + width: number; + height: number; +} + +function makeSize( + { width, height }: KeyDimension, + oneU: number +): CSSProperties { + width *= oneU; + height *= oneU; + + return { + "--zmk-key-center-width": "calc(" + width + "px - 2px)", + "--zmk-key-center-height": "calc(" + height + "px - 2px)", + }; +} + +export const Key = ({ + selected = false, + header, + oneU, + hoverZoom = true, + ...props +}: PropsWithChildren) => { + const size = makeSize(props, oneU); + + const children = Children.map(props.children, (c) => ( +
    + {c} +
    + )); + + return ( +
    + +
    + ); +}; diff --git a/src/keyboard/Keyboard.tsx b/src/keyboard/Keyboard.tsx index e4a9e4bf..4d73fad1 100644 --- a/src/keyboard/Keyboard.tsx +++ b/src/keyboard/Keyboard.tsx @@ -1,577 +1,574 @@ -import React, { - SetStateAction, - useCallback, - useContext, - useEffect, - useMemo, - useState, -} from "react"; - -import { Request } from "@zmkfirmware/zmk-studio-ts-client"; -import { call_rpc } from "../rpc/logging"; -import { - PhysicalLayout, - Keymap, - SetLayerBindingResponse, - SetLayerPropsResponse, - BehaviorBinding, - Layer, -} from "@zmkfirmware/zmk-studio-ts-client/keymap"; -import type { GetBehaviorDetailsResponse } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; - -import { LayerPicker } from "./LayerPicker"; -import { PhysicalLayoutPicker } from "./PhysicalLayoutPicker"; -import { Keymap as KeymapComp } from "./Keymap"; -import { useConnectedDeviceData } from "../rpc/useConnectedDeviceData"; -import { ConnectionContext } from "../rpc/ConnectionContext"; -import { UndoRedoContext } from "../undoRedo"; -import { BehaviorBindingPicker } from "../behaviors/BehaviorBindingPicker"; -import { produce } from "immer"; -import { LockStateContext } from "../rpc/LockStateContext"; -import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; -import { deserializeLayoutZoom, LayoutZoom } from "./PhysicalLayout"; -import { useLocalStorageState } from "../misc/useLocalStorageState"; - -type BehaviorMap = Record; - -function useBehaviors(): BehaviorMap { - let connection = useContext(ConnectionContext); - let lockState = useContext(LockStateContext); - - const [behaviors, setBehaviors] = useState({}); - - useEffect(() => { - if ( - !connection.conn || - lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED - ) { - setBehaviors({}); - return; - } - - async function startRequest() { - setBehaviors({}); - - if (!connection.conn) { - return; - } - - let get_behaviors: Request = { - behaviors: { listAllBehaviors: true }, - requestId: 0, - }; - - let behavior_list = await call_rpc(connection.conn, get_behaviors); - if (!ignore) { - let behavior_map: BehaviorMap = {}; - for (let behaviorId of behavior_list.behaviors?.listAllBehaviors - ?.behaviors || []) { - if (ignore) { - break; - } - let details_req = { - behaviors: { getBehaviorDetails: { behaviorId } }, - requestId: 0, - }; - let behavior_details = await call_rpc(connection.conn, details_req); - let dets: GetBehaviorDetailsResponse | undefined = - behavior_details?.behaviors?.getBehaviorDetails; - - if (dets) { - behavior_map[dets.id] = dets; - } - } - - if (!ignore) { - setBehaviors(behavior_map); - } - } - } - - let ignore = false; - startRequest(); - - return () => { - ignore = true; - }; - }, [connection, lockState]); - - return behaviors; -} - -function useLayouts(): [ - PhysicalLayout[] | undefined, - React.Dispatch>, - number, - React.Dispatch> -] { - let connection = useContext(ConnectionContext); - let lockState = useContext(LockStateContext); - - const [layouts, setLayouts] = useState( - undefined - ); - const [selectedPhysicalLayoutIndex, setSelectedPhysicalLayoutIndex] = - useState(0); - - useEffect(() => { - if ( - !connection.conn || - lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED - ) { - setLayouts(undefined); - return; - } - - async function startRequest() { - setLayouts(undefined); - - if (!connection.conn) { - return; - } - - let response = await call_rpc(connection.conn, { - keymap: { getPhysicalLayouts: true }, - }); - - if (!ignore) { - setLayouts(response?.keymap?.getPhysicalLayouts?.layouts); - setSelectedPhysicalLayoutIndex( - response?.keymap?.getPhysicalLayouts?.activeLayoutIndex || 0 - ); - } - } - - let ignore = false; - startRequest(); - - return () => { - ignore = true; - }; - }, [connection, lockState]); - - return [ - layouts, - setLayouts, - selectedPhysicalLayoutIndex, - setSelectedPhysicalLayoutIndex, - ]; -} - -export default function Keyboard() { - const [ - layouts, - _setLayouts, - selectedPhysicalLayoutIndex, - setSelectedPhysicalLayoutIndex, - ] = useLayouts(); - const [keymap, setKeymap] = useConnectedDeviceData( - { keymap: { getKeymap: true } }, - (keymap) => { - console.log("Got the keymap!"); - return keymap?.keymap?.getKeymap; - }, - true - ); - - const [keymapScale, setKeymapScale] = useLocalStorageState("keymapScale", "auto", { - deserialize: deserializeLayoutZoom, - }); - - const [selectedLayerIndex, setSelectedLayerIndex] = useState(0); - const [selectedKeyPosition, setSelectedKeyPosition] = useState< - number | undefined - >(undefined); - const behaviors = useBehaviors(); - - const conn = useContext(ConnectionContext); - const undoRedo = useContext(UndoRedoContext); - - useEffect(() => { - setSelectedLayerIndex(0); - setSelectedKeyPosition(undefined); - }, [conn]); - - useEffect(() => { - async function performSetRequest() { - if (!conn.conn || !layouts) { - return; - } - - let resp = await call_rpc(conn.conn, { - keymap: { setActivePhysicalLayout: selectedPhysicalLayoutIndex }, - }); - - let new_keymap = resp?.keymap?.setActivePhysicalLayout?.ok; - if (new_keymap) { - setKeymap(new_keymap); - } else { - console.error( - "Failed to set the active physical layout err:", - resp?.keymap?.setActivePhysicalLayout?.err - ); - } - } - - performSetRequest(); - }, [selectedPhysicalLayoutIndex]); - - let doSelectPhysicalLayout = useCallback( - (i: number) => { - let oldLayout = selectedPhysicalLayoutIndex; - undoRedo?.(async () => { - setSelectedPhysicalLayoutIndex(i); - - return async () => { - setSelectedPhysicalLayoutIndex(oldLayout); - }; - }); - }, - [undoRedo, selectedPhysicalLayoutIndex] - ); - - let doUpdateBinding = useCallback( - (binding: BehaviorBinding) => { - if (!keymap || selectedKeyPosition === undefined) { - console.error( - "Can't update binding without a selected key position and loaded keymap" - ); - return; - } - - const layer = selectedLayerIndex; - const layerId = keymap.layers[layer].id; - const keyPosition = selectedKeyPosition; - const oldBinding = keymap.layers[layer].bindings[keyPosition]; - undoRedo?.(async () => { - if (!conn.conn) { - throw new Error("Not connected"); - } - - let resp = await call_rpc(conn.conn, { - keymap: { setLayerBinding: { layerId, keyPosition, binding } }, - }); - - if ( - resp.keymap?.setLayerBinding === - SetLayerBindingResponse.SET_LAYER_BINDING_RESP_OK - ) { - setKeymap( - produce((draft: any) => { - draft.layers[layer].bindings[keyPosition] = binding; - }) - ); - } else { - console.error("Failed to set binding", resp.keymap?.setLayerBinding); - } - - return async () => { - if (!conn.conn) { - return; - } - - let resp = await call_rpc(conn.conn, { - keymap: { - setLayerBinding: { layerId, keyPosition, binding: oldBinding }, - }, - }); - if ( - resp.keymap?.setLayerBinding === - SetLayerBindingResponse.SET_LAYER_BINDING_RESP_OK - ) { - setKeymap( - produce((draft: any) => { - draft.layers[layer].bindings[keyPosition] = oldBinding; - }) - ); - } else { - } - }; - }); - }, - [conn, keymap, undoRedo, selectedLayerIndex, selectedKeyPosition] - ); - - let selectedBinding = useMemo(() => { - if (keymap == null || selectedKeyPosition == null || !keymap.layers[selectedLayerIndex]) { - return null; - } - - return keymap.layers[selectedLayerIndex].bindings[selectedKeyPosition]; - }, [keymap, selectedLayerIndex, selectedKeyPosition]); - - const moveLayer = useCallback( - (start: number, end: number) => { - const doMove = async (startIndex: number, destIndex: number) => { - if (!conn.conn) { - return; - } - - let resp = await call_rpc(conn.conn, { - keymap: { moveLayer: { startIndex, destIndex } }, - }); - - if (resp.keymap?.moveLayer?.ok) { - setKeymap(resp.keymap?.moveLayer?.ok); - setSelectedLayerIndex(destIndex); - } else { - console.error("Error moving", resp); - } - }; - - undoRedo?.(async () => { - await doMove(start, end); - return () => doMove(end, start); - }); - }, - [undoRedo] - ); - - const addLayer = useCallback(() => { - async function doAdd(): Promise { - if (!conn.conn || !keymap) { - throw new Error("Not connected"); - } - - const resp = await call_rpc(conn.conn, { keymap: { addLayer: {} } }); - - if (resp.keymap?.addLayer?.ok) { - const newSelection = keymap.layers.length; - setKeymap( - produce((draft: any) => { - draft.layers.push(resp.keymap!.addLayer!.ok!.layer); - draft.availableLayers--; - }) - ); - - setSelectedLayerIndex(newSelection); - - return resp.keymap.addLayer.ok.index; - } else { - console.error("Add error", resp.keymap?.addLayer?.err); - throw new Error("Failed to add layer:" + resp.keymap?.addLayer?.err); - } - } - - async function doRemove(layerIndex: number) { - if (!conn.conn) { - throw new Error("Not connected"); - } - - const resp = await call_rpc(conn.conn, { - keymap: { removeLayer: { layerIndex } }, - }); - - console.log(resp); - if (resp.keymap?.removeLayer?.ok) { - setKeymap( - produce((draft: any) => { - draft.layers.splice(layerIndex, 1); - draft.availableLayers++; - }) - ); - } else { - console.error("Remove error", resp.keymap?.removeLayer?.err); - throw new Error( - "Failed to remove layer:" + resp.keymap?.removeLayer?.err - ); - } - } - - undoRedo?.(async () => { - let index = await doAdd(); - return () => doRemove(index); - }); - }, [conn, undoRedo, keymap]); - - const removeLayer = useCallback(() => { - async function doRemove(layerIndex: number): Promise { - if (!conn.conn || !keymap) { - throw new Error("Not connected"); - } - - const resp = await call_rpc(conn.conn, { - keymap: { removeLayer: { layerIndex } }, - }); - - if (resp.keymap?.removeLayer?.ok) { - if (layerIndex == keymap.layers.length - 1) { - setSelectedLayerIndex(layerIndex - 1); - } - setKeymap( - produce((draft: any) => { - draft.layers.splice(layerIndex, 1); - draft.availableLayers++; - }) - ); - } else { - console.error("Remove error", resp.keymap?.removeLayer?.err); - throw new Error( - "Failed to remove layer:" + resp.keymap?.removeLayer?.err - ); - } - } - - async function doRestore(layerId: number, atIndex: number) { - if (!conn.conn) { - throw new Error("Not connected"); - } - - const resp = await call_rpc(conn.conn, { - keymap: { restoreLayer: { layerId, atIndex } }, - }); - - console.log(resp); - if (resp.keymap?.restoreLayer?.ok) { - setKeymap( - produce((draft: any) => { - draft.layers.splice(atIndex, 0, resp!.keymap!.restoreLayer!.ok); - draft.availableLayers--; - }) - ); - setSelectedLayerIndex(atIndex); - } else { - console.error("Remove error", resp.keymap?.restoreLayer?.err); - throw new Error( - "Failed to restore layer:" + resp.keymap?.restoreLayer?.err - ); - } - } - - if (!keymap) { - throw new Error("No keymap loaded"); - } - - let index = selectedLayerIndex; - let layerId = keymap.layers[index].id; - undoRedo?.(async () => { - await doRemove(index); - return () => doRestore(layerId, index); - }); - }, [conn, undoRedo, selectedLayerIndex]); - - const changeLayerName = useCallback( - (id: number, oldName: string, newName: string) => { - async function changeName(layerId: number, name: string) { - if (!conn.conn) { - throw new Error("Not connected"); - } - - const resp = await call_rpc(conn.conn, { - keymap: { setLayerProps: { layerId, name } }, - }); - - if ( - resp.keymap?.setLayerProps == - SetLayerPropsResponse.SET_LAYER_PROPS_RESP_OK - ) { - setKeymap( - produce((draft: any) => { - const layer_index = draft.layers.findIndex( - (l: Layer) => l.id == layerId - ); - draft.layers[layer_index].name = name; - }) - ); - } else { - throw new Error( - "Failed to change layer name:" + resp.keymap?.setLayerProps - ); - } - } - - undoRedo?.(async () => { - await changeName(id, newName); - return async () => { - await changeName(id, oldName); - }; - }); - }, - [conn, undoRedo, keymap] - ); - - useEffect(() => { - if (!keymap?.layers) return; - - const layers = keymap.layers.length - 1; - - if (selectedLayerIndex > layers) { - setSelectedLayerIndex(layers); - } - }, [keymap, selectedLayerIndex]); - - return ( -
    -
    - {layouts && ( -
    - -
    - )} - - {keymap && ( -
    - 0} - canRemove={(keymap.layers?.length || 0) > 1} - onAddClicked={addLayer} - onRemoveClicked={removeLayer} - onLayerNameChanged={changeLayerName} - /> -
    - )} -
    - {layouts && keymap && behaviors && ( -
    - - -
    - )} - {keymap && selectedBinding && ( -
    - ({ - id, - name: name || li.toLocaleString(), - }))} - onBindingChanged={doUpdateBinding} - /> -
    - )} -
    - ); -} +import React, { + SetStateAction, + useCallback, + useContext, + useEffect, + useMemo, + useState, +} from "react"; + +import { Request } from "@zmkfirmware/zmk-studio-ts-client"; +import { call_rpc } from "../rpc/logging"; +import { + PhysicalLayout, + Keymap, + SetLayerBindingResponse, + SetLayerPropsResponse, + BehaviorBinding, + Layer, +} from "@zmkfirmware/zmk-studio-ts-client/keymap"; +import type { GetBehaviorDetailsResponse } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; + +import { LayerPicker } from "./LayerPicker"; +import { PhysicalLayoutPicker } from "./PhysicalLayoutPicker"; +import { Keymap as KeymapComp } from "./Keymap"; +import { useConnectedDeviceData } from "../rpc/useConnectedDeviceData"; +import { ConnectionContext } from "../rpc/ConnectionContext"; +import { UndoRedoContext } from "../undoRedo"; +import { BehaviorBindingPicker } from "../behaviors/BehaviorBindingPicker"; +import { produce } from "immer"; +import { LockStateContext } from "../rpc/LockStateContext"; +import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; +import { deserializeLayoutZoom, LayoutZoom } from "./PhysicalLayout"; +import { useLocalStorageState } from "../misc/useLocalStorageState"; +import { useKeymap } from "../context/keymap"; + +type BehaviorMap = Record; + +export function useBehaviors(): BehaviorMap { + let connection = useContext(ConnectionContext); + let lockState = useContext(LockStateContext); + + const [behaviors, setBehaviors] = useState({}); + + useEffect(() => { + if ( + !connection.conn || + lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED + ) { + setBehaviors({}); + return; + } + + async function startRequest() { + setBehaviors({}); + + if (!connection.conn) { + return; + } + + let get_behaviors: Request = { + behaviors: { listAllBehaviors: true }, + requestId: 0, + }; + + let behavior_list = await call_rpc(connection.conn, get_behaviors); + if (!ignore) { + let behavior_map: BehaviorMap = {}; + for (let behaviorId of behavior_list.behaviors?.listAllBehaviors + ?.behaviors || []) { + if (ignore) { + break; + } + let details_req = { + behaviors: { getBehaviorDetails: { behaviorId } }, + requestId: 0, + }; + let behavior_details = await call_rpc(connection.conn, details_req); + let dets: GetBehaviorDetailsResponse | undefined = + behavior_details?.behaviors?.getBehaviorDetails; + + if (dets) { + behavior_map[dets.id] = dets; + } + } + + if (!ignore) { + setBehaviors(behavior_map); + } + } + } + + let ignore = false; + startRequest(); + + return () => { + ignore = true; + }; + }, [connection, lockState]); + + return behaviors; +} + +function useLayouts(): [ + PhysicalLayout[] | undefined, + React.Dispatch>, + number, + React.Dispatch> +] { + let connection = useContext(ConnectionContext); + let lockState = useContext(LockStateContext); + + const [layouts, setLayouts] = useState( + undefined + ); + const [selectedPhysicalLayoutIndex, setSelectedPhysicalLayoutIndex] = + useState(0); + + useEffect(() => { + if ( + !connection.conn || + lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED + ) { + setLayouts(undefined); + return; + } + + async function startRequest() { + setLayouts(undefined); + + if (!connection.conn) { + return; + } + + let response = await call_rpc(connection.conn, { + keymap: { getPhysicalLayouts: true }, + }); + + if (!ignore) { + setLayouts(response?.keymap?.getPhysicalLayouts?.layouts); + setSelectedPhysicalLayoutIndex( + response?.keymap?.getPhysicalLayouts?.activeLayoutIndex || 0 + ); + } + } + + let ignore = false; + startRequest(); + + return () => { + ignore = true; + }; + }, [connection, lockState]); + + return [ + layouts, + setLayouts, + selectedPhysicalLayoutIndex, + setSelectedPhysicalLayoutIndex, + ]; +} + +export default function Keyboard() { + const [ + layouts, + _setLayouts, + selectedPhysicalLayoutIndex, + setSelectedPhysicalLayoutIndex, + ] = useLayouts(); + + const { + keymap, + setKeymap, + } = useKeymap(); + const [keymapScale, setKeymapScale] = useLocalStorageState("keymapScale", "auto", { + deserialize: deserializeLayoutZoom, + }); + + const [selectedLayerIndex, setSelectedLayerIndex] = useState(0); + const [selectedKeyPosition, setSelectedKeyPosition] = useState< + number | undefined + >(undefined); + const behaviors = useBehaviors(); + + const conn = useContext(ConnectionContext); + const undoRedo = useContext(UndoRedoContext); + + useEffect(() => { + setSelectedLayerIndex(0); + setSelectedKeyPosition(undefined); + }, [conn]); + + useEffect(() => { + async function performSetRequest() { + if (!conn.conn || !layouts) { + return; + } + + let resp = await call_rpc(conn.conn, { + keymap: { setActivePhysicalLayout: selectedPhysicalLayoutIndex }, + }); + + let new_keymap = resp?.keymap?.setActivePhysicalLayout?.ok; + if (new_keymap) { + setKeymap(new_keymap); + } else { + console.error( + "Failed to set the active physical layout err:", + resp?.keymap?.setActivePhysicalLayout?.err + ); + } + } + + performSetRequest(); + }, [selectedPhysicalLayoutIndex]); + + let doSelectPhysicalLayout = useCallback( + (i: number) => { + let oldLayout = selectedPhysicalLayoutIndex; + undoRedo?.(async () => { + setSelectedPhysicalLayoutIndex(i); + + return async () => { + setSelectedPhysicalLayoutIndex(oldLayout); + }; + }); + }, + [undoRedo, selectedPhysicalLayoutIndex] + ); + + let doUpdateBinding = useCallback( + (binding: BehaviorBinding) => { + if (!keymap || selectedKeyPosition === undefined) { + console.error( + "Can't update binding without a selected key position and loaded keymap" + ); + return; + } + + const layer = selectedLayerIndex; + const layerId = keymap.layers[layer].id; + const keyPosition = selectedKeyPosition; + const oldBinding = keymap.layers[layer].bindings[keyPosition]; + undoRedo?.(async () => { + if (!conn.conn) { + throw new Error("Not connected"); + } + + let resp = await call_rpc(conn.conn, { + keymap: { setLayerBinding: { layerId, keyPosition, binding } }, + }); + + if ( + resp.keymap?.setLayerBinding === + SetLayerBindingResponse.SET_LAYER_BINDING_RESP_OK + ) { + setKeymap( + produce((draft: any) => { + draft.layers[layer].bindings[keyPosition] = binding; + }) + ); + } else { + console.error("Failed to set binding", resp.keymap?.setLayerBinding); + } + + return async () => { + if (!conn.conn) { + return; + } + + let resp = await call_rpc(conn.conn, { + keymap: { + setLayerBinding: { layerId, keyPosition, binding: oldBinding }, + }, + }); + if ( + resp.keymap?.setLayerBinding === + SetLayerBindingResponse.SET_LAYER_BINDING_RESP_OK + ) { + setKeymap( + produce((draft: any) => { + draft.layers[layer].bindings[keyPosition] = oldBinding; + }) + ); + } else { + } + }; + }); + }, + [conn, keymap, undoRedo, selectedLayerIndex, selectedKeyPosition] + ); + + let selectedBinding = useMemo(() => { + if (keymap == null || selectedKeyPosition == null || !keymap.layers[selectedLayerIndex]) { + return null; + } + + return keymap.layers[selectedLayerIndex].bindings[selectedKeyPosition]; + }, [keymap, selectedLayerIndex, selectedKeyPosition]); + + const moveLayer = useCallback( + (start: number, end: number) => { + const doMove = async (startIndex: number, destIndex: number) => { + if (!conn.conn) { + return; + } + + let resp = await call_rpc(conn.conn, { + keymap: { moveLayer: { startIndex, destIndex } }, + }); + + if (resp.keymap?.moveLayer?.ok) { + setKeymap(resp.keymap?.moveLayer?.ok); + setSelectedLayerIndex(destIndex); + } else { + console.error("Error moving", resp); + } + }; + + undoRedo?.(async () => { + await doMove(start, end); + return () => doMove(end, start); + }); + }, + [undoRedo] + ); + + const addLayer = useCallback(() => { + async function doAdd(): Promise { + if (!conn.conn || !keymap) { + throw new Error("Not connected"); + } + + const resp = await call_rpc(conn.conn, { keymap: { addLayer: {} } }); + + if (resp.keymap?.addLayer?.ok) { + const newSelection = keymap.layers.length; + setKeymap( + produce((draft: any) => { + draft.layers.push(resp.keymap!.addLayer!.ok!.layer); + draft.availableLayers--; + }) + ); + + setSelectedLayerIndex(newSelection); + + return resp.keymap.addLayer.ok.index; + } else { + console.error("Add error", resp.keymap?.addLayer?.err); + throw new Error("Failed to add layer:" + resp.keymap?.addLayer?.err); + } + } + + async function doRemove(layerIndex: number) { + if (!conn.conn) { + throw new Error("Not connected"); + } + + const resp = await call_rpc(conn.conn, { + keymap: { removeLayer: { layerIndex } }, + }); + + console.log(resp); + if (resp.keymap?.removeLayer?.ok) { + setKeymap( + produce((draft: any) => { + draft.layers.splice(layerIndex, 1); + draft.availableLayers++; + }) + ); + } else { + console.error("Remove error", resp.keymap?.removeLayer?.err); + throw new Error( + "Failed to remove layer:" + resp.keymap?.removeLayer?.err + ); + } + } + + undoRedo?.(async () => { + let index = await doAdd(); + return () => doRemove(index); + }); + }, [conn, undoRedo, keymap]); + + const removeLayer = useCallback(() => { + async function doRemove(layerIndex: number): Promise { + if (!conn.conn || !keymap) { + throw new Error("Not connected"); + } + + const resp = await call_rpc(conn.conn, { + keymap: { removeLayer: { layerIndex } }, + }); + + if (resp.keymap?.removeLayer?.ok) { + if (layerIndex == keymap.layers.length - 1) { + setSelectedLayerIndex(layerIndex - 1); + } + setKeymap( + produce((draft: any) => { + draft.layers.splice(layerIndex, 1); + draft.availableLayers++; + }) + ); + } else { + console.error("Remove error", resp.keymap?.removeLayer?.err); + throw new Error( + "Failed to remove layer:" + resp.keymap?.removeLayer?.err + ); + } + } + + async function doRestore(layerId: number, atIndex: number) { + if (!conn.conn) { + throw new Error("Not connected"); + } + + const resp = await call_rpc(conn.conn, { + keymap: { restoreLayer: { layerId, atIndex } }, + }); + + console.log(resp); + if (resp.keymap?.restoreLayer?.ok) { + setKeymap( + produce((draft: any) => { + draft.layers.splice(atIndex, 0, resp!.keymap!.restoreLayer!.ok); + draft.availableLayers--; + }) + ); + setSelectedLayerIndex(atIndex); + } else { + console.error("Remove error", resp.keymap?.restoreLayer?.err); + throw new Error( + "Failed to restore layer:" + resp.keymap?.restoreLayer?.err + ); + } + } + + if (!keymap) { + throw new Error("No keymap loaded"); + } + + let index = selectedLayerIndex; + let layerId = keymap.layers[index].id; + undoRedo?.(async () => { + await doRemove(index); + return () => doRestore(layerId, index); + }); + }, [conn, undoRedo, selectedLayerIndex]); + + const changeLayerName = useCallback( + (id: number, oldName: string, newName: string) => { + async function changeName(layerId: number, name: string) { + if (!conn.conn) { + throw new Error("Not connected"); + } + + const resp = await call_rpc(conn.conn, { + keymap: { setLayerProps: { layerId, name } }, + }); + + if ( + resp.keymap?.setLayerProps == + SetLayerPropsResponse.SET_LAYER_PROPS_RESP_OK + ) { + setKeymap( + produce((draft: any) => { + const layer_index = draft.layers.findIndex( + (l: Layer) => l.id == layerId + ); + draft.layers[layer_index].name = name; + }) + ); + } else { + throw new Error( + "Failed to change layer name:" + resp.keymap?.setLayerProps + ); + } + } + + undoRedo?.(async () => { + await changeName(id, newName); + return async () => { + await changeName(id, oldName); + }; + }); + }, + [conn, undoRedo, keymap] + ); + + useEffect(() => { + if (!keymap?.layers) return; + + const layers = keymap.layers.length - 1; + + if (selectedLayerIndex > layers) { + setSelectedLayerIndex(layers); + } + }, [keymap, selectedLayerIndex]); + + return ( +
    +
    + {layouts && ( +
    + +
    + )} + + {keymap && ( +
    + 0} + canRemove={(keymap.layers?.length || 0) > 1} + onAddClicked={addLayer} + onRemoveClicked={removeLayer} + onLayerNameChanged={changeLayerName} + /> +
    + )} +
    + {layouts && keymap && behaviors && ( +
    + + +
    + )} + {keymap && selectedBinding && ( +
    + ({ + id, + name: name || li.toLocaleString(), + }))} + onBindingChanged={doUpdateBinding} + /> +
    + )} +
    + ); +} diff --git a/src/keyboard/Keymap.tsx b/src/keyboard/Keymap.tsx index 4d457b13..24aa5470 100644 --- a/src/keyboard/Keymap.tsx +++ b/src/keyboard/Keymap.tsx @@ -1,79 +1,79 @@ -import { - PhysicalLayout, - Keymap as KeymapMsg, -} from "@zmkfirmware/zmk-studio-ts-client/keymap"; -import type { GetBehaviorDetailsResponse } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; - -import { - LayoutZoom, - PhysicalLayout as PhysicalLayoutComp, -} from "./PhysicalLayout"; -import { HidUsageLabel } from "./HidUsageLabel"; - -type BehaviorMap = Record; - -export interface KeymapProps { - layout: PhysicalLayout; - keymap: KeymapMsg; - behaviors: BehaviorMap; - scale: LayoutZoom; - selectedLayerIndex: number; - selectedKeyPosition: number | undefined; - onKeyPositionClicked: (keyPosition: number) => void; -} - -export const Keymap = ({ - layout, - keymap, - behaviors, - scale, - selectedLayerIndex, - selectedKeyPosition, - onKeyPositionClicked, -}: KeymapProps) => { - if (!keymap.layers[selectedLayerIndex]) { - return <>; - } - - let positions = layout.keys.map((k, i) => { - if (i >= keymap.layers[selectedLayerIndex].bindings.length) { - return { - header: "Unknown", - x: k.x / 100.0, - y: k.y / 100.0, - width: k.width / 100, - height: k.height / 100.0, - children: , - }; - } - - return { - header: - behaviors[keymap.layers[selectedLayerIndex].bindings[i].behaviorId] - ?.displayName || "Unknown", - x: k.x / 100.0, - y: k.y / 100.0, - width: k.width / 100, - height: k.height / 100.0, - r: (k.r || 0) / 100.0, - rx: (k.rx || 0) / 100.0, - ry: (k.ry || 0) / 100.0, - children: ( - - ), - }; - }); - - return ( - - ); -}; +import { + PhysicalLayout, + Keymap as KeymapMsg, +} from "@zmkfirmware/zmk-studio-ts-client/keymap"; +import type { GetBehaviorDetailsResponse } from "@zmkfirmware/zmk-studio-ts-client/behaviors"; + +import { + LayoutZoom, + PhysicalLayout as PhysicalLayoutComp, +} from "./PhysicalLayout"; +import { HidUsageLabel } from "./HidUsageLabel"; + +type BehaviorMap = Record; + +export interface KeymapProps { + layout: PhysicalLayout; + keymap: KeymapMsg; + behaviors: BehaviorMap; + scale: LayoutZoom; + selectedLayerIndex: number; + selectedKeyPosition: number | undefined; + onKeyPositionClicked: (keyPosition: number) => void; +} + +export const Keymap = ({ + layout, + keymap, + behaviors, + scale, + selectedLayerIndex, + selectedKeyPosition, + onKeyPositionClicked, +}: KeymapProps) => { + if (!keymap.layers[selectedLayerIndex]) { + return <>; + } + + let positions = layout.keys.map((k, i) => { + if (i >= keymap.layers[selectedLayerIndex].bindings.length) { + return { + header: "Unknown", + x: k.x / 100.0, + y: k.y / 100.0, + width: k.width / 100, + height: k.height / 100.0, + children: , + }; + } + + return { + header: + behaviors[keymap.layers[selectedLayerIndex].bindings[i].behaviorId] + ?.displayName || "Unknown", + x: k.x / 100.0, + y: k.y / 100.0, + width: k.width / 100, + height: k.height / 100.0, + r: (k.r || 0) / 100.0, + rx: (k.rx || 0) / 100.0, + ry: (k.ry || 0) / 100.0, + children: ( + + ), + }; + }); + + return ( + + ); +}; diff --git a/src/keyboard/LayerPicker.stories.ts b/src/keyboard/LayerPicker.stories.ts index 32b28863..48a96780 100644 --- a/src/keyboard/LayerPicker.stories.ts +++ b/src/keyboard/LayerPicker.stories.ts @@ -1,45 +1,45 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { LayerPicker } from "./LayerPicker"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Keyboard/LayerPicker", - component: LayerPicker, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { - onLayerClicked: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Named: Story = { - args: { - layers: [ - { id: 1, name: "Base" }, - { id: 2, name: "Num" }, - { id: 3, name: "Nav" }, - { id: 4, name: "Symbol" }, - ], - selectedLayerIndex: 2, - }, -}; - -export const NoNames: Story = { - args: { - layers: [{ id: 1 }, { id: 2 }, { id: 3 }], - selectedLayerIndex: 0, - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { LayerPicker } from "./LayerPicker"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Keyboard/LayerPicker", + component: LayerPicker, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { + onLayerClicked: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Named: Story = { + args: { + layers: [ + { id: 1, name: "Base" }, + { id: 2, name: "Num" }, + { id: 3, name: "Nav" }, + { id: 4, name: "Symbol" }, + ], + selectedLayerIndex: 2, + }, +}; + +export const NoNames: Story = { + args: { + layers: [{ id: 1 }, { id: 2 }, { id: 3 }], + selectedLayerIndex: 0, + }, +}; diff --git a/src/keyboard/LayerPicker.tsx b/src/keyboard/LayerPicker.tsx index 1584191d..67db6abb 100644 --- a/src/keyboard/LayerPicker.tsx +++ b/src/keyboard/LayerPicker.tsx @@ -1,233 +1,233 @@ -import { Pencil, Minus, Plus } from "lucide-react"; -import { useCallback, useMemo, useState } from "react"; -import { - DropIndicator, - Label, - ListBox, - ListBoxItem, - Selection, - useDragAndDrop, -} from "react-aria-components"; -import { useModalRef } from "../misc/useModalRef"; -import { GenericModal } from "../GenericModal"; - -interface Layer { - id: number; - name?: string; -} - -export type LayerClickCallback = (index: number) => void; -export type LayerMovedCallback = (index: number, destination: number) => void; - -interface LayerPickerProps { - layers: Array; - selectedLayerIndex: number; - canAdd?: boolean; - canRemove?: boolean; - - onLayerClicked?: LayerClickCallback; - onLayerMoved?: LayerMovedCallback; - onAddClicked?: () => void | Promise; - onRemoveClicked?: () => void | Promise; - onLayerNameChanged?: ( - id: number, - oldName: string, - newName: string - ) => void | Promise; -} - -interface EditLabelData { - id: number; - name: string; -} - -const EditLabelModal = ({ - open, - onClose, - editLabelData, - handleSaveNewLabel, -}: { - open: boolean; - onClose: () => void; - editLabelData: EditLabelData; - handleSaveNewLabel: ( - id: number, - oldName: string, - newName: string | null - ) => void; -}) => { - const ref = useModalRef(open); - const [newLabelName, setNewLabelName] = useState(editLabelData.name); - - const handleSave = () => { - handleSaveNewLabel(editLabelData.id, editLabelData.name, newLabelName); - onClose(); - }; - - return ( - - New Layer Name - setNewLabelName(e.target.value)} - onKeyDown={(e) => { - if (e.key === "Enter") { - e.preventDefault(); - handleSave(); - } - }} - /> -
    - - -
    -
    - ); -}; - -export const LayerPicker = ({ - layers, - selectedLayerIndex, - canAdd, - canRemove, - onLayerClicked, - onLayerMoved, - onAddClicked, - onRemoveClicked, - onLayerNameChanged, - ...props -}: LayerPickerProps) => { - const [editLabelData, setEditLabelData] = useState( - null - ); - - const layer_items = useMemo(() => { - return layers.map((l, i) => ({ - name: l.name || i.toLocaleString(), - id: l.id, - index: i, - selected: i === selectedLayerIndex, - })); - }, [layers, selectedLayerIndex]); - - const selectionChanged = useCallback( - (s: Selection) => { - if (s === "all") { - return; - } - - onLayerClicked?.(layer_items.findIndex((l) => s.has(l.id))); - }, - [onLayerClicked, layer_items] - ); - - let { dragAndDropHooks } = useDragAndDrop({ - renderDropIndicator(target) { - return ( - - ); - }, - getItems: (keys) => - [...keys].map((key) => ({ "text/plain": key.toLocaleString() })), - onReorder(e) { - let startIndex = layer_items.findIndex((l) => e.keys.has(l.id)); - let endIndex = layer_items.findIndex((l) => l.id === e.target.key); - onLayerMoved?.(startIndex, endIndex); - }, - }); - - const handleSaveNewLabel = useCallback( - (id: number, oldName: string, newName: string | null) => { - if (newName !== null) { - onLayerNameChanged?.(id, oldName, newName); - } - }, - [onLayerNameChanged] - ); - - return ( -
    -
    - - {onRemoveClicked && ( - - )} - {onAddClicked && ( - - )} -
    - {editLabelData !== null && ( - setEditLabelData(null)} - editLabelData={editLabelData} - handleSaveNewLabel={handleSaveNewLabel} - /> - )} - - {(layer_item) => ( - - {layer_item.name} - - setEditLabelData({ id: layer_item.id, name: layer_item.name }) - } - /> - - )} - -
    - ); -}; +import { Pencil, Minus, Plus } from "lucide-react"; +import { useCallback, useMemo, useState } from "react"; +import { + DropIndicator, + Label, + ListBox, + ListBoxItem, + Selection, + useDragAndDrop, +} from "react-aria-components"; +import { useModalRef } from "../misc/useModalRef"; +import { GenericModal } from "../GenericModal"; + +interface Layer { + id: number; + name?: string; +} + +export type LayerClickCallback = (index: number) => void; +export type LayerMovedCallback = (index: number, destination: number) => void; + +interface LayerPickerProps { + layers: Array; + selectedLayerIndex: number; + canAdd?: boolean; + canRemove?: boolean; + + onLayerClicked?: LayerClickCallback; + onLayerMoved?: LayerMovedCallback; + onAddClicked?: () => void | Promise; + onRemoveClicked?: () => void | Promise; + onLayerNameChanged?: ( + id: number, + oldName: string, + newName: string + ) => void | Promise; +} + +interface EditLabelData { + id: number; + name: string; +} + +const EditLabelModal = ({ + open, + onClose, + editLabelData, + handleSaveNewLabel, +}: { + open: boolean; + onClose: () => void; + editLabelData: EditLabelData; + handleSaveNewLabel: ( + id: number, + oldName: string, + newName: string | null + ) => void; +}) => { + const ref = useModalRef(open); + const [newLabelName, setNewLabelName] = useState(editLabelData.name); + + const handleSave = () => { + handleSaveNewLabel(editLabelData.id, editLabelData.name, newLabelName); + onClose(); + }; + + return ( + + New Layer Name + setNewLabelName(e.target.value)} + onKeyDown={(e) => { + if (e.key === "Enter") { + e.preventDefault(); + handleSave(); + } + }} + /> +
    + + +
    +
    + ); +}; + +export const LayerPicker = ({ + layers, + selectedLayerIndex, + canAdd, + canRemove, + onLayerClicked, + onLayerMoved, + onAddClicked, + onRemoveClicked, + onLayerNameChanged, + ...props +}: LayerPickerProps) => { + const [editLabelData, setEditLabelData] = useState( + null + ); + + const layer_items = useMemo(() => { + return layers.map((l, i) => ({ + name: l.name || i.toLocaleString(), + id: l.id, + index: i, + selected: i === selectedLayerIndex, + })); + }, [layers, selectedLayerIndex]); + + const selectionChanged = useCallback( + (s: Selection) => { + if (s === "all") { + return; + } + + onLayerClicked?.(layer_items.findIndex((l) => s.has(l.id))); + }, + [onLayerClicked, layer_items] + ); + + let { dragAndDropHooks } = useDragAndDrop({ + renderDropIndicator(target) { + return ( + + ); + }, + getItems: (keys) => + [...keys].map((key) => ({ "text/plain": key.toLocaleString() })), + onReorder(e) { + let startIndex = layer_items.findIndex((l) => e.keys.has(l.id)); + let endIndex = layer_items.findIndex((l) => l.id === e.target.key); + onLayerMoved?.(startIndex, endIndex); + }, + }); + + const handleSaveNewLabel = useCallback( + (id: number, oldName: string, newName: string | null) => { + if (newName !== null) { + onLayerNameChanged?.(id, oldName, newName); + } + }, + [onLayerNameChanged] + ); + + return ( +
    +
    + + {onRemoveClicked && ( + + )} + {onAddClicked && ( + + )} +
    + {editLabelData !== null && ( + setEditLabelData(null)} + editLabelData={editLabelData} + handleSaveNewLabel={handleSaveNewLabel} + /> + )} + + {(layer_item) => ( + + {layer_item.name} + + setEditLabelData({ id: layer_item.id, name: layer_item.name }) + } + /> + + )} + +
    + ); +}; diff --git a/src/keyboard/PhysicalLayout.stories.tsx b/src/keyboard/PhysicalLayout.stories.tsx index fa1b2f07..5f0071d6 100644 --- a/src/keyboard/PhysicalLayout.stories.tsx +++ b/src/keyboard/PhysicalLayout.stories.tsx @@ -1,195 +1,195 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { PhysicalLayout } from "./PhysicalLayout"; -import { HidUsageLabel } from "./HidUsageLabel"; -import { hid_usage_from_page_and_id } from "../hid-usages"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Keyboard/PhysicalLayout", - component: PhysicalLayout, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: {}, - args: { - onPositionClicked: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -const TOP = [41, ...[..."QWERTYUIOP"].map((c) => c.charCodeAt(0) - 61)]; -const MIDDLE = [...[..."ASDFGHJKL"].map((c) => c.charCodeAt(0) - 61), 51]; -const LOWER = [ - ...[..."ZXCVBNM"].map((c) => c.charCodeAt(0) - 61), - 54, - 55, - 82, - 229, -]; - -const MINIVAN_POSITIONS = [ - ...TOP.map((k, i) => ({ - width: 1, - height: 1, - x: i, - y: 0, - header: "Key Press", - children: [], - })), - { - x: TOP.length, - y: 0, - width: 1.75, - height: 1, - header: "Key Press", - children: [], - }, - { - x: 0, - y: 1, - width: 1.25, - height: 1, - header: "Key Press", - children: [Tab], - }, - ...MIDDLE.map((k, i) => ({ - x: i + 1.25, - y: 1, - width: 1, - height: 1, - header: "Key Press", - children: [], - })), - { - x: MIDDLE.length + 1.25, - y: 1, - width: 1.5, - height: 1, - header: "Key Press", - children: [], - }, - { - x: 0, - y: 2, - width: 1.75, - height: 1, - header: "Key Press", - children: [ - , - ], - }, - ...LOWER.map((k, i) => ({ - x: i + 1.75, - y: 2, - width: 1, - height: 1, - header: "Key Press", - children: [], - })), - { - x: 0, - y: 3, - width: 1.25, - height: 1, - header: "Key Press", - children: [ - , - ], - }, - { - x: 1.25, - y: 3, - width: 1.5, - height: 1, - header: "Key Press", - children: [ - , - ], - }, - { - x: 2.75, - y: 3, - width: 1.25, - height: 1, - header: "Key Press", - children: [ - , - ], - }, - { - x: 4, - y: 3, - width: 2.25, - height: 1, - header: "Key Press", - children: [], - }, - { - x: 6.25, - y: 3, - width: 2, - height: 1, - header: "Key Press", - children: [], - }, - { - x: 8.25, - y: 3, - width: 1.5, - height: 1, - header: "Key Press", - children: [ - , - ], - }, - { - x: 9.75, - y: 3, - width: 1, - height: 1, - header: "Key Press", - children: [], - }, - { - x: 10.75, - y: 3, - width: 1, - height: 1, - header: "Key Press", - children: [], - }, - { - x: 11.75, - y: 3, - width: 1, - height: 1, - header: "Key Press", - children: [], - }, -]; - -export const Minivan: Story = { - args: { - positions: MINIVAN_POSITIONS, - hoverZoom: true, - }, -}; - -export const MiniMinivan: Story = { - args: { - positions: MINIVAN_POSITIONS.map(({ x, y, width, height }) => ({ - x, - y, - width, - height, - })), - oneU: 15, - hoverZoom: false, - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { PhysicalLayout } from "./PhysicalLayout"; +import { HidUsageLabel } from "./HidUsageLabel"; +import { hid_usage_from_page_and_id } from "../hid-usages"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Keyboard/PhysicalLayout", + component: PhysicalLayout, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: {}, + args: { + onPositionClicked: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +const TOP = [41, ...[..."QWERTYUIOP"].map((c) => c.charCodeAt(0) - 61)]; +const MIDDLE = [...[..."ASDFGHJKL"].map((c) => c.charCodeAt(0) - 61), 51]; +const LOWER = [ + ...[..."ZXCVBNM"].map((c) => c.charCodeAt(0) - 61), + 54, + 55, + 82, + 229, +]; + +const MINIVAN_POSITIONS = [ + ...TOP.map((k, i) => ({ + width: 1, + height: 1, + x: i, + y: 0, + header: "Key Press", + children: [], + })), + { + x: TOP.length, + y: 0, + width: 1.75, + height: 1, + header: "Key Press", + children: [], + }, + { + x: 0, + y: 1, + width: 1.25, + height: 1, + header: "Key Press", + children: [Tab], + }, + ...MIDDLE.map((k, i) => ({ + x: i + 1.25, + y: 1, + width: 1, + height: 1, + header: "Key Press", + children: [], + })), + { + x: MIDDLE.length + 1.25, + y: 1, + width: 1.5, + height: 1, + header: "Key Press", + children: [], + }, + { + x: 0, + y: 2, + width: 1.75, + height: 1, + header: "Key Press", + children: [ + , + ], + }, + ...LOWER.map((k, i) => ({ + x: i + 1.75, + y: 2, + width: 1, + height: 1, + header: "Key Press", + children: [], + })), + { + x: 0, + y: 3, + width: 1.25, + height: 1, + header: "Key Press", + children: [ + , + ], + }, + { + x: 1.25, + y: 3, + width: 1.5, + height: 1, + header: "Key Press", + children: [ + , + ], + }, + { + x: 2.75, + y: 3, + width: 1.25, + height: 1, + header: "Key Press", + children: [ + , + ], + }, + { + x: 4, + y: 3, + width: 2.25, + height: 1, + header: "Key Press", + children: [], + }, + { + x: 6.25, + y: 3, + width: 2, + height: 1, + header: "Key Press", + children: [], + }, + { + x: 8.25, + y: 3, + width: 1.5, + height: 1, + header: "Key Press", + children: [ + , + ], + }, + { + x: 9.75, + y: 3, + width: 1, + height: 1, + header: "Key Press", + children: [], + }, + { + x: 10.75, + y: 3, + width: 1, + height: 1, + header: "Key Press", + children: [], + }, + { + x: 11.75, + y: 3, + width: 1, + height: 1, + header: "Key Press", + children: [], + }, +]; + +export const Minivan: Story = { + args: { + positions: MINIVAN_POSITIONS, + hoverZoom: true, + }, +}; + +export const MiniMinivan: Story = { + args: { + positions: MINIVAN_POSITIONS.map(({ x, y, width, height }) => ({ + x, + y, + width, + height, + })), + oneU: 15, + hoverZoom: false, + }, +}; diff --git a/src/keyboard/PhysicalLayout.tsx b/src/keyboard/PhysicalLayout.tsx index 6c7d98cf..39426e37 100644 --- a/src/keyboard/PhysicalLayout.tsx +++ b/src/keyboard/PhysicalLayout.tsx @@ -1,156 +1,156 @@ -import { - CSSProperties, - PropsWithChildren, - useLayoutEffect, - useRef, - useState, -} from "react"; -import { Key } from "./Key"; - -export type KeyPosition = PropsWithChildren<{ - header?: string; - width: number; - height: number; - x: number; - y: number; - r?: number; - rx?: number; - ry?: number; -}>; - -export type LayoutZoom = number | "auto"; - -export function deserializeLayoutZoom(value: string): LayoutZoom { - if (value === "auto") { - return "auto"; - } - return parseFloat(value) || "auto"; -} - -interface PhysicalLayoutProps { - positions: Array; - selectedPosition?: number; - oneU?: number; - hoverZoom?: boolean; - zoom?: LayoutZoom; - onPositionClicked?: (position: number) => void; -} - -interface PhysicalLayoutPositionLocation { - x: number; - y: number; - r?: number; - rx?: number; - ry?: number; -} - -function scalePosition( - { x, y, r, rx, ry }: PhysicalLayoutPositionLocation, - oneU: number, -): CSSProperties { - let left = x * oneU; - let top = y * oneU; - let transformOrigin = undefined; - let transform = undefined; - - if (r) { - let transformX = ((rx || x) - x) * oneU; - let transformY = ((ry || y) - y) * oneU; - transformOrigin = `${transformX}px ${transformY}px`; - transform = `rotate(${r}deg)`; - } - - return { - top, - left, - transformOrigin, - transform, - willChange: "transform", - }; -} - -export const PhysicalLayout = ({ - positions, - selectedPosition, - oneU = 48, - hoverZoom = true, - onPositionClicked, - ...props -}: PhysicalLayoutProps) => { - const ref = useRef(null); - const [scale, setScale] = useState(1); - - useLayoutEffect(() => { - const element = ref.current; - if (!element) return; - - const parent = element.parentElement; - if (!parent) return; - - const calculateScale = () => { - if (props.zoom === "auto") { - const padding = Math.min(window.innerWidth, window.innerHeight) * 0.05; // Padding when in auto mode - const newScale = Math.min( - parent.clientWidth / (element.clientWidth + 2 * padding), - parent.clientHeight / (element.clientHeight + 2 * padding), - ); - setScale(newScale); - } else { - setScale(props.zoom || 1); - } - }; - - calculateScale(); // Initial calculation - - const resizeObserver = new ResizeObserver(() => { - calculateScale(); - }); - - resizeObserver.observe(element); - resizeObserver.observe(parent); - - return () => { - resizeObserver.disconnect(); - }; - }, [props.zoom]); - - // TODO: Add a bit of padding for rotation when supported - let rightMost = positions - .map((k) => k.x + k.width) - .reduce((a, b) => Math.max(a, b), 0); - let bottomMost = positions - .map((k) => k.y + k.height) - .reduce((a, b) => Math.max(a, b), 0); - - const positionItems = positions.map((p, idx) => ( -
    onPositionClicked?.(idx)} - className="absolute data-[zoomer=true]:hover:z-[1000] leading-[0]" - data-zoomer={hoverZoom} - style={scalePosition(p, oneU)} - > - -
    - )); - - return ( -
    - {positionItems} -
    - ); -}; +import { + CSSProperties, + PropsWithChildren, + useLayoutEffect, + useRef, + useState, +} from "react"; +import { Key } from "./Key"; + +export type KeyPosition = PropsWithChildren<{ + header?: string; + width: number; + height: number; + x: number; + y: number; + r?: number; + rx?: number; + ry?: number; +}>; + +export type LayoutZoom = number | "auto"; + +export function deserializeLayoutZoom(value: string): LayoutZoom { + if (value === "auto") { + return "auto"; + } + return parseFloat(value) || "auto"; +} + +interface PhysicalLayoutProps { + positions: Array; + selectedPosition?: number; + oneU?: number; + hoverZoom?: boolean; + zoom?: LayoutZoom; + onPositionClicked?: (position: number) => void; +} + +interface PhysicalLayoutPositionLocation { + x: number; + y: number; + r?: number; + rx?: number; + ry?: number; +} + +function scalePosition( + { x, y, r, rx, ry }: PhysicalLayoutPositionLocation, + oneU: number, +): CSSProperties { + let left = x * oneU; + let top = y * oneU; + let transformOrigin = undefined; + let transform = undefined; + + if (r) { + let transformX = ((rx || x) - x) * oneU; + let transformY = ((ry || y) - y) * oneU; + transformOrigin = `${transformX}px ${transformY}px`; + transform = `rotate(${r}deg)`; + } + + return { + top, + left, + transformOrigin, + transform, + willChange: "transform", + }; +} + +export const PhysicalLayout = ({ + positions, + selectedPosition, + oneU = 48, + hoverZoom = true, + onPositionClicked, + ...props +}: PhysicalLayoutProps) => { + const ref = useRef(null); + const [scale, setScale] = useState(1); + + useLayoutEffect(() => { + const element = ref.current; + if (!element) return; + + const parent = element.parentElement; + if (!parent) return; + + const calculateScale = () => { + if (props.zoom === "auto") { + const padding = Math.min(window.innerWidth, window.innerHeight) * 0.05; // Padding when in auto mode + const newScale = Math.min( + parent.clientWidth / (element.clientWidth + 2 * padding), + parent.clientHeight / (element.clientHeight + 2 * padding), + ); + setScale(newScale); + } else { + setScale(props.zoom || 1); + } + }; + + calculateScale(); // Initial calculation + + const resizeObserver = new ResizeObserver(() => { + calculateScale(); + }); + + resizeObserver.observe(element); + resizeObserver.observe(parent); + + return () => { + resizeObserver.disconnect(); + }; + }, [props.zoom]); + + // TODO: Add a bit of padding for rotation when supported + let rightMost = positions + .map((k) => k.x + k.width) + .reduce((a, b) => Math.max(a, b), 0); + let bottomMost = positions + .map((k) => k.y + k.height) + .reduce((a, b) => Math.max(a, b), 0); + + const positionItems = positions.map((p, idx) => ( +
    onPositionClicked?.(idx)} + className="absolute data-[zoomer=true]:hover:z-[1000] leading-[0]" + data-zoomer={hoverZoom} + style={scalePosition(p, oneU)} + > + +
    + )); + + return ( +
    + {positionItems} +
    + ); +}; diff --git a/src/keyboard/PhysicalLayoutPicker.stories.ts b/src/keyboard/PhysicalLayoutPicker.stories.ts index 9ab11688..96d57387 100644 --- a/src/keyboard/PhysicalLayoutPicker.stories.ts +++ b/src/keyboard/PhysicalLayoutPicker.stories.ts @@ -1,52 +1,52 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; -import { PhysicalLayoutPicker } from "./PhysicalLayoutPicker"; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: "Keyboard/PhysicalLayoutPicker", - component: PhysicalLayoutPicker, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: "centered", - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ["autodocs"], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - // backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { - onPhysicalLayoutClicked: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Standard: Story = { - args: { - layouts: [ - { - name: "ISO", - keys: [1, 2, 3].map((x) => ({ - x: x * 100, - y: 0, - width: 100, - height: 100, - })), - }, - { - name: "ANSI", - keys: [1, 2, 3, 4].map((x) => ({ - x: x * 100, - y: 0, - width: 100, - height: 100, - })), - }, - ], - selectedPhysicalLayoutIndex: 1, - }, -}; +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { PhysicalLayoutPicker } from "./PhysicalLayoutPicker"; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: "Keyboard/PhysicalLayoutPicker", + component: PhysicalLayoutPicker, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: "centered", + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ["autodocs"], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { + onPhysicalLayoutClicked: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Standard: Story = { + args: { + layouts: [ + { + name: "ISO", + keys: [1, 2, 3].map((x) => ({ + x: x * 100, + y: 0, + width: 100, + height: 100, + })), + }, + { + name: "ANSI", + keys: [1, 2, 3, 4].map((x) => ({ + x: x * 100, + y: 0, + width: 100, + height: 100, + })), + }, + ], + selectedPhysicalLayoutIndex: 1, + }, +}; diff --git a/src/keyboard/PhysicalLayoutPicker.tsx b/src/keyboard/PhysicalLayoutPicker.tsx index 1821091c..74e0e0fa 100644 --- a/src/keyboard/PhysicalLayoutPicker.tsx +++ b/src/keyboard/PhysicalLayoutPicker.tsx @@ -1,88 +1,88 @@ -import { - Button, - Key, - Label, - ListBox, - ListBoxItem, - Popover, - Select, - SelectValue, - Text, -} from "react-aria-components"; -import { PhysicalLayout, type KeyPosition } from "./PhysicalLayout"; -import { useCallback } from "react"; - -export interface PhysicalLayoutItem { - name: string; - keys: Array; -} - -export type PhysicalLayoutClickCallback = (index: number) => void; - -export interface PhysicalLayoutPickerProps { - layouts: Array; - - selectedPhysicalLayoutIndex: number; - - onPhysicalLayoutClicked?: PhysicalLayoutClickCallback; -} - -export const PhysicalLayoutPicker = ({ - layouts, - selectedPhysicalLayoutIndex, - onPhysicalLayoutClicked, -}: PhysicalLayoutPickerProps) => { - let selectionChanged = useCallback( - (e: Key) => { - onPhysicalLayoutClicked?.(layouts.findIndex((l) => l.name === e)); - }, - [layouts, onPhysicalLayoutClicked] - ); - - return ( - - ); -}; +import { + Button, + Key, + Label, + ListBox, + ListBoxItem, + Popover, + Select, + SelectValue, + Text, +} from "react-aria-components"; +import { PhysicalLayout, type KeyPosition } from "./PhysicalLayout"; +import { useCallback } from "react"; + +export interface PhysicalLayoutItem { + name: string; + keys: Array; +} + +export type PhysicalLayoutClickCallback = (index: number) => void; + +export interface PhysicalLayoutPickerProps { + layouts: Array; + + selectedPhysicalLayoutIndex: number; + + onPhysicalLayoutClicked?: PhysicalLayoutClickCallback; +} + +export const PhysicalLayoutPicker = ({ + layouts, + selectedPhysicalLayoutIndex, + onPhysicalLayoutClicked, +}: PhysicalLayoutPickerProps) => { + let selectionChanged = useCallback( + (e: Key) => { + onPhysicalLayoutClicked?.(layouts.findIndex((l) => l.name === e)); + }, + [layouts, onPhysicalLayoutClicked] + ); + + return ( + + ); +}; diff --git a/src/main.tsx b/src/main.tsx index 966f17a4..88eb9456 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,10 +1,10 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; -import App from "./App.tsx"; -import "./index.css"; - -ReactDOM.createRoot(document.getElementById("root")!).render( - - - -); +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App.tsx"; +import "./index.css"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + +); diff --git a/src/misc/ExternalLink.tsx b/src/misc/ExternalLink.tsx index cbf1f70d..87ce7be6 100644 --- a/src/misc/ExternalLink.tsx +++ b/src/misc/ExternalLink.tsx @@ -1,19 +1,19 @@ -import { PropsWithChildren } from "react"; - -import { ExternalLink as LinkIcon } from "lucide-react"; - -export interface ExternalLinkProps { - href: string; -} - -export const ExternalLink = ({ - href, - children, -}: PropsWithChildren) => { - return ( - - {children} - - - ); -}; +import { PropsWithChildren } from "react"; + +import { ExternalLink as LinkIcon } from "lucide-react"; + +export interface ExternalLinkProps { + href: string; +} + +export const ExternalLink = ({ + href, + children, +}: PropsWithChildren) => { + return ( + + {children} + + + ); +}; diff --git a/src/misc/LicenseNoticeModal.tsx b/src/misc/LicenseNoticeModal.tsx index 62500a65..209e18d4 100644 --- a/src/misc/LicenseNoticeModal.tsx +++ b/src/misc/LicenseNoticeModal.tsx @@ -1,41 +1,41 @@ -import { useModalRef } from "./useModalRef"; - -import NOTICE from "../../NOTICE?raw"; -import { GenericModal } from "../GenericModal"; - -export interface LicenseNoticeModalProps { - open: boolean; - onClose: () => void; -} - -export const LicenseNoticeModal = ({ - open, - onClose, -}: LicenseNoticeModalProps) => { - const ref = useModalRef(open, true); - - return ( - -
    -
    -

    - ZMK Studio is released under the open source Apache 2.0 license. A - copy of the NOTICE file from the ZMK Studio repository is included - here: -

    - -
    -
    {NOTICE}
    -
    -
    - ); -}; +import { useModalRef } from "./useModalRef"; + +import NOTICE from "../../NOTICE?raw"; +import { GenericModal } from "../GenericModal"; + +export interface LicenseNoticeModalProps { + open: boolean; + onClose: () => void; +} + +export const LicenseNoticeModal = ({ + open, + onClose, +}: LicenseNoticeModalProps) => { + const ref = useModalRef(open, true); + + return ( + +
    +
    +

    + ZMK Studio is released under the open source Apache 2.0 license. A + copy of the NOTICE file from the ZMK Studio repository is included + here: +

    + +
    +
    {NOTICE}
    +
    +
    + ); +}; diff --git a/src/misc/Tooltip.tsx b/src/misc/Tooltip.tsx index 5839383d..c392ba27 100644 --- a/src/misc/Tooltip.tsx +++ b/src/misc/Tooltip.tsx @@ -1,17 +1,17 @@ -import { TooltipTrigger, Tooltip as AriaTooltip } from "react-aria-components"; - -export interface TooltipProps { - children: React.ReactNode; - label: string; -} - -export const Tooltip = ({ children, label }: TooltipProps) => { - return ( - - {children} - - {label} - - - ); -} +import { TooltipTrigger, Tooltip as AriaTooltip } from "react-aria-components"; + +export interface TooltipProps { + children: React.ReactNode; + label: string; +} + +export const Tooltip = ({ children, label }: TooltipProps) => { + return ( + + {children} + + {label} + + + ); +} diff --git a/src/misc/async.ts b/src/misc/async.ts index 5c683609..b690cabe 100644 --- a/src/misc/async.ts +++ b/src/misc/async.ts @@ -1,5 +1,5 @@ -export function valueAfter(val: T, ms?: number): Promise { - return new Promise((resolve) => { - setTimeout(() => resolve(val), ms); - }); -} +export function valueAfter(val: T, ms?: number): Promise { + return new Promise((resolve) => { + setTimeout(() => resolve(val), ms); + }); +} diff --git a/src/misc/useLocalStorageState.ts b/src/misc/useLocalStorageState.ts index e0662129..6f76da39 100644 --- a/src/misc/useLocalStorageState.ts +++ b/src/misc/useLocalStorageState.ts @@ -1,38 +1,38 @@ -import { useEffect, useState } from "react"; - -function basicSerialize(value: T): string { - if (typeof value === "object") { - return JSON.stringify(value); - } - return String(value); -} - -export function useLocalStorageState( - key: string, - defaultValue: T, - options?: { - serialize?: (value: T) => string; - deserialize?: (value: string) => T; - }, -) { - const reactState = useState(() => { - const savedValue = localStorage.getItem(key); - if (savedValue !== null) { - if (options?.deserialize) { - return options.deserialize(savedValue); - } - return savedValue as T; // Assuming T is a string - } - return defaultValue; - }); - - const [state] = reactState; - - useEffect(() => { - const serializedState = - options?.serialize?.(state) || basicSerialize(state); - localStorage.setItem(key, serializedState); - }, [state, key, options]); - - return reactState; -} +import { useEffect, useState } from "react"; + +function basicSerialize(value: T): string { + if (typeof value === "object") { + return JSON.stringify(value); + } + return String(value); +} + +export function useLocalStorageState( + key: string, + defaultValue: T, + options?: { + serialize?: (value: T) => string; + deserialize?: (value: string) => T; + }, +) { + const reactState = useState(() => { + const savedValue = localStorage.getItem(key); + if (savedValue !== null) { + if (options?.deserialize) { + return options.deserialize(savedValue); + } + return savedValue as T; // Assuming T is a string + } + return defaultValue; + }); + + const [state] = reactState; + + useEffect(() => { + const serializedState = + options?.serialize?.(state) || basicSerialize(state); + localStorage.setItem(key, serializedState); + }, [state, key, options]); + + return reactState; +} diff --git a/src/misc/useModalRef.ts b/src/misc/useModalRef.ts index 30205cd4..e7669743 100644 --- a/src/misc/useModalRef.ts +++ b/src/misc/useModalRef.ts @@ -1,52 +1,52 @@ -import { MutableRefObject, useEffect, useRef } from "react"; - -export function useModalRef( - open: boolean, - closeOnOutsideClick?: boolean, - allowCancel?: boolean -): MutableRefObject { - const ref = useRef(null); - - let reopen = async () => { - // We do this in a timeout so it runs after the modal has actually closed. - setTimeout(() => ref.current?.showModal()); - }; - - useEffect(() => { - if (open) { - if (ref.current && !ref.current?.open) { - ref.current?.showModal(); - if (allowCancel !== undefined && !allowCancel) { - ref.current?.addEventListener("cancel", reopen); - } - } - if (closeOnOutsideClick) { - const handleClickOutside = (e: MouseEvent) => { - const target = e.target as HTMLDialogElement | null; - if (!target) return; - - const { top, left, width, height } = target.getBoundingClientRect(); - const clickedInDialog = - top <= e.clientY && - e.clientY <= top + height && - left <= e.clientX && - e.clientX <= left + width; - - if (!clickedInDialog) { - target.close(); - } - }; - - document.addEventListener("mousedown", handleClickOutside); - return () => { - document.removeEventListener("mousedown", handleClickOutside); - }; - } - } else { - ref.current?.close(); - ref.current?.removeEventListener("cancel", reopen); - } - }, [open, closeOnOutsideClick]); - - return ref; -} +import { MutableRefObject, useEffect, useRef } from "react"; + +export function useModalRef( + open: boolean, + closeOnOutsideClick?: boolean, + allowCancel?: boolean +): MutableRefObject { + const ref = useRef(null); + + let reopen = async () => { + // We do this in a timeout so it runs after the modal has actually closed. + setTimeout(() => ref.current?.showModal()); + }; + + useEffect(() => { + if (open) { + if (ref.current && !ref.current?.open) { + ref.current?.showModal(); + if (allowCancel !== undefined && !allowCancel) { + ref.current?.addEventListener("cancel", reopen); + } + } + if (closeOnOutsideClick) { + const handleClickOutside = (e: MouseEvent) => { + const target = e.target as HTMLDialogElement | null; + if (!target) return; + + const { top, left, width, height } = target.getBoundingClientRect(); + const clickedInDialog = + top <= e.clientY && + e.clientY <= top + height && + left <= e.clientX && + e.clientX <= left + width; + + if (!clickedInDialog) { + target.close(); + } + }; + + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + } + } else { + ref.current?.close(); + ref.current?.removeEventListener("cancel", reopen); + } + }, [open, closeOnOutsideClick]); + + return ref; +} diff --git a/src/react-extra.d.ts b/src/react-extra.d.ts index 8588fdd8..576f493a 100644 --- a/src/react-extra.d.ts +++ b/src/react-extra.d.ts @@ -1,8 +1,8 @@ -import "react"; - -// Needed for setting CSS *variables* to `style` properties in TSX. -declare module "react" { - interface CSSProperties { - [key: `--${string}`]: string | number; - } -} +import "react"; + +// Needed for setting CSS *variables* to `style` properties in TSX. +declare module "react" { + interface CSSProperties { + [key: `--${string}`]: string | number; + } +} diff --git a/src/rpc/ConnectionContext.ts b/src/rpc/ConnectionContext.ts index 1ffad3c9..e68ee12d 100644 --- a/src/rpc/ConnectionContext.ts +++ b/src/rpc/ConnectionContext.ts @@ -1,9 +1,9 @@ -import { createContext } from "react"; - -import { RpcConnection } from "@zmkfirmware/zmk-studio-ts-client/index"; - -export interface ConnectionState { - conn: RpcConnection | null; -} - -export const ConnectionContext = createContext({ conn: null }); +import { createContext } from "react"; + +import { RpcConnection } from "@zmkfirmware/zmk-studio-ts-client/index"; + +export interface ConnectionState { + conn: RpcConnection | null; +} + +export const ConnectionContext = createContext({ conn: null }); diff --git a/src/rpc/LockStateContext.ts b/src/rpc/LockStateContext.ts index 5d2dec1d..2686372d 100644 --- a/src/rpc/LockStateContext.ts +++ b/src/rpc/LockStateContext.ts @@ -1,7 +1,7 @@ -import { createContext } from "react"; - -import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; - -export const LockStateContext = createContext( - LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED -); +import { createContext } from "react"; + +import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; + +export const LockStateContext = createContext( + LockState.ZMK_STUDIO_CORE_LOCK_STATE_LOCKED +); diff --git a/src/rpc/logging.ts b/src/rpc/logging.ts index 706d980b..a4377f3c 100644 --- a/src/rpc/logging.ts +++ b/src/rpc/logging.ts @@ -1,22 +1,22 @@ -import { - call_rpc as inner_call_rpc, - Request, - RequestResponse, - RpcConnection, -} from "@zmkfirmware/zmk-studio-ts-client"; - -export async function call_rpc( - conn: RpcConnection, - req: Omit -): Promise { - console.log("RPC Request", req); - return inner_call_rpc(conn, req) - .then((r) => { - console.log("RPC Response", r); - return r; - }) - .catch((e) => { - console.error("RPC Error", e); - return e; - }); -} +import { + call_rpc as inner_call_rpc, + Request, + RequestResponse, + RpcConnection, +} from "@zmkfirmware/zmk-studio-ts-client"; + +export async function call_rpc( + conn: RpcConnection, + req: Omit +): Promise { + console.log("RPC Request", req); + return inner_call_rpc(conn, req) + .then((r) => { + console.log("RPC Response", r); + return r; + }) + .catch((e) => { + console.error("RPC Error", e); + return e; + }); +} diff --git a/src/rpc/useConnectedDeviceData.ts b/src/rpc/useConnectedDeviceData.ts index b64e41d5..8dca6040 100644 --- a/src/rpc/useConnectedDeviceData.ts +++ b/src/rpc/useConnectedDeviceData.ts @@ -1,56 +1,56 @@ -import React, { SetStateAction, useContext, useEffect, useState } from "react"; -import { ConnectionContext } from "./ConnectionContext"; - -import { call_rpc } from "./logging"; - -import { Request, RequestResponse } from "@zmkfirmware/zmk-studio-ts-client"; -import { LockStateContext } from "./LockStateContext"; -import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; - -export function useConnectedDeviceData( - req: Omit, - response_mapper: (resp: RequestResponse) => T | undefined, - requireUnlock?: boolean -): [T | undefined, React.Dispatch>] { - let connection = useContext(ConnectionContext); - let lockState = useContext(LockStateContext); - let [data, setData] = useState(undefined); - - useEffect( - () => { - if ( - !connection.conn || - (requireUnlock && - lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED) - ) { - setData(undefined); - return; - } - - async function startRequest() { - setData(undefined); - if (!connection.conn) { - return; - } - - let response = response_mapper(await call_rpc(connection.conn, req)); - - if (!ignore) { - setData(response); - } - } - - let ignore = false; - startRequest(); - - return () => { - ignore = true; - }; - }, - requireUnlock - ? [connection, requireUnlock, lockState] - : [connection, requireUnlock] - ); - - return [data, setData]; -} +import React, { SetStateAction, useContext, useEffect, useState } from "react"; +import { ConnectionContext } from "./ConnectionContext"; + +import { call_rpc } from "./logging"; + +import { Request, RequestResponse } from "@zmkfirmware/zmk-studio-ts-client"; +import { LockStateContext } from "./LockStateContext"; +import { LockState } from "@zmkfirmware/zmk-studio-ts-client/core"; + +export function useConnectedDeviceData( + req: Omit, + response_mapper: (resp: RequestResponse) => T | undefined, + requireUnlock?: boolean +): [T | undefined, React.Dispatch>] { + let connection = useContext(ConnectionContext); + let lockState = useContext(LockStateContext); + let [data, setData] = useState(undefined); + + useEffect( + () => { + if ( + !connection.conn || + (requireUnlock && + lockState != LockState.ZMK_STUDIO_CORE_LOCK_STATE_UNLOCKED) + ) { + setData(undefined); + return; + } + + async function startRequest() { + setData(undefined); + if (!connection.conn) { + return; + } + + let response = response_mapper(await call_rpc(connection.conn, req)); + + if (!ignore) { + setData(response); + } + } + + let ignore = false; + startRequest(); + + return () => { + ignore = true; + }; + }, + requireUnlock + ? [connection, requireUnlock, lockState] + : [connection, requireUnlock] + ); + + return [data, setData]; +} diff --git a/src/tauri/ble.ts b/src/tauri/ble.ts index 90ca63ea..e898dc4a 100644 --- a/src/tauri/ble.ts +++ b/src/tauri/ble.ts @@ -1,56 +1,56 @@ -import { invoke } from "@tauri-apps/api/core"; -import { listen } from "@tauri-apps/api/event"; - -import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; -import { AvailableDevice } from "."; - -export async function list_devices(): Promise> { - return await invoke("gatt_list_devices"); -} - -export async function connect(dev: AvailableDevice): Promise { - if (!(await invoke("gatt_connect", dev))) { - throw new Error("Failed to connect"); - } - - let abortController = new AbortController(); - - let writable = new WritableStream({ - async write(chunk, _controller) { - await invoke("transport_send_data", new Uint8Array(chunk)); - }, - }); - - let { writable: response_writable, readable } = new TransformStream(); - - const unlisten_data = await listen( - "connection_data", - async (event: { payload: Array }) => { - let writer = response_writable.getWriter(); - await writer.write(new Uint8Array(event.payload)); - writer.releaseLock(); - } - ); - - const unlisten_disconnected = await listen( - "connection_disconnected", - async (_ev: any) => { - unlisten_data(); - unlisten_disconnected(); - response_writable.close(); - } - ); - - let signal = abortController.signal; - - let abort_cb = async (_reason: any) => { - unlisten_data(); - unlisten_disconnected(); - await invoke("transport_close"); - signal.removeEventListener("abort", abort_cb); - }; - - signal.addEventListener("abort", abort_cb); - - return { label: dev.label, abortController, readable, writable }; -} +import { invoke } from "@tauri-apps/api/core"; +import { listen } from "@tauri-apps/api/event"; + +import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; +import { AvailableDevice } from "."; + +export async function list_devices(): Promise> { + return await invoke("gatt_list_devices"); +} + +export async function connect(dev: AvailableDevice): Promise { + if (!(await invoke("gatt_connect", dev))) { + throw new Error("Failed to connect"); + } + + let abortController = new AbortController(); + + let writable = new WritableStream({ + async write(chunk, _controller) { + await invoke("transport_send_data", new Uint8Array(chunk)); + }, + }); + + let { writable: response_writable, readable } = new TransformStream(); + + const unlisten_data = await listen( + "connection_data", + async (event: { payload: Array }) => { + let writer = response_writable.getWriter(); + await writer.write(new Uint8Array(event.payload)); + writer.releaseLock(); + } + ); + + const unlisten_disconnected = await listen( + "connection_disconnected", + async (_ev: any) => { + unlisten_data(); + unlisten_disconnected(); + response_writable.close(); + } + ); + + let signal = abortController.signal; + + let abort_cb = async (_reason: any) => { + unlisten_data(); + unlisten_disconnected(); + await invoke("transport_close"); + signal.removeEventListener("abort", abort_cb); + }; + + signal.addEventListener("abort", abort_cb); + + return { label: dev.label, abortController, readable, writable }; +} diff --git a/src/tauri/index.ts b/src/tauri/index.ts index 4d24c743..64fe353e 100644 --- a/src/tauri/index.ts +++ b/src/tauri/index.ts @@ -1 +1 @@ -export type AvailableDevice = { label: string; id: string }; +export type AvailableDevice = { label: string; id: string }; diff --git a/src/tauri/serial.ts b/src/tauri/serial.ts index 806049d6..246cccd0 100644 --- a/src/tauri/serial.ts +++ b/src/tauri/serial.ts @@ -1,56 +1,56 @@ -import { invoke } from "@tauri-apps/api/core"; -import { listen } from "@tauri-apps/api/event"; - -import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; -import { AvailableDevice } from "."; - -export async function list_devices(): Promise> { - return await invoke("serial_list_devices"); -} - -export async function connect(dev: AvailableDevice): Promise { - if (!(await invoke("serial_connect", dev))) { - throw new Error("Failed to connect"); - } - - let abortController = new AbortController(); - - let writable = new WritableStream({ - async write(chunk, _controller) { - await invoke("transport_send_data", new Uint8Array(chunk)); - }, - }); - - let { writable: response_writable, readable } = new TransformStream(); - - const unlisten_data = await listen( - "connection_data", - async (event: { payload: Array }) => { - let writer = response_writable.getWriter(); - await writer.write(new Uint8Array(event.payload)); - writer.releaseLock(); - } - ); - - const unlisten_disconnected = await listen( - "connection_disconnected", - async (_ev: any) => { - unlisten_data(); - unlisten_disconnected(); - response_writable.close(); - } - ); - - let signal = abortController.signal; - - let abort_cb = async (_reason: any) => { - unlisten_data(); - unlisten_disconnected(); - await invoke("transport_close"); - signal.removeEventListener("abort", abort_cb); - }; - - signal.addEventListener("abort", abort_cb); - - return { label: dev.label, abortController, readable, writable }; -} +import { invoke } from "@tauri-apps/api/core"; +import { listen } from "@tauri-apps/api/event"; + +import type { RpcTransport } from "@zmkfirmware/zmk-studio-ts-client/transport/index"; +import { AvailableDevice } from "."; + +export async function list_devices(): Promise> { + return await invoke("serial_list_devices"); +} + +export async function connect(dev: AvailableDevice): Promise { + if (!(await invoke("serial_connect", dev))) { + throw new Error("Failed to connect"); + } + + let abortController = new AbortController(); + + let writable = new WritableStream({ + async write(chunk, _controller) { + await invoke("transport_send_data", new Uint8Array(chunk)); + }, + }); + + let { writable: response_writable, readable } = new TransformStream(); + + const unlisten_data = await listen( + "connection_data", + async (event: { payload: Array }) => { + let writer = response_writable.getWriter(); + await writer.write(new Uint8Array(event.payload)); + writer.releaseLock(); + } + ); + + const unlisten_disconnected = await listen( + "connection_disconnected", + async (_ev: any) => { + unlisten_data(); + unlisten_disconnected(); + response_writable.close(); + } + ); + + let signal = abortController.signal; + + let abort_cb = async (_reason: any) => { + unlisten_data(); + unlisten_disconnected(); + await invoke("transport_close"); + signal.removeEventListener("abort", abort_cb); + }; + + signal.addEventListener("abort", abort_cb); + + return { label: dev.label, abortController, readable, writable }; +} diff --git a/src/undoRedo.ts b/src/undoRedo.ts index 5690830c..38d674c6 100644 --- a/src/undoRedo.ts +++ b/src/undoRedo.ts @@ -1,86 +1,86 @@ -import { createContext, useMemo, useState } from "react"; - -export type UndoCallback = () => Promise; - -export type DoCallback = () => Promise; - -export function useUndoRedo(): [ - (dc: DoCallback) => Promise, - () => Promise, - () => Promise, - boolean, - boolean, - () => void -] { - const [locked, setLocked] = useState(false); - const [undoStack, setUndoStack] = useState>( - [] - ); - const [redoStack, setRedoStack] = useState>([]); - - const canUndo = useMemo( - () => !locked && undoStack.length > 0, - [locked, undoStack] - ); - const canRedo = useMemo( - () => !locked && redoStack.length > 0, - [locked, redoStack] - ); - - const doIt = async (doCb: DoCallback, preserveRedo?: boolean) => { - setLocked(true); - let undo = await doCb(); - - setUndoStack([[doCb, undo], ...undoStack]); - if (!preserveRedo) { - setRedoStack([]); - } - setLocked(false); - }; - - const undo = async () => { - if (locked) { - throw new Error("undo invoked when existing operation in progress"); - } - - if (undoStack.length === 0) { - throw new Error("undo invoked with no operations to undo"); - } - - setLocked(true); - let [doCb, undoCb] = undoStack[0]; - setUndoStack(undoStack.slice(1)); - setRedoStack([doCb, ...redoStack]); - - await undoCb(); - - setLocked(false); - }; - - const redo = async () => { - if (locked) { - throw new Error("redo invoked when existing operation in progress"); - } - - if (redoStack.length === 0) { - throw new Error("redo invoked with no operations to redo"); - } - - let doCb = redoStack[0]; - - setRedoStack(redoStack.slice(1)); - - return await doIt(doCb, true); - }; - - const reset = () => { - setRedoStack([]); - setUndoStack([]); - }; - - return [doIt, undo, redo, canUndo, canRedo, reset]; -} - -export const UndoRedoContext = createContext< - ((dc: DoCallback) => Promise) | null ->(null); +import { createContext, useMemo, useState } from "react"; + +export type UndoCallback = () => Promise; + +export type DoCallback = () => Promise; + +export function useUndoRedo(): [ + (dc: DoCallback) => Promise, + () => Promise, + () => Promise, + boolean, + boolean, + () => void +] { + const [locked, setLocked] = useState(false); + const [undoStack, setUndoStack] = useState>( + [] + ); + const [redoStack, setRedoStack] = useState>([]); + + const canUndo = useMemo( + () => !locked && undoStack.length > 0, + [locked, undoStack] + ); + const canRedo = useMemo( + () => !locked && redoStack.length > 0, + [locked, redoStack] + ); + + const doIt = async (doCb: DoCallback, preserveRedo?: boolean) => { + setLocked(true); + let undo = await doCb(); + + setUndoStack([[doCb, undo], ...undoStack]); + if (!preserveRedo) { + setRedoStack([]); + } + setLocked(false); + }; + + const undo = async () => { + if (locked) { + throw new Error("undo invoked when existing operation in progress"); + } + + if (undoStack.length === 0) { + throw new Error("undo invoked with no operations to undo"); + } + + setLocked(true); + let [doCb, undoCb] = undoStack[0]; + setUndoStack(undoStack.slice(1)); + setRedoStack([doCb, ...redoStack]); + + await undoCb(); + + setLocked(false); + }; + + const redo = async () => { + if (locked) { + throw new Error("redo invoked when existing operation in progress"); + } + + if (redoStack.length === 0) { + throw new Error("redo invoked with no operations to redo"); + } + + let doCb = redoStack[0]; + + setRedoStack(redoStack.slice(1)); + + return await doIt(doCb, true); + }; + + const reset = () => { + setRedoStack([]); + setUndoStack([]); + }; + + return [doIt, undo, redo, canUndo, canRedo, reset]; +} + +export const UndoRedoContext = createContext< + ((dc: DoCallback) => Promise) | null +>(null); diff --git a/src/usePubSub.ts b/src/usePubSub.ts index fa2bfe42..9748a08d 100644 --- a/src/usePubSub.ts +++ b/src/usePubSub.ts @@ -1,22 +1,22 @@ -import Emittery from "emittery"; -import { useEffect } from "react"; - -const emitter = new Emittery(); - -export const usePub = () => (name: PropertyKey, data: any) => - emitter.emit(name, data); - -export const useSub = ( - name: PropertyKey, - callback: (data: any) => void | Promise -) => { - const unsub = () => emitter.off(name, callback); - - // Be sure we unsub if unmounted. - useEffect(() => { - emitter.on(name, callback); - return () => unsub(); - }); - - return unsub; -}; +import Emittery from "emittery"; +import { useEffect } from "react"; + +const emitter = new Emittery(); + +export const usePub = () => (name: PropertyKey, data: any) => + emitter.emit(name, data); + +export const useSub = ( + name: PropertyKey, + callback: (data: any) => void | Promise +) => { + const unsub = () => emitter.off(name, callback); + + // Be sure we unsub if unmounted. + useEffect(() => { + emitter.on(name, callback); + return () => unsub(); + }); + + return unsub; +}; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 11f02fe2..7d0ff9ef 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -1 +1 @@ -/// +/// diff --git a/tailwind.config.js b/tailwind.config.js index f99539de..635f5d85 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,33 +1,33 @@ -/** @type {import('tailwindcss').Config} */ -import trac from "tailwindcss-react-aria-components"; -import contQueries from "@tailwindcss/container-queries"; - -export default { - content: ["./index.html", "./download.html", "./src/**/*.{js,ts,jsx,tsx}"], - theme: { - extend: { - fontFamily: { - sans: ["Inter", "system-ui"], - }, - colors: { - primary: - "light-dark(oklch(49.12% 0.3096 285.75), oklch(65.69% 0.196 285.75))", - "primary-content": - "light-dark(oklch(0.89824 0.06192 285.75), oklch(0.13138 0.0392 285.75))", - secondary: - "light-dark(oklch(69.71% 0.329 342.55), oklch(74.8% 0.26 342.55))", - accent: - "light-dark(oklch(76.76% 0.184 183.61), oklch(74.51% 0.167 183.61))", - "base-content": "light-dark(#1f2937, #A6ADBB)", - "base-100": "light-dark(oklch(100% 0 0), #1d232a)", - "base-200": "light-dark(#F2F2F2, #191e24)", - "base-300": "light-dark(#E5E6E6, #15191e)", - }, - }, - - fontFamily: { - keycap: ["Inter", "system-ui"], - }, - }, - plugins: [contQueries, trac({ prefix: "rac" })], -}; +/** @type {import('tailwindcss').Config} */ +import trac from "tailwindcss-react-aria-components"; +import contQueries from "@tailwindcss/container-queries"; + +export default { + content: ["./index.html", "./download.html", "./src/**/*.{js,ts,jsx,tsx}"], + theme: { + extend: { + fontFamily: { + sans: ["Inter", "system-ui"], + }, + colors: { + primary: + "light-dark(oklch(49.12% 0.3096 285.75), oklch(65.69% 0.196 285.75))", + "primary-content": + "light-dark(oklch(0.89824 0.06192 285.75), oklch(0.13138 0.0392 285.75))", + secondary: + "light-dark(oklch(69.71% 0.329 342.55), oklch(74.8% 0.26 342.55))", + accent: + "light-dark(oklch(76.76% 0.184 183.61), oklch(74.51% 0.167 183.61))", + "base-content": "light-dark(#1f2937, #A6ADBB)", + "base-100": "light-dark(oklch(100% 0 0), #1d232a)", + "base-200": "light-dark(#F2F2F2, #191e24)", + "base-300": "light-dark(#E5E6E6, #15191e)", + }, + }, + + fontFamily: { + keycap: ["Inter", "system-ui"], + }, + }, + plugins: [contQueries, trac({ prefix: "rac" })], +}; diff --git a/tsconfig.json b/tsconfig.json index a7fc6fbf..9bdaa778 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,25 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] -} +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json index 97ede7ee..b8505820 100644 --- a/tsconfig.node.json +++ b/tsconfig.node.json @@ -1,11 +1,11 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true, - "strict": true - }, - "include": ["vite.config.ts"] -} +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts index 46cb69a6..097039cb 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,38 +1,38 @@ -import { defineConfig } from "vite"; -import react from "@vitejs/plugin-react-swc"; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - // prevent vite from obscuring rust errors - clearScreen: false, - // Tauri expects a fixed port, fail if that port is not available - server: { - strictPort: true, - }, - // to access the Tauri environment variables set by the CLI with information about the current target - envPrefix: [ - "VITE_", - "TAURI_PLATFORM", - "TAURI_ARCH", - "TAURI_FAMILY", - "TAURI_PLATFORM_VERSION", - "TAURI_PLATFORM_TYPE", - "TAURI_DEBUG", - ], - build: { - // Tauri uses Chromium on Windows and WebKit on macOS and Linux - target: process.env.TAURI_PLATFORM == "windows" ? "chrome105" : "safari13", - // don't minify for debug builds - minify: !process.env.TAURI_DEBUG ? "esbuild" : false, - // produce sourcemaps for debug builds - sourcemap: !!process.env.TAURI_DEBUG, - // include download page - rollupOptions: { - input: { - main: "./index.html", - download: "./download.html", - }, - } - }, -}); +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + // prevent vite from obscuring rust errors + clearScreen: false, + // Tauri expects a fixed port, fail if that port is not available + server: { + strictPort: true, + }, + // to access the Tauri environment variables set by the CLI with information about the current target + envPrefix: [ + "VITE_", + "TAURI_PLATFORM", + "TAURI_ARCH", + "TAURI_FAMILY", + "TAURI_PLATFORM_VERSION", + "TAURI_PLATFORM_TYPE", + "TAURI_DEBUG", + ], + build: { + // Tauri uses Chromium on Windows and WebKit on macOS and Linux + target: process.env.TAURI_PLATFORM == "windows" ? "chrome105" : "safari13", + // don't minify for debug builds + minify: !process.env.TAURI_DEBUG ? "esbuild" : false, + // produce sourcemaps for debug builds + sourcemap: !!process.env.TAURI_DEBUG, + // include download page + rollupOptions: { + input: { + main: "./index.html", + download: "./download.html", + }, + } + }, +});