diff --git a/.github/workflows/build-main-docs.yml b/.github/workflows/build-main-docs.yml index a9ac4c576..29b74c3c7 100644 --- a/.github/workflows/build-main-docs.yml +++ b/.github/workflows/build-main-docs.yml @@ -1,12 +1,38 @@ -name: Build Main Docs +name: Build Docs on: + workflow_dispatch: + inputs: + package: + description: 'Name of the package to build docs for.' + required: true + type: choice + options: + - 'plotly-express' + - 'ui' + version: + description: 'Version of the package to build docs for. This only affects where the docs are synced and not the actual docs built so in most cases this should be "main".' + required: true + type: string + default: 'main' + event_name: + description: 'Event name to determine if the docs should be synced. Keep this as "push" to sync the docs.' + required: true + type: choice + default: 'push' + options: + - 'push' + - 'test' workflow_call: inputs: package: description: The plugin to publish the docs for required: true type: string + version: + description: The version of the plugin to publish the docs for + type: string + default: 'main' event_name: description: The event name that triggered the workflow required: true @@ -40,5 +66,5 @@ jobs: secrets: inherit with: package: ${{ inputs.package }} - version: 'main' + version: ${{ inputs.version }} event_name: ${{ inputs.event_name }} diff --git a/.github/workflows/make-docs.yml b/.github/workflows/make-docs.yml index 7fb3efb55..7674a5662 100644 --- a/.github/workflows/make-docs.yml +++ b/.github/workflows/make-docs.yml @@ -49,15 +49,14 @@ jobs: cat << EOF > $HOME/.config/rclone/rclone.conf [plugindocs] - type = s3 - provider = Cloudflare - access_key_id = ${{ secrets.DOCS_CLOUDFLARE_ACCESS_KEY_ID }} - secret_access_key = ${{ secrets.DOCS_CLOUDFLARE_SECRET_ACCESS_KEY }} - endpoint = ${{ secrets.DOCS_CLOUDFLARE_ENDPOINT }} - no_check_bucket = true - acl = private + type = google cloud storage + service_account_file = $HOME/credentials.json + project_number = ${{ secrets.DOCS_GOOGLE_CLOUD_PROJECT_NUMBER }} + bucket_policy_only = true EOF + + echo ${{ secrets.DOCS_GOOGLE_CLOUD_CREDENTIALS }} | base64 -d > $HOME/credentials.json - name: Sync docs if: inputs.event_name == 'push' - run: rclone sync plugins/${{ inputs.package }}/docs/build/markdown/ plugindocs:website/deephaven/deephaven-plugins/${{ inputs.package }}/${{ inputs.version }}/ + run: rclone sync plugins/${{ inputs.package }}/docs/build/markdown/ plugindocs:${{ secrets.DOCS_GOOGLE_CLOUD_BUCKET }}/deephaven/deephaven-plugins/${{ inputs.package }}/${{ inputs.version }}/ diff --git a/cog.toml b/cog.toml index 365071dbd..7975d8797 100644 --- a/cog.toml +++ b/cog.toml @@ -48,7 +48,7 @@ ci = { changelog_title = "", omit_from_changelog = true } [changelog] path = "CHANGELOG.md" -template = "remote" +template = "deephaven-changelog-template" remote = "github.com" repository = "deephaven-plugins" owner = "deephaven" diff --git a/deephaven-changelog-template b/deephaven-changelog-template new file mode 100644 index 000000000..55362ea80 --- /dev/null +++ b/deephaven-changelog-template @@ -0,0 +1,54 @@ +{# Tera templates are used to generate the changelog content -#} +{# https://keats.github.io/tera/docs/ -#} +{# Based on Cocogittos remote template, but adds breaking changes: https://github.com/cocogitto/cocogitto/blob/main/src/conventional/changelog/template/remote -#} +{# First display all the breaking changes -#} +{% set breaking_commits = commits | filter(attribute="breaking_change", value=true) -%} +{% if breaking_commits | length > 0 -%} +#### ⚠ Breaking Changes + +{% for commit in breaking_commits -%} +{% set commit_link = repository_url ~ "/commit/" ~ commit.id -%} +{% set shorthand = commit.id | truncate(length=7, end="") -%} +{% for footer in commit.footer | filter(attribute="token", value="BREAKING CHANGE") -%} +- {{ footer.content }} - ([{{shorthand}}]({{ commit_link }})) +{% endfor -%} +{% endfor -%} +{% endif %} + +{# Now group the rest of the commits and display them -#} +{% set typed_commit_map = commits | group_by(attribute="type") -%} +{% set type_order = ["Features", "Bug Fixes", "Performance Improvements", "Miscellaneous Chores", "Documentation", "Refactoring", "Build system", "Style"] -%} +{% for type in type_order -%} +{% if typed_commit_map[type] -%} +#### {{ type | upper_first }} +{% for scope, scoped_commits in typed_commit_map[type] | group_by(attribute="scope") -%} + +{% for commit in scoped_commits | sort(attribute="scope") -%} + {% if commit.author and repository_url -%} + {% set author = "@" ~ commit.author -%} + {% set author_link = platform ~ "/" ~ commit.author -%} + {% set author = "[" ~ author ~ "](" ~ author_link ~ ")" -%} + {% else -%} + {% set author = commit.signature -%} + {% endif -%} + {% set commit_link = repository_url ~ "/commit/" ~ commit.id -%} + {% set shorthand = commit.id | truncate(length=7, end="") -%} + - **({{ scope }})** {{ commit.summary }} - ([{{shorthand}}]({{ commit_link }})) - {{ author }} +{% endfor -%} + +{% endfor -%} + +{% for commit in typed_commit_map[type] | unscoped -%} + {% if commit.author and repository_url -%} + {% set author = "@" ~ commit.author -%} + {% set author_link = platform ~ "/" ~ commit.author -%} + {% set author = "[" ~ author ~ "](" ~ author_link ~ ")" -%} + {% else -%} + {% set author = commit.signature -%} + {% endif -%} + {% set commit_link = repository_url ~ "/commit/" ~ commit.id -%} + {% set shorthand = commit.id | truncate(length=7, end="") -%} + - {{ commit.summary }} - ([{{shorthand}}]({{ commit_link }})) - {{ author }} +{% endfor -%} +{% endif %} +{% endfor -%} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 40b99bef2..f9db3f76f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2202,16 +2202,17 @@ } }, "node_modules/@deephaven/chart": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.88.0.tgz", + "integrity": "sha512-t0m2GE+o46pnyPLiF3gNbqxsrasoKKB37E5eFgyncmfye3JjYAoDEjdKZfp/ck4zHE68tO7N+e7fbyqju5Edpw==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", "lodash.debounce": "^4.0.8", @@ -2230,18 +2231,21 @@ } }, "node_modules/@deephaven/chart/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -2251,110 +2255,48 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@deephaven/chart/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/chart/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/chart/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "node_modules/@deephaven/chart/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -2363,14 +2305,17 @@ } }, "node_modules/@deephaven/chart/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/chart/node_modules/buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -2385,7 +2330,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -2393,7 +2337,8 @@ }, "node_modules/@deephaven/chart/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -2472,18 +2417,19 @@ } }, "node_modules/@deephaven/console": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/chart": "^0.75.1", - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.88.0.tgz", + "integrity": "sha512-RKyGJSXTxiFapPej5BnoHakgil9ATU9Xjt2nwZ5x630ATu9f6k3xfeHpOxeuvcr6IjdUsvPcMk74y5IRAOatJA==", + "dependencies": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", "linkifyjs": "^4.1.0", @@ -2492,11 +2438,11 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "shortid": "^2.2.16" + "shell-quote": "^1.7.2" }, "engines": { "node": ">=16" @@ -2506,85 +2452,22 @@ "react-dom": ">=16.8.0" } }, - "node_modules/@deephaven/console/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/console/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -2594,30 +2477,33 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/console/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -2627,12 +2513,14 @@ } }, "node_modules/@deephaven/console/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/console/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -2641,15 +2529,17 @@ } }, "node_modules/@deephaven/console/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/console/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -2684,45 +2574,46 @@ } }, "node_modules/@deephaven/dashboard-core-plugins": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/chart": "^0.75.0", - "@deephaven/components": "^0.75.0", - "@deephaven/console": "^0.75.0", - "@deephaven/dashboard": "^0.75.0", - "@deephaven/file-explorer": "^0.75.0", - "@deephaven/filters": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.88.0.tgz", + "integrity": "sha512-bdS6fLYruSpOLUJoE3fv3ohUvW96I81bL7in+kw1u7GweZiFBqvNA69FU+7J0mP5uAeZp8KBXo1AoGKpHk5rFQ==", + "dependencies": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/dashboard": "^0.88.0", + "@deephaven/file-explorer": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", - "deep-equal": "^2.0.5", + "fast-deep-equal": "^3.1.3", "lodash.clamp": "^4.0.3", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", "memoize-one": "^5.1.1", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-markdown": "^8.0.7", "redux": "^4.2.0", "redux-thunk": "^2.4.1", "rehype-mathjax": "^4.0.3", "remark-gfm": "^3.0.1", - "remark-math": "^5.1.1", - "shortid": "^2.2.16" + "remark-math": "^5.1.1" }, "engines": { "node": ">=16" @@ -2733,85 +2624,22 @@ "react-redux": "^7.2.4" } }, - "node_modules/@deephaven/dashboard-core-plugins/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -2821,37 +2649,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/dashboard": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/redux": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "engines": { "node": ">=16" @@ -2859,16 +2689,17 @@ "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0", - "react-is": ">=16.8.0", "react-redux": "^7.2.4" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" }, "peerDependencies": { "react": ">=16.8.0", @@ -2876,13 +2707,15 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -2892,16 +2725,17 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -2916,27 +2750,30 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -2944,36 +2781,17 @@ "node": ">=16" } }, - "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/plugin": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/redux": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "dependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" }, "engines": { @@ -2984,15 +2802,17 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3035,14 +2855,15 @@ } }, "node_modules/@deephaven/file-explorer": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.88.0.tgz", + "integrity": "sha512-VswIr1yIlwOzmEl2PQlQ72a8p+0xFlQGX5hld++ewKwhWlYNaVeyOHXkVigDKRuDGfLeD5Sn1d2IBEjWJ7Mc1w==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", @@ -3057,18 +2878,21 @@ } }, "node_modules/@deephaven/file-explorer/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -3078,91 +2902,27 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@deephaven/file-explorer/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/file-explorer/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3171,15 +2931,17 @@ } }, "node_modules/@deephaven/file-explorer/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/file-explorer/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3188,8 +2950,9 @@ } }, "node_modules/@deephaven/filters": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.88.0.tgz", + "integrity": "sha512-aOJ4pxx7+mhHj/nULwAgnhN78oxAjta0LI1LiLuqGxH6f6WV8fG6tN1tpuL4UbMx/TwT5Al5l/a9p51CaOZnBg==", "engines": { "node": ">=16" } @@ -3207,10 +2970,11 @@ } }, "node_modules/@deephaven/grid": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.88.0.tgz", + "integrity": "sha512-VR7Ts+uEjWhP809gElld2zSpherIxQz74ddTPPtHEdWSGtW51RXsws/5BlS8TIKStTxUrvMjmzGbAJij3SQ2aA==", "dependencies": { - "@deephaven/utils": "^0.75.0", + "@deephaven/utils": "^0.88.0", "classnames": "^2.3.1", "color-convert": "^2.0.1", "event-target-shim": "^6.0.2", @@ -3228,15 +2992,17 @@ } }, "node_modules/@deephaven/grid/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/grid/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -3246,11 +3012,13 @@ }, "node_modules/@deephaven/grid/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@deephaven/grid/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3259,8 +3027,9 @@ } }, "node_modules/@deephaven/icons": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.88.0.tgz", + "integrity": "sha512-3B+CQJmpRbCGqf0B65ek77M59/kQLGr4TmSglYzTTGFrW6TbptO3Q9uTQ0LMIAhkHSDw6gjLUBR3DtVPzm3dUA==", "dependencies": { "@fortawesome/fontawesome-common-types": "^6.1.1" }, @@ -3270,21 +3039,22 @@ } }, "node_modules/@deephaven/iris-grid": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/console": "^0.75.1", - "@deephaven/filters": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.88.0.tgz", + "integrity": "sha512-LJIGuP8PiwK8L1yok/IJtMIWpcU5+/T1FHPtfzwsXydRhAKnhUX+/KLaomD8IFFt5wGCQjimlwRGfeQ+fEPdMg==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", @@ -3297,10 +3067,10 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "shortid": "^2.2.16" + "react-transition-group": "^4.4.2" }, "engines": { "node": ">=10" @@ -3310,85 +3080,22 @@ "react-dom": ">=16.8.0" } }, - "node_modules/@deephaven/iris-grid/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -3398,30 +3105,33 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -3431,16 +3141,17 @@ } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -3455,27 +3166,30 @@ } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3484,15 +3198,17 @@ } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/iris-grid/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3650,16 +3366,17 @@ } }, "node_modules/@deephaven/plugin": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.88.0.tgz", + "integrity": "sha512-yV5dIsfFyIfxOARligKeC64TskpuKKvtDm242RUvPO7UWuYHJt9RgN+Y9VC5MCY7dbOgZmX7xlz2TtMamYmUYQ==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0" }, @@ -3671,18 +3388,21 @@ } }, "node_modules/@deephaven/plugin/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -3692,94 +3412,31 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@deephaven/plugin/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/plugin/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" }, "peerDependencies": { "react": ">=16.8.0", @@ -3791,8 +3448,9 @@ "license": "Apache-2.0" }, "node_modules/@deephaven/plugin/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3801,15 +3459,17 @@ } }, "node_modules/@deephaven/plugin/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/plugin/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3826,14 +3486,16 @@ } }, "node_modules/@deephaven/react-hooks": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.88.0.tgz", + "integrity": "sha512-2nfDWZ2mU3uNMxBu5WOD+bie9svrEXYEdDWglkZqcb77ZrI9pcLiuybz4ybGnN/NNnweyqvHD0q3Mi+VqXDdyw==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.debounce": "^4.0.8", - "shortid": "^2.2.16" + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" @@ -3842,75 +3504,10 @@ "react": ">=16.8.0" } }, - "node_modules/@deephaven/react-hooks/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/react-hooks/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3919,15 +3516,17 @@ } }, "node_modules/@deephaven/react-hooks/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/react-hooks/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3953,11 +3552,12 @@ } }, "node_modules/@deephaven/storage": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.88.0.tgz", + "integrity": "sha512-SL1nNK6Qnap9il8L4URz5dklhzgdpqaJ1KqXyWZCSJe4GpOCfRQLbsaBIWR426AELXR38ZJ2nf3tWy0hiig/7w==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/log": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/log": "^0.88.0", "lodash.throttle": "^4.1.1" }, "engines": { @@ -3968,8 +3568,9 @@ } }, "node_modules/@deephaven/storage/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3979,7 +3580,8 @@ }, "node_modules/@deephaven/storage/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -4588,8 +4190,9 @@ } }, "node_modules/@internationalized/date": { - "version": "3.5.4", - "license": "Apache-2.0", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -31995,15 +31598,15 @@ "version": "0.11.2", "license": "Apache-2.0", "dependencies": { - "@deephaven/chart": "0.75.0", - "@deephaven/components": "0.75.0", - "@deephaven/dashboard": "0.75.0", - "@deephaven/dashboard-core-plugins": "0.75.0", - "@deephaven/icons": "0.75.0", - "@deephaven/jsapi-bootstrap": "0.75.0", - "@deephaven/log": "0.75.0", - "@deephaven/plugin": "0.75.0", - "@deephaven/utils": "0.75.0", + "@deephaven/chart": "0.88.0", + "@deephaven/components": "0.88.0", + "@deephaven/dashboard": "0.88.0", + "@deephaven/dashboard-core-plugins": "0.88.0", + "@deephaven/icons": "0.88.0", + "@deephaven/jsapi-bootstrap": "0.88.0", + "@deephaven/log": "0.88.0", + "@deephaven/plugin": "0.88.0", + "@deephaven/utils": "0.88.0", "deep-equal": "^2.2.1", "nanoid": "^5.0.7", "plotly.js": "^2.29.1", @@ -32012,7 +31615,7 @@ "react-redux": "^7.2.9" }, "devDependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", + "@deephaven/jsapi-types": "1.0.0-dev0.35.2", "@types/deep-equal": "^1.0.1", "@types/plotly.js": "^2.12.18", "@types/plotly.js-dist-min": "^2.3.1", @@ -32029,47 +31632,22 @@ "react-dom": "^17.0.2" } }, - "plugins/plotly-express/src/js/node_modules/@deephaven/chart": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "buffer": "^6.0.3", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.29.1", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "plugins/plotly-express/src/js/node_modules/@deephaven/components": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "^3.34.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -32079,37 +31657,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "deep-equal": "^2.0.5", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", + "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "engines": { "node": ">=16" @@ -32117,134 +31697,33 @@ "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0", - "react-is": ">=16.8.0", "react-redux": "^7.2.4" } }, "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard/node_modules/@deephaven/golden-layout/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "engines": { - "node": ">=10" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, - "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard/node_modules/@deephaven/golden-layout/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "plugins/plotly-express/src/js/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -32254,27 +31733,30 @@ } }, "plugins/plotly-express/src/js/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "plugins/plotly-express/src/js/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "plugins/plotly-express/src/js/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -32283,14 +31765,16 @@ } }, "plugins/plotly-express/src/js/node_modules/@deephaven/redux": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "dependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" }, "engines": { @@ -32300,172 +31784,14 @@ "redux": "^4.2.0" } }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@deephaven/plugin": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "plugins/plotly-express/src/js/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, - "plugins/plotly-express/src/js/node_modules/buffer": { - "version": "6.0.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", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "plugins/plotly-express/src/js/node_modules/event-target-shim": { "version": "6.0.2", "license": "MIT", @@ -32548,7 +31874,7 @@ }, "plugins/ui/src/js": { "name": "@deephaven/js-plugin-ui", - "version": "0.19.0", + "version": "0.20.0", "license": "Apache-2.0", "dependencies": { "@deephaven/chart": "^0.87.0", @@ -32569,6 +31895,7 @@ "@deephaven/redux": "^0.86.0", "@deephaven/utils": "^0.87.0", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "classnames": "^2.5.1", "json-rpc-2.0": "^1.6.0", "nanoid": "^5.0.7", @@ -35160,15 +34487,17 @@ } }, "@deephaven/chart": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.88.0.tgz", + "integrity": "sha512-t0m2GE+o46pnyPLiF3gNbqxsrasoKKB37E5eFgyncmfye3JjYAoDEjdKZfp/ck4zHE68tO7N+e7fbyqju5Edpw==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", "lodash.debounce": "^4.0.8", @@ -35181,17 +34510,21 @@ }, "dependencies": { "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35201,110 +34534,59 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } + "react-window": "^1.8.6" } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -35354,17 +34636,19 @@ } }, "@deephaven/console": { - "version": "0.75.1", - "requires": { - "@deephaven/chart": "^0.75.1", - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.88.0.tgz", + "integrity": "sha512-RKyGJSXTxiFapPej5BnoHakgil9ATU9Xjt2nwZ5x630ATu9f6k3xfeHpOxeuvcr6IjdUsvPcMk74y5IRAOatJA==", + "requires": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", "linkifyjs": "^4.1.0", @@ -35373,86 +34657,29 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "shortid": "^2.2.16" + "shell-quote": "^1.7.2" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35462,38 +34689,49 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -35525,119 +34763,64 @@ } }, "@deephaven/dashboard-core-plugins": { - "version": "0.75.0", - "requires": { - "@deephaven/chart": "^0.75.0", - "@deephaven/components": "^0.75.0", - "@deephaven/console": "^0.75.0", - "@deephaven/dashboard": "^0.75.0", - "@deephaven/file-explorer": "^0.75.0", - "@deephaven/filters": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.88.0.tgz", + "integrity": "sha512-bdS6fLYruSpOLUJoE3fv3ohUvW96I81bL7in+kw1u7GweZiFBqvNA69FU+7J0mP5uAeZp8KBXo1AoGKpHk5rFQ==", + "requires": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/dashboard": "^0.88.0", + "@deephaven/file-explorer": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", - "deep-equal": "^2.0.5", + "fast-deep-equal": "^3.1.3", "lodash.clamp": "^4.0.3", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", "memoize-one": "^5.1.1", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-markdown": "^8.0.7", "redux": "^4.2.0", "redux-thunk": "^2.4.1", "rehype-mathjax": "^4.0.3", "remark-gfm": "^3.0.1", - "remark-math": "^5.1.1", - "shortid": "^2.2.16" + "remark-math": "^5.1.1" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35647,57 +34830,67 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/dashboard": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/redux": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" } }, "@deephaven/golden-layout": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-components": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -35706,55 +34899,54 @@ } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, - "@deephaven/plugin": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - }, "@deephaven/redux": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "requires": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -35768,13 +34960,15 @@ } }, "@deephaven/file-explorer": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.88.0.tgz", + "integrity": "sha512-VswIr1yIlwOzmEl2PQlQ72a8p+0xFlQGX5hld++ewKwhWlYNaVeyOHXkVigDKRuDGfLeD5Sn1d2IBEjWJ7Mc1w==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", @@ -35783,17 +34977,21 @@ }, "dependencies": { "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35803,94 +35001,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } + "react-window": "^1.8.6" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, "@deephaven/filters": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.88.0.tgz", + "integrity": "sha512-aOJ4pxx7+mhHj/nULwAgnhN78oxAjta0LI1LiLuqGxH6f6WV8fG6tN1tpuL4UbMx/TwT5Al5l/a9p51CaOZnBg==" }, "@deephaven/golden-layout": { "version": "0.40.4", @@ -35900,9 +35043,11 @@ } }, "@deephaven/grid": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.88.0.tgz", + "integrity": "sha512-VR7Ts+uEjWhP809gElld2zSpherIxQz74ddTPPtHEdWSGtW51RXsws/5BlS8TIKStTxUrvMjmzGbAJij3SQ2aA==", "requires": { - "@deephaven/utils": "^0.75.0", + "@deephaven/utils": "^0.88.0", "classnames": "^2.3.1", "color-convert": "^2.0.1", "event-target-shim": "^6.0.2", @@ -35914,43 +35059,55 @@ }, "dependencies": { "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.4" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, "@deephaven/icons": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.88.0.tgz", + "integrity": "sha512-3B+CQJmpRbCGqf0B65ek77M59/kQLGr4TmSglYzTTGFrW6TbptO3Q9uTQ0LMIAhkHSDw6gjLUBR3DtVPzm3dUA==", "requires": { "@fortawesome/fontawesome-common-types": "^6.1.1" } }, "@deephaven/iris-grid": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/console": "^0.75.1", - "@deephaven/filters": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.88.0.tgz", + "integrity": "sha512-LJIGuP8PiwK8L1yok/IJtMIWpcU5+/T1FHPtfzwsXydRhAKnhUX+/KLaomD8IFFt5wGCQjimlwRGfeQ+fEPdMg==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", @@ -35963,85 +35120,28 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "shortid": "^2.2.16" + "react-transition-group": "^4.4.2" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -36051,34 +35151,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-components": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -36087,30 +35192,40 @@ } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -37192,16 +36307,16 @@ "@deephaven/js-plugin-plotly-express": { "version": "file:plugins/plotly-express/src/js", "requires": { - "@deephaven/chart": "0.75.0", - "@deephaven/components": "0.75.0", - "@deephaven/dashboard": "0.75.0", - "@deephaven/dashboard-core-plugins": "0.75.0", - "@deephaven/icons": "0.75.0", - "@deephaven/jsapi-bootstrap": "0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "0.75.0", - "@deephaven/plugin": "0.75.0", - "@deephaven/utils": "0.75.0", + "@deephaven/chart": "0.88.0", + "@deephaven/components": "0.88.0", + "@deephaven/dashboard": "0.88.0", + "@deephaven/dashboard-core-plugins": "0.88.0", + "@deephaven/icons": "0.88.0", + "@deephaven/jsapi-bootstrap": "0.88.0", + "@deephaven/jsapi-types": "1.0.0-dev0.35.2", + "@deephaven/log": "0.88.0", + "@deephaven/plugin": "0.88.0", + "@deephaven/utils": "0.88.0", "@types/deep-equal": "^1.0.1", "@types/plotly.js": "^2.12.18", "@types/plotly.js-dist-min": "^2.3.1", @@ -37220,39 +36335,22 @@ "vite": "~4.1.4" }, "dependencies": { - "@deephaven/chart": { - "version": "0.75.0", - "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "buffer": "^6.0.3", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.29.1", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - } - }, "@deephaven/components": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "^3.34.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -37262,298 +36360,101 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/dashboard": { - "version": "0.75.0", - "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "deep-equal": "^2.0.5", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", + "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "dependencies": { "@deephaven/golden-layout": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - }, - "dependencies": { - "@deephaven/components": { - "version": "0.75.1", - "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } - } - } + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" } } } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/redux": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "requires": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, - "@deephaven/components": { - "version": "0.75.1", - "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - } - }, - "@deephaven/golden-layout": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - } - }, - "@deephaven/plugin": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - } } }, "@deephaven/utils": { - "version": "0.75.0" - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { "version": "6.0.2" @@ -37603,6 +36504,7 @@ "@deephaven/redux": "^0.86.0", "@deephaven/utils": "^0.87.0", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@types/react": "^17.0.2", "@vitejs/plugin-react-swc": "^3.0.0", "classnames": "^2.5.1", @@ -38688,31 +37590,37 @@ } }, "@deephaven/plugin": { - "version": "0.75.0", - "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.88.0.tgz", + "integrity": "sha512-yV5dIsfFyIfxOARligKeC64TskpuKKvtDm242RUvPO7UWuYHJt9RgN+Y9VC5MCY7dbOgZmX7xlz2TtMamYmUYQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0" }, "dependencies": { "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -38722,99 +37630,45 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } + "react-window": "^1.8.6" } }, "@deephaven/golden-layout": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" } }, "@deephaven/jsapi-types": { "version": "1.0.0-dev0.34.0" }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -38824,87 +37678,35 @@ "requires": {} }, "@deephaven/react-hooks": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.88.0.tgz", + "integrity": "sha512-2nfDWZ2mU3uNMxBu5WOD+bie9svrEXYEdDWglkZqcb77ZrI9pcLiuybz4ybGnN/NNnweyqvHD0q3Mi+VqXDdyw==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.debounce": "^4.0.8", - "shortid": "^2.2.16" + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -38919,21 +37721,27 @@ } }, "@deephaven/storage": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.88.0.tgz", + "integrity": "sha512-SL1nNK6Qnap9il8L4URz5dklhzgdpqaJ1KqXyWZCSJe4GpOCfRQLbsaBIWR426AELXR38ZJ2nf3tWy0hiig/7w==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/log": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/log": "^0.88.0", "lodash.throttle": "^4.1.1" }, "dependencies": { "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -39230,7 +38038,9 @@ "dev": true }, "@internationalized/date": { - "version": "3.5.4", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", "requires": { "@swc/helpers": "^0.5.0" } diff --git a/plugins/plotly-express/conf.py b/plugins/plotly-express/conf.py index f80ea1aae..e20cfdb4b 100644 --- a/plugins/plotly-express/conf.py +++ b/plugins/plotly-express/conf.py @@ -41,5 +41,5 @@ from deephaven_server import Server -s = Server(port=10075) -s.start() +# need a server instance to pull types from the autodocs +Server(port=10075) diff --git a/plugins/plotly-express/setup.cfg b/plugins/plotly-express/setup.cfg index a324fe491..94db3d940 100644 --- a/plugins/plotly-express/setup.cfg +++ b/plugins/plotly-express/setup.cfg @@ -25,7 +25,7 @@ package_dir= =src packages=find_namespace: install_requires = - deephaven-core>=0.34.0 + deephaven-core>=0.36.0 deephaven-plugin>=0.6.0 plotly deephaven-plugin-utilities diff --git a/plugins/plotly-express/src/js/package.json b/plugins/plotly-express/src/js/package.json index 0bcae483f..1decd219f 100644 --- a/plugins/plotly-express/src/js/package.json +++ b/plugins/plotly-express/src/js/package.json @@ -36,7 +36,7 @@ "update-dh-packages": "node ../../../../tools/update-dh-packages.mjs" }, "devDependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", + "@deephaven/jsapi-types": "1.0.0-dev0.35.2", "@types/deep-equal": "^1.0.1", "@types/plotly.js": "^2.12.18", "@types/plotly.js-dist-min": "^2.3.1", @@ -53,15 +53,15 @@ "react-dom": "^17.0.2" }, "dependencies": { - "@deephaven/chart": "0.75.0", - "@deephaven/components": "0.75.0", - "@deephaven/dashboard": "0.75.0", - "@deephaven/dashboard-core-plugins": "0.75.0", - "@deephaven/icons": "0.75.0", - "@deephaven/jsapi-bootstrap": "0.75.0", - "@deephaven/log": "0.75.0", - "@deephaven/plugin": "0.75.0", - "@deephaven/utils": "0.75.0", + "@deephaven/chart": "0.88.0", + "@deephaven/components": "0.88.0", + "@deephaven/dashboard": "0.88.0", + "@deephaven/dashboard-core-plugins": "0.88.0", + "@deephaven/icons": "0.88.0", + "@deephaven/jsapi-bootstrap": "0.88.0", + "@deephaven/log": "0.88.0", + "@deephaven/plugin": "0.88.0", + "@deephaven/utils": "0.88.0", "deep-equal": "^2.2.1", "nanoid": "^5.0.7", "plotly.js": "^2.29.1", diff --git a/plugins/plotly-express/src/js/src/DashboardPlugin.tsx b/plugins/plotly-express/src/js/src/DashboardPlugin.tsx index b6560a393..a6021c6c9 100644 --- a/plugins/plotly-express/src/js/src/DashboardPlugin.tsx +++ b/plugins/plotly-express/src/js/src/DashboardPlugin.tsx @@ -1,4 +1,4 @@ -import { useCallback, DragEvent, useEffect } from 'react'; +import { useCallback, useEffect } from 'react'; import { nanoid } from 'nanoid'; import { DashboardPluginComponentProps, @@ -23,7 +23,7 @@ export function DashboardPlugin( panelId = nanoid(), widget, }: { - dragEvent?: DragEvent; + dragEvent?: MouseEvent; fetch: () => Promise; metadata?: Record; panelId?: string; diff --git a/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx b/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx index 60c83a5a0..bf9193952 100644 --- a/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx +++ b/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useRef, useState } from 'react'; +import React, { useCallback, useState } from 'react'; import Plotly from 'plotly.js-dist-min'; import { ChartPanel, ChartPanelProps } from '@deephaven/dashboard-core-plugins'; import type { dh } from '@deephaven/jsapi-types'; @@ -12,7 +12,7 @@ export function PlotlyExpressChartPanel( ): JSX.Element { const dh = useApi(); const { fetch, metadata = {}, ...rest } = props; - const containerRef = useRef(null); + const [container, setContainer] = useState(null); const [model, setModel] = useState(); const makeModel = useCallback(async () => { @@ -22,13 +22,13 @@ export function PlotlyExpressChartPanel( return m; }, [dh, fetch]); - useHandleSceneTicks(model, containerRef.current); + useHandleSceneTicks(model, container); return ( = after_date && {time_col} < before_date"), + ] + + +SECONDS_IN_DAY = 86400 +today = dh_now() +_table = time_table("PT1s").update_view( + ["Timestamp=today.plusSeconds(SECONDS_IN_DAY*i)", "Row=i"] +) +date_filter = date_table_filter(_table, today, today.plusSeconds(SECONDS_IN_DAY * 10)) +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.date_picker +``` diff --git a/plugins/ui/docs/components/illustrated_message.md b/plugins/ui/docs/components/illustrated_message.md new file mode 100644 index 000000000..6ccbb3e42 --- /dev/null +++ b/plugins/ui/docs/components/illustrated_message.md @@ -0,0 +1,95 @@ +# Illustrated Message + +An illustrated message displays an illustration along with a message, typically used for empty states or error pages. + + +## Example + +```python +from deephaven import ui + +my_illustrated_message_basic = ui.illustrated_message( + ui.icon("vsError"), + ui.heading("Access denied"), + ui.content("You do not have permissions to access this page."), +) +``` + +## UI recommendations + +Recommendations for creating an illustrated message: + +1. The message should be concise and, if applicable, describe the next step a user can take. +2. The heading should be no longer than 6 words and should not be a replacement for the message text. +2. Use sentence case for the heading and message text. +3. Use illustrations that are relevant to the message and help convey the context effectively. +4. Reserve illustrated messages for situations where they add value and clarity, rather than using them for minor notifications or messages. + +## Content + +An illustrated message is made up of three parts: an illustration, a heading, and a body. + +You can populate these sections by providing the following components as children: an `ui.icon` for the illustration, a `ui.heading` for the heading, and `ui.content` for the body. + +```python +from deephaven import ui + + +my_illustrated_message_content_example = ui.illustrated_message( + ui.icon("vsWarning"), + ui.heading("Invalid input"), + ui.content("No special characters allowed."), +) +``` + +## Labeling + +If the heading of an illustrated message isn't specified, set the `aria-label` prop for accessibility purposes. + +```python +from deephaven import ui + + +my_illustrated_message_labeling_example = ui.illustrated_message( + ui.icon("vsWorkspaceTrusted", aria_label="Trusted Workspace") +) +``` + +## Placeholder + +Using an illustrated message as a placeholder for a table or list can clearly indicate the absence of data and provide context-specific guidance. + +```python +from deephaven import ui +import deephaven.plot.express as dx + +_stocks = dx.data.stocks() + + +@ui.component +def illustrated_message_placeholder_example(): + filter, set_filter = ui.use_state("") + return [ + ui.text_field( + value=filter, label="Sym Filter", is_required=True, on_change=set_filter + ), + ui.illustrated_message( + ui.icon("vsFilter"), + ui.heading("Filter required"), + ui.content("Enter a filter to display filtered table"), + width="100%", + ) + if filter == "" + else _stocks.where(f"Sym=`{filter.upper()}`"), + ] + + +my_illustrated_message_placeholder_example = illustrated_message_placeholder_example() +``` + + +## API reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.illustrated_message +``` diff --git a/plugins/ui/docs/components/image.md b/plugins/ui/docs/components/image.md new file mode 100644 index 000000000..faab71b6e --- /dev/null +++ b/plugins/ui/docs/components/image.md @@ -0,0 +1,82 @@ +# Image + +'image' is used to insert and display an image within a component. + +## Example + +```python +from deephaven import ui + +img = ui.image(src="https://i.imgur.com/Z7AzH2c.png", alt="Sky and roof") +``` + +## UI Recommendations + +1. Provide descriptive alt text for all images to ensure accessibility for users with visual impairments. Note: If the image is considered decorative and should not be announced by screen readers, then set alt="" to suppress the warning. +2. Alt text should convey the purpose and content of the image. For example, "Snow-capped mountains under a clear blue sky" or "Diagram illustrating the water cycle, showing evaporation, condensation, precipitation, and collection". +3. To internationalize an image, a localized string should be passed into the alt prop. + +## Visual options + +Different styles determine how an image fits into its container. The default value for the `object_fit` parameter is `fill`, which takes up the whole dimension of the container. + +Other options: +- `contain` scales the image to the dimension of the container while preserving its aspect ratio. If the image's aspect ratio does not match the aspect ratio of the box, the image will be "letterboxed". +- `cover` scales the image to fill the entire container. If the image's aspect ratio does not match the aspect ratio of the box, the image will be clipped to fit. +- `none` renders the image in its original dimensions. +- `scale-down` sizes the image as if `none` or `contain` were specified. Whichever results in a smaller concrete image size is selected. + +```python +def image_variants(): + return ui.flex( + ui.view( + ui.image(src="https://i.imgur.com/Z7AzH2c.png", alt="Sky and roof"), + background_color="celery-600", + padding="10px", + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="contain", + ), + background_color="blue-600", + padding="10px", + padding_x="25px", + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="cover", + ), + background_color="blue-600", + width="75%", + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="none", + ) + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="scale-down", + ) + ), + direction="column", + width="300px", + ) + + +image_variants_example = image_variants() +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.image +``` diff --git a/plugins/ui/docs/components/radio_group.md b/plugins/ui/docs/components/radio_group.md new file mode 100644 index 000000000..ece136e66 --- /dev/null +++ b/plugins/ui/docs/components/radio_group.md @@ -0,0 +1,352 @@ +# Radio Group + +A radio group is a UI component that groups multiple radio buttons together, allowing users to select one option from a set of mutually exclusive choices. + +Note that the radio component can only be used within a radio group. + +## Example + +```python +from deephaven import ui + + +my_radio_group_basic = ui.radio_group( + ui.radio("Dogs", value="dogs"), + ui.radio("Cats", value="cats"), + ui.radio("Lizard", value="lizard"), + ui.radio("Fish", value="fish"), + label="What is the best type of pet", +) +``` + +## UI Recommendations + +Recommendations for creating radio groups: + +1. Every radio group should have a [label](#labeling) specified. Without one, the radio group is ambiguous. In the rare case that context is sufficient, the label is unnecessary; you must still include an aria-label via the `aria_label` prop. +2. Use radio groups when the options in a list are mutually exclusive. +3. Emphasized radio buttons are ideal for forms and settings where they need to stand out, while non-emphasized radio buttons are best for monochrome application panels to keep the focus on the application. +4. The label, options, and help text should all be in sentence case. +5. Identify which radio groups are required or optional, and use the `is_required` field or the `necessity_indicator` to mark them accordingly. + +Consider using a [`checkbox_group`](./checkbox_group.md) to manage multiple selections or no selections within a group at once. If you need to display a list of items driven by a Deephaven table, use a [`list_view`](./list_view.md) to dynamically generate the checkboxes with `selection_mode="single"` to mimic radio behavior. + +## Value + +A radio group's value is not set by default, but a single initial, uncontrolled value can be set using the `default_value` prop, or a controlled value can be set via the `value` prop. + +```python +from deephaven import ui + + +@ui.component +def radio_group_value_examples(): + selected, set_selected = ui.use_state("yes") + return [ + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Are you a wizard? (no value set)?", + ), + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Are you a wizard? (uncontrolled)?", + default_value="yes", + ), + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Are you a wizard? (controlled)?", + value=selected, + on_change=set_selected, + ), + ] + + +my_radio_group_value_examples = radio_group_value_examples() +``` + + +## HTML Forms + +Radio groups can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_radio_group_name_example = ui.form( + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Is your favorite color blue?", + ), +) +``` + + +## Labeling + +The radio group can be labeled using the `label` prop, and if no label is provided, an `aria_label` must be provided to identify the control for accessibility purposes. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_label_examples(): + return [ + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + aria_label="Favorite avatar", + ), + ] + + +my_radio_group_label_examples = ui_radio_group_label_examples() +``` + + +The `is_required` prop and the `necessity_indicator` props can be used to show whether selecting an option in the radio group is required or optional. + +When the `necessity_indicator` prop is set to "label", a localized string will be generated for "(required)" or "(optional)" automatically. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_required_examples(): + return [ + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + is_required=True, + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + is_required=True, + necessity_indicator="label", + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + necessity_indicator="label", + ), + ] + + +my_radio_group_required_examples = ui_radio_group_required_examples() +``` + + +## Events + +The `on_change` property is triggered whenever the value in the radio group selection is changed. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_on_change_example(): + value, set_value = ui.use_state("") + return [ + ui.radio_group( + ui.radio("Yes", value="Yes"), + ui.radio("No", value="No"), + label="Is vanilla the best flavor of ice cream?", + value=value, + on_change=set_value, + ), + ui.text(f"You have selected: {value}"), + ] + + +my_radio_group_on_change_example = ui_radio_group_on_change_example() +``` + + +## Validation + +The `is_required` prop ensures that the user selects an option. The related `validation_behaviour` prop allows the user to specify aria or native verification. + +When the prop is set to "native", the validation errors block form submission and are displayed as help text automatically. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_validation_behaviour_example(): + return ui.form( + ui.radio_group( + ui.radio("Yes", value="Yes"), + ui.radio("No", value="No"), + label="Is vanilla the best flavor of ice cream?", + validation_behavior="aria", + is_required=True, + ) + ) + + +my_radio_group_validation_behaviour_example = ( + ui_radio_group_validation_behaviour_example() +) +``` + + +## Orientation + +While aligned vertically by default, the axis the radio buttons align with can be changed via the `orientation` prop. + +```python +from deephaven import ui + + +my_radio_group_orientation_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + orientation="horizontal", +) +``` + + +## Label position + +By default, the position of a radio group's label is above the radio group, but it can be changed to the side using the `label_position` prop. + +```python +from deephaven import ui + + +my_radio_group_label_position_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + label_position="side", +) +``` + + +## Help text + +A radio group can have both a `description` and an `error_message`. Use the error message to offer specific guidance on how to correct the input. + +The `is_invalid` prop can be used to set whether the current radio group state is valid or invalid. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_help_text_examples(): + return [ + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + description="Select an avatar from the two options.", + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + description="Select an avatar from the two options.", + error_message="Sample invalid error message.", + is_invalid=True, + ), + ] + + +my_radio_group_help_text_examples = ui_radio_group_help_text_examples() +``` + + +## Contextual Help + +Using the `contextual_help` prop, a `ui.contextual_help` can be placed next to the label to provide additional information about the radio group. + +```python +from deephaven import ui + + +my_radio_group_contextual_help_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + contextual_help=ui.contextual_help(ui.heading("Content tips")), +) +``` + + +## Disabled state + +The `is_disabled` prop disables a radio group to prevent user interaction. This is useful when the radio group should be visible but not available for selection. + +```python +from deephaven import ui + + +my_radio_group_is_disabled_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + is_disabled=True, +) +``` + +## Read only + +The `is_read_only` prop makes radio groups read-only to prevent user interaction. This is different from setting the `is_disabled` prop since the radio group remains focusable and its options remain visible. + +```python +from deephaven import ui + + +my_radio_group_is_read_only_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + default_value="dragon", + is_read_only=True, +) +``` + +## Emphasized + +The `is_emphasized` prop makes the selected radio button the user's accent color, adding a visual prominence to the selection. + + +```python +from deephaven import ui + + +my_radio_group_is_emphasized_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + default_value="dragon", + is_emphasized=True, +) +``` + + + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.radio_group +``` diff --git a/plugins/ui/docs/components/range_slider.md b/plugins/ui/docs/components/range_slider.md new file mode 100644 index 000000000..5e9755f5b --- /dev/null +++ b/plugins/ui/docs/components/range_slider.md @@ -0,0 +1,169 @@ +# Range Slider + +Range sliders allow users to quickly select a subset range within a fixed range and should be used when the upper and lower bounds of the range are constant. + +## Example + +```python +from deephaven import ui + +my_range_slider_basic = ui.range_slider( + default_value={"start": 18, "end": 80}, label="Age range" +) +``` + +## UI recommendations + +Recommendations for creating range sliders: + +1. Every range slider should have a [label](#labeling) specified. Without one, the range slider is ambiguous. In the rare case that context is sufficient, the label is unnecessary; you must still include an aria-label via the `aria_label` prop. +2. The label and contextual help text should be in sentence case. + +Consider using a `slider` instead of a `range_slider` when users should select a singular value or a `number_field` when the range is large and sliding between the upper and lower bound is no longer quick. + +## Value + +Sliders are controlled with the `value` prop and uncontrolled with the `default_value` prop. This value, consisting of `start` and `end`, must fall between the slider's minimum and maximum values, which by default are 0 and 100 respectively. + +```python +from deephaven import ui + + +@ui.component +def range_slider_value_example(): + value, set_value = ui.use_state({"start": 25, "end": 75}) + + def handle_value_change(new_value): + print(f"Range changed to {new_value}") + set_value(new_value) + + return [ + ui.range_slider( + default_value={"start": 25, "end": 75}, label="Range (uncontrolled)" + ), + ui.range_slider( + value=value, on_change=handle_value_change, label="Range (controlled)" + ), + ] + + +my_range_slider_value_example = range_slider_value_example() +``` + + +## Scale + +Setting the `min_value` and `max_value` props configures a custom scale for the range slider. + +The `step` prop changes the increments in which the range slider changes. + +```python +from deephaven import ui + + +@ui.component +def range_slider_range_step_examples(): + return [ + ui.range_slider( + default_value={"start": 75, "end": 100}, + min_value=50, + max_value=150, + label="Range", + ), + ui.range_slider( + default_value={"start": 10, "end": 100}, + min_value=0, + max_value=500, + step=10, + label="Range", + ), + ] + + +my_range_slider_range_step_examples = range_slider_range_step_examples() +``` + + +## HTML Forms + +Range sliders can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_range_slider_name_example = ui.form( + ui.range_slider( + label="Opacity", default_value={"start": 50, "end": 100}, name="Opacity Range" + ) +) +``` + + +## Labeling + +Value labels are shown above the range slider by default but can be moved to the side or hidden using the `label_position` prop. + +Note that if the `label` prop is set, the `show_value_label` is set to True by default. + +```python +from deephaven import ui + + +my_range_slider_label_example = ui.flex( + ui.range_slider(label="Jeans price range", default_value={"start": 75, "end": 100}), + ui.range_slider( + label="Shoes price range", + label_position="side", + default_value={"start": 50, "end": 100}, + ), + ui.range_slider( + label="Cakes to buy", + show_value_label=False, + default_value={"start": 15, "end": 30}, + ), + direction="column", + gap="size-500", +) +``` + + +## Contextual Help + +A `ui.contextual_help` can be passed into the `contextual_help` prop to provide additional information about the range slider. + +```python +from deephaven import ui + + +my_range_slider_contextual_help_example = ui.range_slider( + label="Search Radius", + min_value=0, + max_value=100, + default_value={"start": 15, "end": 60}, + contextual_help=ui.contextual_help( + ui.heading("Ranking"), + ui.content("Search results are sorted by distance from city center."), + ), +) +``` + + +## Disabled + +Setting the `is_disabled` prop disables the range slider. + +```python +from deephaven import ui + + +my_range_slider_disabled_example = ui.range_slider( + label="Price filter", default_value={"start": 25, "end": 50}, is_disabled=True +) +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.range_slider +``` \ No newline at end of file diff --git a/plugins/ui/docs/components/slider.md b/plugins/ui/docs/components/slider.md new file mode 100644 index 000000000..bdb1cf090 --- /dev/null +++ b/plugins/ui/docs/components/slider.md @@ -0,0 +1,203 @@ +# Slider + +Sliders allow users to quickly select a value within a fixed range and should be used when the range's upper and lower bounds are constant. + + +## Example + +```python +from deephaven import ui + +my_slider_basic = ui.slider(default_value=12, label="Cookies to buy") +``` + + +## UI recommendations + +Recommendations for creating sliders: + +1. Every slider should have a [label](#labeling) specified. Without one, the slider is ambiguous. In the rare case that context is sufficient, the label is unnecessary; you must still include an aria-label via the `aria_label` prop. +2. The label and contextual help text should be in sentence case. + +Consider using a [`range_slider`](./range_slider.md) when users should select a subset range or a `number_field` when the range is large or greater precision is required. + + +## Value + +Sliders are controlled with the `value` prop and uncontrolled with the `default_value` prop. This value must fall between the slider's minimum and maximum values, which by default are 0 and 100, respectively. + +```python +from deephaven import ui + + +@ui.component +def slider_value_example(): + value, set_value = ui.use_state(25) + return [ + ui.slider(default_value=25, label="Cookies to buy (Uncontrolled)"), + ui.slider( + value=value, on_change=set_value, label="Cookies to buy (Controlled)" + ), + ] + + +my_slider_value_example = slider_value_example() +``` + + +## Scale + +Setting the `min_value` and `max_value` props configures a custom scale for the slider. + +The `step` prop changes the increments that the slider changes. + +```python +from deephaven import ui + + +@ui.component +def slider_range_step_examples(): + return [ + ui.slider( + default_value=100, min_value=50, max_value=150, label="Cookies to buy" + ), + ui.slider( + default_value=100, + min_value=0, + max_value=1000, + step=100, + label="Donuts to buy for group event", + ), + ] + + +my_slider_range_step_examples = slider_range_step_examples() +``` + + +## HTML Forms + +Sliders can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_slider_name_example = ui.form( + ui.slider(label="Opacity", default_value=50, name="opacity") +) +``` + + +## Labeling + +Value labels are shown above the slider by default but can be moved to the side or hidden using the `label_position` prop. + +Note that if the `label` prop is set, the `show_value_label` is set to True by default. + +```python +from deephaven import ui + + +my_slider_label_example = ui.flex( + ui.slider(label="Cookies to buy", default_value=25), + ui.slider(label="Donuts to buy", label_position="side", default_value=25), + ui.slider(label="Cakes to buy", show_value_label=False, default_value=25), + direction="column", + gap="size-500", +) +``` + + +## Fill + +The `is_filled` prop can be set to fill the slider. The `fill_offset` prop can be set to apply an offset for the fill. + +```python +from deephaven import ui + + +my_slider_fill_example = ui.flex( + ui.slider( + label="Contrast", + min_value=-5, + max_value=5, + default_value=0.75, + step=0.05, + is_filled=True, + ), + ui.slider( + label="Exposure", + min_value=-5, + max_value=5, + default_value=1.83, + step=0.01, + fill_offset=1, + is_filled=True, + ), + direction="column", + gap="size-300", +) +``` + + +## Gradient + +The `track_gradient` prop applies a gradient to the slider's fill. + +```python +from deephaven import ui + + +my_slider_gradient_example = ui.slider( + label="Filter density", + track_gradient=["white", "rgba(177,141,32,1)"], + default_value=0.3, + max_value=1, + step=0.01, + is_filled=True, +) +``` + + +## Contextual Help + +To provide additional information about the slider, a `UI.contextual_help` can be passed into the `contextual_help` prop. + +```python +from deephaven import ui + + +my_slider_contextual_help_example = ui.slider( + label="Exposure", + min_value=-100, + max_value=100, + default_value=0, + is_filled=True, + fill_offset=0, + contextual_help=ui.contextual_help( + ui.heading("What is exposure?"), + ui.content("Exposure adjusts how bright the image is"), + ), +) +``` + +## Disabled + +Setting the `is_disabled` prop disables the slider. + +```python +from deephaven import ui + + +my_slider_disabled_example = ui.slider( + label="Cookies to share", default_value=0, is_disabled=True +) +``` + + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.slider +``` diff --git a/plugins/ui/docs/components/text_area.md b/plugins/ui/docs/components/text_area.md index ca76facf4..f77a0c203 100644 --- a/plugins/ui/docs/components/text_area.md +++ b/plugins/ui/docs/components/text_area.md @@ -1,6 +1,6 @@ # Text Area -TextAreas are multiline text inputs, ideal for cases where users have a sizable amount of text to enter. TextAreas can be customized in the same ways that TextFields can. +Text areas are multiline text inputs, ideal for cases where users have a sizable amount of text to enter. Text areas can be customized in the same ways that text fields can. ## Example diff --git a/plugins/ui/docs/installation.md b/plugins/ui/docs/installation.md new file mode 100644 index 000000000..8ad1ee057 --- /dev/null +++ b/plugins/ui/docs/installation.md @@ -0,0 +1,70 @@ +# Installation + +deephaven.ui is a plugin that works with [Deephaven](https://deephaven.io/core/docs/). Use the deephaven.ui plugin to build dynamic components and layouts using Deephaven. + +## New installation + +If you don't already have Deephaven installed, you can install via Docker or pip. + +### Install and run with Docker + +deephaven.ui can be run from a pre-built Docker image. Simply run the following to get the latest image: + +```sh +docker run --name deephaven -p 10000:10000 ghcr.io/deephaven/server-ui:latest +``` + +See the [Deephaven Docker install documentation](https://deephaven.io/core/docs/getting-started/docker-install/) for more information. + +### Install and run with pip + +deephaven.ui can easily be installed using the Python package manager pip. Simply run: + +```sh +pip install deephaven-server deephaven-plugin-ui +``` + +Then you can run the Deephaven server with: + +```sh +deephaven server +``` + +See the [Deephaven pip install documentation](https://deephaven.io/core/docs/getting-started/pip-install/) for more information. + +## Existing installation + +Installing Deephaven plugins is different whether you have Deephaven installed via Docker or via pip. + +### Add to existing Docker install + +With a running Docker container named `deephaven`, run the following from the command line: + +```sh +docker exec deephaven pip install deephaven-plugin-ui +``` + +See the [documentation for installing packages in a running container](https://deephaven.io/core/docs/how-to-guides/install-and-use-python-packages/#install-packages-in-a-running-docker-container-from-the-command-line) for more details. + +### Add to existing pip installation + +With an existing `pip` installation of Deephaven server, just `pip install` the plugin: + +```sh +pip install deephaven-plugin-ui +``` + +See the [documentation for using Python packages in Deephaven](https://deephaven.io/core/docs/how-to-guides/install-and-use-python-packages/#use-python-packages-in-deephaven) for more details. + +# Verifying installation + +After you have deephaven.ui installed, verify it is working correctly. Run Deephaven, and in the console enter the following command: + +```python +from deephaven import ui + +hello_world = ui.heading("Hello World!") +``` + +A panel will appear that displays the "Hello world!" text: +![Basic Hello World example.](../_assets/hello_world.png) diff --git a/plugins/ui/docs/sidebar.json b/plugins/ui/docs/sidebar.json index ef7c21150..04fee0f3d 100644 --- a/plugins/ui/docs/sidebar.json +++ b/plugins/ui/docs/sidebar.json @@ -14,6 +14,10 @@ "label": "Introduction", "path": "README.md" }, + { + "label": "Installation", + "path": "installation.md" + }, { "label": "Components", "items": [ diff --git a/plugins/ui/setup.cfg b/plugins/ui/setup.cfg index b44bda08e..045a942a0 100644 --- a/plugins/ui/setup.cfg +++ b/plugins/ui/setup.cfg @@ -3,7 +3,7 @@ name = deephaven-plugin-ui description = deephaven.ui plugin long_description = file: README.md long_description_content_type = text/markdown -version = 0.19.0.dev0 +version = 0.20.0.dev0 url = https://github.com/deephaven/deephaven-plugins project_urls = Source Code = https://github.com/deephaven/deephaven-plugins diff --git a/plugins/ui/src/deephaven/ui/_internal/RenderContext.py b/plugins/ui/src/deephaven/ui/_internal/RenderContext.py index 28e89c298..bc6b3516e 100644 --- a/plugins/ui/src/deephaven/ui/_internal/RenderContext.py +++ b/plugins/ui/src/deephaven/ui/_internal/RenderContext.py @@ -6,7 +6,9 @@ Any, Callable, Dict, + List, Optional, + Tuple, TypeVar, Union, Generator, @@ -58,6 +60,16 @@ The child contexts for a RenderContext. """ +RenderCleanup = Callable[[], None] +""" +A function that cleans up an effect. +""" + +RenderEffect = Callable[[], None] +""" +A function that performs an effect. +""" + @dataclass class ValueWithLiveness(Generic[T]): @@ -188,6 +200,30 @@ class RenderContext: representing the new rendered state. """ + _collected_effects: List[Tuple[RenderCleanup, RenderEffect]] + """ + Effects currently owned by this RenderContext. Takes a tuple of a cleanup function and an effect function. + When the current render cycle is complete, first it will call all the cleanup functions in the set, then it will call all the effect functions. + """ + + _collected_unmount_listeners: List[Callable[[], None]] + """ + Unmount listeners currently owned by this RenderContext. If currently open and rendering, this will be a fresh set, + representing the new rendered state. + When the context is deleted or unmounted, it will call all the listeners in this set. + """ + + _collected_contexts: List[ContextKey] + """ + Child contexts currently owned by this RenderContext. If currently open and rendering, this will be a fresh set, + representing the new rendered state. + """ + + _is_mounted: bool + """ + Flag to indicate if this context is mounted. It is unusable after being unmounted. + """ + def __init__(self, on_change: OnChangeCallable, on_queue_render: OnChangeCallable): """ Create a new render context. @@ -204,11 +240,18 @@ def __init__(self, on_change: OnChangeCallable, on_queue_render: OnChangeCallabl self._on_change = on_change self._on_queue_render = on_queue_render self._collected_scopes = set() + self._collected_effects = [] + self._collected_unmount_listeners = [] + self._collected_contexts = [] self._top_level_scope = None + self._is_mounted = True def __del__(self): + logger.debug("Deleting context") for scope in self._collected_scopes: scope.release() + if self._is_mounted: + self.unmount() @contextmanager def open(self) -> Generator[RenderContext, None, None]: @@ -222,6 +265,8 @@ def open(self) -> Generator[RenderContext, None, None]: Returns: A context manager to manage RenderContext resources. """ + self._assert_mounted() + if self._hook_index != _READY_TO_OPEN or self._top_level_scope is not None: raise RuntimeError( "RenderContext.open() was already called, and is not reentrant" @@ -233,17 +278,46 @@ def open(self) -> Generator[RenderContext, None, None]: old_context = get_context() except NoContextException: pass - logger.debug("old context is %s and new context is %s", old_context, self) + logger.debug("Opening context %s (old context is %s)", self, old_context) _set_context(self) # Keep a reference to old liveness scopes, and make a collection to track our new ones old_liveness_scopes = self._collected_scopes self._top_level_scope = LivenessScope() self._collected_scopes = {self._top_level_scope} + + # Reset the after render listeners. No need to retain the old ones. + self._collected_effects = [] + + # Keep a reference to old unmount listeners, and make a collection to track our new ones + old_unmount_listeners = self._collected_unmount_listeners + self._collected_unmount_listeners = [] + + # Keep a reference to old child contexts, and make a collection to track our new ones + old_contexts = self._collected_contexts + self._collected_contexts = [] + try: with self._top_level_scope.open(): yield self + # Release all child contexts that are no longer referenced + for context_key in old_contexts: + if context_key not in self._collected_contexts: + self.delete_child_context(context_key) + + # Call the unmount listeners for anything that was unmounted + for listener in old_unmount_listeners: + if listener not in self._collected_unmount_listeners: + listener() + + # Call all the cleanup functions registered, then all the effect functions + for cleanup, effect in self._collected_effects: + cleanup() + + for cleanup, effect in self._collected_effects: + effect() + # Following the "yield" so we don't do this if there was an error, remove all scopes we're still using. # Then, release all leftover scopes that are no longer referenced - we always release after creating new # ones, so that each reused object's refcount goes from 1 -> 2 -> 1, instead of 1 -> 0 -> 1 which would @@ -266,7 +340,9 @@ def open(self) -> Generator[RenderContext, None, None]: raise e finally: # Do this even if there was an error, old context must be restored - logger.debug("Resetting to old context %s", old_context) + logger.debug( + "Closing context %s, resetting to old context %s", self, old_context + ) _set_context(old_context) # Reset count for next use to safeguard double-opening @@ -274,6 +350,9 @@ def open(self) -> Generator[RenderContext, None, None]: # Clear the top level scope to ensure nothing tries to use it until opened again self._top_level_scope = None + # Reset the after render listeners. No need to retain the old ones. + self._collected_effects = [] + if self._hook_count != hook_count: # It isn't ideal to throw this anywhere - but this speaks to a malformed component, and there is no # good way to recover from that. We don't want to prevent liveness wiring above from working, so we @@ -284,6 +363,24 @@ def open(self) -> Generator[RenderContext, None, None]: ) ) + def _assert_active(self) -> None: + """ + Verify that this context is active on this thread. + """ + if self is not get_context(): + raise RuntimeError( + "RenderContext method called when RenderContext not opened" + ) + + def _assert_mounted(self) -> None: + """ + Verify that this context is mounted. + """ + if not self._is_mounted: + raise RuntimeError( + "RenderContext method called when RenderContext is unmounted" + ) + def has_state(self, key: StateKey) -> bool: """ Check if the given key is in the state. @@ -294,6 +391,7 @@ def get_state(self, key: StateKey) -> Any: """ Get the state for the given key. """ + self._assert_active() wrapper = self._state[key] # This value (and any objects created when this value was created) must be retained by the current context, @@ -331,7 +429,6 @@ def set_state(self, key: StateKey, value: T | UpdaterFunction[T]) -> None: key: The key to set the state for. value: The value to set the state to. Can be a callable that takes the old value and returns the new value. """ - if key not in self._state: raise KeyError(f"Key {key} not initialized") @@ -342,6 +439,7 @@ def update_state(): new_value = _value_or_call(partial(value, old_value)) else: new_value = _value_or_call(value) + logger.debug("Setting state %s to %s in %s", key, new_value, self) self._state[key] = new_value # This is not the initial state, queue up the state change on the render loop @@ -353,11 +451,24 @@ def get_child_context(self, key: ContextKey) -> "RenderContext": """ logger.debug("Getting child context for key %s", key) if key not in self._children_context: - logger.debug("Creating new child context for key %s", key) child_context = RenderContext(self._on_change, self._on_queue_render) + logger.debug( + "Created new child context %s for key %s in %s", + child_context, + key, + self, + ) self._children_context[key] = child_context + self._collected_contexts.append(key) return self._children_context[key] + def delete_child_context(self, key: ContextKey) -> None: + """ + Unmount and delete the child context for the given key. + """ + self._children_context[key].unmount() + del self._children_context[key] + def next_hook_index(self) -> int: """ Increment the hook index. @@ -381,9 +492,30 @@ def manage(self, liveness_scope: LivenessScope) -> None: Args: liveness_scope: the new LivenessScope to track """ - assert self is get_context() + self._assert_active() self._collected_scopes.add(cast(LivenessScope, liveness_scope.j_scope)) + def add_effect(self, cleanup: RenderCleanup, effect: RenderEffect) -> None: + """ + Add an effect for after this context is rendered. + This RenderContext must be open to call this method. + Args: + cleanup: the cleanup function to run from the previous effect. All cleanups are run before any effects. + effect: the new effect to run. + """ + self._assert_active() + self._collected_effects.append((cleanup, effect)) + + def add_unmount_listener(self, listener: Callable[[], None]) -> None: + """ + Add a listener for when this context is unmounted. + This RenderContext must be open to call this method. + Args: + listener: the new listener to track + """ + self._assert_active() + self._collected_unmount_listeners.append(listener) + def export_state(self) -> ExportedRenderState: """ Export the state of this context. This is used to serialize the state for the client. @@ -432,3 +564,27 @@ def import_state(self, state: dict[str, Any]) -> None: for key, child_state in state["children"].items(): self.get_child_context(key).import_state(child_state) logger.debug("New state is %s", self._state) + + def unmount(self) -> None: + """ + Unmount this context. This will unmount all child contexts, call all unmount listeners, and clear the state. + """ + self._assert_mounted() + + logger.debug("Unmounting context %s", self) + self._is_mounted = False + for context in self._children_context.values(): + context.unmount() + + for listener in self._collected_unmount_listeners: + listener() + + # Clear all our children states so we don't hold a reference to anything. + self._hook_index = _READY_TO_OPEN + self._hook_count = -1 + self._state.clear() + self._children_context.clear() + self._collected_scopes.clear() + self._collected_effects.clear() + self._collected_unmount_listeners.clear() + self._collected_contexts.clear() diff --git a/plugins/ui/src/deephaven/ui/_internal/utils.py b/plugins/ui/src/deephaven/ui/_internal/utils.py index 534deca51..25f8e0909 100644 --- a/plugins/ui/src/deephaven/ui/_internal/utils.py +++ b/plugins/ui/src/deephaven/ui/_internal/utils.py @@ -5,6 +5,7 @@ import sys from functools import partial from deephaven.time import to_j_instant, to_j_zdt, to_j_local_date +from deephaven.dtypes import ZonedDateTime, Instant from ..types import Date, JavaDate @@ -18,6 +19,8 @@ "java.time.LocalDate": to_j_local_date, } +_LOCAL_DATE = "java.time.LocalDate" + def get_component_name(component: Any) -> str: """ @@ -225,6 +228,15 @@ def _convert_to_java_date( Returns: The Java date type. """ + # For strings, parseInstant and parseZonedDateTime both succeed for the same strings + # Try parsing as a ZonedDateTime first per the documentation + if isinstance(date, str): + try: + return to_j_zdt(date) # type: ignore + except Exception: + # ignore, try next + pass + try: return to_j_instant(date) # type: ignore except Exception: @@ -288,7 +300,16 @@ def _wrap_date_callable( Returns: The wrapped callable. """ - return lambda date: wrap_callable(date_callable)(converter(date)) + # When the user is typing a date, they may enter a value that does not parse + # This will skip those errors rather than printing them to the screen + def no_error_date_callable(date: Date) -> None: + wrapped_date_callable = wrap_callable(date_callable) + try: + wrapped_date_callable(converter(date)) + except Exception: + pass + + return no_error_date_callable def _get_first_set_key(props: dict[str, Any], sequence: Sequence[str]) -> str | None: @@ -341,7 +362,7 @@ def _prioritized_callable_converter( def convert_list_prop( key: str, value: list[Date] | None, -) -> list[JavaDate] | None: +) -> list[str] | None: """ Convert a list of Dates to Java date types. @@ -357,7 +378,7 @@ def convert_list_prop( if not isinstance(value, list): raise TypeError(f"{key} must be a list of Dates") - return [_convert_to_java_date(date) for date in value] + return [str(_convert_to_java_date(date)) for date in value] def convert_date_props( @@ -365,6 +386,7 @@ def convert_date_props( simple_date_props: set[str], callable_date_props: set[str], priority: Sequence[str], + granularity_key: str, default_converter: Callable[[Date], Any] = to_j_instant, ) -> None: """ @@ -376,6 +398,7 @@ def convert_date_props( callable_date_props: A set of callable date keys to convert. The prop value should be a callable that takes a Date. priority: The priority of the props to check. + granularity_key: The key for the granularity default_converter: The default converter to use if none of the priority props are present. Returns: @@ -388,6 +411,16 @@ def convert_date_props( # the simple props must be converted before this to simplify the callable conversion converter = _prioritized_callable_converter(props, priority, default_converter) + # based on the convert set the granularity if it is not set + # Local Dates will default to DAY but we need to default to SECOND for the other types + if props.get(granularity_key) is None and converter != to_j_local_date: + props[granularity_key] = "SECOND" + + # now that the converter is set, we can convert simple props to strings + for key in simple_date_props: + if props.get(key) is not None: + props[key] = str(props[key]) + for key in callable_date_props: if props.get(key) is not None: if not callable(props[key]): diff --git a/plugins/ui/src/deephaven/ui/components/action_button.py b/plugins/ui/src/deephaven/ui/components/action_button.py index faef01337..dd61e5dfc 100644 --- a/plugins/ui/src/deephaven/ui/components/action_button.py +++ b/plugins/ui/src/deephaven/ui/components/action_button.py @@ -161,6 +161,9 @@ def action_button( aria_details: The details for the element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered ActionButton element. """ return component_element( "ActionButton", diff --git a/plugins/ui/src/deephaven/ui/components/checkbox.py b/plugins/ui/src/deephaven/ui/components/checkbox.py index d8bb1029d..be74ab9e4 100644 --- a/plugins/ui/src/deephaven/ui/components/checkbox.py +++ b/plugins/ui/src/deephaven/ui/components/checkbox.py @@ -153,6 +153,9 @@ def checkbox( aria_errormessage: The id of the element that provides error information for the current element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered checkbox. """ return component_element( diff --git a/plugins/ui/src/deephaven/ui/components/date_picker.py b/plugins/ui/src/deephaven/ui/components/date_picker.py index 51e47e131..fba8aa4d6 100644 --- a/plugins/ui/src/deephaven/ui/components/date_picker.py +++ b/plugins/ui/src/deephaven/ui/components/date_picker.py @@ -30,6 +30,8 @@ ) from ..types import Date, Granularity from .basic import component_element +from .make_component import make_component +from deephaven.time import dh_now DatePickerElement = Element @@ -43,6 +45,7 @@ } _LIST_DATE_PROPS = {"unavailable_values"} _CALLABLE_DATE_PROPS = {"on_change"} +_GRANULARITY_KEY = "granularity" # The priority of the date props to determine the format of the date passed to the callable date props _DATE_PROPS_PRIORITY = ["value", "default_value", "placeholder_value"] @@ -66,18 +69,21 @@ def _convert_date_picker_props( _SIMPLE_DATE_PROPS, _CALLABLE_DATE_PROPS, _DATE_PROPS_PRIORITY, + _GRANULARITY_KEY, ) return props +@make_component def date_picker( - placeholder_value: Date | None = None, + placeholder_value: Date | None = dh_now(), value: Date | None = None, default_value: Date | None = None, min_value: Date | None = None, max_value: Date | None = None, - unavailable_values: Sequence[Date] | None = None, + # TODO (issue # 698) we need to implement unavailable_values + # unavailable_values: Sequence[Date] | None = None, granularity: Granularity | None = None, page_behavior: PageBehavior | None = None, hour_cycle: HourCycle | None = None, @@ -167,7 +173,6 @@ def date_picker( default_value: The default value (uncontrolled). min_value: The minimum allowed date that a user may select. max_value: The maximum allowed date that a user may select. - unavailable_values: A list of dates that cannot be selected. granularity: Determines the smallest unit that is displayed in the date picker. By default, this is `"DAY"` for `LocalDate`, and `"SECOND"` otherwise. page_behavior: Controls the behavior of paging. Pagination either works by @@ -266,9 +271,9 @@ def date_picker( _convert_date_picker_props(props) - props["unavailable_values"] = use_memo( - lambda: convert_list_prop("unavailable_values", props["unavailable_values"]), - [unavailable_values], - ) + # props["unavailable_values"] = use_memo( + # lambda: convert_list_prop("unavailable_values", props["unavailable_values"]), + # [unavailable_values], + # ) return component_element("DatePicker", **props) diff --git a/plugins/ui/src/deephaven/ui/components/illustrated_message.py b/plugins/ui/src/deephaven/ui/components/illustrated_message.py index ac99d327b..9d0317ff8 100644 --- a/plugins/ui/src/deephaven/ui/components/illustrated_message.py +++ b/plugins/ui/src/deephaven/ui/components/illustrated_message.py @@ -56,6 +56,7 @@ def illustrated_message( ) -> Element: """ An IllustratedMessage displays an illustration and a message, usually for an empty state or an error page. + Args: *children: The content of the IllustratedMessage which consist of three areas: an illustration, a title, and a body. flex: When used in a flex layout, specifies how the element will grow or shrink to fit the space available. @@ -98,23 +99,10 @@ def illustrated_message( UNSAFE_class_name: Set the CSS className for the element. Only use as a last resort. Use style props instead. UNSAFE_style: Set the inline style for the element. Only use as a last resort. Use style props instead. - Examples: - no_results = ui.illustrated_message( - ui.heading("No Results"), - ui.content("Try another search"), - ) - warning = ui.illustrated_message( - ui.icon("vsWarning"), - ui.heading("Invalid input"), - ui.content("No special characters allowed."), - ) - error_message = ui.illustrated_message( - ui.icon("vsError"), - ui.heading("Access denied"), - ui.content("You do not have permissions to access this page."), - ) - + Returns: + The rendered IllustratedMessage component. """ + return component_element( "IllustratedMessage", *children, diff --git a/plugins/ui/src/deephaven/ui/components/image.py b/plugins/ui/src/deephaven/ui/components/image.py index 83c8dcf97..0e885d0c0 100644 --- a/plugins/ui/src/deephaven/ui/components/image.py +++ b/plugins/ui/src/deephaven/ui/components/image.py @@ -108,7 +108,11 @@ def image( id: The unique identifier of the element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered Image element. """ + return component_element( "Image", src=src, diff --git a/plugins/ui/src/deephaven/ui/components/radio_group.py b/plugins/ui/src/deephaven/ui/components/radio_group.py index 8e3b9ace9..b44ab271c 100644 --- a/plugins/ui/src/deephaven/ui/components/radio_group.py +++ b/plugins/ui/src/deephaven/ui/components/radio_group.py @@ -23,7 +23,7 @@ def radio_group( - *children, + *children: Any, is_emphasized: bool | None = None, orientation: Orientation = "vertical", value: str | None = None, @@ -98,7 +98,7 @@ def radio_group( compare. Args: - children: The Radio(s) contained within the RadioGroup. + *children: The Radio(s) contained within the RadioGroup. is_emphasized: By default, radio button are not emphasized (gray). The emphasized version provides visual prominence. orientation: The axis the Radio Buttons should align with. value: The value of the selected radio button. @@ -158,14 +158,16 @@ def radio_group( z_index: The stack order of the element. is_hidden: Whether the element is hidden. id: The unique identifier of the element. - aria-label: Defines a string value that labels the current element. - aria-labelledby: Identifies the element (or elements) that labels the current element. - aria-describedby: Identifies the element (or elements) that describes the object. - aria-details: Identifies the element (or elements) that provide a detailed, extended description for the object. + aria_label: Defines a string value that labels the current element. + aria_labelledby: Identifies the element (or elements) that labels the current element. + aria_describedby: Identifies the element (or elements) that describes the object. + aria_details: Identifies the element (or elements) that provide a detailed, extended description for the object. aria_errormessage: Identifies the element that provides an error message for the object. UNSAFE_class_name: Set the CSS className for the element. Only use as a last resort. Use style props instead. UNSAFE_style: Set the inline style for the element. Only use as a last resort. Use style props instead. + Returns: + The rendered radio group component. """ children, props = create_props(locals()) diff --git a/plugins/ui/src/deephaven/ui/components/range_slider.py b/plugins/ui/src/deephaven/ui/components/range_slider.py index 2fdf4e8cd..b6aab50ae 100644 --- a/plugins/ui/src/deephaven/ui/components/range_slider.py +++ b/plugins/ui/src/deephaven/ui/components/range_slider.py @@ -139,20 +139,22 @@ def range_slider( is_hidden: Whether the element is hidden. id: The unique identifier of the element. aria_label: The label for the element. - aria_labelled_by: The id of the element that labels the current element. - aria_described_by: The id of the element that describes the current element. + aria_labelledby: The id of the element that labels the current element. + aria_describedby: The id of the element that describes the current element. aria_details: The id of the element that provides additional information about the current element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered range slider component. """ + return component_element( "RangeSlider", start_name=start_name, end_name=end_name, - # format_options=format_options, label_position=label_position, show_value_label=show_value_label, - # get_value_label=get_value_label, contextual_help=contextual_help, orientation=orientation, is_disabled=is_disabled, diff --git a/plugins/ui/src/deephaven/ui/components/slider.py b/plugins/ui/src/deephaven/ui/components/slider.py index cf8b60ad7..36ea10800 100644 --- a/plugins/ui/src/deephaven/ui/components/slider.py +++ b/plugins/ui/src/deephaven/ui/components/slider.py @@ -139,21 +139,23 @@ def slider( is_hidden: Whether the element is hidden. id: The unique identifier of the element. aria_label: The label for the element. - aria_labelled_by: The id of the element that labels the current element. - aria_described_by: The id of the element that describes the current element. + aria_labelledby: The id of the element that labels the current element. + aria_describedby: The id of the element that describes the current element. aria_details: The id of the element that provides additional information about the current element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered slider component. """ + return component_element( "Slider", is_filled=is_filled, fill_offset=fill_offset, track_gradient=track_gradient, - # format_options=format_options, label_position=label_position, show_value_label=show_value_label, - # get_value_label=get_value_label, contextual_help=contextual_help, orientation=orientation, is_disabled=is_disabled, diff --git a/plugins/ui/src/deephaven/ui/elements/Element.py b/plugins/ui/src/deephaven/ui/elements/Element.py index e0c00ad0c..810f52fea 100644 --- a/plugins/ui/src/deephaven/ui/elements/Element.py +++ b/plugins/ui/src/deephaven/ui/elements/Element.py @@ -28,6 +28,9 @@ def render(self, context: RenderContext) -> PropsType: Renders this element, and returns the result as a dictionary of props for the element. If you just want to render children, pass back a dict with children only, e.g. { "children": ... } + Args: + context: Deprecated. The context to render the element in. Should already be opened before calling this method. + Returns: The props of this element. """ diff --git a/plugins/ui/src/deephaven/ui/elements/FunctionElement.py b/plugins/ui/src/deephaven/ui/elements/FunctionElement.py index e0bb202bb..bcf63188c 100644 --- a/plugins/ui/src/deephaven/ui/elements/FunctionElement.py +++ b/plugins/ui/src/deephaven/ui/elements/FunctionElement.py @@ -33,7 +33,6 @@ def render(self, context: RenderContext) -> PropsType: Returns: The props of this element. """ - with context.open(): - children = self._render() + children = self._render() return {"children": children} diff --git a/plugins/ui/src/deephaven/ui/hooks/use_callback.py b/plugins/ui/src/deephaven/ui/hooks/use_callback.py index cd4bf7f02..6f4a60ca0 100644 --- a/plugins/ui/src/deephaven/ui/hooks/use_callback.py +++ b/plugins/ui/src/deephaven/ui/hooks/use_callback.py @@ -1,12 +1,14 @@ from __future__ import annotations -from typing import Callable +from typing import Any, Callable, TypeVar from .use_memo import use_memo from ..types import Dependencies +T = TypeVar("T", bound=Callable[..., Any]) -def use_callback(func: Callable, dependencies: Dependencies) -> Callable: + +def use_callback(func: T, dependencies: Dependencies) -> T: """ Memoize a callback function. The callback will only be recreated if the dependencies change. diff --git a/plugins/ui/src/deephaven/ui/hooks/use_effect.py b/plugins/ui/src/deephaven/ui/hooks/use_effect.py index e11e05fa6..6938ed9fb 100644 --- a/plugins/ui/src/deephaven/ui/hooks/use_effect.py +++ b/plugins/ui/src/deephaven/ui/hooks/use_effect.py @@ -1,15 +1,23 @@ from __future__ import annotations -from typing import Callable, Any, cast, Sequence +from typing import Callable, Any, cast, Sequence, Union +from .use_callback import use_callback from .use_ref import use_ref, Ref from deephaven.liveness_scope import LivenessScope from .._internal import get_context from ..types import Dependencies +CleanupFunction = Callable[[], None] +EffectFunction = Callable[[], Union[CleanupFunction, None]] -def use_effect(func: Callable[[], Any], dependencies: Dependencies): + +def use_effect( + func: EffectFunction, dependencies: Union[Dependencies, None] = None +) -> None: """ Call a function when the dependencies change. Optionally return a cleanup function to be called when dependencies change again or component is unmounted. + If no dependencies are passed in, the effect will be called on every render. + If an empty list is passed in, the effect will only be called once when the component mounts. Args: func: The function to call when the dependencies change. @@ -19,26 +27,50 @@ def use_effect(func: Callable[[], Any], dependencies: Dependencies): None """ deps_ref: Ref[set[Any] | Sequence[Any] | None] = use_ref(None) - cleanup_ref = use_ref(lambda: None) + cleanup_ref: Ref[Union[CleanupFunction, None]] = use_ref(lambda: None) scope_ref: Ref[LivenessScope | None] = use_ref(None) + is_mounted_ref: Ref[bool] = use_ref(False) + is_dirty = ( + not is_mounted_ref.current + or dependencies is None + or deps_ref.current != dependencies + ) - # Check if the dependencies have changed - if deps_ref.current != dependencies: - if cleanup_ref.current is not None: - # Call the cleanup function from the previous effect - cleanup_ref.current() - + def run_effect(): # Dependencies have changed, so call the effect function and store the new cleanup that's returned, wrapped # with a new liveness scope. We will only open this scope once to capture the operations in the function, # and will pass ownership to the current RenderContext, which will release it when appropriate. liveness_scope = LivenessScope() + with liveness_scope.open(): - cleanup_ref.current = func() + effect_result = func() + cleanup_ref.current = effect_result scope_ref.current = liveness_scope # Update the dependencies deps_ref.current = dependencies - # Whether new or existing, continue to retain the liveness scope from the most recently invoked effect. - get_context().manage(cast(LivenessScope, scope_ref.current)) + def cleanup(): + if is_dirty and cleanup_ref.current is not None: + cleanup_ref.current() + cleanup_ref.current = None + + def effect(): + is_mounted_ref.current = True + + if is_dirty: + run_effect() + + # Whether new or existing, continue to retain the liveness scope from the most recently invoked effect. + get_context().manage(cast(LivenessScope, scope_ref.current)) + + def unmount(): + is_mounted_ref.current = False + cleanup() + + handle_unmount = use_callback(unmount, []) + + # We want to listen for when the render cycle is complete or the component is unmounted + get_context().add_effect(cleanup, effect) + get_context().add_unmount_listener(handle_unmount) diff --git a/plugins/ui/src/deephaven/ui/hooks/use_memo.py b/plugins/ui/src/deephaven/ui/hooks/use_memo.py index 406714539..58be11ee1 100644 --- a/plugins/ui/src/deephaven/ui/hooks/use_memo.py +++ b/plugins/ui/src/deephaven/ui/hooks/use_memo.py @@ -20,7 +20,8 @@ def use_memo(func: Callable[[], T], dependencies: Dependencies) -> T: Returns: The memoized result of the function call. """ - if not isinstance(dependencies, (list, tuple)): + # Add a safety net in case someone passes in an incorrect value, ignoring the type specifications + if not isinstance(dependencies, (list, tuple)): # type: ignore raise TypeError( f"dependencies must be a list or tuple, got {type(dependencies)}" ) diff --git a/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py b/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py index b622466f7..7b2d9c10a 100644 --- a/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py +++ b/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py @@ -281,6 +281,14 @@ def start(self) -> None: self._connection.on_data(b"", []) def on_close(self) -> None: + assert not self._is_closed + + logger.debug("Closing ElementMessageStream") + + # The connection is closed, so this component will not update anymore + # delete the context so the objects in the collected scope are released + self._context.unmount() + del self._context self._is_closed = True def on_data(self, payload: bytes, references: list[Any]) -> None: @@ -426,6 +434,9 @@ def _send_document_update( root: The root node of the document to send state: The state of the node to preserve """ + if self._is_closed: + logger.error("Stream is closed, cannot render document") + sys.exit() # TODO(#67): Send a diff of the document instead of the entire document. encoder_result = self._encoder.encode_node(root) @@ -447,11 +458,6 @@ def _send_document_update( logger.debug("Registering callable %s", callable_id) callable_dict[callable_id] = wrap_callable(callable) self._callable_dict = callable_dict - if self._is_closed: - # The connection is closed, so this component will not update anymore - # delete the context so the objects in the collected scope are released - del self._context - sys.exit() self._connection.on_data(payload.encode(), new_objects) def _send_document_error(self, error: Exception, stack_trace: str) -> None: diff --git a/plugins/ui/src/deephaven/ui/renderer/Renderer.py b/plugins/ui/src/deephaven/ui/renderer/Renderer.py index 4052b9b28..496f5e7ed 100644 --- a/plugins/ui/src/deephaven/ui/renderer/Renderer.py +++ b/plugins/ui/src/deephaven/ui/renderer/Renderer.py @@ -1,6 +1,6 @@ from __future__ import annotations import logging -from typing import Any +from typing import Any, Dict, List, Tuple, Union from .._internal import RenderContext from ..elements import Element, PropsType from .RenderedNode import RenderedNode @@ -8,6 +8,47 @@ logger = logging.getLogger(__name__) +def _get_context_key(item: Any, index_key: str) -> Union[str, None]: + """ + Get a key for an item provided at the array/dict `index_key`. This is used to uniquely identify the item in the + render context. + + Args: + item: The item to get a key for. + index_key: The key of the item in the array/dict. + + Returns: + The key for the item in the render context. + - If `item` is an `Element` generate a key based on the `index_key` and the `name` of the `Element`. + - If the item is another iterable, just return the `index_key`. + - Otherwise, return `None` as the key. + - TODO #731: use a `key` prop if it exists on the `Element`. + """ + if isinstance(item, Element): + return f"{index_key}-{item.name}" + if isinstance(item, (Dict, List, Tuple)): + return index_key + return None + + +def _render_child_item(item: Any, index_key: str, context: RenderContext) -> Any: + """ + Renders a child item with a child context. If the child item does not need to be rendered, just return the item. + + Args: + item: The item to render. + index_key: The key of the item in the array/dict. + context: The context to render the item in. + + Returns: + The rendered item. + """ + key = _get_context_key(item, index_key) + return ( + _render_item(item, context.get_child_context(key)) if key is not None else item + ) + + def _render_item(item: Any, context: RenderContext) -> Any: """ Render an item. If the item is a list or tuple, render each item in the list. @@ -15,6 +56,9 @@ def _render_item(item: Any, context: RenderContext) -> Any: Args: item: The item to render. context: The context to render the item in. + + Returns: + The rendered item. """ logger.debug("_render_item context is %s", context) if isinstance(item, (list, tuple)): @@ -44,12 +88,16 @@ def _render_list( Args: item: The list to render. context: The context to render the list in. + + Returns: + The rendered list. """ logger.debug("_render_list %s", item) - return [ - _render_item(value, context.get_child_context(str(key))) - for key, value in enumerate(item) - ] + with context.open(): + return [ + _render_child_item(value, str(key), context) + for key, value in enumerate(item) + ] def _render_dict(item: PropsType, context: RenderContext) -> PropsType: @@ -60,12 +108,29 @@ def _render_dict(item: PropsType, context: RenderContext) -> PropsType: Args: item: The dictionary to render. context: The context to render the dictionary in. + + Returns: + The rendered dictionary. + """ + logger.debug("_render_dict %s", item) + + with context.open(): + return _render_dict_in_open_context(item, context) + + +def _render_dict_in_open_context(item: PropsType, context: RenderContext) -> PropsType: + """ + Render a dictionary. You may be able to pass in an element as a prop that needs to be rendered, not just as a child. + For example, a `label` prop of a button can accept a string or an element. + + Args: + item: The dictionary to render. + context: The context to render the dictionary in. + + Returns: + The rendered dictionary. """ - logger.debug("_render_props %s", item) - return { - key: _render_item(value, context.get_child_context(key)) - for key, value in item.items() - } + return {key: _render_child_item(value, key, context) for key, value in item.items()} def _render_element(element: Element, context: RenderContext) -> RenderedNode: @@ -79,12 +144,13 @@ def _render_element(element: Element, context: RenderContext) -> RenderedNode: Returns: The RenderedNode representing the element. """ - logger.debug("Rendering %s: ", element.name) + logger.debug("Rendering element %s in context %s", element.name, context) - props = element.render(context) + with context.open(): + props = element.render(context) - # We also need to render any elements that are passed in as props - props = _render_dict(props, context) + # We also need to render any elements that are passed in as props (including `children`) + props = _render_dict_in_open_context(props, context) return RenderedNode(element.name, props) @@ -107,5 +173,11 @@ def __init__(self, context: RenderContext): def render(self, element: Element) -> RenderedNode: """ Render an element. Will update the liveness scope with the new objects from the render. + + Args: + element: The element to render. + + Returns: + The rendered element. """ return _render_element(element, self._context) diff --git a/plugins/ui/src/js/package.json b/plugins/ui/src/js/package.json index de3455007..1f6879ad7 100644 --- a/plugins/ui/src/js/package.json +++ b/plugins/ui/src/js/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/js-plugin-ui", - "version": "0.19.0", + "version": "0.20.0", "description": "Deephaven UI plugin", "keywords": [ "Deephaven", @@ -59,6 +59,7 @@ "@deephaven/redux": "^0.86.0", "@deephaven/utils": "^0.87.0", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "classnames": "^2.5.1", "json-rpc-2.0": "^1.6.0", "nanoid": "^5.0.7", diff --git a/plugins/ui/src/js/src/elements/DatePicker.tsx b/plugins/ui/src/js/src/elements/DatePicker.tsx new file mode 100644 index 000000000..1ab5d2f3f --- /dev/null +++ b/plugins/ui/src/js/src/elements/DatePicker.tsx @@ -0,0 +1,95 @@ +import React, { useCallback, useState, useEffect } from 'react'; +import { useSelector } from 'react-redux'; +import { + DatePicker as DHCDatePicker, + DatePickerProps as DHCDatePickerProps, +} from '@deephaven/components'; +import { useDebouncedCallback, usePrevious } from '@deephaven/react-hooks'; +import { getSettings, RootState } from '@deephaven/redux'; +import { DateValue, toTimeZone, ZonedDateTime } from '@internationalized/date'; +import { + SerializedDatePickerProps, + useDatePickerProps, +} from './hooks/useDatepickerProps'; + +const VALUE_CHANGE_DEBOUNCE = 250; + +const EMPTY_FUNCTION = () => undefined; + +function isStringInstant(value?: string | null): boolean { + return value != null && value.endsWith('Z'); +} + +function isDatePickerInstant( + props: SerializedDatePickerProps> +): boolean { + const { value, defaultValue, placeholderValue } = props; + if (value != null) { + return isStringInstant(value); + } + if (defaultValue != null) { + return isStringInstant(defaultValue); + } + return isStringInstant(placeholderValue); +} + +export function DatePicker( + props: SerializedDatePickerProps> +): JSX.Element { + const isDatePickerInstantValue = isDatePickerInstant(props); + const settings = useSelector(getSettings); + const { timeZone } = settings; + + const { + defaultValue = null, + value: propValue, + onChange: propOnChange = EMPTY_FUNCTION, + ...otherProps + } = useDatePickerProps(props, timeZone); + + const [value, setValue] = useState(propValue ?? defaultValue); + + const debouncedOnChange = useDebouncedCallback( + propOnChange, + VALUE_CHANGE_DEBOUNCE + ); + + const onChange = useCallback( + newValue => { + setValue(newValue); + debouncedOnChange(newValue); + }, + [debouncedOnChange] + ); + + // When the time zone changes, the serialized prop value will change, so we need to update the value state + const prevTimeZone = usePrevious(timeZone); + useEffect(() => { + // The timezone is intially undefined, so we don't want to trigger a change in that case + if ( + isDatePickerInstantValue && + prevTimeZone !== undefined && + timeZone !== prevTimeZone && + value instanceof ZonedDateTime + ) { + const newValue = toTimeZone(value, timeZone); + setValue(toTimeZone(value, timeZone)); + debouncedOnChange(newValue); + } + }, [ + isDatePickerInstantValue, + value, + debouncedOnChange, + timeZone, + prevTimeZone, + ]); + + return ( + // eslint-disable-next-line react/jsx-props-no-spreading + + ); +} + +DatePicker.displayName = 'DatePicker'; + +export default DatePicker; diff --git a/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts new file mode 100644 index 000000000..435ba2b3c --- /dev/null +++ b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts @@ -0,0 +1,67 @@ +import { parseDateValue, parseNullableDateValue } from './useDatepickerProps'; + +const DEFAULT_TIME_ZONE = 'UTC'; +const NY_TIME_ZONE = 'America/New_York'; + +describe('parseDateValue', () => { + const isoDate = '2021-02-03'; + const isoDateTime = '2021-03-03T04:05:06'; + const isoZonedDateTime = '2021-04-04T05:06:07-04:00[America/New_York]'; + const nonIsoZonedDateTime = '2021-04-04T05:06:07 America/New_York'; + const instantString = '2021-03-03T04:05:06Z'; + const instantStringUTC = '2021-03-03T04:05:06Z[UTC]'; + const utcOutput = '2021-03-03T04:05:06+00:00[UTC]'; + const nyOutput = '2021-03-02T23:05:06-05:00[America/New_York]'; + const invalidDate = 'invalid-date'; + + it('should return null if the value is null', () => { + expect(parseNullableDateValue(DEFAULT_TIME_ZONE, null)).toBeNull(); + }); + + it('should return undefined if the value is undefined', () => { + expect(parseDateValue(DEFAULT_TIME_ZONE, undefined)).toBeUndefined(); + }); + + it('should parse an ISO 8601 date string', () => { + expect(parseDateValue(DEFAULT_TIME_ZONE, isoDate)?.toString()).toEqual( + isoDate + ); + }); + + it('should parse an ISO 8601 date time string', () => { + expect(parseDateValue(DEFAULT_TIME_ZONE, isoDateTime)?.toString()).toEqual( + isoDateTime + ); + }); + + it('should parse an ISO 8601 zoned date time string', () => { + expect( + parseDateValue(DEFAULT_TIME_ZONE, isoZonedDateTime)?.toString() + ).toEqual(isoZonedDateTime); + }); + + it('should parse a non-ISO 8601 zoned date time string', () => { + expect( + parseDateValue(DEFAULT_TIME_ZONE, nonIsoZonedDateTime)?.toString() + ).toEqual(isoZonedDateTime); + }); + + it('should parse an instant string', () => { + expect( + parseDateValue(DEFAULT_TIME_ZONE, instantString)?.toString() + ).toEqual(utcOutput); + expect( + parseDateValue(DEFAULT_TIME_ZONE, instantStringUTC)?.toString() + ).toEqual(utcOutput); + }); + + it('should throw an error if the value is invalid', () => { + expect(() => parseDateValue(DEFAULT_TIME_ZONE, invalidDate)).toThrow(); + }); + + it('should parse an instant time string with a different time zone', () => { + expect(parseDateValue(NY_TIME_ZONE, instantString)?.toString()).toEqual( + nyOutput + ); + }); +}); diff --git a/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts new file mode 100644 index 000000000..7c03fddcb --- /dev/null +++ b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts @@ -0,0 +1,363 @@ +import { useCallback, useMemo } from 'react'; +import { + DateValue, + CalendarDate, + CalendarDateTime, + ZonedDateTime, + parseDate, + parseDateTime, + parseZonedDateTime, + toTimeZone, +} from '@internationalized/date'; +import { + DeserializedFocusEventCallback, + SerializedFocusEventCallback, + useFocusEventCallback, +} from './useFocusEventCallback'; +import { + DeserializedKeyboardEventCallback, + SerializedKeyboardEventCallback, + useKeyboardEventCallback, +} from './useKeyboardEventCallback'; + +type MappedDateValue = T extends ZonedDateTime + ? ZonedDateTime + : T extends CalendarDateTime + ? CalendarDateTime + : T extends CalendarDate + ? CalendarDate + : never; + +type Granularity = 'day' | 'hour' | 'minute' | 'second'; + +export type SerializedDateValue = string | null; + +export type SerializedDateValueCallback = (value: SerializedDateValue) => void; + +export type DeserializedDateValueCallback = ( + value: MappedDateValue +) => void; + +export interface SerializedDatePickerPropsInterface { + /** Handler that is called when the element receives focus. */ + onFocus?: SerializedFocusEventCallback; + + /** Handler that is called when the element loses focus. */ + onBlur?: SerializedFocusEventCallback; + + /** Handler that is called when a key is pressed */ + onKeyDown?: SerializedKeyboardEventCallback; + + /** Handler that is called when a key is released */ + onKeyUp?: SerializedKeyboardEventCallback; + + /** Handler that is called when the value changes */ + onChange?: SerializedDateValueCallback; + + /** The current value (controlled) */ + value?: string | null; + + /** The default value (uncontrolled) */ + defaultValue?: string | null; + + /** The minimum allowed date that a user may select */ + minValue?: string; + + /** The maximum allowed date that a user may select */ + maxValue?: string; + + /** A placeholder date that influences the format of the placeholder shown when no value is selected */ + placeholderValue?: string; + + /** Dates that are unavailable */ + unavailableValues?: string[] | null; + + /** Determines the smallest unit that is displayed in the date picker. */ + granularity?: Granularity; +} + +export interface DeserializedDatePickerPropsInterface { + /** Handler that is called when the element receives focus. */ + onFocus?: DeserializedFocusEventCallback; + + /** Handler that is called when the element loses focus. */ + onBlur?: DeserializedFocusEventCallback; + + /** Handler that is called when a key is pressed */ + onKeyDown?: DeserializedKeyboardEventCallback; + + /** Handler that is called when a key is released */ + onKeyUp?: DeserializedKeyboardEventCallback; + + /** Handler that is called when the value changes */ + onChange?: DeserializedDateValueCallback; + + /** The current value (controlled) */ + value?: DateValue | null; + + /** The default value (uncontrolled) */ + defaultValue?: DateValue | null; + + /** The minimum allowed date that a user may select */ + minValue?: DateValue; + + /** The maximum allowed date that a user may select */ + maxValue?: DateValue; + + /** A placeholder date that influences the format of the placeholder shown when no value is selected */ + placeholderValue?: DateValue; + + /** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable */ + isDateUnavailable?: (date: DateValue) => boolean; + + /** Determines the smallest unit that is displayed in the date picker. */ + granularity?: Granularity; +} + +export type SerializedDatePickerProps = TProps & + SerializedDatePickerPropsInterface; + +export type DeserializedDatePickerProps = Omit< + TProps, + keyof SerializedDatePickerPropsInterface +> & + DeserializedDatePickerPropsInterface; + +/** + * Uses the toString representation of the DateValue as the serialized value. + * @param value DateValue to serialize + * @returns Serialized DateValue + */ +export function serializeDateValue( + value: MappedDateValue +): SerializedDateValue { + if (value == null) { + return null; + } + + return value.toString(); +} + +/** + * Get a callback function that can be passed to the onChange event handler + * props of a Spectrum DatePicker. + * @param callback Callback to be called with the serialized value + * @returns A callback to be passed into the Spectrum component that transforms + * the value and calls the provided callback + */ +export function useOnChangeCallback( + callback?: SerializedDateValueCallback +): (value: MappedDateValue) => void { + return useCallback( + (value: MappedDateValue) => { + if (callback == null) { + return; + } + callback(serializeDateValue(value)); + }, + [callback] + ); +} + +/** + * Use memo to get a DateValue from a nullable string. + * + * @param value the string date value + * @returns DateValue or null + */ +export function useNullableDateValueMemo( + timeZone: string, + value?: string | null +): DateValue | null | undefined { + return useMemo( + () => parseNullableDateValue(timeZone, value), + [timeZone, value] + ); +} + +export function parseNullableDateValue( + timeZone: string, + value?: string | null +): DateValue | null | undefined { + if (value === null) { + return value; + } + + return parseDateValue(timeZone, value); +} + +/** + * Use memo to get a DateValue from a string. + * + * @param value the string date value + * @returns DateValue + */ +export function useDateValueMemo( + timeZone: string, + value?: string +): DateValue | undefined { + return useMemo(() => parseDateValue(timeZone, value), [timeZone, value]); +} + +/** + * Parses a date value string into a DateValue. + * + * @param value the string date value + * @returns DateValue + */ +export function parseDateValue( + timeZone: string, + value?: string +): DateValue | undefined { + if (value === undefined) { + return value; + } + + // Try to parse and ISO 8601 date string, e.g. "2021-02-03" + try { + return parseDate(value); + } catch (ignore) { + // ignore + } + + // Note that the Python API will never send a string like this. This is here for correctness. + // Try to parse an ISO 8601 date time string, e.g. "2021-03-03T04:05:06" + try { + return parseDateTime(value); + } catch (ignore) { + // ignore + } + + // Try to parse an ISO 8601 zoned date time string, e.g. "2021-04-04T05:06:07[America/New_York]" + try { + return parseZonedDateTime(value); + } catch (ignore) { + // ignore + } + + // Try to parse a non-ISO 8601 zoned date time string, e.g. "2021-04-04T05:06:07 America/New_York" + const parts = value.split(' '); + if (parts.length === 2) { + const isoString = `${parts[0]}[${parts[1]}]`; + try { + return parseZonedDateTime(isoString); + } catch (ignore) { + // ignore + } + } + + // This is an edge case. The Python API will parse these to an Instant, + // but the user may explicitly create a ZonedDateTime with a UTC offset. + // Try to parse an ZonedDateTime "2021-04-04T05:06:07Z[UTC]" + if (value.endsWith('Z[UTC]')) { + try { + return parseZonedDateTime(value.replace('Z', '')); + } catch (ignore) { + // ignore + } + } + + // Try to parse an Instant "2021-04-04T05:06:07Z" + if (value.endsWith('Z')) { + try { + return toTimeZone( + parseZonedDateTime(`${value.slice(0, -1)}[UTC]`), + timeZone + ); + } catch (ignore) { + // ignore + } + } + + throw new Error(`Invalid date value string: ${value}`); +} + +/** + * Get a callback function that can be passed to the isDateUnavailable prop of a Spectrum DatePicker. + * + * @param unavailableSet Set of unavailable date strings + * @returns A callback to be passed into the Spectrum component that checks if the date is unavailable + */ +export function useIsDateUnavailableCallback( + unavailableSet: Set +): (date: DateValue) => boolean { + return useCallback( + (date: DateValue) => unavailableSet.has(date.toString()), + [unavailableSet] + ); +} + +/** + * Wrap DatePicker props with the appropriate serialized event callbacks. + * @param props Props to wrap + * @returns Wrapped props + */ +export function useDatePickerProps( + { + onFocus, + onBlur, + onKeyDown, + onKeyUp, + onChange: serializedOnChange, + value: serializedValue, + defaultValue: serializedDefaultValue, + minValue: serializedMinValue, + maxValue: serializedMaxValue, + placeholderValue: serializedPlaceholderValue, + unavailableValues, + granularity: upperCaseGranularity, + ...otherProps + }: SerializedDatePickerProps, + timeZone: string +): DeserializedDatePickerProps { + const serializedOnFocus = useFocusEventCallback(onFocus); + const serializedOnBlur = useFocusEventCallback(onBlur); + const serializedOnKeyDown = useKeyboardEventCallback(onKeyDown); + const serializedOnKeyUp = useKeyboardEventCallback(onKeyUp); + const onChange = useOnChangeCallback(serializedOnChange); + const deserializedValue = useNullableDateValueMemo(timeZone, serializedValue); + const deserializedDefaultValue = useNullableDateValueMemo( + timeZone, + serializedDefaultValue + ); + const deserializedMinValue = useDateValueMemo(timeZone, serializedMinValue); + const deserializedMaxValue = useDateValueMemo(timeZone, serializedMaxValue); + const deserializedPlaceholderValue = useDateValueMemo( + timeZone, + serializedPlaceholderValue + ); + // TODO (issue #698) currently unavailableValues is commented out in Python + // The problem is that the dates need to match down to the second (or millisecond) + // using this approach. We should restrict them to LocalDate then convert + // the input to this function to a CalendarDate to check for availability. + const unavailableSet = useMemo(() => { + if (unavailableValues == null) { + return new Set(); + } + const set = new Set(); + unavailableValues.forEach(value => { + const valueForTZ = parseDateValue(timeZone, value)?.toString(); + if (valueForTZ != null) { + set.add(valueForTZ); + } + }); + return set; + }, [unavailableValues, timeZone]); + const isDateUnavailable = useIsDateUnavailableCallback(unavailableSet); + + return { + onFocus: serializedOnFocus, + onBlur: serializedOnBlur, + onKeyDown: serializedOnKeyDown, + onKeyUp: serializedOnKeyUp, + onChange: serializedOnChange == null ? undefined : onChange, + value: deserializedValue, + defaultValue: deserializedDefaultValue, + minValue: deserializedMinValue, + maxValue: deserializedMaxValue, + placeholderValue: deserializedPlaceholderValue, + isDateUnavailable, + granularity: upperCaseGranularity?.toLowerCase() as Granularity, + ...otherProps, + }; +} diff --git a/plugins/ui/src/js/src/elements/index.ts b/plugins/ui/src/js/src/elements/index.ts index d33e06393..d3f8aa3bd 100644 --- a/plugins/ui/src/js/src/elements/index.ts +++ b/plugins/ui/src/js/src/elements/index.ts @@ -2,6 +2,7 @@ export * from './ActionButton'; export * from './ActionGroup'; export * from './Button'; export * from './ComboBox'; +export * from './DatePicker'; export * from './Form'; export * from './hooks'; export * from './HTMLElementView'; diff --git a/plugins/ui/src/js/src/elements/model/ElementConstants.ts b/plugins/ui/src/js/src/elements/model/ElementConstants.ts index 1b74e80c5..9dbfc6c6a 100644 --- a/plugins/ui/src/js/src/elements/model/ElementConstants.ts +++ b/plugins/ui/src/js/src/elements/model/ElementConstants.ts @@ -32,6 +32,7 @@ export const ELEMENT_NAME = { comboBox: uiComponentName('ComboBox'), content: uiComponentName('Content'), contextualHelp: uiComponentName('ContextualHelp'), + datePicker: uiComponentName('DatePicker'), flex: uiComponentName('Flex'), form: uiComponentName('Form'), fragment: uiComponentName('Fragment'), diff --git a/plugins/ui/src/js/src/widget/WidgetUtils.tsx b/plugins/ui/src/js/src/widget/WidgetUtils.tsx index 7b6a5ed98..6673cae95 100644 --- a/plugins/ui/src/js/src/widget/WidgetUtils.tsx +++ b/plugins/ui/src/js/src/widget/WidgetUtils.tsx @@ -51,6 +51,7 @@ import { ActionGroup, Button, ComboBox, + DatePicker, Form, IllustratedMessage, Image, @@ -103,6 +104,7 @@ export const elementComponentMap = { [ELEMENT_NAME.comboBox]: ComboBox, [ELEMENT_NAME.content]: Content, [ELEMENT_NAME.contextualHelp]: ContextualHelp, + [ELEMENT_NAME.datePicker]: DatePicker, [ELEMENT_NAME.flex]: Flex, [ELEMENT_NAME.form]: Form, [ELEMENT_NAME.fragment]: React.Fragment, diff --git a/plugins/ui/test/__init__.py b/plugins/ui/test/__init__.py index e69de29bb..8718e3915 100644 --- a/plugins/ui/test/__init__.py +++ b/plugins/ui/test/__init__.py @@ -0,0 +1,10 @@ +from deephaven_server.server import Server + +# Create a Server instance to initialize the JVM +# Otherwise we get errors whenever we try to import anything or run tests +# We don't even need to start the server, just create an instance. +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/embedded-server/deephaven_server/server.py#L152 +# Whenever you import anything from the deephaven namespace, it will check if the JVM is ready: +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/server/deephaven/__init__.py#L15 +if Server.instance is None: + Server(port=11000, jvm_args=["-Xmx4g"]) diff --git a/plugins/ui/test/deephaven/ui/BaseTest.py b/plugins/ui/test/deephaven/ui/BaseTest.py index 81a9a3bb1..67c6e0763 100644 --- a/plugins/ui/test/deephaven/ui/BaseTest.py +++ b/plugins/ui/test/deephaven/ui/BaseTest.py @@ -1,19 +1,19 @@ import unittest from unittest.mock import patch - -from deephaven_server import Server +from deephaven_server.server import Server class BaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - try: - # Use port 11000 so it doesn't conflict with another server - cls.s = Server(port=11000, jvm_args=["-Xmx4g"]) - cls.s.start() - except Exception as e: - # server is already running - pass + # try: + # if Server.instance is None: + # # Use port 11000 so it doesn't conflict with another server + # s = Server(port=11000, jvm_args=["-Xmx4g"]) + # s.start() + # except Exception as e: + # # server is already running + # pass # these mocks need to be setup after the deephaven server is # initialized because they access the deephaven namespace diff --git a/plugins/ui/test/deephaven/ui/hooks/__init__.py b/plugins/ui/test/deephaven/ui/hooks/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/ui/test/deephaven/ui/hooks/render_utils.py b/plugins/ui/test/deephaven/ui/hooks/render_utils.py new file mode 100644 index 000000000..24e7a56d9 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/render_utils.py @@ -0,0 +1,61 @@ +from __future__ import annotations +from queue import Queue +from typing import Any, Callable, TypedDict, Union + + +class RenderHookResult(TypedDict): + context: object + result: Any + rerender: Callable[..., Any] + unmount: Callable[[], None] + + +def render_hook( + fn: Callable[..., Any], + *args: Any, + queue: Union[Queue[Any], None] = None, + **kwargs: Any, +) -> RenderHookResult: + """ + Render a hook function and return the context, result, and a rerender function for updating it + + Args: + fn: + The function to render. Pass in a function with a hook call within it. + Re-render will call the same function but with the new args passed in. + args: + Any extra positional arguments to pass to the function. + queue: + The queue to put items on. If not provided, a new queue will be created. + kwargs: + Any extra keyword arguments to pass to the function. + """ + from deephaven.ui._internal.RenderContext import RenderContext + + if queue is None: + queue = Queue() + + context = RenderContext(lambda x: queue.put(x), lambda x: queue.put(x)) + + def _rerender(*args: Any, **kwargs: Any) -> Any: + while not queue.empty(): + item = queue.get() + item() + with context.open(): + new_result = fn(*args, **kwargs) + return_dict["result"] = new_result + return new_result + + def _unmount() -> None: + context.unmount() + + return_dict: RenderHookResult = { + "context": context, + "result": None, + "rerender": _rerender, + "unmount": _unmount, + } + + _rerender(*args, **kwargs) + + return return_dict diff --git a/plugins/ui/test/deephaven/ui/hooks/test_effect.py b/plugins/ui/test/deephaven/ui/hooks/test_effect.py new file mode 100644 index 000000000..d0e70d8bb --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_effect.py @@ -0,0 +1,190 @@ +from __future__ import annotations +import itertools +from typing import Any, Callable, Union +from unittest.mock import Mock +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseEffectTestCase(BaseTestCase): + def reset_mocks(self): + self.called_funcs.clear() + self.render_start.reset_mock() + self.render_end.reset_mock() + self.cleanup.reset_mock() + self.effect.reset_mock() + + def make_effect( + self, name: str = "effect", cleanup: Union[Callable[[], None], None] = None + ): + if cleanup is None: + cleanup = self.cleanup + + def effect(): + self.called_funcs.append(name) + return cleanup + + return Mock(side_effect=effect) + + def setUp(self) -> None: + # Used to make sure functions are called in the correct order + self.called_funcs: list[str] = [] + + self.render_start = Mock( + side_effect=lambda: self.called_funcs.append("render_start") + ) + self.render_end = Mock( + side_effect=lambda: self.called_funcs.append("render_end") + ) + self.cleanup = Mock(side_effect=lambda: self.called_funcs.append("cleanup")) + self.effect = self.make_effect() + + return super().setUp() + + def _test_use_effect( + self, + effect: Union[Callable[[], Callable[[], None]], None] = None, + dependencies: Any = None, + ): + if effect is None: + effect = self.effect + + from deephaven.ui.hooks import use_effect + + self.render_start() + use_effect(effect, dependencies) + self.render_end() + + def test_no_dependencies(self) -> None: + """ + Test the use_effect hook with no dependencies. + Should call the effect each time after the render, and the previous cleanup before that + """ + result = render_hook(self._test_use_effect) + self.assertEqual(result["result"], None) + self.assertEqual(self.effect.call_count, 1) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end", "effect"]) + + self.reset_mocks() + + cleanup2 = Mock(side_effect=lambda: self.called_funcs.append("cleanup2")) + effect2 = self.make_effect("effect2", cleanup2) + + # Re-render with no dependencies still + rerender_result = result["rerender"](effect=effect2) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(effect2.call_count, 1) + # Make sure the old cleanup was called before the new effect + self.assertEqual(self.cleanup.call_count, 1) + self.assertEqual(cleanup2.call_count, 0) + self.assertEqual( + self.called_funcs, ["render_start", "render_end", "cleanup", "effect2"] + ) + + self.reset_mocks() + cleanup2.reset_mock() + effect2.reset_mock() + + # Now unmount + result["unmount"]() + self.assertEqual(self.render_start.call_count, 0) + self.assertEqual(self.render_end.call_count, 0) + self.assertEqual(effect2.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(cleanup2.call_count, 1) + self.assertEqual(self.called_funcs, ["cleanup2"]) + + def test_empty_dependencies(self) -> None: + """ + Test the use_effect hook with empty dependencies. + It should call the effect once on mount, and cleanup once on unmount. + """ + result = render_hook(self._test_use_effect, dependencies=[]) + self.assertEqual(result["result"], None) + self.assertEqual(self.effect.call_count, 1) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end", "effect"]) + + self.reset_mocks() + + # Re-render with empty dependencies. Should not call the effect again + rerender_result = result["rerender"](dependencies=[]) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end"]) + + self.reset_mocks() + + # Now unmount + result["unmount"]() + self.assertEqual(self.render_start.call_count, 0) + self.assertEqual(self.render_end.call_count, 0) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(self.cleanup.call_count, 1) + self.assertEqual(self.called_funcs, ["cleanup"]) + + def test_dependencies(self) -> None: + """ + Test the use_effect hook with dependencies. + It should call the effect only when the dependencies are changed, and when the component mounts. + It should call the previous cleanup when dependencies are changed, and when the component unmounts. + """ + self.reset_mocks() + + result = render_hook(self._test_use_effect, dependencies=[1]) + self.assertEqual(result["result"], None) + self.assertEqual(self.effect.call_count, 1) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end", "effect"]) + + self.reset_mocks() + + # Re-render with the same dependencies. Should not call the effect again + rerender_result = result["rerender"](dependencies=[1]) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end"]) + + self.reset_mocks() + cleanup2 = Mock(side_effect=lambda: self.called_funcs.append("cleanup2")) + effect2 = self.make_effect("effect2", cleanup2) + + # Re-render with different dependencies. Should call the effect again, and cleanup the old effect + rerender_result = result["rerender"](effect=effect2, dependencies=[2]) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(effect2.call_count, 1) + self.assertEqual(self.cleanup.call_count, 1) + self.assertEqual(cleanup2.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual( + self.called_funcs, ["render_start", "render_end", "cleanup", "effect2"] + ) + + self.reset_mocks() + cleanup2.reset_mock() + effect2.reset_mock() + + # Now unmount + result["unmount"]() + self.assertEqual(self.render_start.call_count, 0) + self.assertEqual(self.render_end.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(effect2.call_count, 0) + self.assertEqual(cleanup2.call_count, 1) + self.assertEqual(self.called_funcs, ["cleanup2"]) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_execution_context.py b/plugins/ui/test/deephaven/ui/hooks/test_execution_context.py new file mode 100644 index 000000000..d04fd5c3d --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_execution_context.py @@ -0,0 +1,51 @@ +import threading +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseExecutionContextTestCase(BaseTestCase): + def test_execution_context(self): + from deephaven.ui.hooks import use_execution_context, use_state, use_memo + from deephaven import empty_table + + def _test_execution_context(): + with_exec_ctx = use_execution_context() + + def table_func(): + # This would fail if not using an execution context + empty_table(0).update("X=1") + + def thread_func(): + with_exec_ctx(table_func) + + def start_thread(): + thread = threading.Thread(target=thread_func) + thread.start() + thread.join() + + use_memo(start_thread, []) + + render_hook(_test_execution_context) + + def test_execution_context_custom(self): + from deephaven.ui.hooks import use_execution_context, use_memo + from deephaven import empty_table + from deephaven.execution_context import make_user_exec_ctx + + def _test_execution_context(): + with_exec_ctx = use_execution_context(make_user_exec_ctx()) + + def table_func(): + # This would fail if not using an execution context + empty_table(0).update("X=1") + + def thread_func(): + with_exec_ctx(table_func) + + def start_thread(): + thread = threading.Thread(target=thread_func) + thread.start() + + use_memo(start_thread, []) + + render_hook(_test_execution_context) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_liveness.py b/plugins/ui/test/deephaven/ui/hooks/test_liveness.py new file mode 100644 index 000000000..83ab3cc70 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_liveness.py @@ -0,0 +1,129 @@ +from typing import Callable +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseLivenessTestCase(BaseTestCase): + def test_liveness_use_state_interactions(self): + from deephaven.ui.hooks import use_state, use_liveness_scope + from deephaven import new_table, dtypes as dht + from deephaven.table import Table + from deephaven.column import int_col + from deephaven.stream import blink_to_append_only + from deephaven.stream.table_publisher import table_publisher + from deephaven.update_graph import exclusive_lock + from deephaven.liveness_scope import liveness_scope + + # create a table publisher to mutate data outside the component + cols = {"X": dht.int32} + table, publisher = table_publisher(name="test table", col_defs=cols) + table = blink_to_append_only(table).update("Timestamp=now()") + + # tracking for use_state setters to mutate component state, to let us lock and confirm + replace_a: Callable = lambda: None + a: Table = None + + def _test_reused_tables(): + """ + Doesn't re-render size + """ + nonlocal a, replace_a + a, set_a = use_state(lambda: table.where("X=1")) + + # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness + replace_a = use_liveness_scope(lambda: set_a(table.where("X=2")), []) + + return a.size + + # initial render, verify value is zero + rendered = render_hook(_test_reused_tables) + self.assertEqual(0, rendered["result"]) + + # render again, so that we drop the old liveness scope + result = rendered["rerender"]() + self.assertEqual(0, result) + + # append a row while we have the same table + publisher.add(new_table(cols=[int_col("X", [1])])) + # wait for the row to appear + with exclusive_lock(a): + table.await_update(2_000) + + # assert count correctly increased + result = rendered["rerender"]() + self.assertEqual(1, result) + + # replace the table with a new instance that must now be retained instead, back to zero + with liveness_scope(): + replace_a() + result = rendered["rerender"]() + self.assertEqual(0, result) + + # add a row to that new table, ensure we see it + publisher.add(new_table(cols=[int_col("X", [2])])) + # wait for the row to appear + with exclusive_lock(a): + table.await_update(2_000) + + # assert count correctly increased + result = rendered["rerender"]() + self.assertEqual(1, result) + + def test_liveness_use_memo_interactions(self): + from deephaven.ui.hooks import use_memo, use_state + from deephaven import new_table, dtypes as dht + from deephaven.column import int_col + from deephaven.stream.table_publisher import table_publisher + from deephaven.update_graph import exclusive_lock + from deephaven.time import dh_now + from deephaven.liveness_scope import liveness_scope + + # create a table publisher to mutate data outside the component + cols = {"X": dht.int32} + table, publisher = table_publisher(name="test table", col_defs=cols) + table = table.update("Timestamp=now()").with_attributes({"BlinkTable": True}) + + # tracking for use_state setters to mutate component state, to let us lock and confirm + set_a: Callable = lambda v: None + local_rows = None + + def _test_reused_tables(): + """ + Doesn't re-render size + """ + nonlocal set_a + a, set_a = use_state(0) + # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness + nonlocal local_rows + + def helper(): + now = dh_now() + return table.where("Timestamp > now").last_by(by=["X"]) + + local_rows = use_memo(helper, [a]) + + return local_rows.size + + # initial render, verify value is zero + rendered = render_hook(_test_reused_tables) + self.assertEqual(0, rendered["result"]) + + # render again, so that we drop the old liveness scope + result = rendered["rerender"]() + self.assertEqual(0, result) + + # append a row, "a" stayed the same + publisher.add(new_table(cols=[int_col("X", [1])])) + # wait for the row to appear + with exclusive_lock(local_rows): + table.await_update(2_000) + + # assert count correctly increased + result = rendered["rerender"]() + self.assertEqual(1, result) + + # poke "a", verify the memoized table was replaced, no more rows + with liveness_scope(): + set_a(1) + result = rendered["rerender"]() + self.assertEqual(0, result) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_memo.py b/plugins/ui/test/deephaven/ui/hooks/test_memo.py new file mode 100644 index 000000000..1882a2e7f --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_memo.py @@ -0,0 +1,71 @@ +from ..BaseTest import BaseTestCase +from .render_utils import render_hook +from operator import itemgetter +from typing import Any, Callable +from unittest.mock import Mock + + +class UseMemoTestCase(BaseTestCase): + def test_ref(self): + from deephaven.ui.hooks import use_ref + + def _test_ref(value: Any = None): + ref = use_ref(value) + return ref + + # Initial render doesn't set anything + render_result = render_hook(_test_ref) + result, rerender = itemgetter("result", "rerender")(render_result) + self.assertEqual(result.current, None) + + # Doesn't update the value on second call to use_ref + result = rerender(1) + self.assertEqual(result.current, None) + + # Set the current value, and it should be returned + result.current = 2 + result = rerender(3) + self.assertEqual(result.current, 2) + + def test_memo(self): + from deephaven.ui.hooks import use_memo + + def _test_memo(fn: Callable[[], Any] = lambda: "foo", a: Any = 1, b: Any = 2): + return use_memo(fn, [a, b]) + + # Initial render + render_result = render_hook(_test_memo) + result, rerender = itemgetter("result", "rerender")(render_result) + self.assertEqual(result, "foo") + + # Rerender with new function but same deps + # Should not re-run the function + mock = Mock(return_value="bar") + result = rerender(mock) + self.assertEqual(result, "foo") + self.assertEqual(mock.call_count, 0) + + # Rerender with new deps + # Should re-run the function + result = rerender(mock, 3, 4) + self.assertEqual(result, "bar") + self.assertEqual(mock.call_count, 1) + + # Rerender with the same new deps + # Should not re-run the function + result = rerender(mock, 3, 4) + self.assertEqual(result, "bar") + self.assertEqual(mock.call_count, 1) + + # Rerender with new deps and new function + mock = Mock(return_value="biz") + result = rerender(mock, b=4) + self.assertEqual(result, "biz") + self.assertEqual(mock.call_count, 1) + + def _test_memo_set(fn: Callable[[], Any] = lambda: "foo"): + # passing in a set for dependencies should raise a TypeError + return use_memo(fn, {}) # type: ignore + + # passing in a non-list/tuple for dependencies should raise a TypeError + self.assertRaises(TypeError, render_hook, _test_memo_set) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_ref.py b/plugins/ui/test/deephaven/ui/hooks/test_ref.py new file mode 100644 index 000000000..b816107f8 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_ref.py @@ -0,0 +1,27 @@ +from ..BaseTest import BaseTestCase +from .render_utils import render_hook +from operator import itemgetter +from typing import Any + + +class UseRefTestCase(BaseTestCase): + def test_ref(self): + from deephaven.ui.hooks import use_ref + + def _test_ref(value: Any = None): + ref = use_ref(value) + return ref + + # Initial render doesn't set anything + render_result = render_hook(_test_ref) + result, rerender = itemgetter("result", "rerender")(render_result) + self.assertEqual(result.current, None) + + # Doesn't update the value on second call to use_ref + result = rerender(1) + self.assertEqual(result.current, None) + + # Set the current value, and it should be returned + result.current = 2 + result = rerender(3) + self.assertEqual(result.current, 2) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_state.py b/plugins/ui/test/deephaven/ui/hooks/test_state.py new file mode 100644 index 000000000..c39121984 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_state.py @@ -0,0 +1,45 @@ +from operator import itemgetter +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseStateTestCase(BaseTestCase): + def test_state(self): + from deephaven.ui.hooks import use_state + + def _test_state(value1: int = 1, value2: int = 2): + value1, set_value1 = use_state(value1) + value2, set_value2 = use_state(value2) + return value1, set_value1, value2, set_value2 + + # Initial render + render_result = render_hook(_test_state) + + result, rerender = itemgetter("result", "rerender")(render_result) + val1, set_val1, val2, set_val2 = result + + self.assertEqual(val1, 1) + self.assertEqual(val2, 2) + + # Rerender with new values, but should retain existing state + rerender(value1=3, value2=4) + result = itemgetter("result")(render_result) + val1, set_val1, val2, set_val2 = result + self.assertEqual(val1, 1) + self.assertEqual(val2, 2) + + # Set to a new value + set_val1(3) + rerender() + result = itemgetter("result")(render_result) + val1, set_val1, val2, set_val2 = result + self.assertEqual(val1, 3) + self.assertEqual(val2, 2) + + # Set other state to a new value + set_val2(4) + rerender() + result = itemgetter("result")(render_result) + val1, set_val1, val2, set_val2 = result + self.assertEqual(val1, 3) + self.assertEqual(val2, 4) diff --git a/plugins/ui/test/deephaven/ui/test_hooks.py b/plugins/ui/test/deephaven/ui/hooks/test_table.py similarity index 62% rename from plugins/ui/test/deephaven/ui/test_hooks.py rename to plugins/ui/test/deephaven/ui/hooks/test_table.py index cbc3a327c..dc09aa643 100644 --- a/plugins/ui/test/deephaven/ui/test_hooks.py +++ b/plugins/ui/test/deephaven/ui/hooks/test_table.py @@ -1,52 +1,15 @@ -import threading -import unittest +from __future__ import annotations from operator import itemgetter +import threading from queue import Queue -from time import sleep -from typing import Callable -from unittest.mock import Mock -from .BaseTest import BaseTestCase +from typing import Any, Callable, Union +from ..BaseTest import BaseTestCase +from .render_utils import render_hook LISTENER_TIMEOUT = 2.0 QUEUE_TIMEOUT = 1.0 -def render_hook(fn: Callable, queue=None): - """ - Render a hook function and return the context, result, and a rerender function for updating it - - Args: - fn: Callable: - The function to render. Pass in a function with a hook call within it. - Re-render will call the same function but with the new args passed in. - queue: Queue: - The queue to put items on. If not provided, a new queue will be created. - """ - from deephaven.ui._internal.RenderContext import RenderContext - - if queue is None: - queue = Queue() - - context = RenderContext(lambda x: queue.put(x), lambda x: queue.put(x)) - - return_dict = {"context": context, "result": None, "rerender": None} - - def _rerender(*args, **kwargs): - while not queue.empty(): - item = queue.get() - item() - with context.open(): - new_result = fn(*args, **kwargs) - return_dict["result"] = new_result - return new_result - - return_dict["rerender"] = _rerender - - _rerender() - - return return_dict - - class NotifyQueue(Queue): """ A queue that notifies a function when an item is put on it @@ -56,7 +19,9 @@ def __init__(self): super().__init__() self._notify_fn = None - def put(self, item: object, block: bool = True, timeout: float = None) -> None: + def put( + self, item: object, block: bool = True, timeout: Union[float, None] = None + ) -> None: """ Put an item on the queue and notify the function @@ -88,110 +53,7 @@ def unregister_notify(self) -> None: self._notify_fn = None -class HooksTest(BaseTestCase): - def test_state(self): - from deephaven.ui.hooks import use_state - - def _test_state(value1=1, value2=2): - value1, set_value1 = use_state(value1) - value2, set_value2 = use_state(value2) - return value1, set_value1, value2, set_value2 - - # Initial render - render_result = render_hook(_test_state) - - result, rerender = itemgetter("result", "rerender")(render_result) - val1, set_val1, val2, set_val2 = result - - self.assertEqual(val1, 1) - self.assertEqual(val2, 2) - - # Rerender with new values, but should retain existing state - rerender(value1=3, value2=4) - result = itemgetter("result")(render_result) - val1, set_val1, val2, set_val2 = result - self.assertEqual(val1, 1) - self.assertEqual(val2, 2) - - # Set to a new value - set_val1(3) - rerender() - result = itemgetter("result")(render_result) - val1, set_val1, val2, set_val2 = result - self.assertEqual(val1, 3) - self.assertEqual(val2, 2) - - # Set other state to a new value - set_val2(4) - rerender() - result = itemgetter("result")(render_result) - val1, set_val1, val2, set_val2 = result - self.assertEqual(val1, 3) - self.assertEqual(val2, 4) - - def test_ref(self): - from deephaven.ui.hooks import use_ref - - def _test_ref(value=None): - ref = use_ref(value) - return ref - - # Initial render doesn't set anything - render_result = render_hook(_test_ref) - result, rerender = itemgetter("result", "rerender")(render_result) - self.assertEqual(result.current, None) - - # Doesn't update the value on second call to use_ref - result = rerender(1) - self.assertEqual(result.current, None) - - # Set the current value, and it should be returned - result.current = 2 - result = rerender(3) - self.assertEqual(result.current, 2) - - def test_memo(self): - from deephaven.ui.hooks import use_memo - - def _test_memo(fn=lambda: "foo", a=1, b=2): - return use_memo(fn, [a, b]) - - # Initial render - render_result = render_hook(_test_memo) - result, rerender = itemgetter("result", "rerender")(render_result) - self.assertEqual(result, "foo") - - # Rerender with new function but same deps - # Should not re-run the function - mock = Mock(return_value="bar") - result = rerender(mock) - self.assertEqual(result, "foo") - self.assertEqual(mock.call_count, 0) - - # Rerender with new deps - # Should re-run the function - result = rerender(mock, 3, 4) - self.assertEqual(result, "bar") - self.assertEqual(mock.call_count, 1) - - # Rerender with the same new deps - # Should not re-run the function - result = rerender(mock, 3, 4) - self.assertEqual(result, "bar") - self.assertEqual(mock.call_count, 1) - - # Rerender with new deps and new function - mock = Mock(return_value="biz") - result = rerender(mock, b=4) - self.assertEqual(result, "biz") - self.assertEqual(mock.call_count, 1) - - def _test_memo_set(fn=lambda: "foo"): - return use_memo(fn, {}) - - # passing in a non-list/tuple for dependencies should raise a TypeError - self.assertRaises(TypeError, render_hook, _test_memo_set) - +class UseTableTestCase(BaseTestCase): def verify_table_updated(self, table_writer, table, update): from deephaven.ui.hooks import use_table_listener from deephaven.table_listener import TableUpdate @@ -369,7 +231,7 @@ def _test_table_data(t=table): queue = NotifyQueue() - render_result = render_hook(_test_table_data, queue) + render_result = render_hook(_test_table_data, queue=queue) result, rerender = itemgetter("result", "rerender")(render_result) @@ -754,177 +616,3 @@ def _test_cell_data(t=None): result, rerender = itemgetter("result", "rerender")(render_result) self.assertEqual(result, None) - - def test_execution_context(self): - from deephaven.ui.hooks import use_execution_context, use_state, use_memo - from deephaven import empty_table - - def _test_execution_context(): - with_exec_ctx = use_execution_context() - - def table_func(): - # This would fail if not using an execution context - empty_table(0).update("X=1") - - def thread_func(): - with_exec_ctx(table_func) - - def start_thread(): - thread = threading.Thread(target=thread_func) - thread.start() - thread.join() - - use_memo(start_thread, []) - - render_hook(_test_execution_context) - - def test_execution_context_custom(self): - from deephaven.ui.hooks import use_execution_context, use_memo - from deephaven import empty_table - from deephaven.execution_context import make_user_exec_ctx - - def _test_execution_context(): - with_exec_ctx = use_execution_context(make_user_exec_ctx()) - - def table_func(): - # This would fail if not using an execution context - empty_table(0).update("X=1") - - def thread_func(): - with_exec_ctx(table_func) - - def start_thread(): - thread = threading.Thread(target=thread_func) - thread.start() - - use_memo(start_thread, []) - - render_hook(_test_execution_context) - - def test_liveness_use_state_interactions(self): - from deephaven.ui.hooks import use_state, use_liveness_scope - from deephaven import new_table, dtypes as dht - from deephaven.table import Table - from deephaven.column import int_col - from deephaven.stream import blink_to_append_only - from deephaven.stream.table_publisher import table_publisher - from deephaven.update_graph import exclusive_lock - from deephaven.liveness_scope import liveness_scope - - # create a table publisher to mutate data outside the component - cols = {"X": dht.int32} - table, publisher = table_publisher(name="test table", col_defs=cols) - table = blink_to_append_only(table).update("Timestamp=now()") - - # tracking for use_state setters to mutate component state, to let us lock and confirm - replace_a: Callable = lambda: None - a: Table = None - - def _test_reused_tables(): - """ - Doesn't re-render size - """ - nonlocal a, replace_a - a, set_a = use_state(lambda: table.where("X=1")) - - # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness - replace_a = use_liveness_scope(lambda: set_a(table.where("X=2")), []) - - return a.size - - # initial render, verify value is zero - rendered = render_hook(_test_reused_tables) - self.assertEqual(0, rendered["result"]) - - # render again, so that we drop the old liveness scope - result = rendered["rerender"]() - self.assertEqual(0, result) - - # append a row while we have the same table - publisher.add(new_table(cols=[int_col("X", [1])])) - # wait for the row to appear - with exclusive_lock(a): - table.await_update(2_000) - - # assert count correctly increased - result = rendered["rerender"]() - self.assertEqual(1, result) - - # replace the table with a new instance that must now be retained instead, back to zero - with liveness_scope(): - replace_a() - result = rendered["rerender"]() - self.assertEqual(0, result) - - # add a row to that new table, ensure we see it - publisher.add(new_table(cols=[int_col("X", [2])])) - # wait for the row to appear - with exclusive_lock(a): - table.await_update(2_000) - - # assert count correctly increased - result = rendered["rerender"]() - self.assertEqual(1, result) - - def test_liveness_use_memo_interactions(self): - from deephaven.ui.hooks import use_memo, use_state - from deephaven import new_table, dtypes as dht - from deephaven.column import int_col - from deephaven.stream.table_publisher import table_publisher - from deephaven.update_graph import exclusive_lock - from deephaven.time import dh_now - from deephaven.liveness_scope import liveness_scope - - # create a table publisher to mutate data outside the component - cols = {"X": dht.int32} - table, publisher = table_publisher(name="test table", col_defs=cols) - table = table.update("Timestamp=now()").with_attributes({"BlinkTable": True}) - - # tracking for use_state setters to mutate component state, to let us lock and confirm - set_a: Callable = lambda v: None - local_rows = None - - def _test_reused_tables(): - """ - Doesn't re-render size - """ - nonlocal set_a - a, set_a = use_state(0) - # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness - nonlocal local_rows - - def helper(): - now = dh_now() - return table.where("Timestamp > now").last_by(by=["X"]) - - local_rows = use_memo(helper, [a]) - - return local_rows.size - - # initial render, verify value is zero - rendered = render_hook(_test_reused_tables) - self.assertEqual(0, rendered["result"]) - - # render again, so that we drop the old liveness scope - result = rendered["rerender"]() - self.assertEqual(0, result) - - # append a row, "a" stayed the same - publisher.add(new_table(cols=[int_col("X", [1])])) - # wait for the row to appear - with exclusive_lock(local_rows): - table.await_update(2_000) - - # assert count correctly increased - result = rendered["rerender"]() - self.assertEqual(1, result) - - # poke "a", verify the memoized table was replaced, no more rows - with liveness_scope(): - set_a(1) - result = rendered["rerender"]() - self.assertEqual(0, result) - - -if __name__ == "__main__": - unittest.main() diff --git a/plugins/ui/test/deephaven/ui/test_date_picker.py b/plugins/ui/test/deephaven/ui/test_date_picker.py index d7a2d9624..34bf84a11 100644 --- a/plugins/ui/test/deephaven/ui/test_date_picker.py +++ b/plugins/ui/test/deephaven/ui/test_date_picker.py @@ -7,16 +7,27 @@ class DatePickerTest(BaseTestCase): def test_convert_date_props(self): from deephaven.time import to_j_instant, to_j_zdt, to_j_local_date from deephaven.ui.components.date_picker import _convert_date_picker_props - from deephaven.ui._internal.utils import get_jclass_name, convert_list_prop + from deephaven.ui._internal.utils import ( + get_jclass_name, + convert_list_prop, + _convert_to_java_date, + ) - def verify_is_local_date(date): - self.assertEqual(get_jclass_name(date), "java.time.LocalDate") + def verify_is_local_date(dateStr): + self.assertEqual( + get_jclass_name(_convert_to_java_date(dateStr)), "java.time.LocalDate" + ) - def verify_is_instant(date): - self.assertEqual(get_jclass_name(date), "java.time.Instant") + def verify_is_instant(dateStr): + self.assertEqual( + get_jclass_name(_convert_to_java_date(dateStr)), "java.time.Instant" + ) - def verify_is_zdt(date): - self.assertEqual(get_jclass_name(date), "java.time.ZonedDateTime") + def verify_is_zdt(dateStr): + self.assertEqual( + get_jclass_name(_convert_to_java_date(dateStr)), + "java.time.ZonedDateTime", + ) def empty_on_change(): pass @@ -68,10 +79,10 @@ def empty_on_change(): verify_is_local_date(props1["max_value"]) verify_is_zdt(props1["min_value"]) - verify_is_instant(props1["unavailable_dates"][0]) + verify_is_zdt(props1["unavailable_dates"][0]) verify_is_local_date(props1["unavailable_dates"][1]) - verify_is_instant(props1["value"]) - verify_is_instant(props1["default_value"]) + verify_is_zdt(props1["value"]) + verify_is_zdt(props1["default_value"]) verify_is_local_date(props1["placeholder_value"]) props2["on_change"]("2021-01-01") diff --git a/plugins/ui/test/deephaven/ui/test_render.py b/plugins/ui/test/deephaven/ui/test_render.py index 1992b4e82..0eb559c7d 100644 --- a/plugins/ui/test/deephaven/ui/test_render.py +++ b/plugins/ui/test/deephaven/ui/test_render.py @@ -1,10 +1,16 @@ +from __future__ import annotations +from deephaven.ui._internal.RenderContext import RenderContext, OnChangeCallable +from typing import Dict, Any from unittest.mock import Mock from .BaseTest import BaseTestCase +run_on_change: OnChangeCallable = lambda x: x() + def make_render_context( - on_change=lambda x: x(), on_queue=lambda x: x() -) -> "deephaven.ui._internal.RenderContext": + on_change: OnChangeCallable = run_on_change, + on_queue: OnChangeCallable = run_on_change, +) -> RenderContext: from deephaven.ui._internal.RenderContext import RenderContext return RenderContext(on_change, on_queue) @@ -12,7 +18,7 @@ def make_render_context( class RenderTestCase(BaseTestCase): def test_empty_render(self): - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) self.assertEqual(rc._hook_index, -2) self.assertEqual(rc._state, {}) @@ -20,9 +26,7 @@ def test_empty_render(self): on_change.assert_not_called() def test_hook_index(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) # Set up the hooks used with initial render (3 hooks) @@ -52,9 +56,7 @@ def test_hook_index(self): self.assertEqual(rc.next_hook_index(), 3) def test_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) with rc.open(): @@ -70,14 +72,9 @@ def test_state(self): self.assertEqual(on_change.call_count, 0) def test_context(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) - child_context0 = rc.get_child_context(0) - child_context1 = rc.get_child_context(1) - self.assertEqual(on_change.call_count, 0) with rc.open(): @@ -92,39 +89,42 @@ def test_context(self): self.assertEqual(rc.get_state(0), 1) self.assertEqual(on_change.call_count, 1) - with child_context0.open(): - self.assertEqual(child_context0.has_state(0), False) - self.assertRaises(KeyError, child_context0.get_state, 0) - child_context0.init_state(0, 2) - self.assertEqual(child_context0.has_state(0), True) - self.assertEqual(child_context0.get_state(0), 2) - # The initial setting of the child context state shouldn't trigger a change, so we should still be at 1 - self.assertEqual(on_change.call_count, 1) - child_context0.set_state(0, 20) - self.assertEqual(child_context0.get_state(0), 20) - # Now it should have been triggered after calling it again - self.assertEqual(on_change.call_count, 2) - - with child_context1.open(): - self.assertEqual(child_context1.has_state(0), False) - self.assertRaises(KeyError, child_context1.get_state, 0) - child_context1.init_state(0, 3) - with rc.open(): - # This "assert" on rc is deliberate, making sure that changing another context doesn't affect a parent - self.assertEqual(rc.get_state(0), 1) + child_context0 = rc.get_child_context("0") + child_context1 = rc.get_child_context("1") + + with child_context0.open(): + self.assertEqual(child_context0.has_state(0), False) + self.assertRaises(KeyError, child_context0.get_state, 0) + child_context0.init_state(0, 2) + self.assertEqual(child_context0.has_state(0), True) + self.assertEqual(child_context0.get_state(0), 2) + # The initial setting of the child context state shouldn't trigger a change, so we should still be at 1 + self.assertEqual(on_change.call_count, 1) + child_context0.set_state(0, 20) + self.assertEqual(child_context0.get_state(0), 20) + # Now it should have been triggered after calling it again + self.assertEqual(on_change.call_count, 2) + + with child_context1.open(): + self.assertEqual(child_context1.has_state(0), False) + self.assertRaises(KeyError, child_context1.get_state, 0) + child_context1.init_state(0, 3) + self.assertEqual(child_context1.get_state(0), 3) + # Shouldn't have triggered a change + self.assertEqual(on_change.call_count, 2) + + # Check that changing a child context doesn't affect the parent or sibling + with rc.open(): + # This "assert" on rc is deliberate, making sure that changing another context doesn't affect a parent + self.assertEqual(rc.get_state(0), 1) with child_context0.open(): # This "assert" on child_context0 is deliberate, making sure that changing another context doesn't # affect a sibling self.assertEqual(child_context0.get_state(0), 20) - self.assertEqual(child_context1.get_state(0), 3) - # Shouldn't have triggered a change - self.assertEqual(on_change.call_count, 2) class RenderExportTestCase(BaseTestCase): def test_export_empty_context(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): @@ -134,8 +134,6 @@ def test_export_empty_context(self): self.assertEqual(state, {}) def test_export_basic_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): @@ -147,17 +145,15 @@ def test_export_basic_state(self): self.assertEqual(state, {"state": {0: 1, 1: 2, 2: 3}}) def test_export_nested_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): rc.init_state(0, 1) - child_context0 = rc.get_child_context(0) + child_context0 = rc.get_child_context("0") with child_context0.open(): child_context0.init_state(0, 2) child_context0.init_state(1, 3) - child_context1 = child_context0.get_child_context(0) + child_context1 = child_context0.get_child_context("0") with child_context1.open(): child_context1.init_state(0, 4) child_context1.init_state(1, 5) @@ -168,14 +164,15 @@ def test_export_nested_state(self): { "state": {0: 1}, "children": { - 0: {"state": {0: 2, 1: 3}, "children": {0: {"state": {0: 4, 1: 5}}}} + "0": { + "state": {0: 2, 1: 3}, + "children": {"0": {"state": {0: 4, 1: 5}}}, + } }, }, ) def test_ignore_empty_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): @@ -186,9 +183,9 @@ def test_ignore_empty_state(self): rc.set_state(1, None) rc.set_state(2, None) - child_context0 = rc.get_child_context(0) + child_context0 = rc.get_child_context("0") with child_context0.open(): - child_context1 = child_context0.get_child_context(0) + child_context1 = child_context0.get_child_context("0") with child_context1.open(): child_context1.init_state(0, None) @@ -198,9 +195,7 @@ def test_ignore_empty_state(self): class RenderImportTestCase(BaseTestCase): def test_import_empty_context(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) # Empty context should reset the state if there was one @@ -209,14 +204,12 @@ def test_import_empty_context(self): self.assertEqual(rc.has_state(0), True) self.assertEqual(rc.get_state(0), 2) - state = {} + state: Dict[str, Any] = {} rc.import_state(state) with rc.open(): self.assertEqual(rc.has_state(0), False) def test_import_basic_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() state = {"state": {0: 3}} rc.import_state(state) @@ -225,28 +218,49 @@ def test_import_basic_state(self): self.assertEqual(rc.get_state(0), 3) def test_import_nested_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() state = { "state": {0: 1}, "children": { - 0: {"state": {0: 2, 1: 3}, "children": {0: {"state": {0: 4, 1: 5}}}} + "0": {"state": {0: 2, 1: 3}, "children": {"0": {"state": {0: 4, 1: 5}}}} }, } rc.import_state(state) with rc.open(): self.assertEqual(rc.has_state(0), True) self.assertEqual(rc.get_state(0), 1) - child_context0 = rc.get_child_context(0) + child_context0 = rc.get_child_context("0") with child_context0.open(): self.assertEqual(child_context0.has_state(0), True) self.assertEqual(child_context0.get_state(0), 2) self.assertEqual(child_context0.has_state(1), True) self.assertEqual(child_context0.get_state(1), 3) - child_context1 = child_context0.get_child_context(0) + child_context1 = child_context0.get_child_context("0") with child_context1.open(): self.assertEqual(child_context1.has_state(0), True) self.assertEqual(child_context1.get_state(0), 4) self.assertEqual(child_context1.has_state(1), True) self.assertEqual(child_context1.get_state(1), 5) + + +class RenderUnmountChildrenTestCase(BaseTestCase): + def test_unmount_children(self): + rc = make_render_context() + + with rc.open(): + rc.init_state(0, 1) + child_context0 = rc.get_child_context("0") + with child_context0.open(): + child_context0.init_state(0, 2) + child_context0.init_state(1, 3) + child_context1 = child_context0.get_child_context("0") + with child_context1.open(): + child_context1.init_state(0, 4) + child_context1.init_state(1, 5) + + with rc.open(): + # Children should be unmounted if nothing is rendered while this context is opened + pass + + state = rc.export_state() + self.assertEqual(state, {"state": {0: 1}}) diff --git a/plugins/ui/test/deephaven/ui/test_renderer.py b/plugins/ui/test/deephaven/ui/test_renderer.py new file mode 100644 index 000000000..51f0ed664 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/test_renderer.py @@ -0,0 +1,210 @@ +from __future__ import annotations +from unittest.mock import Mock +from typing import Any, Callable, List, Union +from deephaven.ui.renderer.Renderer import Renderer +from deephaven.ui.renderer.RenderedNode import RenderedNode +from deephaven.ui._internal.RenderContext import RenderContext, OnChangeCallable +from deephaven import ui +from .BaseTest import BaseTestCase + +run_on_change: OnChangeCallable = lambda x: x() + + +class RendererTestCase(BaseTestCase): + def test_render_children(self): + def find_node(root: RenderedNode, name: str) -> RenderedNode: + """ + Recursively find a node by name given the root node + Looks at the name of the node, then all of it's children to find the node + """ + if root.name == name: + return root + children: Union[Any, List[Any]] = ( + root.props.get("children", []) if root.props != None else [] + ) + children = [children] if not isinstance(children, List) else children + + for child in children: + try: + if isinstance(child, RenderedNode): + result = find_node(child, name) + return result + except ValueError: + pass + raise ValueError(f"Could not find node with name {name}") + + def find_toggle_button(root: RenderedNode) -> RenderedNode: + return find_node(root, "deephaven.ui.components.ToggleButton") + + def find_action_button(root: RenderedNode) -> RenderedNode: + return find_node(root, "deephaven.ui.components.ActionButton") + + on_change: Callable[[Callable[[], None]], None] = Mock( + side_effect=run_on_change + ) + on_queue: Callable[[Callable[[], None]], None] = Mock(side_effect=run_on_change) + + called_funcs: List[str] = [] + + def make_effect(name: str): + def cleanup(): + called_funcs.append((f"{name}_cleanup")) + + def effect(): + called_funcs.append((f"{name}_effect")) + return cleanup + + return effect + + @ui.component + def ui_counter(): + count, set_count = ui.use_state(0) + + ui.use_effect(make_effect("counter_no_deps")) + ui.use_effect(make_effect("counter_empty_deps"), []) + ui.use_effect(make_effect("counter_with_deps"), [count]) + + return ui.action_button( + f"Count is {count}", on_press=lambda _: set_count(count + 1) + ) + + @ui.component + def ui_parent(): + is_shown, set_is_shown = ui.use_state(True) + + ui.use_effect(make_effect("parent_no_deps")) + ui.use_effect(make_effect("parent_empty_deps"), []) + ui.use_effect(make_effect("parent_with_deps"), [is_shown]) + + return [ + ui.toggle_button( + "Show counter", is_selected=is_shown, on_change=set_is_shown + ), + ui_counter() if is_shown else None, + ] + + rc = RenderContext(on_change, on_queue) + + renderer = Renderer(rc) + + result = renderer.render(ui_parent()) + + # Check that the rendered tree is correct + assert result.props != None + self.assertEqual(len(result.props["children"]), 2) + toggle_btn = find_toggle_button(result) + assert toggle_btn.props != None + self.assertEqual(toggle_btn.props["isSelected"], True) + + count_btn = find_action_button(result) + assert count_btn.props != None + self.assertEqual(count_btn.props["children"], "Count is 0") + + # Check that effects were called in the correct order + self.assertEqual( + called_funcs, + [ + "counter_no_deps_effect", + "counter_empty_deps_effect", + "counter_with_deps_effect", + "parent_no_deps_effect", + "parent_empty_deps_effect", + "parent_with_deps_effect", + ], + ) + called_funcs.clear() + + # Press the counter button + count_btn.props["onPress"](None) + + # Re-render + result = renderer.render(ui_parent()) + + # Check that the rendered tree is correct + assert result.props != None + self.assertEqual(len(result.props["children"]), 2) + count_btn = find_action_button(result) + assert count_btn.props != None + self.assertEqual(count_btn.props["children"], "Count is 1") + + # Only the counter with deps effect and no deps effects should have been called + self.assertEqual( + called_funcs, + [ + "counter_no_deps_cleanup", + "counter_with_deps_cleanup", + "counter_no_deps_effect", + "counter_with_deps_effect", + "parent_no_deps_cleanup", + "parent_no_deps_effect", + ], + ) + called_funcs.clear() + + # Toggle the visibility of the child component + toggle_btn = find_toggle_button(result) + assert toggle_btn.props != None + toggle_btn.props["onChange"](False) + + # Re-render + result = renderer.render(ui_parent()) + + # Counter button should no longer be in the tree + self.assertRaises(ValueError, lambda: find_action_button(result)) + + # Cleanup effects on counter should have been called, and parents no dep and with deps effect should be called + self.assertEqual( + called_funcs, + [ + "counter_no_deps_cleanup", + "counter_empty_deps_cleanup", + "counter_with_deps_cleanup", + "parent_no_deps_cleanup", + "parent_with_deps_cleanup", + "parent_no_deps_effect", + "parent_with_deps_effect", + ], + ) + called_funcs.clear() + + # Toggle the visibility of the child component + toggle_btn = find_toggle_button(result) + assert toggle_btn.props != None + toggle_btn.props["onChange"](True) + + # Re-render + result = renderer.render(ui_parent()) + + # Counter button should be back in the tree, and back at count 0 + count_btn = find_action_button(result) + assert count_btn.props != None + self.assertEqual(count_btn.props["children"], "Count is 0") + + # Effects on counter should have been called, and parents no dep and with deps effect should be called + self.assertEqual( + called_funcs, + [ + "counter_no_deps_effect", + "counter_empty_deps_effect", + "counter_with_deps_effect", + "parent_no_deps_cleanup", + "parent_with_deps_cleanup", + "parent_no_deps_effect", + "parent_with_deps_effect", + ], + ) + called_funcs.clear() + + # Unmounting should call all the cleanup methods + rc.unmount() + self.assertEqual( + called_funcs, + [ + "counter_no_deps_cleanup", + "counter_empty_deps_cleanup", + "counter_with_deps_cleanup", + "parent_no_deps_cleanup", + "parent_empty_deps_cleanup", + "parent_with_deps_cleanup", + ], + ) diff --git a/plugins/ui/tox.ini b/plugins/ui/tox.ini index b214f738a..a66bff89f 100644 --- a/plugins/ui/tox.ini +++ b/plugins/ui/tox.ini @@ -5,4 +5,4 @@ isolated_build = True deps = deephaven-server commands = - python -m unittest discover \ No newline at end of file + python -m unittest {posargs} \ No newline at end of file diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/README.md b/templates/widget/{{ cookiecutter.python_project_name }}/README.md index 5dd447847..0348d64d9 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/README.md +++ b/templates/widget/{{ cookiecutter.python_project_name }}/README.md @@ -2,26 +2,26 @@ This is a Python plugin for Deephaven generated from a [deephaven-plugin](https://github.com/deephaven/deephaven-plugins) template. -Specifically, this plugin is a bidirectional widget plugin, which can send and receive messages on both the client and server. -The plugin works out of the box, demonstrates basic plugin structure, and can be used as a starting point for building more complex plugins. +Specifically, this plugin is a bidirectional widget plugin, which can send and receive messages on both the client and server. +The plugin works out of the box, demonstrates basic plugin structure, and can be used as a starting point for building more complex plugins. ## Plugin Structure -The `src` directory contains the Python and JavaScript code for the plugin. -Within the `src` directory, the {{ cookiecutter.python_project_name }} directory contains the Python code, and the `js` directory contains the JavaScript code. +The `src` directory contains the Python and JavaScript code for the plugin. +Within the `src` directory, the {{ cookiecutter.python_project_name }} directory contains the Python code, and the `js` directory contains the JavaScript code. -The Python files have the following structure: -`{{ cookiecutter.__object_file_name }}.py` defines a simple Python class that can send messages to the client. -`{{ cookiecutter.__type_file_name }}.py` defines the Python type for the plugin (which is used for registration) and a simple message stream. -`js_plugin.py` defines the Python class that will be used to setup the JavaScript side of the plugin. -`register.py` registers the plugin with Deephaven. +The Python files have the following structure: +`{{ cookiecutter.__object_file_name }}.py` defines a simple Python class that can send messages to the client. This object can be modified to have other plugin functionality or replaced with a different object entirely, depending on the plugin's needs. +`{{ cookiecutter.__type_file_name }}.py` defines the Python type for the plugin (which is used for registration) and a simple message stream. These can be modified to handle different objects or messages. An initial message is sent from the Python side to the client, then additional messages can be sent back and forth. +`js_plugin.py` defines the Python class that will be used to setup the JavaScript side of the plugin. +`register.py` registers the plugin with Deephaven. This file will not need to be modified for most plugins at the initial stages, but will need to be if the package is renamed or JavaScript files are moved. -The JavaScript files have the following structure: -`{{ cookiecutter.__js_plugin_obj }}.ts` registers the plugin with Deephaven. -`{{ cookiecutter.__js_plugin_view_obj }}.tsx` defines the plugin panel and message handling. +The JavaScript files have the following structure: +`{{ cookiecutter.__js_plugin_obj }}.ts` registers the plugin with Deephaven. This contains the client equivalent of the type in `{{ cookiecutter.__type_file_name }}.py` and these should be kept in sync. +`{{ cookiecutter.__js_plugin_view_obj }}.tsx` defines the plugin panel and message handling. This is where messages are received when sent from the Python side of the plugin. This file is a good starting point for adding more complex plugin functionality. -Additionally, the `test` directory contains Python tests for the plugin. This demonstrates how the embedded Deephaven server can be used in tests. -It's recommended to use `tox` to run the tests, and the `tox.ini` file is included in the project. +Additionally, the `test` directory contains Python tests for the plugin. This demonstrates how the embedded Deephaven server can be used in tests. +It's recommended to use `tox` to run the tests, and the `tox.ini` file is included in the project. ## Building the Plugin @@ -89,6 +89,36 @@ obj.send_message("Hello, world!") The panel can also send messages back to the Python client by using the input field. +## Debugging the Plugin +It's recommended to run through all the steps in Installing the Plugin and Using the Plugin to ensure the plugin is working correctly. +Then, make changes to the plugin and rebuild it to see the changes in action. +Checkout the [Deephaven plugins repo](https://github.com/deephaven/deephaven-plugins), which is where this template was generated from, for more examples and information. +The `plugins` folder contains current plugins that are developed and maintained by Deephaven. +Below are some common issues and how to resolve them as you develop your plugin. +If there is an issue with the process while following the Installation and Usage steps on the originally generated plugin, please open an issue. + +### The Panel is Not Appearing +#### Checking if the Plugin is Registered +If the panel is not appearing or an error is thrown that the import is not found, the plugin may not be registered correctly. +To verify the plugin is registered, check either the console logs or the versions in the settings panel. +- In the console logs, there should be a messaging saying `Plugins loaded:` with a map that includes this plugin. +![plugin map](./_assets/plugin_map.png "Plugin Map") + +- To get to the settings panel, click on the gear icon in the top right corner of the Deephaven window. Towards the bottom this plugin should be listed. +![plugin settings](./_assets/plugin_settings.png "Plugin Settings") +- If the plugin is not listed, attempt to rebuild and reinstall the plugin and check for errors during that process. + +#### Checking if the Python Package is Installed +- Running `pip list` in the `.venv` environment should show the Python package installed, but this is not a guarantee that the plugin is registered properly. +- The version can also be checked directly from the Python console with: +```{python} +from importlib.metadata import version +print(version("{{ cookiecutter.python_project_name }}")) +``` + +### The Panel is Appearing but with Errors or Not Functioning Correctly +Check both the Python and JavaScript logs for errors as either side could be causing the issue. + ## Distributing the Plugin To distribute the plugin, you can upload the wheel file to a package repository, such as [PyPI](https://pypi.org/). The version of the plugin can be updated in the `setup.cfg` file. @@ -124,3 +154,4 @@ pip install {{ cookiecutter.python_project_name }} ``` See the [Python packaging documentation](https://packaging.python.org/en/latest/tutorials/packaging-projects/#uploading-the-distribution-archives) for more information. + diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_map.png b/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_map.png new file mode 100644 index 000000000..e7a9b1379 Binary files /dev/null and b/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_map.png differ diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_settings.png b/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_settings.png new file mode 100644 index 000000000..4a0677300 Binary files /dev/null and b/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_settings.png differ diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt b/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt index 3834991c9..c901c3334 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt +++ b/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt @@ -1,4 +1,5 @@ build pip +pre-commit setuptools tox \ No newline at end of file diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc index 67d2ffed5..a2ad731bb 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc @@ -1 +1 @@ -v20.13.1 \ No newline at end of file +v18.20.4 \ No newline at end of file diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json index b67c4267d..cf23e606b 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", + "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", + "version": "0.0.1", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "^0.58.0", @@ -26,9 +26,6 @@ "typescript": "^4.5.4", "vite": "~4.1.4" }, - "engines": { - "node": "18.13.0" - }, "peerDependencies": { "react": "^17.0.2" } @@ -171,13 +168,13 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" @@ -209,11 +206,11 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" + "shell-quote": "^1.7.2" }, "engines": { "node": ">=16" @@ -237,8 +234,8 @@ "deep-equal": "^2.0.5", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "engines": { "node": ">=16" @@ -333,10 +330,10 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" + "react-transition-group": "^4.4.2" }, "engines": { "node": ">=10" @@ -6142,9 +6139,21 @@ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" }, "node_modules/nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } }, "node_modules/native-promise-only": { "version": "0.8.1", @@ -7463,13 +7472,13 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" + "react-window": "^1.8.6" } }, "@deephaven/console": { @@ -7494,11 +7503,11 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" + "shell-quote": "^1.7.2" } }, "@deephaven/dashboard": { @@ -7515,8 +7524,8 @@ "deep-equal": "^2.0.5", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" } }, "@deephaven/filters": { @@ -7585,10 +7594,10 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" + "react-transition-group": "^4.4.2" } }, "@deephaven/jsapi-bootstrap": { @@ -12069,9 +12078,9 @@ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" }, "nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==" }, "native-promise-only": { "version": "0.8.1", diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json index 50d404d82..d2ba089d3 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json @@ -40,8 +40,5 @@ }, "files": [ "dist/index.js" - ], - "engines": { - "node": "18.13.0" - } + ] } diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json deleted file mode 100644 index 8d4b53f88..000000000 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json +++ /dev/null @@ -1,13031 +0,0 @@ -{ - "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/dashboard": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-bootstrap": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/plugin": "^0.58.0", - "nanoid": "^5.0.7" - }, - "devDependencies": { - "@deephaven/tsconfig": "^0.72.0", - "@types/react": "^17.0.2", - "@types/react-dom": "^17.0.2", - "@vitejs/plugin-react-swc": "^3.0.0", - "react": "^17.0.2", - "typescript": "^4.5.4", - "vite": "~4.1.4" - }, - "peerDependencies": { - "react": "^17.0.2" - } - }, - "node_modules/@adobe/react-spectrum": { - "version": "3.34.1", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.34.1.tgz", - "integrity": "sha512-J1HOjntW+H8xusfc5xLnIlUXNOzllp4f7qzh3LlDOsZuH8oBH8sIYmBVp4ijVhRFUKa10qg088role1On3UGbg==", - "dependencies": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/actionbar": "^3.4.3", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/avatar": "^3.0.10", - "@react-spectrum/badge": "^3.1.11", - "@react-spectrum/breadcrumbs": "^3.9.5", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/combobox": "^3.12.3", - "@react-spectrum/contextualhelp": "^3.6.9", - "@react-spectrum/datepicker": "^3.9.4", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/icon": "^3.7.11", - "@react-spectrum/illustratedmessage": "^3.4.11", - "@react-spectrum/image": "^3.4.11", - "@react-spectrum/inlinealert": "^3.2.3", - "@react-spectrum/labeledvalue": "^3.1.12", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/link": "^3.6.5", - "@react-spectrum/list": "^3.7.8", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/meter": "^3.4.11", - "@react-spectrum/numberfield": "^3.9.1", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/provider": "^3.9.5", - "@react-spectrum/radio": "^3.7.4", - "@react-spectrum/searchfield": "^3.8.4", - "@react-spectrum/slider": "^3.6.7", - "@react-spectrum/statuslight": "^3.5.11", - "@react-spectrum/switch": "^3.5.3", - "@react-spectrum/table": "^3.12.8", - "@react-spectrum/tabs": "^3.8.8", - "@react-spectrum/tag": "^3.2.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/theme-dark": "^3.5.8", - "@react-spectrum/theme-default": "^3.5.8", - "@react-spectrum/theme-light": "^3.4.8", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/view": "^3.6.8", - "@react-spectrum/well": "^3.4.11", - "@react-stately/collections": "^3.10.5", - "@react-stately/data": "^3.11.2", - "@react-types/shared": "^3.22.1", - "client-only": "^0.0.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "dependencies": { - "commander": "^2.15.1" - }, - "bin": { - "findup": "bin/findup.js" - } - }, - "node_modules/@deephaven/chart": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.58.0.tgz", - "integrity": "sha512-rP4MKR3OswDRbt58I2r65ADHbYHVeSlBFxEoZDK3oJjkh5XEnsd0RpvEQn3gAFmQuUxk9JPUPnRx+d/6iu6zPQ==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.18.2", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/components": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.58.0.tgz", - "integrity": "sha512-yfdyi2LTKs/0N930kuFo9j407XW04jqUHVToEhNzTkgBibNZ4XJ8GwEHJDRg+pYOl/vlvIzNI/OJLd9q+IuEdw==", - "dependencies": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/console": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.58.0.tgz", - "integrity": "sha512-jfQVsBmzJO/qnv4pQyJcyZZ3EdBPUeHa5r94VdtL0XKTVqiViF4jrUH2+mfdW5SLNwpwnjhBdfPZ7da1ynJxWQ==", - "dependencies": { - "@deephaven/chart": "^0.58.0", - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-bootstrap": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/dashboard": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.58.0.tgz", - "integrity": "sha512-3D3xo10uU/fnQmyLiLOh14RdjEqk6NIu79MuuBJw8ESaDx9BN9ESZyU02QU/JcwXZjahJoRIsquvD4f0iTawGA==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/redux": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.ismatch": "^4.1.1", - "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.0.0", - "react-dom": "^17.0.0", - "react-is": "^17.0.0", - "react-redux": "^7.2.4" - } - }, - "node_modules/@deephaven/filters": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.58.0.tgz", - "integrity": "sha512-7FRCEAjoo0e0gRZbdDxoTrC8SSqwL9IDH4Z23OjIOQ5RBS7MypFeomFLLJns9Sg1rOXXixG0Of7Zqv6cR8hC6Q==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/golden-layout": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.58.0.tgz", - "integrity": "sha512-AN5AWH1Qr1Mof95ZWBGPRds+L4WBa0ePRTpmjDffcEuoPjKbd2KDzuiRp3au/QsrkfcyLz4rWQmSd+1dHb/qeQ==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "jquery": "^3.6.0" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.58.0.tgz", - "integrity": "sha512-BmSuLKm70qzHEZPaq8pc3CCOXcxHw9KmWwuZTQnjMMGHSyGmDgseydODwOatbuW4QohY+B03Uf1GdaEpAT0GVw==", - "dependencies": { - "@deephaven/utils": "^0.58.0", - "classnames": "^2.3.1", - "color-convert": "^2.0.1", - "event-target-shim": "^6.0.2", - "linkifyjs": "^4.1.0", - "lodash.clamp": "^4.0.3", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/icons": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.58.0.tgz", - "integrity": "sha512-jD8rEOCTbelkXT2BRGTRamP8bmHmk/Hdo8uu6s3ydjI2d52Rp7YaCjsspNS9fGV1XhpNF6N2lTC3rdtUWXvMFg==", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^6.1.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - }, - "node_modules/@deephaven/iris-grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.58.0.tgz", - "integrity": "sha512-HYMOxjmS/gpkTHshDOYsplvVgy9RW7mGvySpj4G00k5M595PJuqZ8q3VfnxVH0Tswb44bk1WmQhvHndAvWMg2A==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/console": "^0.58.0", - "@deephaven/filters": "^0.58.0", - "@deephaven/grid": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@dnd-kit/core": "^6.0.5", - "@dnd-kit/sortable": "^7.0.0", - "@dnd-kit/utilities": "^3.2.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "deep-equal": "^2.0.5", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.58.0.tgz", - "integrity": "sha512-w7oubRFxkTbitfDs7JNALrsRZqHYtgbfllcaUnlTFXD688E/8kSjVVi4yaE8aKWmMDCQLFU0QoFsfC1Z+kxWeA==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/jsapi-types": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-0.58.0.tgz", - "integrity": "sha512-CjJXqHPPTWAqCYJRXC/Zb2VEdaXutyx55Hlzeeg/1vYnWY5t5Lxld4PQkuO4rvsJzzkuEWzdgggMw7Iu9ZVuQQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/jsapi-utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.58.0.tgz", - "integrity": "sha512-isX/HdSl8XBQSPJHockM5ybGOBRplT/4M10b4loB4nZpY0y5bCY2H7sdutsICE6FTSMInAD+cMGNH6nPF+IGfg==", - "dependencies": { - "@deephaven/filters": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.clamp": "^4.0.3", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/log": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.58.0.tgz", - "integrity": "sha512-al05eDP3qamkWuqaQlsMESEn+rTRiaMZLAI8ePlHnlcEPrQS2ymkcO6sY6Am4yk3l5JQg8FKHA8LjHFZfkvTsQ==", - "dependencies": { - "event-target-shim": "^6.0.2" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/plugin": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.58.0.tgz", - "integrity": "sha512-QmmaMfNbsKi2hLJqwxilE57Mqio1mT9HhmIyc0qa0G60kPI1NuMAV3TJWu4+s9xQBMqolzrD8OD3jfLzrfK5VA==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/iris-grid": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/react-hooks": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.58.0.tgz", - "integrity": "sha512-XeQgk8VqaTwcI68660pNd5q611EkKtqIxKaZnPMR5GzbHn1zE55fFAUi5UdgrSJhhe2oaIz2tFbVd8uaduANsw==", - "dependencies": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.debounce": "^4.0.8", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/redux": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.58.0.tgz", - "integrity": "sha512-RnhldimzNK1AJv9OIcKgXMZ5BXe+1Rm6/BXjDnAnl8HREEGtuVvIUna2g3s+FoOokfQCRIIzNkPXTwyJDGRO2A==", - "dependencies": { - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/plugin": "^0.58.0", - "deep-equal": "^2.0.5", - "redux-thunk": "2.4.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "redux": "^4.2.0" - } - }, - "node_modules/@deephaven/storage": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.58.0.tgz", - "integrity": "sha512-GGgcqHdgQCko1vxSJttwDw04u4atbv51C/t8IJPdHoTzd1HoY/yYhX639UranueS5LygBTwu4QCM73CMuHS0eg==", - "dependencies": { - "@deephaven/filters": "^0.58.0", - "@deephaven/log": "^0.58.0", - "lodash.throttle": "^4.1.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/tsconfig": { - "version": "0.72.0", - "resolved": "https://registry.npmjs.org/@deephaven/tsconfig/-/tsconfig-0.72.0.tgz", - "integrity": "sha512-ER4+KsrTBO8rhd4YA6SY5dRBZjUajrNKb2yQijSXNZTbWbQCet/522Yui2YCgWFBRbM5GvYGDoUcc/07tZeLZQ==", - "dev": true - }, - "node_modules/@deephaven/utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.58.0.tgz", - "integrity": "sha512-5zmnUYwAT6ognsZ7SjhEF6OS1xjF4nP3RixEO+CEZdBxen5Q8pZ2CjhPv2FvuqAUGEx+MhPq/yD1AXvzu3HITw==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@dnd-kit/accessibility": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz", - "integrity": "sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.1.0.tgz", - "integrity": "sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg==", - "dependencies": { - "@dnd-kit/accessibility": "^3.1.0", - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/sortable": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", - "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", - "dependencies": { - "@dnd-kit/utilities": "^3.2.0", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@dnd-kit/core": "^6.0.7", - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/utilities": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", - "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz", - "integrity": "sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==", - "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "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/icu-messageformat-parser": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.6.tgz", - "integrity": "sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/icu-skeleton-parser": "1.8.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.0.tgz", - "integrity": "sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "tslib": "^2.4.0" - } - }, - "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/@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", - "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==", - "hasInstallScript": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", - "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", - "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || ~6", - "react": ">=16.3" - } - }, - "node_modules/@internationalized/date": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz", - "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.2.tgz", - "integrity": "sha512-MHAWsZWz8jf6jFPZqpTudcCM361YMtPIRu9CXkYmKjJ/0R3pQRScV5C0zS+Qi50O5UAm8ecKhkXx6mWDDcF6/g==", - "dependencies": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "node_modules/@internationalized/number": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.1.tgz", - "integrity": "sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/string": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.1.tgz", - "integrity": "sha512-vWQOvRIauvFMzOO+h7QrdsJmtN1AXAFVcaLWP9AseRN2o7iHceZ6bIXhBD4teZl8i91A3gxKnWBlGgjCwU6MFQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", - "dependencies": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - }, - "bin": { - "geojson-rewind": "geojson-rewind" - } - }, - "node_modules/@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", - "peerDependencies": { - "mapbox-gl": ">=0.32.1 <2.0.0" - } - }, - "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" - }, - "node_modules/@mapbox/tiny-sdf": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", - "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" - }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" - }, - "node_modules/@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "dependencies": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "node_modules/@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@plotly/d3": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz", - "integrity": "sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg==" - }, - "node_modules/@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "dependencies": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "node_modules/@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "dependencies": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "node_modules/@plotly/mapbox-gl": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", - "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "dependencies": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/@react-aria/actiongroup": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.3.tgz", - "integrity": "sha512-o1qw7w7GdL8vsOuzBc2mil+MM1CWWDDZ1+VhWnVwoDVt5Pxj36981leTh/WTS58IQ34N7p/jVdQMraQ25EJJyA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/breadcrumbs": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.11.tgz", - "integrity": "sha512-bQz4g2tKvcWxeqPGj9O0RQf++Ka8f2o/pJMJB+QQ27DVQWhxpQpND//oFku2aFYkxHB/fyD9qVoiqpQR25bidw==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/button": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.3.tgz", - "integrity": "sha512-ZXo2VGTxfbaTEnfeIlm5ym4vYpGAy8sGrad8Scv+EyDAJWLMKokqctfaN6YSWbqUApC3FN63IvMqASflbmnYig==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/calendar": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.6.tgz", - "integrity": "sha512-PA0Ur5WcODMn7t2gCUvq61YktkB+WlSZjzDr5kcY3sdl53ZjiyqCa2hYgrb6R0J859LVJXAp+5Qaproz8g1oLA==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/checkbox": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.1.tgz", - "integrity": "sha512-b4rtrg5SpRSa9jBOqzJMmprJ+jDi3KyVvUh+DsvISe5Ti7gVAhMBgnca1D0xBp22w2jhk/o4gyu1bYxGLum0GA==", - "dependencies": { - "@react-aria/form": "^3.0.3", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/toggle": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/form": "^3.0.1", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/combobox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.4.tgz", - "integrity": "sha512-HyTWIo2B/0xq0Of+sDEZCfJyf4BvCvDYIWG4UhjqL1kHIHIGQyyr+SldbVUjXVYnk8pP1eGB3ttiREujjjALPQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/listbox": "^3.11.5", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/datepicker": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.3.tgz", - "integrity": "sha512-1AjCAizd88ACKjVNhFazX4HZZFwWi2rsSlGCTm66Nx6wm5N/Cpbm466dpYEFyQUsKSOG4CC65G1zfYoMPe48MQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/datepicker": "^3.9.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/datepicker": "^3.7.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/dialog": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.12.tgz", - "integrity": "sha512-7UJR/h/Y364u6Ltpw0bT51B48FybTuIBacGpEJN5IxZlpxvQt0KQcBDiOWfAa/GQogw4B5hH6agaOO0nJcP49Q==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/dnd": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.3.tgz", - "integrity": "sha512-0gi6sRnr97fSQnGy+CMt+99/+vVqr+qv2T9Ts8X9TAzxHNokz5QfSL88QSlTU36EnAVLxPY18iZQWCExSjKpEQ==", - "dependencies": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/dnd": "^3.2.8", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/focus": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.16.2.tgz", - "integrity": "sha512-Rqo9ummmgotESfypzFjI3uh58yMpL+E+lJBbQuXkBM0u0cU2YYzu0uOrFrq3zcHk997udZvq1pGK/R+2xk9B7g==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/form": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.3.tgz", - "integrity": "sha512-5Q2BHE4TTPDzGY2npCzpRRYshwWUb3SMUA/Cbz7QfEtBk+NYuVaq3KjvqLqgUUdyKtqLZ9Far0kIAexloOC4jw==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/grid": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.8.tgz", - "integrity": "sha512-7Bzbya4tO0oIgqexwRb8D6ZdC0GASYq9f/pnkrqocgvG9e1SCld4zOioKbYQDvAK/NnbCgXmmdqFAcLM/iazaA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/gridlist": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.5.tgz", - "integrity": "sha512-RmHEJ++vngHYEWbUCtLLmGh7H3vNd2Y9S0q/9SgHFPbqPZycT5mxDZ2arqpOXeHRVRvPBaW9ZlMxI2bPOePrYw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/i18n": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.10.2.tgz", - "integrity": "sha512-Z1ormoIvMOI4mEdcFLYsoJy9w/EzBdBmgfLP+S/Ah+1xwQOXpgwZxiKOhYHpWa0lf6hkKJL34N9MHJvCJ5Crvw==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@internationalized/message": "^3.1.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/interactions": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.1.tgz", - "integrity": "sha512-AlHf5SOzsShkHfV8GLLk3v9lEmYqYHURKcXWue0JdYbmquMRkUsf/+Tjl1+zHVAQ8lKqRnPYbTmc4AcZbqxltw==", - "dependencies": { - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/label": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.6.tgz", - "integrity": "sha512-ap9iFS+6RUOqeW/F2JoNpERqMn1PvVIo3tTMrJ1TY1tIwyJOxdCBRgx9yjnPBnr+Ywguep+fkPNNi/m74+tXVQ==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.5.tgz", - "integrity": "sha512-kg8CxKqkciQFzODvLAfxEs8gbqNXFZCW/ISOE2LHYKbh9pA144LVo71qO3SPeYVVzIjmZeW4vEMdZwqkNozecw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/listbox": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.5.tgz", - "integrity": "sha512-y3a3zQYjT+JKgugCMMKS7K9sRoCoP1Z6Fiiyfd77OHXWzh9RlnvWGsseljynmbxLzSuPwFtCYkU1Jz4QwsPUIg==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/live-announcer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.2.tgz", - "integrity": "sha512-aOyPcsfyY9tLCBhuUaYCruwcd1IrYLc47Ou+J7wMzjeN9v4lsaEfiN12WFl8pDqOwfy6/7It2wmlm5hOuZY8wQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@react-aria/menu": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.13.1.tgz", - "integrity": "sha512-jF80YIcvD16Fgwm5pj7ViUE3Dj7z5iewQixLaFVdvpgfyE58SD/ZVU9/JkK5g/03DYM0sjpUKZGkdFxxw8eKnw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/tree": "^3.7.6", - "@react-types/button": "^3.9.2", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-P1G3Jdh0f/uieUDqvc3Ee4wzqBJa7H077BVSC3KPRqEp6YY7JimZGWjOwbFlO2PXhryXm/dI8EzUmh+4ZXjq/g==", - "dependencies": { - "@react-aria/progress": "^3.4.11", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/numberfield": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.1.tgz", - "integrity": "sha512-JQ1Z+Ho5H+jeav7jt9A4vBsIQR/Dd2CFbObrULjGkqSrnWjARFZBv3gZwmfGCtplEPeAv9buYKHAqebPtJNUww==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/overlays": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.21.1.tgz", - "integrity": "sha512-djEBDF+TbIIOHWWNpdm19+z8xtY8U+T+wKVQg/UZ6oWnclSqSWeGl70vu73Cg4HVBJ4hKf1SRx4Z/RN6VvH4Yw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/progress": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.11.tgz", - "integrity": "sha512-RePHbS15/KYFiApYLdwazwvWKsB9q0Kn5DGCSb0hqCC+k2Eui8iVVOsegswiP+xqkk/TiUCIkBEw22W3Az4kTg==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-CTUTR+qt3BLjmyQvKHZuVm+1kyvT72ZptOty++sowKXgJApTLdjq8so1IpaLAr8JIfzqD5I4tovsYwIQOX8log==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/searchfield": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.3.tgz", - "integrity": "sha512-mnYI969R7tU3yMRIGmY1+peq7tmEW0W3MB/J2ImK36Obz/91tTtspHHEeFtPlQDLIyvVPB0Ucam4LIxCKPJm/Q==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/searchfield": "^3.5.1", - "@react-types/button": "^3.9.2", - "@react-types/searchfield": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/select": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.3.tgz", - "integrity": "sha512-9KCxI41FI+jTxEfUzRsMdJsZvjkCuuhL4UHig8MZXtXs0nsi7Ir3ezUDQ9m5MSG+ooBYM/CA9DyLDvo5Ioef+g==", - "dependencies": { - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/listbox": "^3.11.5", - "@react-aria/menu": "^3.13.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/select": "^3.6.2", - "@react-types/button": "^3.9.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/selection": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.5.tgz", - "integrity": "sha512-gO5jBUkc7WdkiFMlWt3x9pTSuj3Yeegsxfo44qU5NPlKrnGtPRZDWrlACNgkDHu645RNNPhlyoX0C+G8mUg1xA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/separator": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.11.tgz", - "integrity": "sha512-UTla+3P2pELpP73WSfbwZgP1y1wODFBQbEOHnUxxO8ocyaUyQLJdvc07bBLLpPoyutlggRG0v9ACo0Rui7AjOg==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/slider": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.6.tgz", - "integrity": "sha512-ZeZhyHzhk9gxGuThPKgX2K3RKsxPxsFig1iYoJvqP8485NtHYQIPht2YcpEKA9siLxGF0DR9VCfouVhSoW0AEA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/spinbutton": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.3.tgz", - "integrity": "sha512-IlfhRu/pc9zOt2C5zSEB7NmmzddvWisGx2iGzw8BwIKMD+cN3uy+Qwp+sG6Z/JzFEBN0F6Mxm3l5lhbiqjpICQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/ssr": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.2.tgz", - "integrity": "sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/switch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.2.tgz", - "integrity": "sha512-X5m/omyhXK+V/vhJFsHuRs2zmt9Asa/RuzlldbXnWohLdeuHMPgQnV8C9hg3f+sRi3sh9UUZ64H61pCtRoZNwg==", - "dependencies": { - "@react-aria/toggle": "^3.10.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/table": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.5.tgz", - "integrity": "sha512-P2nHEDk2CCoEbMFKNCyBC9qvmv7F/IXARDt/7z/J4mKFgU2iNSK+/zw6yrb38q33Zlk8hDaqSYNxHlMrh+/1MQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tabs": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.5.tgz", - "integrity": "sha512-Jvt33/W+66n5oCxVwHAYarJ3Fit61vULiPcG7uTez0Mf11cq/C72wOrj+ZuNz6PTLTi2veBNQ7MauY72SnOjRg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/tabs": "^3.6.4", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tag": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.3.tgz", - "integrity": "sha512-tlJD9qj1XcsPIZD7DVJ6tWv8t7Z87/8qkbRDx7ugNqeHso9z0WqH9ZkSt17OFUWE2IQIk3V8D3iBSOtmhXcZGQ==", - "dependencies": { - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/textfield": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.3.tgz", - "integrity": "sha512-wPSjj/mTABspYQdahg+l5YMtEQ3m5iPCTtb5g6nR1U1rzJkvS4i5Pug6PUXeLeMz2H3ToflPWGlNOqBioAFaOQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/toggle": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.2.tgz", - "integrity": "sha512-DgitscHWgI6IFgnvp2HcMpLGX/cAn+XX9kF5RJQbRQ9NqUgruU5cEEGSOLMrEJ6zXDa2xmOiQ+kINcyNhA+JLg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tooltip": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.2.tgz", - "integrity": "sha512-6jXOSGPao3gPgUQWLbH2r/jxGMqIaIKrJgfwu9TQrh+UkwwiTYW20EpEDCYY2nRFlcoi7EYAiPDSEbHCwXS7Lg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/tooltip": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/utils": { - "version": "3.23.2", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.23.2.tgz", - "integrity": "sha512-yznR9jJ0GG+YJvTMZxijQwVp+ahP66DY0apZf7X+dllyN+ByEDW+yaL1ewYPIpugxVzH5P8jhnBXsIyHKN411g==", - "dependencies": { - "@react-aria/ssr": "^3.9.2", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/virtualizer": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.10.tgz", - "integrity": "sha512-oDvGgexK6phB9XECWvAaKTq/nRKxHjmJSiZ2gv9j72JFoky4iVEHKAV6Qnar0VBcEpk16JcJVI/wf1xr9F+sjQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/visually-hidden": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.10.tgz", - "integrity": "sha512-np8c4wxdbE7ZrMv/bnjwEfpX0/nkWy9sELEb0sK8n4+HJ+WycoXXrVxBUb9tXgL/GCx5ReeDQChjQWwajm/z3A==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/actionbar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.3.tgz", - "integrity": "sha512-LIg3a5z0bnFIkA1teaGUo/RdT4ZKPpUUF0RxPSm0nHWEzolSgD7BN4ijK5UxsDLA2cfNxv78s+vwHHKkKnsjSA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/actionbar": "^3.1.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/actiongroup": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.3.tgz", - "integrity": "sha512-VJASE+Y75Q885z9mx7CVELrX8PuZPbRnGFQnkoRnwZOTpMVZM6wQxA4IcAfsFVvaVIpHgBwtQTI1Ib+gAdtqgw==", - "dependencies": { - "@react-aria/actiongroup": "^3.7.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/avatar": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.10.tgz", - "integrity": "sha512-PvsCTTcjNN7QSsa3iCc2UF5LeQCwFNaiR0/xvpk+/ViP1wVq+xFR1tfSrbAq7TAF1B3NQNfI+wepy2ol5l8X2g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/avatar": "^3.0.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.1", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/badge": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.11.tgz", - "integrity": "sha512-YOuUBdWmqDQQrNI0uUpazWv/qYmFeDCsJVfQnl/K4J0A6/x7wuvz3iLPJKYuvmqG45/I+WXYFFaNuWOm4jCMzA==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/badge": "^3.1.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/breadcrumbs": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.5.tgz", - "integrity": "sha512-MV1b077f189biweuI8H1/D6F7Nwrao0phYzAKqjaTa8bhXf180ej3VhtEEhrSyEhhMrHG3pPzCCbNUn2VMXDlg==", - "dependencies": { - "@react-aria/breadcrumbs": "^3.5.11", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/button": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.16.2.tgz", - "integrity": "sha512-T0B4EUeAAfsocTMZpfKYIsPMIbuwjB1+hfbZyBBvWt8gerLiEiPAwt6+ga1YzV7C6aAz2FPeTT+zd/RxouDTPw==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/buttongroup": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.11.tgz", - "integrity": "sha512-yJv6yBZRLIPYdOAch4FVhdrI0xZz5PPuLiSA6HF/9LlIimALj0qBgCsbQPPThz/UV8+8Y1F76wQUsDcj+iub/A==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/buttongroup": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/calendar": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.7.tgz", - "integrity": "sha512-eBH8SAHHbhprbzk445wnNrW80bnm7Kv5rwmcDBd7/FGb5EhWnQgcQtBo3z79dpCXCl8UtpLsih3eDV9QQSjIDA==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/calendar": "^3.5.6", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/checkbox": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.4.tgz", - "integrity": "sha512-PzUaSza13wh7YipWJLd/0q/nkAnEnxso7hdvMzDLYcw0iKhXNTM2fUoouUuY1SsbithlF2GS5REYyMpQ4FNO3g==", - "dependencies": { - "@react-aria/checkbox": "^3.14.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/combobox": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.12.3.tgz", - "integrity": "sha512-hskwbdqXSSNEBRYTn3XESSnLGjELU4Lfht3GkZCvcQt02TVvu9NMETSkVe4lwCYV2hwXtPFGyl3jXvmA3MQurQ==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/combobox": "^3.8.4", - "@react-aria/dialog": "^3.5.12", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/contextualhelp": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.9.tgz", - "integrity": "sha512-M0GUmZSLWm6pBAqy0Wwv1srlUPxBSvhQxTxvxtBcRSQwCIE1BcnQ6VaJxlx6n+Ocr14GwYH6MTpD1ZLMUvWeiA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/utils": "^3.11.5", - "@react-types/contextualhelp": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/datepicker": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.4.tgz", - "integrity": "sha512-NyFIH68WqbGajBMe/UMxZDwNwaPL/AKJeLC9CY+GcLp4uncWjI42LdcoBPSQFoEJHLtJlLhx+r7qWO/PMOhg3Q==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/datepicker": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/datepicker": "^3.9.2", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/dialog": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.9.tgz", - "integrity": "sha512-CxyARi0qYOJi24YVqXZp7tHVreYQoYc7+VBZzcn8dTbIL1CSxcSGbRGXOpHiaAejZ9/3lPm/PTbrWrKUBLbckA==", - "dependencies": { - "@react-aria/dialog": "^3.5.12", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/divider": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.11.tgz", - "integrity": "sha512-u6pyqBEc4JRpntF+KGuzmkzn+rJh04kfvjJ3Tx4F9IucaY8xCfglhunf6/yvRqQB0VaMdlxKy5BGhHgBJzUBiA==", - "dependencies": { - "@react-aria/separator": "^3.3.11", - "@react-spectrum/utils": "^3.11.5", - "@react-types/divider": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/dnd": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.8.tgz", - "integrity": "sha512-GfLqduIBpH2LArBsFpNa4i9cYeFg7lJpqwrLVJRl96DbhdXEcwt9a4tqvsegkqKn6KPHDPG7uTX0OqPoQJluXQ==", - "dependencies": { - "@react-aria/dnd": "^3.5.3", - "@react-stately/dnd": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/form": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.4.tgz", - "integrity": "sha512-xAS6vFM6dzKJc7gkC8Qy76VXLxZ9VqPZq4xxQeySvsO8pOujTFCL97QkS0mDjMOdpu72VDIF5JegK1Edlewr7g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/form": "^3.0.1", - "@react-types/form": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/icon": { - "version": "3.7.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.11.tgz", - "integrity": "sha512-CTvbukq0g2oEjMqwMDx2qjfmFAv6u7/KwHRn9pGf6BUiU53Zlnl6Fjtm+c9cw8d9GcwlXyIWYBMIKyMm4+7g5A==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/illustratedmessage": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.11.tgz", - "integrity": "sha512-KJdcF+YY2rPZBTP5P38MEQBoNLglP1QUaCmbPH8a5dSZ+wj5EsOgseFa0fxAEZ23q9Wo9Fv9P9niRq0/479KTQ==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/illustratedmessage": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/image": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.11.tgz", - "integrity": "sha512-pzYubgkkC5Ic3eKrNlPUFPbVUTUvZ7DObmGpQvmgmG0xipmUAscYKFEBr4LhCsy/29Sm7Tz4zsGUdA2vM5eA8g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/image": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/inlinealert": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.3.tgz", - "integrity": "sha512-NX1bZvmI3EOBTRWaT4dzVyFxAuePPbXASZeJ4/wAnhvWDN65rKrctn+VZW3x6ZQoZ/WkQl4qW1txjVcLHkRBWg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/label": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.4.tgz", - "integrity": "sha512-38hk6wqUwDCyYeScF1NIaxlPaltkTRTv6/XtIkm528eilLyOMxtMGXcP0Bl7nv0oDLxDZSm9TkgXjN24SyY0KQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/label": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/labeledvalue": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.12.tgz", - "integrity": "sha512-Pa/eYf9FKr8QF7xKLoCv6a+Ezudfi7N1jFJLZ71zaVcDOcNByYKiy1lAquwLB+36PpsWt/EwKLE2/U7OuiWyfQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/layout": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.3.tgz", - "integrity": "sha512-JsG4KclsgzKfRbe+PyMo8QryG5SmwYlym8JRuSLmZ+nfIKhESVbqSJE3IXblmDDWUb0rabQhSvW4p5h5nOil4w==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/layout": "^3.3.13", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.5.tgz", - "integrity": "sha512-pnPIzkM0/Nxm460dHuR195bD0BAaIvasqW8TqUFT0Igxfw0NFYyWZr5d4OkHKyypyUoQKaobpOgeAJHXxPtzTg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/link": "^3.5.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/list": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.8.tgz", - "integrity": "sha512-w+fxiX+wz8X0bASAtKsf/myMrFI1Z0OXamttPRAJS5Ene6x09kf+K2djpZO1t9nT70IPnCcthhkMaCHk6eyUIw==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/listbox": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.7.tgz", - "integrity": "sha512-cFUIKPRtz5ViQYS0vO+oQmiFmbJjA04GCpyZKnBJAEonNDiY1RIHfFg/53Mr8IwstwNvGbxHVjMilPy6DtWDjA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/listbox": "^3.11.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/menu": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.18.1.tgz", - "integrity": "sha512-3KutRgn9/uYcRH2IzUT6qiPlS9SK9+4R2W4Z1Ox27lQ30ZgC68kE37uOwZX10bDgTOWV/COYvm6qBBScZ+VFUg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/separator": "^3.3.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/tree": "^3.7.6", - "@react-types/menu": "^3.9.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-OBYIHnumb2cfeT48py6Qtsfs7m9DmddaHSCVB8MXNnn3fzrpPr5t4Wz2dYUWXnkPPC11D8WarjJ+6EgrNwNvdQ==", - "dependencies": { - "@react-aria/meter": "^3.4.11", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/utils": "^3.11.5", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-s6QNRncVrVjOYihKeyQ8fkdD1YJTqYttog/Rj96rD66vfUlI0bTr3q6mK6hZpU1YM29SL24BUCn6NdqOxqVeiQ==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/numberfield": "^3.11.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/overlays": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.5.tgz", - "integrity": "sha512-rFwbWuagFo/Tuo45UE8KHUMz1Li1j5CNzsZdIfKZydHd0u4t69yR8bCn3pDUNIYEwclrLGUD2XFJaN9jYq1H4A==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/overlays": "^3.6.5", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/picker": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.14.3.tgz", - "integrity": "sha512-xaewWrOtGt/dQbiSwZe9UYH58berRlxyqIeAZQ7+FCRGoG/gl1p+l+7rfNKFS5OjVy6Adh6BZrrY6A99j4PbQA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/select": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/select": "^3.6.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.1.4", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/progress": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.5.tgz", - "integrity": "sha512-ku+RTtgXWaxUwjopzWpvgNxJsn/gohMWO4len2K2yDQp6b4SY67ojRFBwyIDZ9Oi9RPTAvZOc3wJu5QPftfVcg==", - "dependencies": { - "@react-aria/progress": "^3.4.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/provider": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.5.tgz", - "integrity": "sha512-FE5RQC1EwMMXUAtslekheyA0IrXSev4flaY4CT3exC/ohB1PuiXUDg4qqaHos2vVhsdUPNq5SeathtHEr8ryJA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/provider": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/radio": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.4.tgz", - "integrity": "sha512-FmWcJlOeo5KsbWYpnEtoB9oC+haUeowfRda8dq0kBptR5WlagWD4Arez55/hjXCHLqQZ4r6vY6rYgMya2xiddQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/radio": "^3.10.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/searchfield": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.4.tgz", - "integrity": "sha512-O8pM9dGlRZoFhNtZLVFpIOHM2+sy5/t23Lv0z0jXvVYmzHOaib8wPPJELnPRsDUIylqpnVxfiYSz051Gx5Zq8g==", - "dependencies": { - "@react-aria/searchfield": "^3.7.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/searchfield": "^3.5.1", - "@react-types/searchfield": "^3.5.3", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/slider": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.7.tgz", - "integrity": "sha512-mhTG+sGZwQfNW9z+uzvmTQzzV2Qzcack3qYSw8HXEfd4BOjkgwTinS9aN8MLv147TF5RMvI0y3dmNirAoDi+yQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/slider": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/statuslight": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.11.tgz", - "integrity": "sha512-zbIrI8rPLmMu3Jnl2fpA/kb0V3azdRBsv1KfhGNQkHM17Gy6ufrzzzh6cmnvQh8FREllMcIjC4eaBkYHFArtyg==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/statuslight": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/switch": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.3.tgz", - "integrity": "sha512-NJMk/b/Lrmgl0RB9QPF0wSuD5CgTPODaLuZD1uxXAcESKFVdN58eW8CU99e+ZC0tHgFofroTpEF073Yiz2LnkQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/switch": "^3.6.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/table": { - "version": "3.12.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.8.tgz", - "integrity": "sha512-4JyDlvKljhvqqUHYk6X5JjmxXy03IZergKTu//MbELW4v9bwiwf94Ap8zTcUZPh/pcw7IQhpUDLPAi6RFBAUpA==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/table": "^3.13.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/layout": "^3.13.7", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/tabs": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.8.tgz", - "integrity": "sha512-oBXKLD7cyCLQV3SUXIjEn9ttdyoGwpiTUfM3DNY3ki097pRdoBgMxPk1Sp7jKQs6tRUg4osK53iOG4LvEs6eTg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/tabs": "^3.8.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-stately/tabs": "^3.6.4", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/tag": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.4.tgz", - "integrity": "sha512-d6cqX+n10pokLsBGEC/ksLLHM3vBoR7zc0AAlBAUrBN6VMBWUQRyazDHeXPLLZs/S4+ICL80UXRf8NwWfA7Efg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/tag": "^3.3.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/text": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.3.tgz", - "integrity": "sha512-28WiSnIPm8WC4JOsHPLudCGjPc3tk7zKm3L+8xqzr374j1+HdMGivrhVOf1t4jbUMcT5dOxR7huuDe7E97qe5A==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/text": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/textfield": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.4.tgz", - "integrity": "sha512-J70Q1ddpX0v+R7x8w5DaJLixnp5mBWm39lUnekiahEUuA420U1eZCW80GiHXFS/GO6wpwjIZpWHcpBQuF/EDCQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/theme-dark": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.8.tgz", - "integrity": "sha512-ep78rIrgrXu5MHe6LQAiK8+Us/4PoeHcixm+xFJk8I7AP+6wrh+9+QSWdIi3/NJY9fIjXsMm+VyehFVtEq8PAg==", - "dependencies": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/theme-default": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.8.tgz", - "integrity": "sha512-vZ9GH4l6H2Ks/PD15k2mx6XgA1EYKxQbB+ai9UZ3ALXf0KYlVIFSoHk4Vp3hP16D12KsuB7V0Gk8SvHlsRNo+Q==", - "dependencies": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/theme-light": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.8.tgz", - "integrity": "sha512-6kjtQ6IGrh2E0WJKQ9eAR5yhcWFI2mNvd+wi8Uy3rtRdBB1L3iSfr2RmgxgcTCl50DnKqmcFsHbHaKMMKqhkaQ==", - "dependencies": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/tooltip": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.5.tgz", - "integrity": "sha512-TnVUX8gNx65wOfHE5UIzuzpC4kUd6RuFeDykcu+3OM+fsK6qvDYg2MQq/3UiZHFI0ZHhX89yPf4uLaP0hcT8sg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/tooltip": "^3.7.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/tooltip": "^3.4.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/utils": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.5.tgz", - "integrity": "sha512-V4heIuCBXhYOP3om5B0KNs2+RK6RKwAhHVjjJZ3RBeNqsF9UDxv+D/+dk3sAM2dsM1F8l38BNXQMMWXWW/BZYA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/view": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.8.tgz", - "integrity": "sha512-jAKh22xUjFY5sxPTtLc53fw3C+dki+DEDxArFK06/tF+ntV6lDat91j+YedcOtDT2p7C2PSfaToX5moyEAQ+NA==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/view": "^3.4.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/well": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.11.tgz", - "integrity": "sha512-oCQqKKcKXNoF18dNz5GHBdSXrNPsVH5jsH17suqQevzDQkMN2X02Ov0oyOYMAUQM0xSE3ensLdjvLzUL0yl36g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/well": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-f9ZOd096gGGD+3LmU1gkmfqytGyQtrgi+Qjn+70GbM2Jy65pwOR4I9YrobbmeAFov5Tff13mQEa0yqWvbcDLZQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-stately/utils": "^3.9.1", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/checkbox": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.3.tgz", - "integrity": "sha512-hWp0GXVbMI4sS2NbBjWgOnHNrRqSV4jeftP8zc5JsIYRmrWBUZitxluB34QuVPzrBO29bGsF0GTArSiQZt6BWw==", - "dependencies": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/collections": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.5.tgz", - "integrity": "sha512-k8Q29Nnvb7iAia1QvTanZsrWP2aqVNBy/1SlE6kLL6vDqtKZC+Esd1SDLHRmIcYIp5aTdfwIGd0NuiRQA7a81Q==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/combobox": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.2.tgz", - "integrity": "sha512-f+IHuFW848VoMbvTfSakn2WIh2urDxO355LrKxnisXPCkpQHpq3lvT2mJtKJwkPxjAy7xPjpV8ejgga2R6p53Q==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-stately/select": "^3.6.2", - "@react-stately/utils": "^3.9.1", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/data": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.2.tgz", - "integrity": "sha512-yhK2upk2WbJeiLBRWHrh/4G2CvmmozCzoivLaRAPYu53m1J3MyzVGCLJgnZMbMZvAbNcYWZK6IzO6VqZ2y1fOw==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/datepicker": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.2.tgz", - "integrity": "sha512-Z6FrK6Af7R5BizqHhJFCj3Hn32mg5iLSDdEgFQAuO043guOXUKFUAnbxfbQUjL6PGE6QwWMfQD7PPGebHn9Ifw==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@internationalized/string": "^3.2.1", - "@react-stately/form": "^3.0.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/utils": "^3.9.1", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/dnd": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.8.tgz", - "integrity": "sha512-oSo+2Bzum3Q1/d+3FuaDmpVHqqBB004tycuQDDFtad3N1BKm+fNfmslRK1ioLkPLK4sm1130V+BZBY3JXLe80A==", - "dependencies": { - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/flags": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.1.tgz", - "integrity": "sha512-h5PcDMj54aipQNO18ig/IMI1kzPwcvSwVq5M6Ib6XE1WIkOH0dIuW2eADdAOhcGi3KXJtXVdD29zh0Eox1TKgQ==", - "dependencies": { - "@swc/helpers": "^0.4.14" - } - }, - "node_modules/@react-stately/flags/node_modules/@swc/helpers": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", - "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", - "dependencies": { - "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" - } - }, - "node_modules/@react-stately/form": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.1.tgz", - "integrity": "sha512-T1Ul2Ou0uE/S4ECLcGKa0OfXjffdjEHfUFZAk7OZl0Mqq/F7dl5WpoLWJ4d4IyvZzGO6anFNenP+vODWbrF3NA==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/grid": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.5.tgz", - "integrity": "sha512-KCzi0x0p1ZKK+OptonvJqMbn6Vlgo6GfOIlgcDd0dNYDP8TJ+3QFJAFre5mCr7Fubx7LcAOio4Rij0l/R8fkXQ==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/layout": { - "version": "3.13.7", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.7.tgz", - "integrity": "sha512-9HH/aSxpEHwUW1T1vGN3+iznkAXQUzoMrsoEepNzesOsUGSm/MFZmEk4+9cdPA7y3ou2eHpGNUB1YIDDVptElg==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/list": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.3.tgz", - "integrity": "sha512-Ul8el0tQy2Ucl3qMQ0fiqdJ874W1ZNjURVSgSxN+pGwVLNBVRjd6Fl7YwZFCXER2YOlzkwg+Zqozf/ZlS0EdXA==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/menu": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.6.1.tgz", - "integrity": "sha512-3v0vkTm/kInuuG8jG7jbxXDBnMQcoDZKWvYsBQq7+POt0LmijbLdbdZPBoz9TkZ3eo/OoP194LLHOaFTQyHhlw==", - "dependencies": { - "@react-stately/overlays": "^3.6.5", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-btBIcBEfSVCUm6NwJrMrMygoIu/fQGazzD0RhF7PNsfvkFiWn+TSOyQqSXcsUJVOnBfoS/dVWj6r57KA7zl3FA==", - "dependencies": { - "@internationalized/number": "^3.5.1", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/numberfield": "^3.8.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/overlays": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.5.tgz", - "integrity": "sha512-U4rCFj6TPJPXLUvYXAcvh+yP/CO2W+7f0IuqP7ZZGE+Osk9qFkT+zRK5/6ayhBDFpmueNfjIEAzT9gYPQwNHFw==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/overlays": "^3.8.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-JW5ZWiNMKcZvMTsuPeWJQLHXD5rlqy7Qk6fwUx/ZgeibvMBW/NnW19mm2+IMinzmbtERXvR6nsiA837qI+4dew==", - "dependencies": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/searchfield": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.1.tgz", - "integrity": "sha512-9A8Wghx1avRHhMpNH1Nj+jFfiF1bhsff2GEC5PZgWYzhCykw3G5bywn3JAuUS4kh7Vpqhbu4KpHAhmWPSv4B/Q==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/searchfield": "^3.5.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/select": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.2.tgz", - "integrity": "sha512-duOxdHKol93h6Ew6fap6Amz+zngoERKZLSKVm/8I8uaBgkoBhEeTFv7mlpHTgINxymMw3mMrvy6GL/gfKFwkqg==", - "dependencies": { - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/selection": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.3.tgz", - "integrity": "sha512-d/t0rIWieqQ7wjLoMoWnuHEUSMoVXxkPBFuSlJF3F16289FiQ+b8aeKFDzFTYN7fFD8rkZTnpuE4Tcxg3TmA+w==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/slider": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.2.tgz", - "integrity": "sha512-ntH3NLRG+AwVC7q4Dx9DcmMkMh9vmHjHNXAgaoqNjhvwfSIae7sQ69CkVe6XeJjIBy6LlH81Kgapz+ABe5a1ZA==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/table": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.6.tgz", - "integrity": "sha512-34YsfOILXusj3p6QNcKEaDWVORhM6WEhwPSLCZlkwAJvkxuRQFdih5rQKoIDc0uV5aZsB6bYBqiFhnjY0VERhw==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tabs": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.4.tgz", - "integrity": "sha512-WZJgMBqzLgN88RN8AxhY4aH1+I+4w1qQA0Lh3LRSDegaytd+NHixCWaP3IPjePgCB5N1UsPe96Xglw75zjHmDg==", - "dependencies": { - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/toggle": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.2.tgz", - "integrity": "sha512-SHCF2btcoK57c4lyhucRbyPBAFpp0Pdp0vcPdn3hUgqbu6e5gE0CwG/mgFmZRAQoc7PRc7XifL0uNw8diJJI0Q==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-ACtRgBQ8rphBtsUaaxvEAM0HHN9PvMuyvL0vUHd7jvBDCVZJ6it1BKu9SBKjekBkoBOw9nemtkplh9R2CA6V8Q==", - "dependencies": { - "@react-stately/overlays": "^3.6.5", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tree": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.6.tgz", - "integrity": "sha512-y8KvEoZX6+YvqjNCVGS3zA/BKw4D3XrUtUKIDme3gu5Mn6z97u+hUXKdXVCniZR7yvV3fHAIXwE5V2K8Oit4aw==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/utils": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.1.tgz", - "integrity": "sha512-yzw75GE0iUWiyps02BOAPTrybcsMIxEJlzXqtvllAb01O9uX5n0i3X+u2eCpj2UoDF4zS08Ps0jPgWxg8xEYtA==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/virtualizer": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.8.tgz", - "integrity": "sha512-Pf06ihTwExRJltGhi72tmLIo0pcjkL55nu7ifMafAAdxZK4ONxRLSuUjjpvYf/0Rs92xRZy2t/XmHREnfirdkQ==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/actionbar": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.5.tgz", - "integrity": "sha512-Z3hfIoaOaW8wJxQm1NyWVvSftpNDYv9iWqpEWBEdhxuqsUkOVszZ7KcNaF4qsm4bJIcJWn3FNKhaTKGwISZcdQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/actiongroup": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.7.tgz", - "integrity": "sha512-VsyHn6mGqEHKEIGFiHTq7rSuzuQjGVZGtnhh/9jQXW6zoSJyoM4fAnHEt+RE92NdiRv5e3+OzzrwG0TZsi87cQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/avatar": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.5.tgz", - "integrity": "sha512-/hM/BnRoUhusT16G4hf2hfe4FocxaM5H/a7aetUrmlr9e5ppX3n0VsU0btIwxdh+aJL8u2BBt2scoiJaujQPNg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/badge": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.7.tgz", - "integrity": "sha512-2Q5W9gleI83WpL1i6qPdcPC8l1V7364dpkNLcMi9DFmM2l69+QcPvSWVQMQLevmRo4cnaQ+TYsOgYv8I4rRJCg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/breadcrumbs": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.3.tgz", - "integrity": "sha512-eFto/+6J+JR58vThNcALZRA1OlqlG3GzQ/bq3q8IrrkOZcrfbEJJCWit/+53Ia98siJKuF4OJHnotxIVIz5I3w==", - "dependencies": { - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/button": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.2.tgz", - "integrity": "sha512-EnPTkGHZRtiwAoJy5q9lDjoG30bEzA/qnvKG29VVXKYAGeqY2IlFs1ypmU+z1X/CpJgPcG3I5cakM7yTVm3pSg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/buttongroup": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.7.tgz", - "integrity": "sha512-EZ/1k66GtDtWfE/udNRz2UBbt4YJumeyW1SGcZEO3jketvpms58WapLsMkCezlLz7WYaa5ADV0kU8v88APjI6g==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-hV1Thmb/AES5OmfPvvmyjSkmsEULjiDfA7Yyy70L/YKuSNKb7Su+Bf2VnZuDW3ec+GxO4JJNlpJ0AkbphWBvcg==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/checkbox": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.1.tgz", - "integrity": "sha512-kuGqjQFex0As/3gfWyk+e9njCcad/ZdnYLLiNvhlk15730xfa0MmnOdpqo9jfuFSXBjOcpxoofvEhvrRMtEdUA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/combobox": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.10.1.tgz", - "integrity": "sha512-XMno1rgVRNta49vf5nV7VJpVSVAV20tt79t618gG1qRKH5Kt2Cy8lz2fQ5vHG6UTv/6jUOvU8g5Pc93sLaTmoA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/contextualhelp": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.8.tgz", - "integrity": "sha512-Yb0zOqkWfjKCO+gpfVj69CfWPhVq6RTgwLBV47ntIlHitpbh7RDYwDVulPyaVoopPbNSFUoV4YIJZPlOgpbKjg==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/datepicker": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.2.tgz", - "integrity": "sha512-zThqFAdhQL1dqyVDsDSSTdfCjoD6634eyg/B0ZJfQxcLUR/5pch3v/gxBhbyCVDGMNHRWUWIJvY9DVOepuoSug==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-types/calendar": "^3.4.4", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/dialog": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.8.tgz", - "integrity": "sha512-RX8JsMvty8ADHRqVEkppoynXLtN4IzUh8d5z88UEBbcvWKlHfd6bOBQjQcBH3AUue5wjfpPIt6brw2VzgBY/3Q==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/divider": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.7.tgz", - "integrity": "sha512-enAlzHVwzqBPpmE+/VAO5IGVPxPrscHkdbnEkTqW9JQeMUGXd4L0TdHOGd+vtcA+gILJMnhUfT3XE4wQ4HlpVw==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/form": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.2.tgz", - "integrity": "sha512-6/isEJY4PsYoHdMaGQtqQyquXGTwB1FqCBOPKQjI/vBGWG3fL7FGfWm4Z62eTbCH4Xyv3FZuNywlT8UjPMQyKA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/grid": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.4.tgz", - "integrity": "sha512-sDVoyQcH7MoGdx5nBi5ZOU/mVFBt9YTxhvr0PZ97dMdEHZtJC1w9SuezwWS34f50yb8YAXQRTICbZYcK4bAlDA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/illustratedmessage": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.7.tgz", - "integrity": "sha512-r8WAv+w0WQSDRmDmG6jL0dXK8MjMr/lr2gBpVYVvC45Gu+fqf4VL+4zphgwASRysWclFbjQhgkgC7OEXk3GUKg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/image": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.7.tgz", - "integrity": "sha512-ty6wuan6p3Z8OzSrbjtL2k8yXHW+n0qiYKyqKpSA8TcRLDLhtvRceI7X12RuDfbAiEN6/zfLCuF47O3y7OeKug==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/label": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.1.tgz", - "integrity": "sha512-0N/UOhwrKjE9VjVbUoJCsH5UwTzSu3d5B3xtvhH8YFqSbJCI+HMKILby8i8ys55RA9fQDMScIjCJafEFWW7UWA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/layout": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.13.tgz", - "integrity": "sha512-Y3pmSsfDB+bV299F5SJannR6m/XM5IyfdqjPS0/Qx8KBBf0A3UWfL6qUr4BMEAKsEJuIXA7zT3RSo/AbGSbSyg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/link": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.3.tgz", - "integrity": "sha512-yVafjW3IejyVnK3oMBNjFABCGG6J27EUG8rvkaGaI1uB6srGUEhpJ97XLv11aj1QkXHBy3VGXqxEV3S7wn4HTw==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/listbox": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.7.tgz", - "integrity": "sha512-68y5H9CVSPFiwO6MOFxTbry9JQMK/Lb1M9i3M8TDyq1AbJxBPpgAvJ9RaqIMCucsnqCzpY/zA3D/X417zByL1w==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/menu": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.7.tgz", - "integrity": "sha512-K6KhloJVoGsqwkdeez72fkNI9dfrmLI/sNrB4XuOKo2crDQ/eyZYWyJmzz8giz/tHME9w774k487rVoefoFh5w==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/meter": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.7.tgz", - "integrity": "sha512-p+YJ0+Lpn5MLmlbFZbDH1P0ILv1+AuMcUbxLcXMIVMGn7o0FO7eVZnFuq76D+qTDm9all+TRLJix7bctOrP+5Q==", - "dependencies": { - "@react-types/progress": "^3.5.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/numberfield": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.1.tgz", - "integrity": "sha512-GaCjLQgXUGCt40SLjKk3/COMWFlN2vV/3Xs3VSLAEdFZpk99b+Ik1oR21+7ZP5/iMHuQDc1MJRWdFfIjxCvVDQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/overlays": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.5.tgz", - "integrity": "sha512-4D7EEBQigD/m8hE68Ys8eloyyZFHHduqykSIgINJ0edmo0jygRbWlTwuhWFR9USgSP4dK54duN0Mvq0m4HEVEw==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/progress": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.2.tgz", - "integrity": "sha512-aQql22kusEudsHwDEzq6y/Mh29AM+ftRDKdS5E5g4MkCY5J4FMbOYco1T5So83NIvvG9+eKcxPoJUMjQQACAyA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/provider": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.2.tgz", - "integrity": "sha512-nzxbfuh/ZJXt/blGAiRPkxi9jAUnnBkHcvljqdfizfLJlN5epaYYaTWNUSde27Oe1tAnpm2WDlLQo5+0C6C0FA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/radio": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.7.1.tgz", - "integrity": "sha512-Zut3rN1odIUBLZdijeyou+UqsLeRE76d9A+npykYGu29ndqmo3w4sLn8QeQcdj1IR71ZnG0pW2Y2BazhK5XrrQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/searchfield": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.3.tgz", - "integrity": "sha512-gBfsT1WpY8UIb74yyYmnjiHpVasph2mdmGj9i8cGF2HUYwx5p+Fr85mtCGDph0uirvRoM5ExMp4snD+ueNAVCg==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/select": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.2.tgz", - "integrity": "sha512-fGFrunednY3Pq/BBwVOf87Fsuyo/SlevL0wFIE9OOl2V5NXVaTY7/7RYA8hIOHPzmvsMbndy419BEudiNGhv4A==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/shared": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.1.tgz", - "integrity": "sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/slider": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.1.tgz", - "integrity": "sha512-FKO3YZYdrBs00XbBW5acP+0L1cCdevl/uRJiXbnLpGysO5PrSFIRS7Wlv4M7ztf6gT7b1Ao4FNC9crbxBr6BzA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/statuslight": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.7.tgz", - "integrity": "sha512-PFctvM8NJFENNWHydEK4pCMXKmjrHB2PJ/fdJ2Bi6ABRcTBXzi/qgUUdbeTG7STXlA+P2/xNgKtHheus8K+K3g==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/switch": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.1.tgz", - "integrity": "sha512-2LFEKMGeufqyYmeN/5dtkDkCPG6x9O4eu6aaBaJmPGon7C/l3yiFEgRue6oCUYc1HixR7Qlp0sPxk0tQeWzrSg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/table": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.3.tgz", - "integrity": "sha512-Hs/pMbxJdga2zBol4H5pV1FVIiRjCuSTXst6idJjkctanTexR4xkyrtBwl+rdLNoGwQ2pGii49vgklc5bFK7zA==", - "dependencies": { - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/tabs": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.5.tgz", - "integrity": "sha512-6NTSZBOWekCtApdZrhu5tHhE/8q52oVohQN+J5T7shAXd6ZAtu8PABVR/nH4BWucc8FL0OUajRqunqzQMU13gA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/text": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.7.tgz", - "integrity": "sha512-URkJHS314ppyq6JjMPZbg/P4j9vey0H/Lc2+YB96qIcebBKy8iNN0IlwRsLFXimlGDp7dgn6tv+51bdJh+CRCQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/textfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.1.tgz", - "integrity": "sha512-JBHY9M2CkL6xFaGSfWmUJVu3tEK09FaeB1dU3IEh6P41xxbFnPakYHSSAdnwMXBtXPoSHIVsUBickW/pjgfe5g==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-rV4HZRQxLRNhe24yATOxnFQtGRUmsR7mqxMupXCmd1vrw8h+rdKlQv1zW2q8nALAKNmnRXZJHxYQ1SFzb98fgg==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/view": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.7.tgz", - "integrity": "sha512-AcgLrlaZkCXH+pD4I7pTPB52Rstg1M+V2yKPP29lnqg/rOjsqLjN/gLLy/EBi97cQ+TbDbg0854vcxAKs6qclg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/well": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.7.tgz", - "integrity": "sha512-BaZ4utlEeweD8+mAYdqwq2bS8aDrXqi4xFPdfqZpHcpbSJjmGBCCS+GU2y/N2Yl1aODu5l0+gcrvxxr63bV+GA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/ui": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.5.tgz", - "integrity": "sha512-L1QISmlzoA4xuBdMpWT2vkR7NDxuROjSwC5BxS8R2SAZR4oKs0dPfODaw2uju6D/xqJIqVrSM6yQDhV51lPKyA==", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.0", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.0.tgz", - "integrity": "sha512-os3EdjfyJbrukLcZ5uYtdFRiDlLB3zq2JoXp19J/IDpZ8btibJeRZYSwjL+LscEiT2pOYaF2McMQdkZTIwnllw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/workflow": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.10.tgz", - "integrity": "sha512-CaDYaGMe2bYDozzHztrgEy0tljQWn4OBE9hJC2fAM5cMTve4viiWhcmHYYWFv3MZQyavHy1UwCL1jlXg7bK3PA==", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.4", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/workflow/node_modules/@adobe/react-spectrum-workflow": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.4.tgz", - "integrity": "sha512-XPLzIBl58HdLF9WIPB7RDAvVXvCE3SjG+HaWQhW2P9MnxSz1DEA9O7mlTlYblJkMbfk10T/+RFaSupc1yoN+TA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@swc/core": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.17.tgz", - "integrity": "sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.17", - "@swc/core-darwin-x64": "1.4.17", - "@swc/core-linux-arm-gnueabihf": "1.4.17", - "@swc/core-linux-arm64-gnu": "1.4.17", - "@swc/core-linux-arm64-musl": "1.4.17", - "@swc/core-linux-x64-gnu": "1.4.17", - "@swc/core-linux-x64-musl": "1.4.17", - "@swc/core-win32-arm64-msvc": "1.4.17", - "@swc/core-win32-ia32-msvc": "1.4.17", - "@swc/core-win32-x64-msvc": "1.4.17" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.17.tgz", - "integrity": "sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.17.tgz", - "integrity": "sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.17.tgz", - "integrity": "sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.17.tgz", - "integrity": "sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.17.tgz", - "integrity": "sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.17.tgz", - "integrity": "sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.17.tgz", - "integrity": "sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.17.tgz", - "integrity": "sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.17.tgz", - "integrity": "sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.17.tgz", - "integrity": "sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==", - "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/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", - "dev": true, - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "node_modules/@types/react": { - "version": "17.0.80", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz", - "integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "^0.16", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", - "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", - "dev": true, - "dependencies": { - "@types/react": "^17" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.33", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", - "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", - "dev": true, - "dependencies": { - "@swc/core": "^1.3.107" - }, - "peerDependencies": { - "vite": "^4 || ^5" - } - }, - "node_modules/abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==" - }, - "node_modules/array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "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-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "dependencies": { - "array-bounds": "^1.0.0" - } - }, - "node_modules/array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==" - }, - "node_modules/array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "node_modules/bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==" - }, - "node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bootstrap": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "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/canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", - "dependencies": { - "element-size": "^1.1.1" - } - }, - "node_modules/clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "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-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "dependencies": { - "color-parse": "^1.3.8" - } - }, - "node_modules/color-alpha/node_modules/color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "dependencies": { - "clamp": "^1.0.1" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "dependencies": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "node_modules/color-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", - "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "dependencies": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - } - }, - "node_modules/color-rgba/node_modules/color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "dependencies": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==" - }, - "node_modules/css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, - "node_modules/css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "dependencies": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "node_modules/css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" - }, - "node_modules/css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" - }, - "node_modules/css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" - }, - "node_modules/css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" - }, - "node_modules/css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==" - }, - "node_modules/css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" - }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", - "dependencies": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - }, - "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" - } - }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "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/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "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-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "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/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", - "dependencies": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "node_modules/dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "node_modules/element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==" - }, - "node_modules/elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "dependencies": { - "strongly-connected-components": "^1.0.1" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "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/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "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/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-target-shim": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", - "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "dependencies": { - "is-string-blank": "^1.0.1" - } - }, - "node_modules/flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "dependencies": { - "dtype": "^2.0.0" - } - }, - "node_modules/font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "dependencies": { - "css-font": "^1.0.0" - } - }, - "node_modules/font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "dependencies": { - "css-font": "^1.2.0" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "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", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "node_modules/get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "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", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "node_modules/gl-text": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", - "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^2.0.0", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "dependencies": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "node_modules/glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", - "dependencies": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "node_modules/glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", - "dependencies": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - } - }, - "node_modules/glsl-resolve/node_modules/resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==" - }, - "node_modules/glsl-resolve/node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==" - }, - "node_modules/glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", - "dependencies": { - "glsl-tokenizer": "^2.0.0" - } - }, - "node_modules/glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==" - }, - "node_modules/glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", - "dependencies": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "node_modules/glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==" - }, - "node_modules/glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==" - }, - "node_modules/glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==" - }, - "node_modules/glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==" - }, - "node_modules/glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==" - }, - "node_modules/glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "dependencies": { - "through2": "^0.6.3" - } - }, - "node_modules/glsl-tokenizer/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/glsl-tokenizer/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/glsl-tokenizer/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/glsl-tokenizer/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "dependencies": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - }, - "bin": { - "glslify": "bin.js" - } - }, - "node_modules/glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "dependencies": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "node_modules/glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "dependencies": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==" - }, - "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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "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.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.11.tgz", - "integrity": "sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.6", - "tslib": "^2.4.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "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", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "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", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "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-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-mobile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", - "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "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", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "node_modules/is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "node_modules/legacy-swc-helpers": { - "name": "@swc/helpers", - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/linkifyjs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz", - "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==" - }, - "node_modules/lodash.clamp": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", - "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", - "dependencies": { - "once": "~1.3.0" - } - }, - "node_modules/map-limit/node_modules/once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/mapbox-gl": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", - "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", - "peer": true, - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==" - }, - "node_modules/mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", - "dependencies": { - "mouse-event": "^1.0.0" - } - }, - "node_modules/mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==" - }, - "node_modules/mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==" - }, - "node_modules/mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", - "dependencies": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - } - }, - "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==" - }, - "node_modules/mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", - "deprecated": "Redundant dependency in your project.", - "dependencies": { - "almost-equal": "^1.1.0" - } - }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" - }, - "node_modules/nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" - }, - "node_modules/native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" - }, - "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==" - }, - "node_modules/number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", - "dependencies": { - "is-finite": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "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", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "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/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/papaparse": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz", - "integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw==" - }, - "node_modules/parenthesis": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", - "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" - }, - "node_modules/parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "dependencies": { - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, - "node_modules/parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==" - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/plotly.js": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.32.0.tgz", - "integrity": "sha512-QBYyfVFs1XdoXQBq/f7SoiqQD/BEyDA5WwvN1NwY4ZTrTX6GmJ5jE5ydlt1I4K8i5W6H1atgti31jcSYD6StKA==", - "dependencies": { - "@plotly/d3": "3.8.1", - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@plotly/mapbox-gl": "1.13.4", - "@turf/area": "^6.4.0", - "@turf/bbox": "^6.4.0", - "@turf/centroid": "^6.0.2", - "base64-arraybuffer": "^1.0.2", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "2.0.0", - "color-rgba": "2.1.1", - "country-regex": "^1.1.0", - "d3-force": "^1.2.1", - "d3-format": "^1.4.5", - "d3-geo": "^1.12.1", - "d3-geo-projection": "^2.9.0", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^3.0.1", - "d3-time": "^1.1.0", - "d3-time-format": "^2.2.3", - "fast-isnumeric": "^1.1.4", - "gl-mat4": "^1.2.0", - "gl-text": "^1.4.0", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "is-mobile": "^4.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "native-promise-only": "^0.8.1", - "parse-svg-path": "^0.1.2", - "point-in-polygon": "^1.1.0", - "polybooljs": "^1.2.0", - "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", - "regl-error2d": "^2.0.12", - "regl-line2d": "^3.1.3", - "regl-scatter2d": "^3.3.1", - "regl-splom": "^1.0.14", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "node_modules/point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "node_modules/polybooljs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", - "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==" - }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "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.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/potpack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" - }, - "node_modules/probe-image-size": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", - "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", - "dependencies": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "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", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-beautiful-dnd": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", - "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/react-plotly.js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", - "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "plotly.js": ">1.34.0", - "react": ">0.13.0" - } - }, - "node_modules/react-redux": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", - "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17 || ^18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", - "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" - } - }, - "node_modules/react-window": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", - "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - }, - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", - "peerDependencies": { - "redux": "^4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "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/regl": { - "name": "@plotly/regl", - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", - "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" - }, - "node_modules/regl-error2d": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", - "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", - "dependencies": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-line2d": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", - "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0" - } - }, - "node_modules/regl-scatter2d": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", - "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", - "dependencies": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-splom": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", - "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.2.3" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "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-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "node_modules/right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" - }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "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", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "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/shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "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/signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", - "engines": { - "node": "*" - } - }, - "node_modules/static-eval": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", - "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", - "dependencies": { - "escodegen": "^2.1.0" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", - "dependencies": { - "debug": "2" - } - }, - "node_modules/stream-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stream-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "dependencies": { - "parenthesis": "^3.1.5" - } - }, - "node_modules/strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==" - }, - "node_modules/supercluster": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", - "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", - "dependencies": { - "kdbush": "^3.0.0" - } - }, - "node_modules/superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==" - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "node_modules/svg-path-bounds": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", - "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", - "dependencies": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - } - }, - "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "dependencies": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - }, - "node_modules/svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "dependencies": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" - }, - "node_modules/tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "node_modules/to-float32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", - "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" - }, - "node_modules/to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", - "dependencies": { - "parse-unit": "^1.0.1" - } - }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "dependencies": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "node_modules/update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==" - }, - "node_modules/use-memo-one": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", - "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/vite": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.5.tgz", - "integrity": "sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.16.14", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "dependencies": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" - } - }, - "node_modules/weak-map": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", - "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==" - }, - "node_modules/webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", - "dependencies": { - "get-canvas-context": "^1.0.1" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "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", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "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", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "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/world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", - "dependencies": { - "object-assign": "^4.1.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - } - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.34.1", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.34.1.tgz", - "integrity": "sha512-J1HOjntW+H8xusfc5xLnIlUXNOzllp4f7qzh3LlDOsZuH8oBH8sIYmBVp4ijVhRFUKa10qg088role1On3UGbg==", - "requires": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/actionbar": "^3.4.3", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/avatar": "^3.0.10", - "@react-spectrum/badge": "^3.1.11", - "@react-spectrum/breadcrumbs": "^3.9.5", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/combobox": "^3.12.3", - "@react-spectrum/contextualhelp": "^3.6.9", - "@react-spectrum/datepicker": "^3.9.4", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/icon": "^3.7.11", - "@react-spectrum/illustratedmessage": "^3.4.11", - "@react-spectrum/image": "^3.4.11", - "@react-spectrum/inlinealert": "^3.2.3", - "@react-spectrum/labeledvalue": "^3.1.12", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/link": "^3.6.5", - "@react-spectrum/list": "^3.7.8", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/meter": "^3.4.11", - "@react-spectrum/numberfield": "^3.9.1", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/provider": "^3.9.5", - "@react-spectrum/radio": "^3.7.4", - "@react-spectrum/searchfield": "^3.8.4", - "@react-spectrum/slider": "^3.6.7", - "@react-spectrum/statuslight": "^3.5.11", - "@react-spectrum/switch": "^3.5.3", - "@react-spectrum/table": "^3.12.8", - "@react-spectrum/tabs": "^3.8.8", - "@react-spectrum/tag": "^3.2.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/theme-dark": "^3.5.8", - "@react-spectrum/theme-default": "^3.5.8", - "@react-spectrum/theme-light": "^3.4.8", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/view": "^3.6.8", - "@react-spectrum/well": "^3.4.11", - "@react-stately/collections": "^3.10.5", - "@react-stately/data": "^3.11.2", - "@react-types/shared": "^3.22.1", - "client-only": "^0.0.1" - } - }, - "@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "requires": { - "commander": "^2.15.1" - } - }, - "@deephaven/chart": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.58.0.tgz", - "integrity": "sha512-rP4MKR3OswDRbt58I2r65ADHbYHVeSlBFxEoZDK3oJjkh5XEnsd0RpvEQn3gAFmQuUxk9JPUPnRx+d/6iu6zPQ==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.18.2", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - } - }, - "@deephaven/components": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.58.0.tgz", - "integrity": "sha512-yfdyi2LTKs/0N930kuFo9j407XW04jqUHVToEhNzTkgBibNZ4XJ8GwEHJDRg+pYOl/vlvIzNI/OJLd9q+IuEdw==", - "requires": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" - } - }, - "@deephaven/console": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.58.0.tgz", - "integrity": "sha512-jfQVsBmzJO/qnv4pQyJcyZZ3EdBPUeHa5r94VdtL0XKTVqiViF4jrUH2+mfdW5SLNwpwnjhBdfPZ7da1ynJxWQ==", - "requires": { - "@deephaven/chart": "^0.58.0", - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-bootstrap": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" - } - }, - "@deephaven/dashboard": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.58.0.tgz", - "integrity": "sha512-3D3xo10uU/fnQmyLiLOh14RdjEqk6NIu79MuuBJw8ESaDx9BN9ESZyU02QU/JcwXZjahJoRIsquvD4f0iTawGA==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/redux": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.ismatch": "^4.1.1", - "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" - } - }, - "@deephaven/filters": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.58.0.tgz", - "integrity": "sha512-7FRCEAjoo0e0gRZbdDxoTrC8SSqwL9IDH4Z23OjIOQ5RBS7MypFeomFLLJns9Sg1rOXXixG0Of7Zqv6cR8hC6Q==" - }, - "@deephaven/golden-layout": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.58.0.tgz", - "integrity": "sha512-AN5AWH1Qr1Mof95ZWBGPRds+L4WBa0ePRTpmjDffcEuoPjKbd2KDzuiRp3au/QsrkfcyLz4rWQmSd+1dHb/qeQ==", - "requires": { - "@deephaven/components": "^0.58.0", - "jquery": "^3.6.0" - } - }, - "@deephaven/grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.58.0.tgz", - "integrity": "sha512-BmSuLKm70qzHEZPaq8pc3CCOXcxHw9KmWwuZTQnjMMGHSyGmDgseydODwOatbuW4QohY+B03Uf1GdaEpAT0GVw==", - "requires": { - "@deephaven/utils": "^0.58.0", - "classnames": "^2.3.1", - "color-convert": "^2.0.1", - "event-target-shim": "^6.0.2", - "linkifyjs": "^4.1.0", - "lodash.clamp": "^4.0.3", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "prop-types": "^15.7.2" - } - }, - "@deephaven/icons": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.58.0.tgz", - "integrity": "sha512-jD8rEOCTbelkXT2BRGTRamP8bmHmk/Hdo8uu6s3ydjI2d52Rp7YaCjsspNS9fGV1XhpNF6N2lTC3rdtUWXvMFg==", - "requires": { - "@fortawesome/fontawesome-common-types": "^6.1.1" - } - }, - "@deephaven/iris-grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.58.0.tgz", - "integrity": "sha512-HYMOxjmS/gpkTHshDOYsplvVgy9RW7mGvySpj4G00k5M595PJuqZ8q3VfnxVH0Tswb44bk1WmQhvHndAvWMg2A==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/console": "^0.58.0", - "@deephaven/filters": "^0.58.0", - "@deephaven/grid": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@dnd-kit/core": "^6.0.5", - "@dnd-kit/sortable": "^7.0.0", - "@dnd-kit/utilities": "^3.2.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "deep-equal": "^2.0.5", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" - } - }, - "@deephaven/jsapi-bootstrap": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.58.0.tgz", - "integrity": "sha512-w7oubRFxkTbitfDs7JNALrsRZqHYtgbfllcaUnlTFXD688E/8kSjVVi4yaE8aKWmMDCQLFU0QoFsfC1Z+kxWeA==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0" - } - }, - "@deephaven/jsapi-types": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-0.58.0.tgz", - "integrity": "sha512-CjJXqHPPTWAqCYJRXC/Zb2VEdaXutyx55Hlzeeg/1vYnWY5t5Lxld4PQkuO4rvsJzzkuEWzdgggMw7Iu9ZVuQQ==" - }, - "@deephaven/jsapi-utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.58.0.tgz", - "integrity": "sha512-isX/HdSl8XBQSPJHockM5ybGOBRplT/4M10b4loB4nZpY0y5bCY2H7sdutsICE6FTSMInAD+cMGNH6nPF+IGfg==", - "requires": { - "@deephaven/filters": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.clamp": "^4.0.3", - "nanoid": "^5.0.7" - } - }, - "@deephaven/log": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.58.0.tgz", - "integrity": "sha512-al05eDP3qamkWuqaQlsMESEn+rTRiaMZLAI8ePlHnlcEPrQS2ymkcO6sY6Am4yk3l5JQg8FKHA8LjHFZfkvTsQ==", - "requires": { - "event-target-shim": "^6.0.2" - } - }, - "@deephaven/plugin": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.58.0.tgz", - "integrity": "sha512-QmmaMfNbsKi2hLJqwxilE57Mqio1mT9HhmIyc0qa0G60kPI1NuMAV3TJWu4+s9xQBMqolzrD8OD3jfLzrfK5VA==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/iris-grid": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - }, - "@deephaven/react-hooks": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.58.0.tgz", - "integrity": "sha512-XeQgk8VqaTwcI68660pNd5q611EkKtqIxKaZnPMR5GzbHn1zE55fFAUi5UdgrSJhhe2oaIz2tFbVd8uaduANsw==", - "requires": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.debounce": "^4.0.8", - "nanoid": "^5.0.7" - } - }, - "@deephaven/redux": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.58.0.tgz", - "integrity": "sha512-RnhldimzNK1AJv9OIcKgXMZ5BXe+1Rm6/BXjDnAnl8HREEGtuVvIUna2g3s+FoOokfQCRIIzNkPXTwyJDGRO2A==", - "requires": { - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/plugin": "^0.58.0", - "deep-equal": "^2.0.5", - "redux-thunk": "2.4.1" - } - }, - "@deephaven/storage": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.58.0.tgz", - "integrity": "sha512-GGgcqHdgQCko1vxSJttwDw04u4atbv51C/t8IJPdHoTzd1HoY/yYhX639UranueS5LygBTwu4QCM73CMuHS0eg==", - "requires": { - "@deephaven/filters": "^0.58.0", - "@deephaven/log": "^0.58.0", - "lodash.throttle": "^4.1.1" - } - }, - "@deephaven/tsconfig": { - "version": "0.72.0", - "resolved": "https://registry.npmjs.org/@deephaven/tsconfig/-/tsconfig-0.72.0.tgz", - "integrity": "sha512-ER4+KsrTBO8rhd4YA6SY5dRBZjUajrNKb2yQijSXNZTbWbQCet/522Yui2YCgWFBRbM5GvYGDoUcc/07tZeLZQ==", - "dev": true - }, - "@deephaven/utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.58.0.tgz", - "integrity": "sha512-5zmnUYwAT6ognsZ7SjhEF6OS1xjF4nP3RixEO+CEZdBxen5Q8pZ2CjhPv2FvuqAUGEx+MhPq/yD1AXvzu3HITw==" - }, - "@dnd-kit/accessibility": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz", - "integrity": "sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@dnd-kit/core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.1.0.tgz", - "integrity": "sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg==", - "requires": { - "@dnd-kit/accessibility": "^3.1.0", - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - } - }, - "@dnd-kit/sortable": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", - "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", - "requires": { - "@dnd-kit/utilities": "^3.2.0", - "tslib": "^2.0.0" - } - }, - "@dnd-kit/utilities": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", - "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "dev": true, - "optional": true - }, - "@formatjs/ecma402-abstract": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz", - "integrity": "sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==", - "requires": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "@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" - } - }, - "@formatjs/icu-messageformat-parser": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.6.tgz", - "integrity": "sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==", - "requires": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/icu-skeleton-parser": "1.8.0", - "tslib": "^2.4.0" - } - }, - "@formatjs/icu-skeleton-parser": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.0.tgz", - "integrity": "sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==", - "requires": { - "@formatjs/ecma402-abstract": "1.18.2", - "tslib": "^2.4.0" - } - }, - "@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" - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", - "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", - "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", - "requires": { - "@fortawesome/fontawesome-common-types": "6.5.2" - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", - "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "requires": { - "prop-types": "^15.8.1" - } - }, - "@internationalized/date": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz", - "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@internationalized/message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.2.tgz", - "integrity": "sha512-MHAWsZWz8jf6jFPZqpTudcCM361YMtPIRu9CXkYmKjJ/0R3pQRScV5C0zS+Qi50O5UAm8ecKhkXx6mWDDcF6/g==", - "requires": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "@internationalized/number": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.1.tgz", - "integrity": "sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@internationalized/string": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.1.tgz", - "integrity": "sha512-vWQOvRIauvFMzOO+h7QrdsJmtN1AXAFVcaLWP9AseRN2o7iHceZ6bIXhBD4teZl8i91A3gxKnWBlGgjCwU6MFQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", - "requires": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - } - }, - "@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==" - }, - "@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", - "requires": {} - }, - "@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" - }, - "@mapbox/tiny-sdf": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", - "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" - }, - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" - }, - "@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "requires": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" - }, - "@plotly/d3": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz", - "integrity": "sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg==" - }, - "@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "requires": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "requires": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "@plotly/mapbox-gl": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", - "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", - "requires": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - } - }, - "@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "requires": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "@react-aria/actiongroup": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.3.tgz", - "integrity": "sha512-o1qw7w7GdL8vsOuzBc2mil+MM1CWWDDZ1+VhWnVwoDVt5Pxj36981leTh/WTS58IQ34N7p/jVdQMraQ25EJJyA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/breadcrumbs": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.11.tgz", - "integrity": "sha512-bQz4g2tKvcWxeqPGj9O0RQf++Ka8f2o/pJMJB+QQ27DVQWhxpQpND//oFku2aFYkxHB/fyD9qVoiqpQR25bidw==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/button": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.3.tgz", - "integrity": "sha512-ZXo2VGTxfbaTEnfeIlm5ym4vYpGAy8sGrad8Scv+EyDAJWLMKokqctfaN6YSWbqUApC3FN63IvMqASflbmnYig==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/calendar": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.6.tgz", - "integrity": "sha512-PA0Ur5WcODMn7t2gCUvq61YktkB+WlSZjzDr5kcY3sdl53ZjiyqCa2hYgrb6R0J859LVJXAp+5Qaproz8g1oLA==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/checkbox": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.1.tgz", - "integrity": "sha512-b4rtrg5SpRSa9jBOqzJMmprJ+jDi3KyVvUh+DsvISe5Ti7gVAhMBgnca1D0xBp22w2jhk/o4gyu1bYxGLum0GA==", - "requires": { - "@react-aria/form": "^3.0.3", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/toggle": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/form": "^3.0.1", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/combobox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.4.tgz", - "integrity": "sha512-HyTWIo2B/0xq0Of+sDEZCfJyf4BvCvDYIWG4UhjqL1kHIHIGQyyr+SldbVUjXVYnk8pP1eGB3ttiREujjjALPQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/listbox": "^3.11.5", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/datepicker": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.3.tgz", - "integrity": "sha512-1AjCAizd88ACKjVNhFazX4HZZFwWi2rsSlGCTm66Nx6wm5N/Cpbm466dpYEFyQUsKSOG4CC65G1zfYoMPe48MQ==", - "requires": { - "@internationalized/date": "^3.5.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/datepicker": "^3.9.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/datepicker": "^3.7.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/dialog": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.12.tgz", - "integrity": "sha512-7UJR/h/Y364u6Ltpw0bT51B48FybTuIBacGpEJN5IxZlpxvQt0KQcBDiOWfAa/GQogw4B5hH6agaOO0nJcP49Q==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/dnd": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.3.tgz", - "integrity": "sha512-0gi6sRnr97fSQnGy+CMt+99/+vVqr+qv2T9Ts8X9TAzxHNokz5QfSL88QSlTU36EnAVLxPY18iZQWCExSjKpEQ==", - "requires": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/dnd": "^3.2.8", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/focus": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.16.2.tgz", - "integrity": "sha512-Rqo9ummmgotESfypzFjI3uh58yMpL+E+lJBbQuXkBM0u0cU2YYzu0uOrFrq3zcHk997udZvq1pGK/R+2xk9B7g==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-aria/form": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.3.tgz", - "integrity": "sha512-5Q2BHE4TTPDzGY2npCzpRRYshwWUb3SMUA/Cbz7QfEtBk+NYuVaq3KjvqLqgUUdyKtqLZ9Far0kIAexloOC4jw==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/grid": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.8.tgz", - "integrity": "sha512-7Bzbya4tO0oIgqexwRb8D6ZdC0GASYq9f/pnkrqocgvG9e1SCld4zOioKbYQDvAK/NnbCgXmmdqFAcLM/iazaA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/gridlist": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.5.tgz", - "integrity": "sha512-RmHEJ++vngHYEWbUCtLLmGh7H3vNd2Y9S0q/9SgHFPbqPZycT5mxDZ2arqpOXeHRVRvPBaW9ZlMxI2bPOePrYw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/i18n": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.10.2.tgz", - "integrity": "sha512-Z1ormoIvMOI4mEdcFLYsoJy9w/EzBdBmgfLP+S/Ah+1xwQOXpgwZxiKOhYHpWa0lf6hkKJL34N9MHJvCJ5Crvw==", - "requires": { - "@internationalized/date": "^3.5.2", - "@internationalized/message": "^3.1.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/interactions": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.1.tgz", - "integrity": "sha512-AlHf5SOzsShkHfV8GLLk3v9lEmYqYHURKcXWue0JdYbmquMRkUsf/+Tjl1+zHVAQ8lKqRnPYbTmc4AcZbqxltw==", - "requires": { - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/label": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.6.tgz", - "integrity": "sha512-ap9iFS+6RUOqeW/F2JoNpERqMn1PvVIo3tTMrJ1TY1tIwyJOxdCBRgx9yjnPBnr+Ywguep+fkPNNi/m74+tXVQ==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.5.tgz", - "integrity": "sha512-kg8CxKqkciQFzODvLAfxEs8gbqNXFZCW/ISOE2LHYKbh9pA144LVo71qO3SPeYVVzIjmZeW4vEMdZwqkNozecw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/listbox": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.5.tgz", - "integrity": "sha512-y3a3zQYjT+JKgugCMMKS7K9sRoCoP1Z6Fiiyfd77OHXWzh9RlnvWGsseljynmbxLzSuPwFtCYkU1Jz4QwsPUIg==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/live-announcer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.2.tgz", - "integrity": "sha512-aOyPcsfyY9tLCBhuUaYCruwcd1IrYLc47Ou+J7wMzjeN9v4lsaEfiN12WFl8pDqOwfy6/7It2wmlm5hOuZY8wQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/menu": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.13.1.tgz", - "integrity": "sha512-jF80YIcvD16Fgwm5pj7ViUE3Dj7z5iewQixLaFVdvpgfyE58SD/ZVU9/JkK5g/03DYM0sjpUKZGkdFxxw8eKnw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/tree": "^3.7.6", - "@react-types/button": "^3.9.2", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-P1G3Jdh0f/uieUDqvc3Ee4wzqBJa7H077BVSC3KPRqEp6YY7JimZGWjOwbFlO2PXhryXm/dI8EzUmh+4ZXjq/g==", - "requires": { - "@react-aria/progress": "^3.4.11", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/numberfield": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.1.tgz", - "integrity": "sha512-JQ1Z+Ho5H+jeav7jt9A4vBsIQR/Dd2CFbObrULjGkqSrnWjARFZBv3gZwmfGCtplEPeAv9buYKHAqebPtJNUww==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/overlays": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.21.1.tgz", - "integrity": "sha512-djEBDF+TbIIOHWWNpdm19+z8xtY8U+T+wKVQg/UZ6oWnclSqSWeGl70vu73Cg4HVBJ4hKf1SRx4Z/RN6VvH4Yw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/progress": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.11.tgz", - "integrity": "sha512-RePHbS15/KYFiApYLdwazwvWKsB9q0Kn5DGCSb0hqCC+k2Eui8iVVOsegswiP+xqkk/TiUCIkBEw22W3Az4kTg==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-CTUTR+qt3BLjmyQvKHZuVm+1kyvT72ZptOty++sowKXgJApTLdjq8so1IpaLAr8JIfzqD5I4tovsYwIQOX8log==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/searchfield": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.3.tgz", - "integrity": "sha512-mnYI969R7tU3yMRIGmY1+peq7tmEW0W3MB/J2ImK36Obz/91tTtspHHEeFtPlQDLIyvVPB0Ucam4LIxCKPJm/Q==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/searchfield": "^3.5.1", - "@react-types/button": "^3.9.2", - "@react-types/searchfield": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/select": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.3.tgz", - "integrity": "sha512-9KCxI41FI+jTxEfUzRsMdJsZvjkCuuhL4UHig8MZXtXs0nsi7Ir3ezUDQ9m5MSG+ooBYM/CA9DyLDvo5Ioef+g==", - "requires": { - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/listbox": "^3.11.5", - "@react-aria/menu": "^3.13.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/select": "^3.6.2", - "@react-types/button": "^3.9.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/selection": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.5.tgz", - "integrity": "sha512-gO5jBUkc7WdkiFMlWt3x9pTSuj3Yeegsxfo44qU5NPlKrnGtPRZDWrlACNgkDHu645RNNPhlyoX0C+G8mUg1xA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/separator": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.11.tgz", - "integrity": "sha512-UTla+3P2pELpP73WSfbwZgP1y1wODFBQbEOHnUxxO8ocyaUyQLJdvc07bBLLpPoyutlggRG0v9ACo0Rui7AjOg==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/slider": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.6.tgz", - "integrity": "sha512-ZeZhyHzhk9gxGuThPKgX2K3RKsxPxsFig1iYoJvqP8485NtHYQIPht2YcpEKA9siLxGF0DR9VCfouVhSoW0AEA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/spinbutton": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.3.tgz", - "integrity": "sha512-IlfhRu/pc9zOt2C5zSEB7NmmzddvWisGx2iGzw8BwIKMD+cN3uy+Qwp+sG6Z/JzFEBN0F6Mxm3l5lhbiqjpICQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/ssr": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.2.tgz", - "integrity": "sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/switch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.2.tgz", - "integrity": "sha512-X5m/omyhXK+V/vhJFsHuRs2zmt9Asa/RuzlldbXnWohLdeuHMPgQnV8C9hg3f+sRi3sh9UUZ64H61pCtRoZNwg==", - "requires": { - "@react-aria/toggle": "^3.10.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/table": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.5.tgz", - "integrity": "sha512-P2nHEDk2CCoEbMFKNCyBC9qvmv7F/IXARDt/7z/J4mKFgU2iNSK+/zw6yrb38q33Zlk8hDaqSYNxHlMrh+/1MQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tabs": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.5.tgz", - "integrity": "sha512-Jvt33/W+66n5oCxVwHAYarJ3Fit61vULiPcG7uTez0Mf11cq/C72wOrj+ZuNz6PTLTi2veBNQ7MauY72SnOjRg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/tabs": "^3.6.4", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tag": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.3.tgz", - "integrity": "sha512-tlJD9qj1XcsPIZD7DVJ6tWv8t7Z87/8qkbRDx7ugNqeHso9z0WqH9ZkSt17OFUWE2IQIk3V8D3iBSOtmhXcZGQ==", - "requires": { - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/textfield": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.3.tgz", - "integrity": "sha512-wPSjj/mTABspYQdahg+l5YMtEQ3m5iPCTtb5g6nR1U1rzJkvS4i5Pug6PUXeLeMz2H3ToflPWGlNOqBioAFaOQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/toggle": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.2.tgz", - "integrity": "sha512-DgitscHWgI6IFgnvp2HcMpLGX/cAn+XX9kF5RJQbRQ9NqUgruU5cEEGSOLMrEJ6zXDa2xmOiQ+kINcyNhA+JLg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tooltip": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.2.tgz", - "integrity": "sha512-6jXOSGPao3gPgUQWLbH2r/jxGMqIaIKrJgfwu9TQrh+UkwwiTYW20EpEDCYY2nRFlcoi7EYAiPDSEbHCwXS7Lg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/tooltip": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/utils": { - "version": "3.23.2", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.23.2.tgz", - "integrity": "sha512-yznR9jJ0GG+YJvTMZxijQwVp+ahP66DY0apZf7X+dllyN+ByEDW+yaL1ewYPIpugxVzH5P8jhnBXsIyHKN411g==", - "requires": { - "@react-aria/ssr": "^3.9.2", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-aria/virtualizer": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.10.tgz", - "integrity": "sha512-oDvGgexK6phB9XECWvAaKTq/nRKxHjmJSiZ2gv9j72JFoky4iVEHKAV6Qnar0VBcEpk16JcJVI/wf1xr9F+sjQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/visually-hidden": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.10.tgz", - "integrity": "sha512-np8c4wxdbE7ZrMv/bnjwEfpX0/nkWy9sELEb0sK8n4+HJ+WycoXXrVxBUb9tXgL/GCx5ReeDQChjQWwajm/z3A==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/actionbar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.3.tgz", - "integrity": "sha512-LIg3a5z0bnFIkA1teaGUo/RdT4ZKPpUUF0RxPSm0nHWEzolSgD7BN4ijK5UxsDLA2cfNxv78s+vwHHKkKnsjSA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/actionbar": "^3.1.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/actiongroup": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.3.tgz", - "integrity": "sha512-VJASE+Y75Q885z9mx7CVELrX8PuZPbRnGFQnkoRnwZOTpMVZM6wQxA4IcAfsFVvaVIpHgBwtQTI1Ib+gAdtqgw==", - "requires": { - "@react-aria/actiongroup": "^3.7.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/avatar": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.10.tgz", - "integrity": "sha512-PvsCTTcjNN7QSsa3iCc2UF5LeQCwFNaiR0/xvpk+/ViP1wVq+xFR1tfSrbAq7TAF1B3NQNfI+wepy2ol5l8X2g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/avatar": "^3.0.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/badge": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.11.tgz", - "integrity": "sha512-YOuUBdWmqDQQrNI0uUpazWv/qYmFeDCsJVfQnl/K4J0A6/x7wuvz3iLPJKYuvmqG45/I+WXYFFaNuWOm4jCMzA==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/badge": "^3.1.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/breadcrumbs": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.5.tgz", - "integrity": "sha512-MV1b077f189biweuI8H1/D6F7Nwrao0phYzAKqjaTa8bhXf180ej3VhtEEhrSyEhhMrHG3pPzCCbNUn2VMXDlg==", - "requires": { - "@react-aria/breadcrumbs": "^3.5.11", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/button": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.16.2.tgz", - "integrity": "sha512-T0B4EUeAAfsocTMZpfKYIsPMIbuwjB1+hfbZyBBvWt8gerLiEiPAwt6+ga1YzV7C6aAz2FPeTT+zd/RxouDTPw==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/buttongroup": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.11.tgz", - "integrity": "sha512-yJv6yBZRLIPYdOAch4FVhdrI0xZz5PPuLiSA6HF/9LlIimALj0qBgCsbQPPThz/UV8+8Y1F76wQUsDcj+iub/A==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/buttongroup": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/calendar": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.7.tgz", - "integrity": "sha512-eBH8SAHHbhprbzk445wnNrW80bnm7Kv5rwmcDBd7/FGb5EhWnQgcQtBo3z79dpCXCl8UtpLsih3eDV9QQSjIDA==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/calendar": "^3.5.6", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/checkbox": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.4.tgz", - "integrity": "sha512-PzUaSza13wh7YipWJLd/0q/nkAnEnxso7hdvMzDLYcw0iKhXNTM2fUoouUuY1SsbithlF2GS5REYyMpQ4FNO3g==", - "requires": { - "@react-aria/checkbox": "^3.14.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/combobox": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.12.3.tgz", - "integrity": "sha512-hskwbdqXSSNEBRYTn3XESSnLGjELU4Lfht3GkZCvcQt02TVvu9NMETSkVe4lwCYV2hwXtPFGyl3jXvmA3MQurQ==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/combobox": "^3.8.4", - "@react-aria/dialog": "^3.5.12", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/contextualhelp": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.9.tgz", - "integrity": "sha512-M0GUmZSLWm6pBAqy0Wwv1srlUPxBSvhQxTxvxtBcRSQwCIE1BcnQ6VaJxlx6n+Ocr14GwYH6MTpD1ZLMUvWeiA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/utils": "^3.11.5", - "@react-types/contextualhelp": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/datepicker": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.4.tgz", - "integrity": "sha512-NyFIH68WqbGajBMe/UMxZDwNwaPL/AKJeLC9CY+GcLp4uncWjI42LdcoBPSQFoEJHLtJlLhx+r7qWO/PMOhg3Q==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/datepicker": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/datepicker": "^3.9.2", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/dialog": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.9.tgz", - "integrity": "sha512-CxyARi0qYOJi24YVqXZp7tHVreYQoYc7+VBZzcn8dTbIL1CSxcSGbRGXOpHiaAejZ9/3lPm/PTbrWrKUBLbckA==", - "requires": { - "@react-aria/dialog": "^3.5.12", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/divider": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.11.tgz", - "integrity": "sha512-u6pyqBEc4JRpntF+KGuzmkzn+rJh04kfvjJ3Tx4F9IucaY8xCfglhunf6/yvRqQB0VaMdlxKy5BGhHgBJzUBiA==", - "requires": { - "@react-aria/separator": "^3.3.11", - "@react-spectrum/utils": "^3.11.5", - "@react-types/divider": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/dnd": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.8.tgz", - "integrity": "sha512-GfLqduIBpH2LArBsFpNa4i9cYeFg7lJpqwrLVJRl96DbhdXEcwt9a4tqvsegkqKn6KPHDPG7uTX0OqPoQJluXQ==", - "requires": { - "@react-aria/dnd": "^3.5.3", - "@react-stately/dnd": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/form": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.4.tgz", - "integrity": "sha512-xAS6vFM6dzKJc7gkC8Qy76VXLxZ9VqPZq4xxQeySvsO8pOujTFCL97QkS0mDjMOdpu72VDIF5JegK1Edlewr7g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/form": "^3.0.1", - "@react-types/form": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/icon": { - "version": "3.7.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.11.tgz", - "integrity": "sha512-CTvbukq0g2oEjMqwMDx2qjfmFAv6u7/KwHRn9pGf6BUiU53Zlnl6Fjtm+c9cw8d9GcwlXyIWYBMIKyMm4+7g5A==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/illustratedmessage": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.11.tgz", - "integrity": "sha512-KJdcF+YY2rPZBTP5P38MEQBoNLglP1QUaCmbPH8a5dSZ+wj5EsOgseFa0fxAEZ23q9Wo9Fv9P9niRq0/479KTQ==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/illustratedmessage": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/image": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.11.tgz", - "integrity": "sha512-pzYubgkkC5Ic3eKrNlPUFPbVUTUvZ7DObmGpQvmgmG0xipmUAscYKFEBr4LhCsy/29Sm7Tz4zsGUdA2vM5eA8g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/image": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/inlinealert": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.3.tgz", - "integrity": "sha512-NX1bZvmI3EOBTRWaT4dzVyFxAuePPbXASZeJ4/wAnhvWDN65rKrctn+VZW3x6ZQoZ/WkQl4qW1txjVcLHkRBWg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/label": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.4.tgz", - "integrity": "sha512-38hk6wqUwDCyYeScF1NIaxlPaltkTRTv6/XtIkm528eilLyOMxtMGXcP0Bl7nv0oDLxDZSm9TkgXjN24SyY0KQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/label": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/labeledvalue": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.12.tgz", - "integrity": "sha512-Pa/eYf9FKr8QF7xKLoCv6a+Ezudfi7N1jFJLZ71zaVcDOcNByYKiy1lAquwLB+36PpsWt/EwKLE2/U7OuiWyfQ==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/layout": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.3.tgz", - "integrity": "sha512-JsG4KclsgzKfRbe+PyMo8QryG5SmwYlym8JRuSLmZ+nfIKhESVbqSJE3IXblmDDWUb0rabQhSvW4p5h5nOil4w==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/layout": "^3.3.13", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.5.tgz", - "integrity": "sha512-pnPIzkM0/Nxm460dHuR195bD0BAaIvasqW8TqUFT0Igxfw0NFYyWZr5d4OkHKyypyUoQKaobpOgeAJHXxPtzTg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/link": "^3.5.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/list": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.8.tgz", - "integrity": "sha512-w+fxiX+wz8X0bASAtKsf/myMrFI1Z0OXamttPRAJS5Ene6x09kf+K2djpZO1t9nT70IPnCcthhkMaCHk6eyUIw==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - } - }, - "@react-spectrum/listbox": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.7.tgz", - "integrity": "sha512-cFUIKPRtz5ViQYS0vO+oQmiFmbJjA04GCpyZKnBJAEonNDiY1RIHfFg/53Mr8IwstwNvGbxHVjMilPy6DtWDjA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/listbox": "^3.11.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/menu": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.18.1.tgz", - "integrity": "sha512-3KutRgn9/uYcRH2IzUT6qiPlS9SK9+4R2W4Z1Ox27lQ30ZgC68kE37uOwZX10bDgTOWV/COYvm6qBBScZ+VFUg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/separator": "^3.3.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/tree": "^3.7.6", - "@react-types/menu": "^3.9.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-OBYIHnumb2cfeT48py6Qtsfs7m9DmddaHSCVB8MXNnn3fzrpPr5t4Wz2dYUWXnkPPC11D8WarjJ+6EgrNwNvdQ==", - "requires": { - "@react-aria/meter": "^3.4.11", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/utils": "^3.11.5", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-s6QNRncVrVjOYihKeyQ8fkdD1YJTqYttog/Rj96rD66vfUlI0bTr3q6mK6hZpU1YM29SL24BUCn6NdqOxqVeiQ==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/numberfield": "^3.11.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/overlays": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.5.tgz", - "integrity": "sha512-rFwbWuagFo/Tuo45UE8KHUMz1Li1j5CNzsZdIfKZydHd0u4t69yR8bCn3pDUNIYEwclrLGUD2XFJaN9jYq1H4A==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/overlays": "^3.6.5", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - } - }, - "@react-spectrum/picker": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.14.3.tgz", - "integrity": "sha512-xaewWrOtGt/dQbiSwZe9UYH58berRlxyqIeAZQ7+FCRGoG/gl1p+l+7rfNKFS5OjVy6Adh6BZrrY6A99j4PbQA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/select": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/select": "^3.6.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/progress": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.5.tgz", - "integrity": "sha512-ku+RTtgXWaxUwjopzWpvgNxJsn/gohMWO4len2K2yDQp6b4SY67ojRFBwyIDZ9Oi9RPTAvZOc3wJu5QPftfVcg==", - "requires": { - "@react-aria/progress": "^3.4.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/provider": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.5.tgz", - "integrity": "sha512-FE5RQC1EwMMXUAtslekheyA0IrXSev4flaY4CT3exC/ohB1PuiXUDg4qqaHos2vVhsdUPNq5SeathtHEr8ryJA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/provider": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-spectrum/radio": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.4.tgz", - "integrity": "sha512-FmWcJlOeo5KsbWYpnEtoB9oC+haUeowfRda8dq0kBptR5WlagWD4Arez55/hjXCHLqQZ4r6vY6rYgMya2xiddQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/radio": "^3.10.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/searchfield": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.4.tgz", - "integrity": "sha512-O8pM9dGlRZoFhNtZLVFpIOHM2+sy5/t23Lv0z0jXvVYmzHOaib8wPPJELnPRsDUIylqpnVxfiYSz051Gx5Zq8g==", - "requires": { - "@react-aria/searchfield": "^3.7.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/searchfield": "^3.5.1", - "@react-types/searchfield": "^3.5.3", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/slider": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.7.tgz", - "integrity": "sha512-mhTG+sGZwQfNW9z+uzvmTQzzV2Qzcack3qYSw8HXEfd4BOjkgwTinS9aN8MLv147TF5RMvI0y3dmNirAoDi+yQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/slider": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/statuslight": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.11.tgz", - "integrity": "sha512-zbIrI8rPLmMu3Jnl2fpA/kb0V3azdRBsv1KfhGNQkHM17Gy6ufrzzzh6cmnvQh8FREllMcIjC4eaBkYHFArtyg==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/statuslight": "^3.3.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/switch": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.3.tgz", - "integrity": "sha512-NJMk/b/Lrmgl0RB9QPF0wSuD5CgTPODaLuZD1uxXAcESKFVdN58eW8CU99e+ZC0tHgFofroTpEF073Yiz2LnkQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/switch": "^3.6.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/table": { - "version": "3.12.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.8.tgz", - "integrity": "sha512-4JyDlvKljhvqqUHYk6X5JjmxXy03IZergKTu//MbELW4v9bwiwf94Ap8zTcUZPh/pcw7IQhpUDLPAi6RFBAUpA==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/table": "^3.13.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/layout": "^3.13.7", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/tabs": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.8.tgz", - "integrity": "sha512-oBXKLD7cyCLQV3SUXIjEn9ttdyoGwpiTUfM3DNY3ki097pRdoBgMxPk1Sp7jKQs6tRUg4osK53iOG4LvEs6eTg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/tabs": "^3.8.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-stately/tabs": "^3.6.4", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/tag": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.4.tgz", - "integrity": "sha512-d6cqX+n10pokLsBGEC/ksLLHM3vBoR7zc0AAlBAUrBN6VMBWUQRyazDHeXPLLZs/S4+ICL80UXRf8NwWfA7Efg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/tag": "^3.3.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/text": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.3.tgz", - "integrity": "sha512-28WiSnIPm8WC4JOsHPLudCGjPc3tk7zKm3L+8xqzr374j1+HdMGivrhVOf1t4jbUMcT5dOxR7huuDe7E97qe5A==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/text": "^3.3.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/textfield": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.4.tgz", - "integrity": "sha512-J70Q1ddpX0v+R7x8w5DaJLixnp5mBWm39lUnekiahEUuA420U1eZCW80GiHXFS/GO6wpwjIZpWHcpBQuF/EDCQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/theme-dark": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.8.tgz", - "integrity": "sha512-ep78rIrgrXu5MHe6LQAiK8+Us/4PoeHcixm+xFJk8I7AP+6wrh+9+QSWdIi3/NJY9fIjXsMm+VyehFVtEq8PAg==", - "requires": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/theme-default": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.8.tgz", - "integrity": "sha512-vZ9GH4l6H2Ks/PD15k2mx6XgA1EYKxQbB+ai9UZ3ALXf0KYlVIFSoHk4Vp3hP16D12KsuB7V0Gk8SvHlsRNo+Q==", - "requires": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/theme-light": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.8.tgz", - "integrity": "sha512-6kjtQ6IGrh2E0WJKQ9eAR5yhcWFI2mNvd+wi8Uy3rtRdBB1L3iSfr2RmgxgcTCl50DnKqmcFsHbHaKMMKqhkaQ==", - "requires": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/tooltip": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.5.tgz", - "integrity": "sha512-TnVUX8gNx65wOfHE5UIzuzpC4kUd6RuFeDykcu+3OM+fsK6qvDYg2MQq/3UiZHFI0ZHhX89yPf4uLaP0hcT8sg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/tooltip": "^3.7.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/tooltip": "^3.4.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/utils": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.5.tgz", - "integrity": "sha512-V4heIuCBXhYOP3om5B0KNs2+RK6RKwAhHVjjJZ3RBeNqsF9UDxv+D/+dk3sAM2dsM1F8l38BNXQMMWXWW/BZYA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-spectrum/view": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.8.tgz", - "integrity": "sha512-jAKh22xUjFY5sxPTtLc53fw3C+dki+DEDxArFK06/tF+ntV6lDat91j+YedcOtDT2p7C2PSfaToX5moyEAQ+NA==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/view": "^3.4.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/well": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.11.tgz", - "integrity": "sha512-oCQqKKcKXNoF18dNz5GHBdSXrNPsVH5jsH17suqQevzDQkMN2X02Ov0oyOYMAUQM0xSE3ensLdjvLzUL0yl36g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/well": "^3.3.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-f9ZOd096gGGD+3LmU1gkmfqytGyQtrgi+Qjn+70GbM2Jy65pwOR4I9YrobbmeAFov5Tff13mQEa0yqWvbcDLZQ==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-stately/utils": "^3.9.1", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/checkbox": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.3.tgz", - "integrity": "sha512-hWp0GXVbMI4sS2NbBjWgOnHNrRqSV4jeftP8zc5JsIYRmrWBUZitxluB34QuVPzrBO29bGsF0GTArSiQZt6BWw==", - "requires": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/collections": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.5.tgz", - "integrity": "sha512-k8Q29Nnvb7iAia1QvTanZsrWP2aqVNBy/1SlE6kLL6vDqtKZC+Esd1SDLHRmIcYIp5aTdfwIGd0NuiRQA7a81Q==", - "requires": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/combobox": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.2.tgz", - "integrity": "sha512-f+IHuFW848VoMbvTfSakn2WIh2urDxO355LrKxnisXPCkpQHpq3lvT2mJtKJwkPxjAy7xPjpV8ejgga2R6p53Q==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-stately/select": "^3.6.2", - "@react-stately/utils": "^3.9.1", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/data": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.2.tgz", - "integrity": "sha512-yhK2upk2WbJeiLBRWHrh/4G2CvmmozCzoivLaRAPYu53m1J3MyzVGCLJgnZMbMZvAbNcYWZK6IzO6VqZ2y1fOw==", - "requires": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/datepicker": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.2.tgz", - "integrity": "sha512-Z6FrK6Af7R5BizqHhJFCj3Hn32mg5iLSDdEgFQAuO043guOXUKFUAnbxfbQUjL6PGE6QwWMfQD7PPGebHn9Ifw==", - "requires": { - "@internationalized/date": "^3.5.2", - "@internationalized/string": "^3.2.1", - "@react-stately/form": "^3.0.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/utils": "^3.9.1", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/dnd": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.8.tgz", - "integrity": "sha512-oSo+2Bzum3Q1/d+3FuaDmpVHqqBB004tycuQDDFtad3N1BKm+fNfmslRK1ioLkPLK4sm1130V+BZBY3JXLe80A==", - "requires": { - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/flags": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.1.tgz", - "integrity": "sha512-h5PcDMj54aipQNO18ig/IMI1kzPwcvSwVq5M6Ib6XE1WIkOH0dIuW2eADdAOhcGi3KXJtXVdD29zh0Eox1TKgQ==", - "requires": { - "@swc/helpers": "^0.4.14" - }, - "dependencies": { - "@swc/helpers": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", - "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", - "requires": { - "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" - } - } - } - }, - "@react-stately/form": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.1.tgz", - "integrity": "sha512-T1Ul2Ou0uE/S4ECLcGKa0OfXjffdjEHfUFZAk7OZl0Mqq/F7dl5WpoLWJ4d4IyvZzGO6anFNenP+vODWbrF3NA==", - "requires": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/grid": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.5.tgz", - "integrity": "sha512-KCzi0x0p1ZKK+OptonvJqMbn6Vlgo6GfOIlgcDd0dNYDP8TJ+3QFJAFre5mCr7Fubx7LcAOio4Rij0l/R8fkXQ==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/layout": { - "version": "3.13.7", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.7.tgz", - "integrity": "sha512-9HH/aSxpEHwUW1T1vGN3+iznkAXQUzoMrsoEepNzesOsUGSm/MFZmEk4+9cdPA7y3ou2eHpGNUB1YIDDVptElg==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/list": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.3.tgz", - "integrity": "sha512-Ul8el0tQy2Ucl3qMQ0fiqdJ874W1ZNjURVSgSxN+pGwVLNBVRjd6Fl7YwZFCXER2YOlzkwg+Zqozf/ZlS0EdXA==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/menu": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.6.1.tgz", - "integrity": "sha512-3v0vkTm/kInuuG8jG7jbxXDBnMQcoDZKWvYsBQq7+POt0LmijbLdbdZPBoz9TkZ3eo/OoP194LLHOaFTQyHhlw==", - "requires": { - "@react-stately/overlays": "^3.6.5", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-btBIcBEfSVCUm6NwJrMrMygoIu/fQGazzD0RhF7PNsfvkFiWn+TSOyQqSXcsUJVOnBfoS/dVWj6r57KA7zl3FA==", - "requires": { - "@internationalized/number": "^3.5.1", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/numberfield": "^3.8.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/overlays": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.5.tgz", - "integrity": "sha512-U4rCFj6TPJPXLUvYXAcvh+yP/CO2W+7f0IuqP7ZZGE+Osk9qFkT+zRK5/6ayhBDFpmueNfjIEAzT9gYPQwNHFw==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/overlays": "^3.8.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-JW5ZWiNMKcZvMTsuPeWJQLHXD5rlqy7Qk6fwUx/ZgeibvMBW/NnW19mm2+IMinzmbtERXvR6nsiA837qI+4dew==", - "requires": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/searchfield": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.1.tgz", - "integrity": "sha512-9A8Wghx1avRHhMpNH1Nj+jFfiF1bhsff2GEC5PZgWYzhCykw3G5bywn3JAuUS4kh7Vpqhbu4KpHAhmWPSv4B/Q==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/searchfield": "^3.5.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/select": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.2.tgz", - "integrity": "sha512-duOxdHKol93h6Ew6fap6Amz+zngoERKZLSKVm/8I8uaBgkoBhEeTFv7mlpHTgINxymMw3mMrvy6GL/gfKFwkqg==", - "requires": { - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/selection": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.3.tgz", - "integrity": "sha512-d/t0rIWieqQ7wjLoMoWnuHEUSMoVXxkPBFuSlJF3F16289FiQ+b8aeKFDzFTYN7fFD8rkZTnpuE4Tcxg3TmA+w==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/slider": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.2.tgz", - "integrity": "sha512-ntH3NLRG+AwVC7q4Dx9DcmMkMh9vmHjHNXAgaoqNjhvwfSIae7sQ69CkVe6XeJjIBy6LlH81Kgapz+ABe5a1ZA==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/table": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.6.tgz", - "integrity": "sha512-34YsfOILXusj3p6QNcKEaDWVORhM6WEhwPSLCZlkwAJvkxuRQFdih5rQKoIDc0uV5aZsB6bYBqiFhnjY0VERhw==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tabs": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.4.tgz", - "integrity": "sha512-WZJgMBqzLgN88RN8AxhY4aH1+I+4w1qQA0Lh3LRSDegaytd+NHixCWaP3IPjePgCB5N1UsPe96Xglw75zjHmDg==", - "requires": { - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/toggle": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.2.tgz", - "integrity": "sha512-SHCF2btcoK57c4lyhucRbyPBAFpp0Pdp0vcPdn3hUgqbu6e5gE0CwG/mgFmZRAQoc7PRc7XifL0uNw8diJJI0Q==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-ACtRgBQ8rphBtsUaaxvEAM0HHN9PvMuyvL0vUHd7jvBDCVZJ6it1BKu9SBKjekBkoBOw9nemtkplh9R2CA6V8Q==", - "requires": { - "@react-stately/overlays": "^3.6.5", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tree": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.6.tgz", - "integrity": "sha512-y8KvEoZX6+YvqjNCVGS3zA/BKw4D3XrUtUKIDme3gu5Mn6z97u+hUXKdXVCniZR7yvV3fHAIXwE5V2K8Oit4aw==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/utils": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.1.tgz", - "integrity": "sha512-yzw75GE0iUWiyps02BOAPTrybcsMIxEJlzXqtvllAb01O9uX5n0i3X+u2eCpj2UoDF4zS08Ps0jPgWxg8xEYtA==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/virtualizer": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.8.tgz", - "integrity": "sha512-Pf06ihTwExRJltGhi72tmLIo0pcjkL55nu7ifMafAAdxZK4ONxRLSuUjjpvYf/0Rs92xRZy2t/XmHREnfirdkQ==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-types/actionbar": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.5.tgz", - "integrity": "sha512-Z3hfIoaOaW8wJxQm1NyWVvSftpNDYv9iWqpEWBEdhxuqsUkOVszZ7KcNaF4qsm4bJIcJWn3FNKhaTKGwISZcdQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/actiongroup": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.7.tgz", - "integrity": "sha512-VsyHn6mGqEHKEIGFiHTq7rSuzuQjGVZGtnhh/9jQXW6zoSJyoM4fAnHEt+RE92NdiRv5e3+OzzrwG0TZsi87cQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/avatar": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.5.tgz", - "integrity": "sha512-/hM/BnRoUhusT16G4hf2hfe4FocxaM5H/a7aetUrmlr9e5ppX3n0VsU0btIwxdh+aJL8u2BBt2scoiJaujQPNg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/badge": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.7.tgz", - "integrity": "sha512-2Q5W9gleI83WpL1i6qPdcPC8l1V7364dpkNLcMi9DFmM2l69+QcPvSWVQMQLevmRo4cnaQ+TYsOgYv8I4rRJCg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/breadcrumbs": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.3.tgz", - "integrity": "sha512-eFto/+6J+JR58vThNcALZRA1OlqlG3GzQ/bq3q8IrrkOZcrfbEJJCWit/+53Ia98siJKuF4OJHnotxIVIz5I3w==", - "requires": { - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/button": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.2.tgz", - "integrity": "sha512-EnPTkGHZRtiwAoJy5q9lDjoG30bEzA/qnvKG29VVXKYAGeqY2IlFs1ypmU+z1X/CpJgPcG3I5cakM7yTVm3pSg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/buttongroup": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.7.tgz", - "integrity": "sha512-EZ/1k66GtDtWfE/udNRz2UBbt4YJumeyW1SGcZEO3jketvpms58WapLsMkCezlLz7WYaa5ADV0kU8v88APjI6g==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-hV1Thmb/AES5OmfPvvmyjSkmsEULjiDfA7Yyy70L/YKuSNKb7Su+Bf2VnZuDW3ec+GxO4JJNlpJ0AkbphWBvcg==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/checkbox": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.1.tgz", - "integrity": "sha512-kuGqjQFex0As/3gfWyk+e9njCcad/ZdnYLLiNvhlk15730xfa0MmnOdpqo9jfuFSXBjOcpxoofvEhvrRMtEdUA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/combobox": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.10.1.tgz", - "integrity": "sha512-XMno1rgVRNta49vf5nV7VJpVSVAV20tt79t618gG1qRKH5Kt2Cy8lz2fQ5vHG6UTv/6jUOvU8g5Pc93sLaTmoA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/contextualhelp": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.8.tgz", - "integrity": "sha512-Yb0zOqkWfjKCO+gpfVj69CfWPhVq6RTgwLBV47ntIlHitpbh7RDYwDVulPyaVoopPbNSFUoV4YIJZPlOgpbKjg==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/datepicker": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.2.tgz", - "integrity": "sha512-zThqFAdhQL1dqyVDsDSSTdfCjoD6634eyg/B0ZJfQxcLUR/5pch3v/gxBhbyCVDGMNHRWUWIJvY9DVOepuoSug==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-types/calendar": "^3.4.4", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/dialog": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.8.tgz", - "integrity": "sha512-RX8JsMvty8ADHRqVEkppoynXLtN4IzUh8d5z88UEBbcvWKlHfd6bOBQjQcBH3AUue5wjfpPIt6brw2VzgBY/3Q==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/divider": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.7.tgz", - "integrity": "sha512-enAlzHVwzqBPpmE+/VAO5IGVPxPrscHkdbnEkTqW9JQeMUGXd4L0TdHOGd+vtcA+gILJMnhUfT3XE4wQ4HlpVw==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/form": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.2.tgz", - "integrity": "sha512-6/isEJY4PsYoHdMaGQtqQyquXGTwB1FqCBOPKQjI/vBGWG3fL7FGfWm4Z62eTbCH4Xyv3FZuNywlT8UjPMQyKA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/grid": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.4.tgz", - "integrity": "sha512-sDVoyQcH7MoGdx5nBi5ZOU/mVFBt9YTxhvr0PZ97dMdEHZtJC1w9SuezwWS34f50yb8YAXQRTICbZYcK4bAlDA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/illustratedmessage": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.7.tgz", - "integrity": "sha512-r8WAv+w0WQSDRmDmG6jL0dXK8MjMr/lr2gBpVYVvC45Gu+fqf4VL+4zphgwASRysWclFbjQhgkgC7OEXk3GUKg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/image": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.7.tgz", - "integrity": "sha512-ty6wuan6p3Z8OzSrbjtL2k8yXHW+n0qiYKyqKpSA8TcRLDLhtvRceI7X12RuDfbAiEN6/zfLCuF47O3y7OeKug==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/label": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.1.tgz", - "integrity": "sha512-0N/UOhwrKjE9VjVbUoJCsH5UwTzSu3d5B3xtvhH8YFqSbJCI+HMKILby8i8ys55RA9fQDMScIjCJafEFWW7UWA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/layout": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.13.tgz", - "integrity": "sha512-Y3pmSsfDB+bV299F5SJannR6m/XM5IyfdqjPS0/Qx8KBBf0A3UWfL6qUr4BMEAKsEJuIXA7zT3RSo/AbGSbSyg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/link": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.3.tgz", - "integrity": "sha512-yVafjW3IejyVnK3oMBNjFABCGG6J27EUG8rvkaGaI1uB6srGUEhpJ97XLv11aj1QkXHBy3VGXqxEV3S7wn4HTw==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/listbox": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.7.tgz", - "integrity": "sha512-68y5H9CVSPFiwO6MOFxTbry9JQMK/Lb1M9i3M8TDyq1AbJxBPpgAvJ9RaqIMCucsnqCzpY/zA3D/X417zByL1w==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/menu": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.7.tgz", - "integrity": "sha512-K6KhloJVoGsqwkdeez72fkNI9dfrmLI/sNrB4XuOKo2crDQ/eyZYWyJmzz8giz/tHME9w774k487rVoefoFh5w==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/meter": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.7.tgz", - "integrity": "sha512-p+YJ0+Lpn5MLmlbFZbDH1P0ILv1+AuMcUbxLcXMIVMGn7o0FO7eVZnFuq76D+qTDm9all+TRLJix7bctOrP+5Q==", - "requires": { - "@react-types/progress": "^3.5.2" - } - }, - "@react-types/numberfield": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.1.tgz", - "integrity": "sha512-GaCjLQgXUGCt40SLjKk3/COMWFlN2vV/3Xs3VSLAEdFZpk99b+Ik1oR21+7ZP5/iMHuQDc1MJRWdFfIjxCvVDQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/overlays": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.5.tgz", - "integrity": "sha512-4D7EEBQigD/m8hE68Ys8eloyyZFHHduqykSIgINJ0edmo0jygRbWlTwuhWFR9USgSP4dK54duN0Mvq0m4HEVEw==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/progress": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.2.tgz", - "integrity": "sha512-aQql22kusEudsHwDEzq6y/Mh29AM+ftRDKdS5E5g4MkCY5J4FMbOYco1T5So83NIvvG9+eKcxPoJUMjQQACAyA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/provider": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.2.tgz", - "integrity": "sha512-nzxbfuh/ZJXt/blGAiRPkxi9jAUnnBkHcvljqdfizfLJlN5epaYYaTWNUSde27Oe1tAnpm2WDlLQo5+0C6C0FA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/radio": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.7.1.tgz", - "integrity": "sha512-Zut3rN1odIUBLZdijeyou+UqsLeRE76d9A+npykYGu29ndqmo3w4sLn8QeQcdj1IR71ZnG0pW2Y2BazhK5XrrQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/searchfield": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.3.tgz", - "integrity": "sha512-gBfsT1WpY8UIb74yyYmnjiHpVasph2mdmGj9i8cGF2HUYwx5p+Fr85mtCGDph0uirvRoM5ExMp4snD+ueNAVCg==", - "requires": { - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1" - } - }, - "@react-types/select": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.2.tgz", - "integrity": "sha512-fGFrunednY3Pq/BBwVOf87Fsuyo/SlevL0wFIE9OOl2V5NXVaTY7/7RYA8hIOHPzmvsMbndy419BEudiNGhv4A==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/shared": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.1.tgz", - "integrity": "sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==", - "requires": {} - }, - "@react-types/slider": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.1.tgz", - "integrity": "sha512-FKO3YZYdrBs00XbBW5acP+0L1cCdevl/uRJiXbnLpGysO5PrSFIRS7Wlv4M7ztf6gT7b1Ao4FNC9crbxBr6BzA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/statuslight": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.7.tgz", - "integrity": "sha512-PFctvM8NJFENNWHydEK4pCMXKmjrHB2PJ/fdJ2Bi6ABRcTBXzi/qgUUdbeTG7STXlA+P2/xNgKtHheus8K+K3g==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/switch": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.1.tgz", - "integrity": "sha512-2LFEKMGeufqyYmeN/5dtkDkCPG6x9O4eu6aaBaJmPGon7C/l3yiFEgRue6oCUYc1HixR7Qlp0sPxk0tQeWzrSg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/table": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.3.tgz", - "integrity": "sha512-Hs/pMbxJdga2zBol4H5pV1FVIiRjCuSTXst6idJjkctanTexR4xkyrtBwl+rdLNoGwQ2pGii49vgklc5bFK7zA==", - "requires": { - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/tabs": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.5.tgz", - "integrity": "sha512-6NTSZBOWekCtApdZrhu5tHhE/8q52oVohQN+J5T7shAXd6ZAtu8PABVR/nH4BWucc8FL0OUajRqunqzQMU13gA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/text": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.7.tgz", - "integrity": "sha512-URkJHS314ppyq6JjMPZbg/P4j9vey0H/Lc2+YB96qIcebBKy8iNN0IlwRsLFXimlGDp7dgn6tv+51bdJh+CRCQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/textfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.1.tgz", - "integrity": "sha512-JBHY9M2CkL6xFaGSfWmUJVu3tEK09FaeB1dU3IEh6P41xxbFnPakYHSSAdnwMXBtXPoSHIVsUBickW/pjgfe5g==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-rV4HZRQxLRNhe24yATOxnFQtGRUmsR7mqxMupXCmd1vrw8h+rdKlQv1zW2q8nALAKNmnRXZJHxYQ1SFzb98fgg==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/view": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.7.tgz", - "integrity": "sha512-AcgLrlaZkCXH+pD4I7pTPB52Rstg1M+V2yKPP29lnqg/rOjsqLjN/gLLy/EBi97cQ+TbDbg0854vcxAKs6qclg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/well": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.7.tgz", - "integrity": "sha512-BaZ4utlEeweD8+mAYdqwq2bS8aDrXqi4xFPdfqZpHcpbSJjmGBCCS+GU2y/N2Yl1aODu5l0+gcrvxxr63bV+GA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@spectrum-icons/ui": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.5.tgz", - "integrity": "sha512-L1QISmlzoA4xuBdMpWT2vkR7NDxuROjSwC5BxS8R2SAZR4oKs0dPfODaw2uju6D/xqJIqVrSM6yQDhV51lPKyA==", - "requires": { - "@adobe/react-spectrum-ui": "1.2.0", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "dependencies": { - "@adobe/react-spectrum-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.0.tgz", - "integrity": "sha512-os3EdjfyJbrukLcZ5uYtdFRiDlLB3zq2JoXp19J/IDpZ8btibJeRZYSwjL+LscEiT2pOYaF2McMQdkZTIwnllw==", - "requires": {} - } - } - }, - "@spectrum-icons/workflow": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.10.tgz", - "integrity": "sha512-CaDYaGMe2bYDozzHztrgEy0tljQWn4OBE9hJC2fAM5cMTve4viiWhcmHYYWFv3MZQyavHy1UwCL1jlXg7bK3PA==", - "requires": { - "@adobe/react-spectrum-workflow": "2.3.4", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "dependencies": { - "@adobe/react-spectrum-workflow": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.4.tgz", - "integrity": "sha512-XPLzIBl58HdLF9WIPB7RDAvVXvCE3SjG+HaWQhW2P9MnxSz1DEA9O7mlTlYblJkMbfk10T/+RFaSupc1yoN+TA==", - "requires": {} - } - } - }, - "@swc/core": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.17.tgz", - "integrity": "sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==", - "dev": true, - "requires": { - "@swc/core-darwin-arm64": "1.4.17", - "@swc/core-darwin-x64": "1.4.17", - "@swc/core-linux-arm-gnueabihf": "1.4.17", - "@swc/core-linux-arm64-gnu": "1.4.17", - "@swc/core-linux-arm64-musl": "1.4.17", - "@swc/core-linux-x64-gnu": "1.4.17", - "@swc/core-linux-x64-musl": "1.4.17", - "@swc/core-win32-arm64-msvc": "1.4.17", - "@swc/core-win32-ia32-msvc": "1.4.17", - "@swc/core-win32-x64-msvc": "1.4.17", - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.17.tgz", - "integrity": "sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==", - "dev": true, - "optional": true - }, - "@swc/core-darwin-x64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.17.tgz", - "integrity": "sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.17.tgz", - "integrity": "sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.17.tgz", - "integrity": "sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.17.tgz", - "integrity": "sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==", - "dev": true, - "optional": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.17.tgz", - "integrity": "sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.17.tgz", - "integrity": "sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==", - "dev": true, - "optional": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.17.tgz", - "integrity": "sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==", - "dev": true, - "optional": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.17.tgz", - "integrity": "sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==", - "dev": true, - "optional": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.17.tgz", - "integrity": "sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==", - "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" - } - }, - "@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", - "dev": true, - "requires": { - "@swc/counter": "^0.1.3" - } - }, - "@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==" - }, - "@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "@types/react": { - "version": "17.0.80", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz", - "integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "^0.16", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", - "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", - "dev": true, - "requires": { - "@types/react": "^17" - } - }, - "@types/react-redux": { - "version": "7.1.33", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", - "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", - "dev": true, - "requires": { - "@swc/core": "^1.3.107" - } - }, - "abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==" - }, - "array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==" - }, - "array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "requires": { - "array-bounds": "^1.0.0" - } - }, - "array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==" - }, - "array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" - }, - "binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" - }, - "bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==" - }, - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bootstrap": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", - "requires": {} - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "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" - } - }, - "canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", - "requires": { - "element-size": "^1.1.1" - } - }, - "clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" - }, - "classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "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-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "requires": { - "color-parse": "^1.3.8" - }, - "dependencies": { - "color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "requires": { - "color-name": "^1.0.0" - } - } - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "requires": { - "clamp": "^1.0.1" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "requires": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "color-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", - "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", - "requires": { - "color-name": "^1.0.0" - } - }, - "color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "requires": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - }, - "dependencies": { - "color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "requires": { - "color-name": "^1.0.0" - } - } - } - }, - "color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "requires": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==" - }, - "css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "requires": { - "tiny-invariant": "^1.0.6" - } - }, - "css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "requires": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" - }, - "css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" - }, - "css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" - }, - "css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" - }, - "css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==" - }, - "css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" - }, - "csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "requires": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } - }, - "d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", - "requires": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "d3-time": "1" - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "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" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" - }, - "detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", - "requires": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==" - }, - "dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==" - }, - "elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "requires": { - "strongly-connected-components": "^1.0.1" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "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" - } - }, - "es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "requires": { - "d": "^1.0.2", - "ext": "^1.7.0" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "source-map": "~0.6.1" - } - }, - "esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "event-target-shim": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", - "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - } - }, - "falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "requires": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - } - }, - "fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "requires": { - "is-string-blank": "^1.0.1" - } - }, - "flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "requires": { - "dtype": "^2.0.0" - } - }, - "font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "requires": { - "css-font": "^1.0.0" - } - }, - "font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "requires": { - "css-font": "^1.2.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==" - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "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", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "gl-text": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", - "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", - "requires": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^2.0.0", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "requires": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", - "requires": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", - "requires": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - }, - "dependencies": { - "resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==" - }, - "xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==" - } - } - }, - "glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==" - }, - "glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", - "requires": { - "glsl-tokenizer": "^2.0.0" - } - }, - "glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==" - }, - "glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", - "requires": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==" - }, - "glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==" - }, - "glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==" - }, - "glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==" - }, - "glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==" - }, - "glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "requires": { - "through2": "^0.6.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "requires": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "requires": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "requires": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "requires": { - "has-symbols": "^1.0.3" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "intl-messageformat": { - "version": "10.5.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.11.tgz", - "integrity": "sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==", - "requires": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.6", - "tslib": "^2.4.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==" - }, - "is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==" - }, - "is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==" - }, - "is-mobile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", - "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==" - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==" - }, - "is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "legacy-swc-helpers": { - "version": "npm:@swc/helpers@0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", - "requires": { - "tslib": "^2.4.0" - } - }, - "linkifyjs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz", - "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==" - }, - "lodash.clamp": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", - "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==" - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "requires": { - "wrappy": "1" - } - } - } - }, - "mapbox-gl": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", - "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", - "peer": true, - "requires": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - } - }, - "math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==" - }, - "memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==" - }, - "mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", - "requires": { - "mouse-event": "^1.0.0" - } - }, - "mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==" - }, - "mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==" - }, - "mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", - "requires": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", - "requires": { - "almost-equal": "^1.1.0" - } - }, - "murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" - }, - "nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" - }, - "native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" - }, - "needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==" - }, - "number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", - "requires": { - "is-finite": "^1.0.1" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "papaparse": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz", - "integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw==" - }, - "parenthesis": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", - "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" - }, - "parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "requires": { - "pick-by-alias": "^1.2.0" - } - }, - "parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, - "parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "requires": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "plotly.js": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.32.0.tgz", - "integrity": "sha512-QBYyfVFs1XdoXQBq/f7SoiqQD/BEyDA5WwvN1NwY4ZTrTX6GmJ5jE5ydlt1I4K8i5W6H1atgti31jcSYD6StKA==", - "requires": { - "@plotly/d3": "3.8.1", - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@plotly/mapbox-gl": "1.13.4", - "@turf/area": "^6.4.0", - "@turf/bbox": "^6.4.0", - "@turf/centroid": "^6.0.2", - "base64-arraybuffer": "^1.0.2", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "2.0.0", - "color-rgba": "2.1.1", - "country-regex": "^1.1.0", - "d3-force": "^1.2.1", - "d3-format": "^1.4.5", - "d3-geo": "^1.12.1", - "d3-geo-projection": "^2.9.0", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^3.0.1", - "d3-time": "^1.1.0", - "d3-time-format": "^2.2.3", - "fast-isnumeric": "^1.1.4", - "gl-mat4": "^1.2.0", - "gl-text": "^1.4.0", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "is-mobile": "^4.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "native-promise-only": "^0.8.1", - "parse-svg-path": "^0.1.2", - "point-in-polygon": "^1.1.0", - "polybooljs": "^1.2.0", - "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", - "regl-error2d": "^2.0.12", - "regl-line2d": "^3.1.3", - "regl-scatter2d": "^3.3.1", - "regl-splom": "^1.0.14", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "polybooljs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", - "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==" - }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" - }, - "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "dependencies": { - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - } - } - }, - "potpack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" - }, - "probe-image-size": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", - "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", - "requires": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-beautiful-dnd": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", - "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", - "requires": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "react-plotly.js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", - "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", - "requires": { - "prop-types": "^15.8.1" - } - }, - "react-redux": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", - "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", - "requires": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - } - }, - "react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", - "requires": {} - }, - "react-window": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", - "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", - "requires": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", - "requires": {} - }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "regl": { - "version": "npm:@plotly/regl@2.1.2", - "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", - "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" - }, - "regl-error2d": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", - "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", - "requires": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "regl-line2d": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", - "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", - "requires": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0" - } - }, - "regl-scatter2d": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", - "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", - "requires": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "regl-splom": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", - "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", - "requires": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.2.3" - } - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" - }, - "rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "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", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" - }, - "shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true - }, - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==" - }, - "static-eval": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", - "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", - "requires": { - "escodegen": "^2.1.0" - } - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "requires": { - "internal-slot": "^1.0.4" - } - }, - "stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", - "requires": { - "debug": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "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==" - } - } - }, - "stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "requires": { - "parenthesis": "^3.1.5" - } - }, - "strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==" - }, - "supercluster": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", - "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", - "requires": { - "kdbush": "^3.0.0" - } - }, - "superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "svg-path-bounds": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", - "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", - "requires": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - }, - "dependencies": { - "normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "requires": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - } - } - }, - "svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "requires": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" - }, - "tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" - }, - "tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "to-float32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", - "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" - }, - "to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", - "requires": { - "parse-unit": "^1.0.1" - } - }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "requires": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==" - }, - "use-memo-one": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", - "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "requires": {} - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "vite": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.5.tgz", - "integrity": "sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ==", - "dev": true, - "requires": { - "esbuild": "^0.16.14", - "fsevents": "~2.3.2", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" - } - }, - "vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "requires": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" - } - }, - "weak-map": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", - "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==" - }, - "webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", - "requires": { - "get-canvas-context": "^1.0.1" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "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", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "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", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "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" - } - }, - "world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", - "requires": { - "object-assign": "^4.1.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - } - } -} diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx index 8d8cbdbb9..baad34231 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx @@ -50,6 +50,7 @@ export function {{ cookiecutter.__js_plugin_view_obj }}(props: WidgetComponentPr init(); }, [dh, fetch]); + // Render a component with the text and a form to send a message to the server return (
{text}
diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py b/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py index 5d2003740..688c1212c 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py @@ -21,6 +21,8 @@ def __init__(self, obj: Any, client_connection: MessageStream): self._client_connection = client_connection # Start the message stream. All we do is send a blank message to start. Client will respond with the initial state. + # Additional messages can be sent to the client by calling on_data on the client connection at any time after this. + # These additional messages are processed in {{ cookiecutter.__js_plugin_view_obj }}.tsx self._client_connection.on_data(b"", []) obj._set_connection(self) @@ -68,13 +70,43 @@ class {{ cookiecutter.__type_name }}(BidirectionalObjectType): @property def name(self) -> str: + """ + Get the name of the object type + + Returns: + str: The name of the object + """ + # this name should match the supportedTypes in {{ cookiecutter.__js_plugin_obj }}.ts return "{{ cookiecutter.__registered_object_name }}" def is_type(self, obj: Any) -> bool: + """ + Check if the object is an instance of the type that this plugin supports + + Args: + obj: The object to check + + Returns: + bool: True if the object is an instance of the type that this plugin supports + """ + # check if the object is an instance of the type that this plugin supports + # replace this with other objects or add additional checks as needed return isinstance(obj, {{ cookiecutter.__object_name }}) def create_client_connection( self, obj: object, connection: MessageStream ) -> MessageStream: + """ + Create a client connection for the object + + Args: + obj: The object to create the connection for + connection: The connection to the client + + Returns: + MessageStream: The connection to the client + """ + # Create the message stream for the object that can be used to send and receive messages + # Note that each object will have its own message stream message_stream = {{ cookiecutter.__message_stream_name }}(obj, connection) return message_stream diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py b/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py index e69de29bb..8718e3915 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py @@ -0,0 +1,10 @@ +from deephaven_server.server import Server + +# Create a Server instance to initialize the JVM +# Otherwise we get errors whenever we try to import anything or run tests +# We don't even need to start the server, just create an instance. +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/embedded-server/deephaven_server/server.py#L152 +# Whenever you import anything from the deephaven namespace, it will check if the JVM is ready: +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/server/deephaven/__init__.py#L15 +if Server.instance is None: + Server(port=11000, jvm_args=["-Xmx4g"]) diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py index 81a9a3bb1..ee85249b3 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py @@ -7,16 +7,6 @@ class BaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - try: - # Use port 11000 so it doesn't conflict with another server - cls.s = Server(port=11000, jvm_args=["-Xmx4g"]) - cls.s.start() - except Exception as e: - # server is already running - pass - - # these mocks need to be setup after the deephaven server is - # initialized because they access the deephaven namespace cls.setup_exporter_mock() @classmethod diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py index 81b8a6bbc..f79744d33 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py @@ -5,7 +5,7 @@ class Test(BaseTestCase): def test(self): # since the tests use the embedded server, the import must happen after the tests start - from deephaven import Table + from deephaven.table import Table pass diff --git a/tests/app.d/ui_render_all.py b/tests/app.d/ui_render_all.py index 187303de1..60858a71e 100644 --- a/tests/app.d/ui_render_all.py +++ b/tests/app.d/ui_render_all.py @@ -55,7 +55,7 @@ def ui_components(): # TODO: #201 ui.combo_box("Combo Box"), ui.content("Content"), ui.contextual_help("Contextual Help"), - # TODO: #367 ui.date_picker("Date Picker"), + ui.date_picker(label="Date Picker", value="2021-01-01"), ui.flex("Flex default child A", "Flex default child B"), ui.flex("Flex column child A", "Flex column child B", direction="column"), ui.form("Form"), diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png index d602a813f..7dec3ca00 100644 Binary files a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png and b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png differ diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-firefox-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-firefox-linux.png index 48a45797e..fb9dbb3de 100644 Binary files a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-firefox-linux.png and b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-firefox-linux.png differ diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-webkit-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-webkit-linux.png index 3ae27ab9a..12a39e6d6 100644 Binary files a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-webkit-linux.png and b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-webkit-linux.png differ