diff options
-rw-r--r-- | package-lock.json | 3368 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | src/client/documents/DocumentTypes.ts | 2 | ||||
-rw-r--r-- | src/client/documents/Documents.ts | 11 | ||||
-rw-r--r-- | src/client/util/CalendarManager.scss | 62 | ||||
-rw-r--r-- | src/client/util/CalendarManager.tsx | 312 | ||||
-rw-r--r-- | src/client/views/DashboardView.tsx | 31 | ||||
-rw-r--r-- | src/client/views/DocumentButtonBar.tsx | 26 | ||||
-rw-r--r-- | src/client/views/MainView.tsx | 2 | ||||
-rw-r--r-- | src/client/views/collections/CollectionDockingView.tsx | 1 | ||||
-rw-r--r-- | src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 2 | ||||
-rw-r--r-- | src/client/views/nodes/MapBox/MapBox.scss | 31 | ||||
-rw-r--r-- | src/client/views/nodes/MapBox/MapBox.tsx | 153 | ||||
-rw-r--r-- | src/client/views/nodes/MapBox/MapboxApiUtility.ts | 98 | ||||
-rw-r--r-- | src/fields/Doc.ts | 1 |
15 files changed, 3732 insertions, 369 deletions
diff --git a/package-lock.json b/package-lock.json index 04b0a9b81..180ff097a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "dash", "version": "1.0.0", "dependencies": { + "@adobe/react-spectrum": "^3.32.2", "@azure/storage-blob": "^12.17.0", "@babel/preset-env": "^7.23.5", "@babel/preset-react": "^7.23.3", @@ -293,6 +294,90 @@ "node": ">=0.10.0" } }, + "node_modules/@adobe/react-spectrum": { + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.32.2.tgz", + "integrity": "sha512-dKDJquOlpATCe09Tf+hWwPRCFZOtIFQB0Sj79lf4ypUHONuHZCTzBz287OmnzflbvlRD8igUVru76e+xORD+YQ==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-spectrum/actionbar": "^3.4.0", + "@react-spectrum/actiongroup": "^3.10.0", + "@react-spectrum/avatar": "^3.0.7", + "@react-spectrum/badge": "^3.1.8", + "@react-spectrum/breadcrumbs": "^3.9.2", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/buttongroup": "^3.6.8", + "@react-spectrum/calendar": "^3.4.3", + "@react-spectrum/checkbox": "^3.9.0", + "@react-spectrum/combobox": "^3.11.2", + "@react-spectrum/contextualhelp": "^3.6.5", + "@react-spectrum/datepicker": "^3.9.0", + "@react-spectrum/dialog": "^3.8.5", + "@react-spectrum/divider": "^3.5.8", + "@react-spectrum/dnd": "^3.3.5", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/icon": "^3.7.8", + "@react-spectrum/illustratedmessage": "^3.4.8", + "@react-spectrum/image": "^3.4.8", + "@react-spectrum/inlinealert": "^3.2.0", + "@react-spectrum/labeledvalue": "^3.1.8", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/link": "^3.6.2", + "@react-spectrum/list": "^3.7.4", + "@react-spectrum/listbox": "^3.12.4", + "@react-spectrum/menu": "^3.16.0", + "@react-spectrum/meter": "^3.4.8", + "@react-spectrum/numberfield": "^3.8.0", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/picker": "^3.13.2", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/provider": "^3.9.2", + "@react-spectrum/radio": "^3.7.0", + "@react-spectrum/searchfield": "^3.8.0", + "@react-spectrum/slider": "^3.6.4", + "@react-spectrum/statuslight": "^3.5.8", + "@react-spectrum/switch": "^3.5.0", + "@react-spectrum/table": "^3.12.4", + "@react-spectrum/tabs": "^3.8.4", + "@react-spectrum/tag": "^3.2.0", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/textfield": "^3.11.0", + "@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.2", + "@react-spectrum/view": "^3.6.5", + "@react-spectrum/well": "^3.4.8", + "@react-stately/collections": "^3.10.3", + "@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/@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/@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/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -2371,10 +2456,22 @@ "node": "*" } }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2441,6 +2538,50 @@ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz", + "integrity": "sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==", + "dependencies": { + "@formatjs/intl-localematcher": "0.5.2", + "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.3", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz", + "integrity": "sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.18.0", + "@formatjs/icu-skeleton-parser": "1.7.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz", + "integrity": "sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.18.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz", + "integrity": "sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.1.tgz", @@ -2590,6 +2731,39 @@ "react": "*" } }, + "node_modules/@internationalized/date": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.0.tgz", + "integrity": "sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.1.tgz", + "integrity": "sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.4.0.tgz", + "integrity": "sha512-8TvotW3qVDHC4uv/BVoN6Qx0Dm8clHY1/vpH+dh+XRiPW/9NVpKn1P8d1A+WLphWrMwyqyWXI7uWehJPviaeIw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.1.1.tgz", + "integrity": "sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -3139,14 +3313,6 @@ "xtend": "^4.0.1" } }, - "node_modules/@mapbox/fusspot/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/@mapbox/geojson-rewind": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", @@ -3265,11 +3431,6 @@ "node": ">=8" } }, - "node_modules/@mapbox/mapbox-sdk/node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, "node_modules/@mapbox/mapbox-sdk/node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -3333,14 +3494,6 @@ "node": ">=10.19.0" } }, - "node_modules/@mapbox/mapbox-sdk/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/@mapbox/mapbox-sdk/node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -3999,6 +4152,793 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@react-aria/actiongroup": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.0.tgz", + "integrity": "sha512-PAOoZbmvcEDy7qpYSXK+lxs7Jl0/7LpRQ+wze2muhsn8bHdPKl67lbUx8qY2L7fcamXNl4sCx/5w/MiS33HbDA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/list": "^3.10.1", + "@react-types/actiongroup": "^3.4.6", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.8.tgz", + "integrity": "sha512-jeek23igeqXct7S3ShW2jtFUc5g3fS9ZEBZkF64FWBrwfCiaZwb8TcKkK/xFw36/q5mxEt+seNiqnNzvsICJuQ==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/link": "^3.6.2", + "@react-aria/utils": "^3.22.0", + "@react-types/breadcrumbs": "^3.7.2", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.0.tgz", + "integrity": "sha512-Jri4OCN+4YmpJDPNQvk1DJoskKD9sdTxZaWWWJdAwoSIunZk3IEBXVvRfKzsEAVtI+UJN25zC2kyjXbVPS2XAA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/button": "^3.9.1", + "@react-types/shared": "^3.22.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.3.tgz", + "integrity": "sha512-jW48jk0TIe0HAJS+z8zqd8M86FEuqrk1qEIjMWnf8rFnA7hPPpjdjUrY9vSIeC95NcbyZbFnr1bHzQjAIzosQw==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/utils": "^3.22.0", + "@react-stately/calendar": "^3.4.2", + "@react-types/button": "^3.9.1", + "@react-types/calendar": "^3.4.2", + "@react-types/shared": "^3.22.0", + "@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.12.0", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.12.0.tgz", + "integrity": "sha512-CyFZoI+z9hhyB3wb7IBsZxE30vXfYO2vSyET16zlkJ4qiFMqMiVLE4ekq034MHltCdpAczgP5yfKgNnJOmj7vQ==", + "dependencies": { + "@react-aria/form": "^3.0.0", + "@react-aria/label": "^3.7.3", + "@react-aria/toggle": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/checkbox": "^3.6.0", + "@react-stately/form": "^3.0.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/checkbox": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.0.tgz", + "integrity": "sha512-lInzzZrH4vFlxmvDpXgQRkkREm7YIx258IRpQqll8Bny2vKMmZoF06zWMbcHP0CjFqYxExQeTjSYx0OTRRxkCQ==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/listbox": "^3.11.2", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/menu": "^3.11.2", + "@react-aria/overlays": "^3.19.0", + "@react-aria/selection": "^3.17.2", + "@react-aria/textfield": "^3.13.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/collections": "^3.10.3", + "@react-stately/combobox": "^3.8.0", + "@react-stately/form": "^3.0.0", + "@react-types/button": "^3.9.1", + "@react-types/combobox": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.0.tgz", + "integrity": "sha512-FIpiJxwBNOM8a6hLOqQJ4JrvRiGL6Zr44E1mHtAWStp2kBEJ6+O2JRm4PQ5Pzvdw6xnCpOBdfESdNdlXN7lVqQ==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@internationalized/number": "^3.4.0", + "@internationalized/string": "^3.1.1", + "@react-aria/focus": "^3.15.0", + "@react-aria/form": "^3.0.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/spinbutton": "^3.6.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/datepicker": "^3.9.0", + "@react-stately/form": "^3.0.0", + "@react-types/button": "^3.9.1", + "@react-types/calendar": "^3.4.2", + "@react-types/datepicker": "^3.7.0", + "@react-types/dialog": "^3.5.7", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.8.tgz", + "integrity": "sha512-KIc1FORdHhZ3bWom4qHO0hmlL4e5Hup6N25EY8HP5I7Ftv9EBBGaO5grtxZ2fX8kiCJNI4y+k67ZZ71wKJvMiA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/overlays": "^3.19.0", + "@react-aria/utils": "^3.22.0", + "@react-types/dialog": "^3.5.7", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.0.tgz", + "integrity": "sha512-6IuqmXwnfgRfeXDbfsPZzScapCmtRIkphTBPoLT575uEbZC7ROLgRJ/4NIKxvtTA6IIBqUGcvaqU9Mpg8j4U5Q==", + "dependencies": { + "@internationalized/string": "^3.1.1", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/overlays": "^3.19.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/dnd": "^3.2.6", + "@react-types/button": "^3.9.1", + "@react-types/shared": "^3.22.0", + "@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.15.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.15.0.tgz", + "integrity": "sha512-nnxRyfqHuAjRwdQ4BpQyZPtGFKZmRU6cnaIb3pqWFCqEyJQensV7MA3TJ4Jhadq67cy1Ji5SYSlr1duBwjoYvw==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/focus/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/form": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.0.tgz", + "integrity": "sha512-APeGph9oTO8nro4ZObuy1hk+0hpF/ji9O3odPGhLkzP/HvW2J7NI9pjKJOINfgtYr2yvVUZf/MbTMxPwtAxhaQ==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/form": "^3.0.0", + "@react-types/shared": "^3.22.0", + "@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.5", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.5.tgz", + "integrity": "sha512-0p+Bbs9rpQeOy8b75DamlzVPKylBoe/z0XwkeeTChHP2TK3TwPXh6J5EmisQx6K8zsb3iZULQRcP4QibvnMbrg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-stately/collections": "^3.10.3", + "@react-stately/grid": "^3.8.3", + "@react-stately/selection": "^3.14.1", + "@react-stately/virtualizer": "^3.6.5", + "@react-types/checkbox": "^3.6.0", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.2.tgz", + "integrity": "sha512-9keGYZz0yILVqAnFzF6hGRtHm1vfSD1mNnH8oyn7mKjyr7qOln7s5f8Nl85ueMolfrV3H2rCZgM2itNQ+Ezzgg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/grid": "^3.8.5", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-stately/list": "^3.10.1", + "@react-types/shared": "^3.22.0", + "@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.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.9.0.tgz", + "integrity": "sha512-ebGP/sVG0ZtNF4RNFzs/W01tl7waYpBManh1kKWgA4roDPFt/odkgkDBzKGl+ggBb7TQRHsfUFHuqKsrsMy9TA==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@internationalized/message": "^3.1.1", + "@internationalized/number": "^3.4.0", + "@internationalized/string": "^3.1.1", + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@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.20.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.20.0.tgz", + "integrity": "sha512-JCCEyK2Nb4mEHucrgmqhTHTNAEqhsiM07jJmmY22eikxnCQnsEfdwXyg9cgZLG79D5V7jyqVRqOp2OsG7Qx7kQ==", + "dependencies": { + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.3.tgz", + "integrity": "sha512-v1zuqbpYyYaPjrBWpceGjMpwP4ne6fLoOXdoIZoKLux2jkAcyIF2kIJFiyYoPQYQJWGRNo7q1oSwamxmng4xJw==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.2.tgz", + "integrity": "sha512-v9gXgQ3Gev0JOlg2MAXcubDMgX+0BlJ+hTyFYFMuN/4jVBlAe426WKbjg+6MMzxwukWg9C3Q08JzqdFTi4cBng==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-types/link": "^3.5.2", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.2.tgz", + "integrity": "sha512-FXdoqYLUTJn16OxodyS518PIcwzFkCfW5bxQepoy88NDMGtqp6u8fvEPpAoZbomvw/pV9MuEaMAw9qLyfkD4DA==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-stately/collections": "^3.10.3", + "@react-stately/list": "^3.10.1", + "@react-types/listbox": "^3.4.6", + "@react-types/shared": "^3.22.0", + "@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.1", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.1.tgz", + "integrity": "sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-aria/menu": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.11.2.tgz", + "integrity": "sha512-I4R5FOvRtwIQW+0naXav5giZBp935X2tXB2xBg/cSAYDXgfLmFPLHkyPbO77hR6FwazfFfJoKdn0pVcRox3lrQ==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/overlays": "^3.19.0", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-stately/collections": "^3.10.3", + "@react-stately/menu": "^3.5.7", + "@react-stately/tree": "^3.7.4", + "@react-types/button": "^3.9.1", + "@react-types/menu": "^3.9.6", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.8.tgz", + "integrity": "sha512-u/pNisFs8UottonYlwqaS2i/NhHIw9LcApHo55XP7XMFCnaHPlq3mJzpSsr0zuCTvat2djoKelj41jT6Fhuw+A==", + "dependencies": { + "@react-aria/progress": "^3.4.8", + "@react-types/meter": "^3.3.6", + "@react-types/shared": "^3.22.0", + "@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.10.0", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.10.0.tgz", + "integrity": "sha512-ixkvkPTn18RNPnbaT726CHA+Wpr/qTYWboq8hSaJK0LiAtiEWCKg0pmVtJ4lFntAQ5GNp02xudTwhQdLN5WRig==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/spinbutton": "^3.6.0", + "@react-aria/textfield": "^3.13.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/form": "^3.0.0", + "@react-stately/numberfield": "^3.7.0", + "@react-types/button": "^3.9.1", + "@react-types/numberfield": "^3.7.0", + "@react-types/shared": "^3.22.0", + "@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.19.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.19.0.tgz", + "integrity": "sha512-VN5GkB8+uZ2cfXljBtkqmrsAhBdGoj4un/agH0Qyihi2dazsMeafczSNnqzbpVgB4Zt2UHPJUkKwihgzXRxJJA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-stately/overlays": "^3.6.4", + "@react-types/button": "^3.9.1", + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.8.tgz", + "integrity": "sha512-Nah3aj5BNRa0+urQZimzb0vuKQK7lsc8BrUwJuHTwGRBSWUjCADExrJYdhDIR/nLUV2TCmAQl+GJtTgbEEj0DQ==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/label": "^3.7.3", + "@react-aria/utils": "^3.22.0", + "@react-types/progress": "^3.5.1", + "@react-types/shared": "^3.22.0", + "@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.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.9.0.tgz", + "integrity": "sha512-kr3+OQ1YU/3mURZfCsYaQmJ/c15qOm8uScaDRC39qz97bLNASakQqMImIaS+GluPKx1PEW3y2ErAgLplH28zZw==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/form": "^3.0.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/utils": "^3.22.0", + "@react-stately/radio": "^3.10.0", + "@react-types/radio": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@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.6.0", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.6.0.tgz", + "integrity": "sha512-mHaN+sx2SLqluvF0/YIBQ9WA5LakSWl79FgC0sOWEaOZhDswAbJ9tESdi/M/ahtOnVwblE0cpHRlUKV0Oz4gOw==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/textfield": "^3.13.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/searchfield": "^3.5.0", + "@react-types/button": "^3.9.1", + "@react-types/searchfield": "^3.5.2", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.0.tgz", + "integrity": "sha512-ulVFH8K1yr8CxQE7pzhlM3aWBltWfSbWdJV3FXDqM0kA+GHqqPwZVJcqPuegtaiju1z6nRk4q789kJa4o+4M9g==", + "dependencies": { + "@react-aria/form": "^3.0.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/listbox": "^3.11.2", + "@react-aria/menu": "^3.11.2", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-stately/select": "^3.6.0", + "@react-types/button": "^3.9.1", + "@react-types/select": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.2.tgz", + "integrity": "sha512-AXXY3eOIWnITabMn6c0bpLPXkSX7040LOZU+7pQgtZJwDdZorLuKw4i7WS5i71LcV71ywG4mtqc9mOb/GfhUbg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/selection": "^3.14.1", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.8.tgz", + "integrity": "sha512-u15HgH2IVKN/mx7Hp9dfNiFpPU/mq2EA7l0e2fsVSjA77nhSctUFBAqaR7FAI/y86RUhq3zplIz4BJek1/3Dvw==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.3.tgz", + "integrity": "sha512-AbrTD9UzMn0CwxFjOhJHz2ms2zdJlBL3XnbvqkpsmpXUl0u8WT1QAEaMnS5+792gnSGZs/ARDmse53o+IO8wTA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/utils": "^3.22.0", + "@react-stately/slider": "^3.4.5", + "@react-types/shared": "^3.22.0", + "@react-types/slider": "^3.7.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.0.tgz", + "integrity": "sha512-I7f1gfwVRcjguEXZijk0z5g8njZ2YWnQzVzcwGf8ocLPxfw1CnSivNCzwVj2ChXPX10uXewXVMLWVCz+BRC9uQ==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/utils": "^3.22.0", + "@react-types/button": "^3.9.1", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.0.tgz", + "integrity": "sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg==", + "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.5.7", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.5.7.tgz", + "integrity": "sha512-zBEsB071zzhQ82RwAA42pFLXHgrpya0OoRAsTO6jHZwiaYMsyqJI2eiXd7F6rqklpgyO6k7jOQklGUuoSJW4pA==", + "dependencies": { + "@react-aria/toggle": "^3.9.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/switch": "^3.5.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.2.tgz", + "integrity": "sha512-bJgMx2SZ8SFmTosbv6k1lZ1a0Yw3f8tzWhpIQodCaMHhtI7izA6YqDNx47NeBNYpVm9DFfAoWbb79HFJ+OKIJA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/grid": "^3.8.5", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-stately/collections": "^3.10.3", + "@react-stately/flags": "^3.0.0", + "@react-stately/table": "^3.11.3", + "@react-stately/virtualizer": "^3.6.5", + "@react-types/checkbox": "^3.6.0", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@react-types/table": "^3.9.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/tabs": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.2.tgz", + "integrity": "sha512-zDfeEEyJmcnH9TFvJECWIrJpxX4SmREFV1/P8hN6ZUJPYoeiGMXYYFvjcRb1r3LN8XKlbwR37AQ3Cn1/yhrUwQ==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-stately/tabs": "^3.6.2", + "@react-types/shared": "^3.22.0", + "@react-types/tabs": "^3.3.4", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.0.tgz", + "integrity": "sha512-mANJTcPyut98O4D3cAKaNEV6QFfoljZCDAgC+uJkV/Zn8cU4JOFeNLAyNoLRlPvYw+msqr6wUyPkWNERuO+1Uw==", + "dependencies": { + "@react-aria/gridlist": "^3.7.2", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/selection": "^3.17.2", + "@react-aria/utils": "^3.22.0", + "@react-stately/list": "^3.10.1", + "@react-types/button": "^3.9.1", + "@react-types/shared": "^3.22.0", + "@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.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.13.0.tgz", + "integrity": "sha512-sUlinDE+k/WhbskyqVOkuffuhiQpjgvp+iGRoralStVgb8Tcb+POxgAlw5jS4tNjdivCb3IjVJemUNJM7xsxxA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/form": "^3.0.0", + "@react-aria/label": "^3.7.3", + "@react-aria/utils": "^3.22.0", + "@react-stately/form": "^3.0.0", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@react-types/textfield": "^3.9.0", + "@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.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.9.0.tgz", + "integrity": "sha512-2YMWYQUEmcoAXtrAE86QXBS9XlmJyV6IFRlMTBNaeLTdH3AmACExgsyU66Tt0sKl6LMDMI376ItMFqAz27BBdQ==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/checkbox": "^3.6.0", + "@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.6.5", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.6.5.tgz", + "integrity": "sha512-hXw4Z8nYLOWz3QOQ807wWZdvDwR3gofsmZhAehg2HPRwdRfCQK+1cjVKeUd9cKCAxs0Cay7dV0oUdilLbCQ2Gg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/tooltip": "^3.4.6", + "@react-types/shared": "^3.22.0", + "@react-types/tooltip": "^3.4.6", + "@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.22.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.22.0.tgz", + "integrity": "sha512-Qi/m65GFFljXA/ayj1m5g3KZdgbZY3jacSSqD5vNUOEGiKsn4OQcsw8RfC2c0SgtLV1hLzsfvFI1OiryPlGCcw==", + "dependencies": { + "@react-aria/ssr": "^3.9.0", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/utils/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/virtualizer": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.7.tgz", + "integrity": "sha512-xaLnzRypiJuGi91ns+LXLGfEhi4a2oz2ZUrZmIrMnBF3asEqULX1PEZoeSWrTWENzumM9D49fvB4JqonK0Ktwg==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/virtualizer": "^3.6.5", + "@react-types/shared": "^3.22.0", + "@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.7", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.7.tgz", + "integrity": "sha512-OuIGMVQIt7GC43h4x35BgkZid8lhoPu7Xz4TQRP8nvOJWb1lH7ehrRRuGdUsK3y90nwpxTdNdg4DILblg+VaLw==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, "node_modules/@react-google-maps/api": { "version": "2.19.2", "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.19.2.tgz", @@ -4026,6 +4966,1962 @@ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz", "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw==" }, + "node_modules/@react-spectrum/actionbar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.0.tgz", + "integrity": "sha512-Kb0lSo5iFpb4Qeet0fN8Ful7TFtmtHkl1LJuKz53q2qYQll+E+r2VVAdcOQMJRMRAEnecfd5mxAjEVawdOqrdw==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/live-announcer": "^3.3.1", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/actiongroup": "^3.10.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-types/actionbar": "^3.1.4", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.0.tgz", + "integrity": "sha512-Wz6nD43bSFiUJsGJr8nIlFjiDzh7ZM65a7xnkHHk+wEPU6wDR6pA0fLVsscMMgNDqDaW2RclfIpJ2jBTBqZ7/w==", + "dependencies": { + "@react-aria/actiongroup": "^3.7.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/menu": "^3.16.0", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/tooltip": "^3.6.2", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/list": "^3.10.1", + "@react-types/actiongroup": "^3.4.6", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@spectrum-icons/workflow": "^4.2.7", + "@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.7", + "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.7.tgz", + "integrity": "sha512-+WfgiweFfu8rIhTIEKC/4i0X97lqTWxvosjQMmAgDV2m3Z0Qf03stJzZFL9UISEF+EchE6G17bAYfZ5UjmmErQ==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/avatar": "^3.0.4", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.8.tgz", + "integrity": "sha512-yplVbI2r/JJKVrsoc7cQpGv7JCPOApH6NYvjPo2UI7Vi5qI86BMP51BtHvZaxsmxKIinGBaoX44jcBcJw40Pmg==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/badge": "^3.1.6", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.2.tgz", + "integrity": "sha512-JMDeUpvzehx82mNizcc/Hnd1KYJCAnZARn9LJZpDhTqCMZW7OVkaUf8l5EtYPQpy6IAt477rQX4Gh/ipl+niLw==", + "dependencies": { + "@react-aria/breadcrumbs": "^3.5.8", + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/menu": "^3.16.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-types/breadcrumbs": "^3.7.2", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.15.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.15.0.tgz", + "integrity": "sha512-Hr4A2ex9uxg93XsnboCgiFYSD/lh8dK4u7+0I+yZ075kinrQVfbS4x5QZKqTW/BRxMOifHqfzz1CY2FMZ+9FSA==", + "dependencies": { + "@react-aria/button": "^3.9.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/toggle": "^3.7.0", + "@react-types/button": "^3.9.1", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.8.tgz", + "integrity": "sha512-KyyhNBok0bmAMVYIu7V5sNtw+sywfihF3j60yLwVCGdNl8tekLtZs8bwQY+HhkDMuyM5OPK9ClY5mMZAzDxWoQ==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/buttongroup": "^3.3.6", + "@react-types/shared": "^3.22.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.3.tgz", + "integrity": "sha512-UF5lR+zHbur1tjjE+B6dcht9+o7iu+jfCf8sXfU0HSs7DoJGiUazpOuTKG3WQhuTMcuYYewGU7zXdphEM8NGcw==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-aria/calendar": "^3.5.3", + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/calendar": "^3.4.2", + "@react-types/button": "^3.9.1", + "@react-types/calendar": "^3.4.2", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.0.tgz", + "integrity": "sha512-UDNy1qLSgvBtpsX+Df2GL7hBsnqtNPXj13lX5YflvbxqQhqMK5H838toMtbxM1fgO/JW1lD6mXOLx8TgK5WSOw==", + "dependencies": { + "@react-aria/checkbox": "^3.12.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/checkbox": "^3.6.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/checkbox": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.11.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.11.2.tgz", + "integrity": "sha512-HSgXm/dleNOG5BJ00Dju0pUlYYXgTMXJ0zgt4yVRyDKpH+vBwL60TYTP/JoVik9YrZkYd3NJ+IgaS5a5MEIXMg==", + "dependencies": { + "@react-aria/button": "^3.9.0", + "@react-aria/combobox": "^3.8.0", + "@react-aria/dialog": "^3.5.8", + "@react-aria/focus": "^3.15.0", + "@react-aria/form": "^3.0.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/label": "^3.7.3", + "@react-aria/overlays": "^3.19.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/listbox": "^3.12.4", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/textfield": "^3.11.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/combobox": "^3.8.0", + "@react-types/button": "^3.9.1", + "@react-types/combobox": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.5.tgz", + "integrity": "sha512-gDxB68DFXPz3odOkyVFFWJZOx5l57JXUuZnrrUXSP4TnX/snXL+1+aIBzMcXqdJJhW8OB9sYmWAkimffLMuzGA==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/dialog": "^3.8.5", + "@react-spectrum/utils": "^3.11.2", + "@react-types/contextualhelp": "^3.2.7", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/workflow": "^4.2.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", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/datepicker": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.0.tgz", + "integrity": "sha512-Hqq3/IigL939mbFtUWsr95/rr/IN9r7a2Nvquha6vg9UALk8XnTj0f3fJl6m16GdSavpfOvxz7Ef9+Vqijw0mg==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-aria/datepicker": "^3.9.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/calendar": "^3.4.3", + "@react-spectrum/dialog": "^3.8.5", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/utils": "^3.11.2", + "@react-spectrum/view": "^3.6.5", + "@react-stately/datepicker": "^3.9.0", + "@react-types/datepicker": "^3.7.0", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@spectrum-icons/workflow": "^4.2.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", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/dialog": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.5.tgz", + "integrity": "sha512-lkAgRhzawhOX9yEjnA1tQeb5Yyv9W4CbRYv7ZtY6pr8f35b8JQQUGKCby3A/TArW5zTBvoueoMt27gJDxnGF5w==", + "dependencies": { + "@react-aria/dialog": "^3.5.8", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/overlays": "^3.19.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/buttongroup": "^3.6.8", + "@react-spectrum/divider": "^3.5.8", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-spectrum/view": "^3.6.5", + "@react-stately/overlays": "^3.6.4", + "@react-types/button": "^3.9.1", + "@react-types/dialog": "^3.5.7", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.8.tgz", + "integrity": "sha512-1+uIZW/TO/laTgvUpSaBuKyScpVKDXQhyWd0WyP2UioRA7gIh9rEgoMAIV4WPFUXBLdj6W12uYGOjSS2iXfzYQ==", + "dependencies": { + "@react-aria/separator": "^3.3.8", + "@react-spectrum/utils": "^3.11.2", + "@react-types/divider": "^3.3.6", + "@react-types/shared": "^3.22.0", + "@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.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.5.tgz", + "integrity": "sha512-+lPqHd/CSbz/PV2HXIOpKLuBRpee3oz0nO0CRIog7zfIkI/wl2xaov+PdrUKk+58GUNGhz1C69QlPnDCV+t+0w==", + "dependencies": { + "@react-aria/dnd": "^3.5.0", + "@react-stately/dnd": "^3.2.6", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.0.tgz", + "integrity": "sha512-TrUUG6D28Ugy/CmiGJJxkr8ue4zRE3wQkC6HScNCLcVGSkrcsWzDDUxRYDrxwlyFNMuZjUDhiLMMPthZqZcIUA==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/form": "^3.0.0", + "@react-types/form": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.8.tgz", + "integrity": "sha512-OllOy3+2laBHZNXAsVfy7J7ov9UsT/e6zTeqvWVIhYW8abpIYcCtJWxeaBPubVMcA47NRCLF46sEOuFhnTUxIw==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.8.tgz", + "integrity": "sha512-QHrjAZ9rXv+WpUR0QG3bz/3j1qLkc7qS4AwImZ9aoF7YRWMxLJCB2/b9tPGmWRWjjeH+gSSa4Q4y8FEr2hsYkA==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/illustratedmessage": "^3.3.6", + "@react-types/shared": "^3.22.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.8.tgz", + "integrity": "sha512-hdDFjAxF9poKsE820H37C3y8J8NBzNQx8c/Erp2O1LTQP5HynBimYxqezx5KAl9scFsOaHsbY+VdGdFTzOmIsg==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/image": "^3.3.6", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.0.tgz", + "integrity": "sha512-uRWLLl2M5tc7B3/Lzm2/JLxXOyi+cT6uYkq9eksBM41OMfvgLksT5vaOegiBGHgi2r7QktTMZnDzGk5sGvaQyA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.0.tgz", + "integrity": "sha512-VLTpsq8wxTSv5eA2LwUVW79gdja3oSAKiTZmU6dMlo3yuBOhTMAsaAbgFhopTvotjUim9JG24BRpajnuA7Jz4w==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/label": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.8.tgz", + "integrity": "sha512-J/LaCVR3pWYbTg7sZg1p0W7jdWongUTjEE+2mlSdtJJaxLTUgOFgm32k/RU7foFK9+ds41S6gfDpv88aR4M+YA==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.0.tgz", + "integrity": "sha512-eOG7u7dqqawMJq/cgr0Iq96Tqt2tuRVStnLgVpWJqKSYxJadd8Ja3mAkWzUq5SfX3r1w3UJWSJPcqYcu4TQ5yQ==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/layout": "^3.3.12", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.2.tgz", + "integrity": "sha512-Pa3fgGUpxzlWZ6fXVQcdLXDxp6Ui9KtJDSKZYAxQrTL4OzEA8rgF+FeG0d7MDAHW2okW6a/N9dJALrJEtlizGg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/link": "^3.6.2", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/link": "^3.5.2", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.4.tgz", + "integrity": "sha512-ccMeyylTWknzZoWHGGDzmaPHKU2hns0UjHBDyNT8hCItO/YL0s2NWY83QO+iYS8Xb6n/EDts7IBrJJYrmxDRWQ==", + "dependencies": { + "@react-aria/button": "^3.9.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/gridlist": "^3.7.2", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-aria/virtualizer": "^3.9.7", + "@react-aria/visually-hidden": "^3.8.7", + "@react-spectrum/checkbox": "^3.9.0", + "@react-spectrum/dnd": "^3.3.5", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/layout": "^3.13.4", + "@react-stately/list": "^3.10.1", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.4.tgz", + "integrity": "sha512-qmgHbeoFMFAK3AViPWri2z0Aqio0h2pf0ROjjkNPmTIm9xZEFMwArLqWhftmEm+smMTuNLjZv8aYGahKwiQDrg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/listbox": "^3.11.2", + "@react-aria/utils": "^3.22.0", + "@react-aria/virtualizer": "^3.9.7", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/layout": "^3.13.4", + "@react-stately/list": "^3.10.1", + "@react-stately/virtualizer": "^3.6.5", + "@react-types/listbox": "^3.4.6", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.16.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.16.0.tgz", + "integrity": "sha512-wcUwBLifWvJvMQrdnh7+m9g4maW87zv7yB2D/cnGYIkXL1aNZxa6zHLxSegs1PrqdP77fhEXthVFcMreuIHO6A==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/menu": "^3.11.2", + "@react-aria/overlays": "^3.19.0", + "@react-aria/separator": "^3.3.8", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/menu": "^3.5.7", + "@react-stately/overlays": "^3.6.4", + "@react-stately/tree": "^3.7.4", + "@react-types/menu": "^3.9.6", + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@spectrum-icons/workflow": "^4.2.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", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/meter": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.8.tgz", + "integrity": "sha512-7nFE+B9OE6WyKJpBn8gAulNAlKqG2VFq74UiB/xV37rHXRIjn4waLaxK7s6uHCozOu2Ly5uTDJV5x3AN3W2ldw==", + "dependencies": { + "@react-aria/meter": "^3.4.8", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/utils": "^3.11.2", + "@react-types/meter": "^3.3.6", + "@react-types/shared": "^3.22.0", + "@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.8.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.8.0.tgz", + "integrity": "sha512-uboKuVBDYR5BkGw1qY3udKmsMRipkhQIY1diKK0uu5ETdKrjhXRNQ5L+xfshT/K960tmztwnKk/nj1jePjk6MA==", + "dependencies": { + "@react-aria/button": "^3.9.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/numberfield": "^3.10.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/textfield": "^3.11.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/numberfield": "^3.7.0", + "@react-types/button": "^3.9.1", + "@react-types/numberfield": "^3.7.0", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@spectrum-icons/workflow": "^4.2.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", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/overlays": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.2.tgz", + "integrity": "sha512-4VXK1HMazuETgSnpPSPszuCB/4WaVhPX0h+1ICllReuvv9mvgWt6KoCkqJSoVMM8qlB4XocGUPsI1pL+Bck78w==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/overlays": "^3.19.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/overlays": "^3.6.4", + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0", + "@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.13.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.13.2.tgz", + "integrity": "sha512-o7t1tnCKrYbDpZ/n3vohok82Yx6iEv8TQXUrXkiqHbRiohN72PB4WJMOlBjMbNaprcC4tdkHVuGlAhSwQHYBdA==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/select": "^3.14.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/listbox": "^3.12.4", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/select": "^3.6.0", + "@react-types/select": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.2.tgz", + "integrity": "sha512-YtAvWHC4rwBqRagoS/Mmt2NOZo4G6p5rIdhiVp/UjKa1oqEEiut29dMvr/JS30AoNPPSc95ctydgUU6JynyGJQ==", + "dependencies": { + "@react-aria/progress": "^3.4.8", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/progress": "^3.5.1", + "@react-types/shared": "^3.22.0", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.2.tgz", + "integrity": "sha512-5DZA8UdAXWzLJo7nxO7VgTqvmjN6cbjctMWhLbv81jSLWRqm+O6RhRZjnbEVXqwfyPpxJzDG8ZhjaQe/kFs38A==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/overlays": "^3.19.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/provider": "^3.7.1", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.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/@react-spectrum/provider/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-spectrum/radio": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.0.tgz", + "integrity": "sha512-AikFzw+aJ1gL6Ysnfb4wXDgsnPp0KB9jbMrqENW6KKZxQ5+au2Xzj28mnKDfAjBXlxQlTAhBo5SnI0WnjTmKWA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/radio": "^3.9.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/radio": "^3.10.0", + "@react-types/radio": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.0.tgz", + "integrity": "sha512-WVI/5ONt1hSm+D/A7J3ICpVOue6J2FBBWKU9zVSK7cwcklWgUGyGkZLD8luVQtcpI5bDLb2tHixs7a1OXPC8Uw==", + "dependencies": { + "@react-aria/searchfield": "^3.6.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/textfield": "^3.11.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/searchfield": "^3.5.0", + "@react-types/searchfield": "^3.5.2", + "@react-types/textfield": "^3.9.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.4.tgz", + "integrity": "sha512-ckKlRJhDKUIsZepnCzRcCe20Q4MaoC8dLEFNz/f6CItfZNoE8sH5OsHuDFOEbhNOgNyGjj9Dv99iKPAkRrDWkg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/slider": "^3.7.3", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/slider": "^3.4.5", + "@react-types/shared": "^3.22.0", + "@react-types/slider": "^3.7.0", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.8.tgz", + "integrity": "sha512-q0q/JzEmucU83fCGokIQZ09/TsFWKuv+eHm2FKRZNeLcTS1oGNZGsty7iFa7To+b4F3lA7HxEQ936EOjQuDOwQ==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@react-types/statuslight": "^3.3.6", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.0.tgz", + "integrity": "sha512-a9SbC3seaU/Ai840q1PZEZraB3EJosDqww0zKU80pDtTqtP4b3KWwvHrVRWOQ2PeJm1bm/aPkuyMa7cM12m2tQ==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/switch": "^3.5.7", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/toggle": "^3.7.0", + "@react-types/shared": "^3.22.0", + "@react-types/switch": "^3.5.0", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.4.tgz", + "integrity": "sha512-29dWRfs0rZv4PXByyRZPdgPVQiyjZAm4hFhvqmZnpeKQx3+Y63MrO0xdDYIIbopmANhKT/JPO3jIG4gWMvd72A==", + "dependencies": { + "@react-aria/button": "^3.9.0", + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/table": "^3.13.2", + "@react-aria/utils": "^3.22.0", + "@react-aria/virtualizer": "^3.9.7", + "@react-aria/visually-hidden": "^3.8.7", + "@react-spectrum/checkbox": "^3.9.0", + "@react-spectrum/dnd": "^3.3.5", + "@react-spectrum/layout": "^3.6.0", + "@react-spectrum/menu": "^3.16.0", + "@react-spectrum/progress": "^3.7.2", + "@react-spectrum/tooltip": "^3.6.2", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/flags": "^3.0.0", + "@react-stately/layout": "^3.13.4", + "@react-stately/table": "^3.11.3", + "@react-stately/virtualizer": "^3.6.5", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@react-types/table": "^3.9.1", + "@spectrum-icons/ui": "^3.6.2", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.4.tgz", + "integrity": "sha512-wDMHf8Xa3lCh7vkkpwT3G8Vd6ooo5VSHlMv1NUQsFjlymbZQ88aBkZfJVBxag7fWoO/Yo2IGf5Tb2Gpj1hW99Q==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/tabs": "^3.8.2", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/picker": "^3.13.2", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/list": "^3.10.1", + "@react-stately/tabs": "^3.6.2", + "@react-types/select": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@react-types/tabs": "^3.3.4", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.0.tgz", + "integrity": "sha512-BrYpyaoJkaHL/74DzaCJjMzn544TvJbf9uJaZ3TUwt8MQ4rAOdHKn5fI3jiX665WWJPhsI6Dfns/gN/4HlqfJA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/selection": "^3.17.2", + "@react-aria/tag": "^3.3.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/button": "^3.15.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/text": "^3.5.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/collections": "^3.10.3", + "@react-stately/list": "^3.10.1", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.0.tgz", + "integrity": "sha512-gZ2sqrfz/T8kYhS/TUXoR6ZhC9apU1i+K+8W9LV7LXAraZYQiDTiglTqnxER+qtW/+Xon1ZDoL2TICt63wHFFA==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@react-types/text": "^3.3.6", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.0.tgz", + "integrity": "sha512-bAG4hwFUJGWiViaOBXDWvYxsMvzs8+rCfdiLil7b5CPgbZCpvsHVMSt8dOQW18MqrJNGv2Zm8gZYjvFSnfklAA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/textfield": "^3.13.0", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/form": "^3.7.0", + "@react-spectrum/label": "^3.16.0", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@react-types/textfield": "^3.9.0", + "@spectrum-icons/ui": "^3.6.2", + "@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.7", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.7.tgz", + "integrity": "sha512-WaBVkhJKsZNcsHCcm6HQOSV934KLxZK6cbTt/FjUZtNTHcQTb5s2xf2jPeMwcRbRJfzagfTuTr5BkM38B9Zi1Q==", + "dependencies": { + "@react-types/provider": "^3.7.1", + "@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.7", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.7.tgz", + "integrity": "sha512-5GgCKfzA1be3pE5XtQ+5hk39I4BhU1qY+fHCDxvE/tndm2I7pCk26d6ifxA0H2RVKH8V3eiH0WG1TNXHcHIO1g==", + "dependencies": { + "@react-types/provider": "^3.7.1", + "@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.7", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.7.tgz", + "integrity": "sha512-3NeIDN9QU8c40rqRSzurTdJRTZ5Uag4c2fLlF9Bve/yF7N6KlzK29H3EWNLBizAfozhPe5/HDEYqdArz7bxhlQ==", + "dependencies": { + "@react-types/provider": "^3.7.1", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.2.tgz", + "integrity": "sha512-aZ0CSlWOGgRQe/u41PgCgiXdO7+GowGE8CA46BCA8DEoqrw3JjSOX2JYClrPUra1VxHXId8AeQGU5bRw3abb2g==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/overlays": "^3.19.0", + "@react-aria/tooltip": "^3.6.5", + "@react-aria/utils": "^3.22.0", + "@react-spectrum/overlays": "^5.5.2", + "@react-spectrum/utils": "^3.11.2", + "@react-stately/tooltip": "^3.4.6", + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0", + "@react-types/tooltip": "^3.4.6", + "@spectrum-icons/ui": "^3.6.2", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.2.tgz", + "integrity": "sha512-JLv0ntBrrIvloUgqVhAZvTTiBqZ/pHtAWOuIgrii3PFUsds4OVX+YebB88rj639Zi/tFrSdfrlZJNER1ZOq9jw==", + "dependencies": { + "@react-aria/i18n": "^3.9.0", + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/utils/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-spectrum/view": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.5.tgz", + "integrity": "sha512-y135Ownoi6Hw466k4hWcYBJmqjTQlKVgXtCT5aKpKm8l9RlpvPvtoUe5OBUxKkHHgB1TCIOpy76hLi9SQc0Omw==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@react-types/view": "^3.4.6", + "@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.8", + "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.8.tgz", + "integrity": "sha512-A2fJxlT/eAKyPTbCOmoUNB+BjDP8RnViZ7X6/gcxjEAtn5KVnJ6DmZTG8Kw+yPnuLxK+5Lui/dfGI9g19GWohw==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-spectrum/utils": "^3.11.2", + "@react-types/shared": "^3.22.0", + "@react-types/well": "^3.3.6", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.2.tgz", + "integrity": "sha512-RfH40rVa2EhUnQgqH3HTZL+YhL+6tZ8T9GbN1K3AbIM5BBEtkb3P8qGhcaI7WpwNy1rlRFFFXGcqFAMUncDg2Q==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-stately/utils": "^3.9.0", + "@react-types/calendar": "^3.4.2", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.0.tgz", + "integrity": "sha512-e1ChMwGovcOEDcdizqXDT6eDZixIMiPQOzNV5wPQ91SlGaIry9b0lQnK18tHg3yv2iiS6Ipj96cGBUKLJqQ+cQ==", + "dependencies": { + "@react-stately/form": "^3.0.0", + "@react-stately/utils": "^3.9.0", + "@react-types/checkbox": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.3.tgz", + "integrity": "sha512-fA28HIApAIz9sNGeOVXZJPgV5Kig6M72KI1t9sUbnRUr9Xq9OMJTR6ElDMXNe0iTeZffRFDOPYyqnX9zkxof6Q==", + "dependencies": { + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.0.tgz", + "integrity": "sha512-F74Avf7+8ruRqEB+3Lh6/C5jXc3ESJbRf9ovUxhmNAzBGeFKesPn5HpEpo87C+3OukGb+/Buvi3Rhib9+HVBKA==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/form": "^3.0.0", + "@react-stately/list": "^3.10.1", + "@react-stately/menu": "^3.5.7", + "@react-stately/select": "^3.6.0", + "@react-stately/utils": "^3.9.0", + "@react-types/combobox": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.0.tgz", + "integrity": "sha512-0BlPT58WrAtUvpiEfUuyvIsGFTzp/9vA5y+pk53kGJhOdc5tqBGHi9cg40pYE/i1vdHJGMpyHGRD9nkQb8wN3Q==", + "dependencies": { + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.0.tgz", + "integrity": "sha512-p6BuxPbDxjIgBZmskdv2dR6XIdPEftCjS7kYe/+iLZxfz1vYiDqpJVb3ascLyBjl84bDDyr4z2vWcKhdDwyhEA==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@internationalized/string": "^3.1.1", + "@react-stately/form": "^3.0.0", + "@react-stately/overlays": "^3.6.4", + "@react-stately/utils": "^3.9.0", + "@react-types/datepicker": "^3.7.0", + "@react-types/shared": "^3.22.0", + "@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.6", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.6.tgz", + "integrity": "sha512-ex3Pjn+9uIoqsBb9F4ZFJb3fB0YadN8uYBOEiBb9N4UXWyANibGUYJ2FvIbvq1nFDU7On7MW1J9e3vkGglX4FQ==", + "dependencies": { + "@react-stately/selection": "^3.14.1", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.0.tgz", + "integrity": "sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==", + "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.0", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.0.tgz", + "integrity": "sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ==", + "dependencies": { + "@react-types/shared": "^3.22.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.3.tgz", + "integrity": "sha512-JceGSJcuO6Zv+Aq5s2NZvmbMjdPjTtGNQR9kTgXKC/pOfM6FJ58bJiOmEllyN6oawqh4Ey8Xdqk9NuW4l2ctuw==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/selection": "^3.14.1", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.4.tgz", + "integrity": "sha512-gmtkB+EISfB1Ne/56cd4djJXUwCtcrjzA7BHzBBXcjJNmTc/NQh5+qh66JHkXTKF3PT5FdVtmO2MODqGaWkUeg==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/table": "^3.11.3", + "@react-stately/virtualizer": "^3.6.5", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@react-types/table": "^3.9.1", + "@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.1", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.1.tgz", + "integrity": "sha512-iVarLMd7FmMT0H20dRWsFOHHX5+c4gK51AXP2BSr1VtDSfbL4dgaGgu7IaAMVc/rO0au1e1tPM2hutiIFvPcnA==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/selection": "^3.14.1", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.5.7", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.5.7.tgz", + "integrity": "sha512-bzTmAqzcMNatvyruWlvOdZSmMhz3+mkdxtqaZzYHq+DpR6ka57lIRj8dBnZWQGwV3RypMZfz+X6aIX4kruGVbw==", + "dependencies": { + "@react-stately/overlays": "^3.6.4", + "@react-types/menu": "^3.9.6", + "@react-types/shared": "^3.22.0", + "@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.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.7.0.tgz", + "integrity": "sha512-DOz4jL7T30KGUXpGh/z80aHf+DEOQfvCHVDfll+IU7p3sd+bbM5uj7JdwXpZgIYUK8KTf2N49sL6lq5uCoxh8w==", + "dependencies": { + "@internationalized/number": "^3.4.0", + "@react-stately/form": "^3.0.0", + "@react-stately/utils": "^3.9.0", + "@react-types/numberfield": "^3.7.0", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.4.tgz", + "integrity": "sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA==", + "dependencies": { + "@react-stately/utils": "^3.9.0", + "@react-types/overlays": "^3.8.4", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.0.tgz", + "integrity": "sha512-d8IgZtUq/4vhE7YhyBVg1QdVoFS0caIcvPumXqtp/5vlDgpUsVy9jSeWtbk0H4FyUcmJlQhRcTylKB9THXY1YQ==", + "dependencies": { + "@react-stately/form": "^3.0.0", + "@react-stately/utils": "^3.9.0", + "@react-types/radio": "^3.6.0", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.0.tgz", + "integrity": "sha512-SStjChkn/33pEn40slKQPnBnmQYyxVazVwPjiBkdeVejC42lUVairUTrGJgF0PNoZTbxn0so2/XzjqTC9T8iCw==", + "dependencies": { + "@react-stately/utils": "^3.9.0", + "@react-types/searchfield": "^3.5.2", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.0.tgz", + "integrity": "sha512-GvSE4DXmcvdRNUc+ciPU7gedt7LfRO8FFFIzhB/bCQhUlK6/xihUPrGXayzqxLeTQKttMH323LuYFKfwpJRhsA==", + "dependencies": { + "@react-stately/form": "^3.0.0", + "@react-stately/list": "^3.10.1", + "@react-stately/menu": "^3.5.7", + "@react-types/select": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.1", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.1.tgz", + "integrity": "sha512-96/CerrB6yH4Ad9FkzBzyVerSPjcIj1NBTWTFHo1N+oHECvyGsDxZl7Y4LQR++teFK66FhX5KjCJQGae4IZd6A==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.4.5", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.4.5.tgz", + "integrity": "sha512-lJPZC8seYbnZDqAlZm3/QC95I5iluG8ouwkPMmvtWCz1baayV/jJtfxA/74zR7Vcob9Fe7O57g8Edhz/hv9xOQ==", + "dependencies": { + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@react-types/slider": "^3.7.0", + "@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.3", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.3.tgz", + "integrity": "sha512-r0rzSKbtMG4tjFpCGtXb8p6hOuek03c6rheJE88z4I/ujZ5EmEO6Ps8q0JMNEDCY2qigvKM+ODisMBeZCEkIJg==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/flags": "^3.0.0", + "@react-stately/grid": "^3.8.3", + "@react-stately/selection": "^3.14.1", + "@react-stately/utils": "^3.9.0", + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0", + "@react-types/table": "^3.9.1", + "@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.2", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.2.tgz", + "integrity": "sha512-f+U4D1FAVfVVcNRbtKIv4GrO37CLFClYQlXx9zIuSXjHsviapVD2IQSyAmpKo/CbgXhYRMdGwENZdOsmF/Ns7g==", + "dependencies": { + "@react-stately/list": "^3.10.1", + "@react-types/shared": "^3.22.0", + "@react-types/tabs": "^3.3.4", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.0.tgz", + "integrity": "sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g==", + "dependencies": { + "@react-stately/utils": "^3.9.0", + "@react-types/checkbox": "^3.6.0", + "@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.6", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.6.tgz", + "integrity": "sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA==", + "dependencies": { + "@react-stately/overlays": "^3.6.4", + "@react-types/tooltip": "^3.4.6", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.4.tgz", + "integrity": "sha512-0yvVODBS8WnSivLFX5ccEjCl2NA/8lbEt1E48wVcY1xcXgISNpw5MSGK5jC6YrtJPIqVolQIkNSbMreXGBktIg==", + "dependencies": { + "@react-stately/collections": "^3.10.3", + "@react-stately/selection": "^3.14.1", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.0.tgz", + "integrity": "sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw==", + "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.5", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.5.tgz", + "integrity": "sha512-v0cZeNCGPMeo3LP4UrGuDo3Xpq7ufNaZyGObgSvdrIW49qK5F02kczcKy6NKg+QfOgC/+Nc9Tof/2S8dcxDrCA==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@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.4", + "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.4.tgz", + "integrity": "sha512-/z9N7ztd/MOdEDQNHTCNviYe0+rqy1s19Xg3tv/PV1oUCOsjrnja85VVxoa+AWR8IbwgDNIfpXg2Wa66b1FDbw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/actiongroup": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.6.tgz", + "integrity": "sha512-Dho2mEDCU9ZAW+QX2HZkZhyxHK/EGfTvSWdHBFaCYsh4CPI/6PcvtirpSKMrzNNaZ97Exthv3GcLpAnLwM9jZw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/avatar": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.4.tgz", + "integrity": "sha512-fQ+qGce0EqcX0s2glnFjfvxSq42GHaqvl+eL8TnsDz0OIvB8KKzTO/rV/q1CIy/LtMP8fjCb6oqVFQcLfuODfw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/badge": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.6.tgz", + "integrity": "sha512-6xjgfRnCVSBI6l/RQkI4u3tXiXw1aeFKRqXPcyIyt/kuu7rP0nKeYcM2XYyXXQp7vHfBdOEL2f6LwIHR/lx4uQ==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/breadcrumbs": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.2.tgz", + "integrity": "sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw==", + "dependencies": { + "@react-types/link": "^3.5.2", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/button": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.1.tgz", + "integrity": "sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/buttongroup": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.6.tgz", + "integrity": "sha512-aKFDzAWM6bk2+EBDSZe3zq4NMuguXsPyZ9OexN0YLleK4IkRKE2S51PdChY/GAFhfs7VsOKgjHrYWUnrmCCYvw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/calendar": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.2.tgz", + "integrity": "sha512-tCZ21un/8OAhpNtmSXDkOVvS5Pzp+y/JwNr6VGFi8HBC5F/c8SzuwV0jKN8ymsZSWbDQ68xXGNWxFaG43Bw8Pg==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/checkbox": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.6.0.tgz", + "integrity": "sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/combobox": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.9.0.tgz", + "integrity": "sha512-VAQWM2jrIWROgcTKxj4k37WWpK/1zRjj1HfGeuenAQyOQwImqDwCHx5YxQR1GiUEFne4v1yXe2khT0T5Kt2vDg==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/contextualhelp": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.7.tgz", + "integrity": "sha512-BHwBSBhPekKc/PxDpnkvfcEgpaYLMrV6WYgMfUz2/BMYOjdm+pb1y80vpNkWtrJKytyqp1zeZ+Ca+xzX1HdazA==", + "dependencies": { + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/datepicker": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.0.tgz", + "integrity": "sha512-Uh+p6pZpMFc5ZBOns5TXCBbUvJp1KVROLBn2gk5dMEFVq78Qs1VFuAt4lwr9gQBOJrX5I/l65pRTwwWwAKxYtQ==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@react-types/calendar": "^3.4.2", + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/dialog": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.7.tgz", + "integrity": "sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w==", + "dependencies": { + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/divider": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.6.tgz", + "integrity": "sha512-Iwwe349IiCX7ZQK1Oz4AN5kWwiXG0DECSN4qB3h+14n97JKy3chWJC7UA+V6+2p5DbxmLVZm4XxDRgx7y0lVTg==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/form": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.6.0.tgz", + "integrity": "sha512-+k6IpjQE+sVi/xoK5lnRGyeISkOQ+CKfuH8IeGcYVHr2voDxSJC5WZsp+L5zeoxuSorKokeEPKGOX2HFj9BG/A==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/grid": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.3.tgz", + "integrity": "sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/illustratedmessage": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.6.tgz", + "integrity": "sha512-1FdJl1tR6mirmXT8yaTFeHNWdLXV6Dll66Mv1liEtTYsmCgn2anxwM73jK63t3jdT6ez/M1wGiwMlMtyiqo+ZQ==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/image": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.6.tgz", + "integrity": "sha512-GSb0deyquS3kFt0e9SfPP9I/YaYYUToYYPzx9As0R0mzuVn6qTHhUtpKhBqQAOpE1Cd8XdEQeYsDB3sdOurI+A==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/label": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.0.tgz", + "integrity": "sha512-nTmPf5ED8aLGqvFsZHIHwMPrRX0cfbOyayva//Rdis41KWQoKUB80DIQjE+iUDOgTivIxGBkpqdIZVqRuehTnw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/layout": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.12.tgz", + "integrity": "sha512-Ai6limgTVYQoGiXUvsXg8MHik+YAtRWEVLQhT5E1nQkDkNkQyccB+waUSfORhRkjJcnp+KMcbmPZ8V5ZO42rvQ==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/link": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.2.tgz", + "integrity": "sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/listbox": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.6.tgz", + "integrity": "sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/menu": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.6.tgz", + "integrity": "sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg==", + "dependencies": { + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/meter": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.6.tgz", + "integrity": "sha512-1XYp1fA9UU0lO6kjf3TwVE8mppOJa64mBKAcLWtTyq1e/cYIAbx5o6CsuUx0YDpXKF6gdtvIWvfmxeWsmqJ1jQ==", + "dependencies": { + "@react-types/progress": "^3.5.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/numberfield": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.7.0.tgz", + "integrity": "sha512-gaGi+vqm1Y8LCWRsWYUjcGftPIzl+8W2VOfkgKMLM8y76nnwTPtmAqs+Ap1cg7sEJSfsiKMq93e9yvP3udrC2w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.4.tgz", + "integrity": "sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/progress": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.1.tgz", + "integrity": "sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/provider": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.1.tgz", + "integrity": "sha512-WKwHwG5b0LkI570tbHCy4hBhT/E+OrdgIybScDxM713B2OwmMKKyaPKdV05SeoomP8oiPvkaAeXhLZa1ah7CYg==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/radio": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.6.0.tgz", + "integrity": "sha512-VOZzegxxZS55gHRVyWu278Q4y/rEQGiAVQCUqi25GmpbMe4MlHrzg16c76RiZMUK9PPoyv+XNUgAaPmxebkn7g==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/searchfield": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.2.tgz", + "integrity": "sha512-JAK2/Kg4Dr393FYfbRw0TlXKnJPX77sq1x/ZBxtO6p64+MuuIYKqw0i9PwDlo1PViw2QI5u8GFhKA2TgemY9uA==", + "dependencies": { + "@react-types/shared": "^3.22.0", + "@react-types/textfield": "^3.9.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/select": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.0.tgz", + "integrity": "sha512-0nalGmcoma4jreICLSJae/uKAuMiVyWgqWjGrGiUGGcdDchH4limKVEqNDaBwLvxVT6NB5LLsaipCTCAEEl4Rg==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.0.tgz", + "integrity": "sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/slider": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.0.tgz", + "integrity": "sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/statuslight": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.6.tgz", + "integrity": "sha512-MB/CnsbaE6reOrnpowJfgkpeSNY0ZuqA6g/k8331a+TP2yIO6X0cUYyEGG8S/k9hFyFCMKlcmmm4pwMrX4sZtQ==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/switch": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.0.tgz", + "integrity": "sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/table": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.1.tgz", + "integrity": "sha512-3e+Oouw9jGqNDg+JRg7v7fgPqDZd6DtST9S/UPp81f32ntnQ8Wsu7S/J4eyLHu5CVQDqcHkf4xPeeXBgPx4qmw==", + "dependencies": { + "@react-types/grid": "^3.2.3", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tabs": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.4.tgz", + "integrity": "sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/text": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.6.tgz", + "integrity": "sha512-cO3IQ/DQ/xUGGskJ8/zCLkbzvrjlQbRnrJl95BEGs97CmiN+zqGoCqvDhjWEbuPRtfGXJ27CYZDC2oVZetUG4w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/textfield": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.0.tgz", + "integrity": "sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tooltip": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.6.tgz", + "integrity": "sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw==", + "dependencies": { + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/view": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.6.tgz", + "integrity": "sha512-GAdvvabJAYrVCgOUsZp8KkmNLfkKnDmoMNmwCN9I2OnSS+5JyjTrgNIOiznMjDEqhXTbaefcsVofoUfTYXjtyQ==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/well": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.6.tgz", + "integrity": "sha512-NX4+bMmNYrbjllKR9Xxg0YHNWrscHzZQmcdYiM/Z8qZ1TNVPhXeLmKxCDamlmUSZudCqwui4q5xwzuUyrRRA6w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, "node_modules/@rkusa/linebreak": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@rkusa/linebreak/-/linebreak-1.0.0.tgz", @@ -4062,6 +6958,42 @@ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, + "node_modules/@spectrum-icons/ui": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.2.tgz", + "integrity": "sha512-X13fgmi3h0fzolZF+cVJ6NvA91VCb055eBGkhhkQ+vjvUZrHZ8ACD2YUfaDt44BX+fsGUBOZ4fwOrdXnAaVhDQ==", + "dependencies": { + "@adobe/react-spectrum-ui": "1.2.0", + "@react-spectrum/icon": "^3.7.8", + "@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": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.7.tgz", + "integrity": "sha512-Qrl2VPDsNd6WyEbqSvcMHPPRKHr6hhFcYXuh26h7XosmIf1irHZqvhpBGEJun2ADao4EQkwMUDy+3VSzvxuGIQ==", + "dependencies": { + "@adobe/react-spectrum-workflow": "2.3.4", + "@react-spectrum/icon": "^3.7.8", + "@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/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@szmarczak/http-timer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", @@ -4372,19 +7304,6 @@ "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/buffer/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/@turf/buffer/node_modules/d3-geo": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", - "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", - "dependencies": { - "d3-array": "1" - } - }, "node_modules/@turf/center": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", @@ -6555,9 +9474,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", - "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", + "version": "18.2.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", + "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", "dev": true, "dependencies": { "@types/react": "*" @@ -6847,36 +9766,36 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vue/compiler-core": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.11.tgz", - "integrity": "sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.12.tgz", + "integrity": "sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==", "dependencies": { "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.11", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.11.tgz", - "integrity": "sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz", + "integrity": "sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==", "dependencies": { - "@vue/compiler-core": "3.3.11", - "@vue/shared": "3.3.11" + "@vue/compiler-core": "3.3.12", + "@vue/shared": "3.3.12" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.11.tgz", - "integrity": "sha512-U4iqPlHO0KQeK1mrsxCN0vZzw43/lL8POxgpzcJweopmqtoYy9nljJzWDIQS3EfjiYhfdtdk9Gtgz7MRXnz3GA==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.12.tgz", + "integrity": "sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==", "dependencies": { "@babel/parser": "^7.23.5", - "@vue/compiler-core": "3.3.11", - "@vue/compiler-dom": "3.3.11", - "@vue/compiler-ssr": "3.3.11", - "@vue/reactivity-transform": "3.3.11", - "@vue/shared": "3.3.11", + "@vue/compiler-core": "3.3.12", + "@vue/compiler-dom": "3.3.12", + "@vue/compiler-ssr": "3.3.12", + "@vue/reactivity-transform": "3.3.12", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "magic-string": "^0.30.5", "postcss": "^8.4.32", @@ -6884,30 +9803,30 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.11.tgz", - "integrity": "sha512-Zd66ZwMvndxRTgVPdo+muV4Rv9n9DwQ4SSgWWKWkPFebHQfVYRrVjeygmmDmPewsHyznCNvJ2P2d6iOOhdv8Qg==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.12.tgz", + "integrity": "sha512-adCiMJPznfWcQyk/9HSuXGja859IaMV+b8UNSVzDatqv7h0PvT9BEeS22+gjkWofDiSg5d78/ZLls3sLA+cn3A==", "dependencies": { - "@vue/compiler-dom": "3.3.11", - "@vue/shared": "3.3.11" + "@vue/compiler-dom": "3.3.12", + "@vue/shared": "3.3.12" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.11.tgz", - "integrity": "sha512-fPGjH0wqJo68A0wQ1k158utDq/cRyZNlFoxGwNScE28aUFOKFEnCBsvyD8jHn+0kd0UKVpuGuaZEQ6r9FJRqCg==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.12.tgz", + "integrity": "sha512-g5TijmML7FyKkLt6QnpqNmA4KD7K/T5SbXa88Bhq+hydNQEkzA8veVXWAQuNqg9rjaFYD0rPf0a9NofKA0ENgg==", "dependencies": { "@babel/parser": "^7.23.5", - "@vue/compiler-core": "3.3.11", - "@vue/shared": "3.3.11", + "@vue/compiler-core": "3.3.12", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "magic-string": "^0.30.5" } }, "node_modules/@vue/shared": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.11.tgz", - "integrity": "sha512-u2G8ZQ9IhMWTMXaWqZycnK4UthG1fA238CD+DP4Dm4WJi5hdUKKLg0RMRaRpDPNMdkTwIDkp7WtD0Rd9BH9fLw==" + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.12.tgz", + "integrity": "sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==" }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", @@ -7601,11 +10520,11 @@ } }, "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/asap": { @@ -11586,11 +14505,6 @@ "node": ">=6.0" } }, - "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/class-transformer": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", @@ -11963,11 +14877,6 @@ "tinyqueue": "^2.0.3" } }, - "node_modules/concaveman/node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, "node_modules/concaveman/node_modules/rbush": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", @@ -11976,11 +14885,6 @@ "quickselect": "^2.0.0" } }, - "node_modules/concaveman/node_modules/robust-predicates": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", - "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" - }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -12679,16 +15583,18 @@ } }, "node_modules/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", + "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" + "d3-array": "1" } }, + "node_modules/d3-geo/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-hierarchy": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", @@ -12854,6 +15760,17 @@ "node": ">=12" } }, + "node_modules/d3/node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -12924,15 +15841,11 @@ } }, "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { @@ -12950,14 +15863,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -13267,6 +16172,11 @@ "robust-predicates": "^3.0.0" } }, + "node_modules/delaunator/node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -13623,9 +16533,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.612", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.612.tgz", - "integrity": "sha512-dM8BMtXtlH237ecSMnYdYuCkib2QHq0kpWfUnavjdYsyr/6OsAwg5ZGUfnQ9KD1Ga4QgB2sqXlB2NT8zy2GnVg==" + "version": "1.4.614", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz", + "integrity": "sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -13928,15 +16838,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -15446,6 +18356,18 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -15545,9 +18467,9 @@ } }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "node_modules/events": { "version": "3.3.0", @@ -16704,12 +19626,11 @@ } }, "node_modules/function-plot": { - "version": "1.23.4", - "resolved": "https://registry.npmjs.org/function-plot/-/function-plot-1.23.4.tgz", - "integrity": "sha512-CMu6k8MDPpOOvnFBRhahtqm0UKzxhxxFYkp1p5Xd06iTDenhpvVh1s0/uR6GTymJX8Hdgwr4iWsEUWXOhgtJUQ==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/function-plot/-/function-plot-1.24.0.tgz", + "integrity": "sha512-xurR8bHYgLkf/ypRm8EdyqPCG9lGs+nWs+hVRChCTwi7RHEqpcoPPeOxiUVbhYtEiyRVe5m+pSAgTp35SukJrg==", "dependencies": { "built-in-math-eval": "^0.3.0", - "clamp": "^1.0.1", "d3-axis": "^3.0.0", "d3-color": "^3.1.0", "d3-format": "^3.1.0", @@ -16882,11 +19803,6 @@ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, - "node_modules/geojson-rbush/node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, "node_modules/geojson-rbush/node_modules/rbush": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", @@ -17875,6 +20791,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -18604,6 +21526,17 @@ "mr-parser": "^0.2.1" } }, + "node_modules/intl-messageformat": { + "version": "10.5.8", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.8.tgz", + "integrity": "sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.18.0", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.3", + "tslib": "^2.4.0" + } + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -18962,14 +21895,11 @@ } }, "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "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": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/is-plain-object": { @@ -19831,6 +22761,15 @@ "url": "https://ko-fi.com/killymxi" } }, + "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/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -20229,11 +23168,6 @@ "vt-pbf": "^3.1.3" } }, - "node_modules/mapbox-gl/node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, "node_modules/markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", @@ -20618,25 +23552,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -21320,22 +24235,6 @@ "node": ">= 6" } }, - "node_modules/minimist-options/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/minimist-options/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/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -21580,6 +24479,18 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/mocha/node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -21858,6 +24769,14 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, + "node_modules/multimatch/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, "node_modules/multimatch/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -21895,9 +24814,15 @@ "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -25290,9 +28215,9 @@ } }, "node_modules/openai": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.22.0.tgz", - "integrity": "sha512-HrRx5pvkeG5H8ihaI8GmG1ls+H2pkLaFewIFmvh9Dnwz9GNcGQS6CSh5PjgalnYxE5Vu9jvz2ikRgw8xhOFweg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.22.1.tgz", + "integrity": "sha512-Igk2FixXiEDQKkS3VJR0tTpO27O48mJqH4ztayATHTvcAmKqrIrYOjUBc7DrJcq+cKcQS5lTQalGZD05ySydHA==", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", @@ -26116,23 +29041,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "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": "2.0.0", "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", @@ -26606,9 +29514,9 @@ } }, "node_modules/quickselect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" }, "node_modules/random-bytes": { "version": "1.0.0", @@ -26692,6 +29600,11 @@ "quickselect": "^1.0.1" } }, + "node_modules/rbush/node_modules/quickselect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", + "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" + }, "node_modules/rc-switch": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", @@ -27357,6 +30270,11 @@ "decimal.js-light": "^2.4.1" } }, + "node_modules/recharts/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, "node_modules/recharts/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -27430,9 +30348,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -28006,9 +30924,9 @@ } }, "node_modules/robust-predicates": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", + "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" }, "node_modules/rope-sequence": { "version": "1.3.4", @@ -30720,10 +33638,9 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "engines": { "node": ">=10" }, @@ -30963,6 +33880,17 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/uninstall": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/uninstall/-/uninstall-0.0.0.tgz", @@ -32454,6 +35382,18 @@ "node": ">=10" } }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yargs-unparser/node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", diff --git a/package.json b/package.json index 90eea7fa1..661f8c5ec 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,7 @@ "@babel/preset-react": "^7.23.3", "@bundled-es-modules/pdfjs-dist": "^3.6.172-alpha.1", "@emotion/react": "^11.11.1", + "@adobe/react-spectrum": "^3.32.2", "@emotion/styled": "^11.11.0", "@ffmpeg/core": "0.12.4", "@ffmpeg/ffmpeg": "0.12.7", diff --git a/src/client/documents/DocumentTypes.ts b/src/client/documents/DocumentTypes.ts index 8cd36b312..5c2792a53 100644 --- a/src/client/documents/DocumentTypes.ts +++ b/src/client/documents/DocumentTypes.ts @@ -37,6 +37,7 @@ export enum DocumentType { GROUP = 'group', PUSHPIN = 'pushpin', MAPROUTE = 'maproute', + CALENDAR = 'calendar', SCRIPTDB = 'scriptdb', // database of scripts GROUPDB = 'groupdb', // database of groups @@ -61,4 +62,5 @@ export enum CollectionViewType { Pile = 'pileup', StackedTimeline = 'stacked timeline', NoteTaking = 'notetaking', + Calendar = 'calendar_view' } diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index e78686b3e..d6fd8aea3 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -186,6 +186,8 @@ export class DocumentOptions { map_bearing?: NUMt = new NumInfo('bearing of a map view', false); map_style?: STRt = new StrInfo('mapbox style for a map view', false); + date_range?: STRt = new StrInfo('date range for calendar', false); + wikiData?: STRt = new StrInfo('WikiData ID related to map location'); description?: STRt = new StrInfo('A description of the document'); _timecodeToShow?: NUMt = new NumInfo('the time that a document should be displayed (e.g., when an annotation shows up as a video plays)', false); @@ -1022,6 +1024,7 @@ export namespace Docs { export function LoadingDocument(file: File | string, options: DocumentOptions) { return InstanceFromProto(Prototypes.get(DocumentType.LOADING), undefined, { _height: 150, _width: 200, title: typeof file == 'string' ? file : file.name, ...options }, undefined, ''); } + export function RTFDocument(field: RichTextField, options: DocumentOptions = {}, fieldKey: string = 'text') { return InstanceFromProto(Prototypes.get(DocumentType.RTF), field, options, undefined, fieldKey); @@ -1143,6 +1146,10 @@ export namespace Docs { return InstanceFromProto(Prototypes.get(DocumentType.MAPROUTE), new List(documents), { infoWindowOpen, ...options }, id); } + export function CalendarDocument(options: DocumentOptions={}, documents: Array<Doc>){ + return InstanceFromProto(Prototypes.get(DocumentType.CALENDAR), new List(documents), options) + } + // shouldn't ever need to create a KVP document-- instead set the LayoutTemplateString to be a KeyValueBox for the DocumentView (see addDocTab in TabDocView) // export function KVPDocument(document: Doc, options: DocumentOptions = {}) { // return InstanceFromProto(Prototypes.get(DocumentType.KVP), document, { title: document.title + '.kvp', ...options }); @@ -1197,6 +1204,10 @@ export namespace Docs { return doc; } + export function CalendarCollectionDocument(documents: Array<Doc>, options: DocumentOptions){ + return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), {...options, _type_collection: CollectionViewType.Calendar}); + } + export function StackingDocument(documents: Array<Doc>, options: DocumentOptions, id?: string, protoId?: string) { return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { ...options, _type_collection: CollectionViewType.Stacking }, id, undefined, protoId); } diff --git a/src/client/util/CalendarManager.scss b/src/client/util/CalendarManager.scss new file mode 100644 index 000000000..60610f298 --- /dev/null +++ b/src/client/util/CalendarManager.scss @@ -0,0 +1,62 @@ +.calendar-interface{ + width: 600px; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; + gap: 7px; + padding: 10px; + + .selected-doc-title{ + font-size: 1.4em; + } + + .creation-type-container{ + display: flex; + justify-content: center; + align-items: center; + align-self: center; + gap: 12px; + + .calendar-creation{ + cursor: pointer; + } + + .calendar-creation-selected{ + border-bottom: 2px solid white; + } + } + + .choose-calendar-container{ + margin-top: 10px; + align-self: center; + width: 60%; + + .MuiFilledInput-input{ + padding: 10px; + } + } + + .date-range-picker-container{ + margin-top: 5px; + align-self:center; + + .react-date-range{ + + } + } + + .create-button-container{ + + margin-top: 5px; + align-self: center; + + .button-content{ + font-size: 1.2em; + padding: 10px; + border-radius: 5px; + background-color: #EFF2F7; + } + + } +} diff --git a/src/client/util/CalendarManager.tsx b/src/client/util/CalendarManager.tsx new file mode 100644 index 000000000..50a5437a0 --- /dev/null +++ b/src/client/util/CalendarManager.tsx @@ -0,0 +1,312 @@ +import * as React from 'react'; +import './CalendarManager.scss'; +import { observer } from 'mobx-react'; +import { action, computed, observable, runInAction, makeObservable } from 'mobx'; +import { Doc, DocListCast } from '../../fields/Doc'; +import { DocumentView } from '../views/nodes/DocumentView'; +import { DictationOverlay } from '../views/DictationOverlay'; +import { TaskCompletionBox } from '../views/nodes/TaskCompletedBox'; +import { MainViewModal } from '../views/MainViewModal'; +import { TextField } from '@mui/material'; +import Select from 'react-select'; +import { SettingsManager } from './SettingsManager'; +import { DocCast, StrCast } from '../../fields/Types'; +import { SelectionManager } from './SelectionManager'; +import { DocumentManager } from './DocumentManager'; +import { DocData } from '../../fields/DocSymbols'; +// import { DateRange, Range, RangeKeyDict } from 'react-date-range'; +import { Button } from 'browndash-components'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { DateRangePicker } from '@adobe/react-spectrum'; +import { IconLookup, faPlus } from '@fortawesome/free-solid-svg-icons'; +import { Docs } from '../documents/Documents'; +import { ObservableReactComponent } from '../views/ObservableReactComponent'; +// import 'react-date-range/dist/styles.css'; +// import 'react-date-range/dist/theme/default.css'; + +type CreationType = 'new-calendar' | 'existing-calendar' | 'manage-calendars'; + +interface CalendarSelectOptions { + label: string; + value: string; +} + +const formatDateToString = (date: Date) => { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +}; + +// TODO: If doc is already part of a calendar, display that +// TODO: For a doc already in a calendar: give option to edit date range, delete from calendar + +@observer +export class CalendarManager extends ObservableReactComponent<{}> { + public static Instance: CalendarManager; + @observable private isOpen = false; + @observable private targetDoc: Doc | undefined; // the target document + @observable private targetDocView: DocumentView | undefined; // the DocumentView of the target doc + @observable private dialogueBoxOpacity = 1; // for the modal + @observable private overlayOpacity = 0.4; // for the modal + + @observable private layoutDocAcls: boolean = false; // whether the layout doc or data doc's acls are to be used + + @observable private creationType: CreationType = 'new-calendar'; + + @observable private existingCalendars: Doc[] = DocListCast(Doc.MyCalendars?.data); + + @computed get selectOptions() { + return this.existingCalendars.map(calendar => ({ label: StrCast(calendar.title), value: StrCast(calendar.title) })); + } + + @observable + selectedExistingCalendarOption: CalendarSelectOptions | null = null; + + @observable + calendarName: string = ''; + + @observable + calendarDescription: string = ''; + + @observable + errorMessage: string = ''; + + @action + setInterationType = (type: CreationType) => { + this.errorMessage = ''; + this.calendarName = ''; + this.creationType = type; + }; + + public open = (target?: DocumentView, target_doc?: Doc) => { + console.log('hi'); + runInAction(() => { + this.targetDoc = target_doc || target?.Document; + this.targetDocView = target; + DictationOverlay.Instance.hasActiveModal = true; + this.isOpen = this.targetDoc !== undefined; + }); + }; + + public close = action(() => { + this.isOpen = false; + TaskCompletionBox.taskCompleted = false; + setTimeout( + action(() => { + DictationOverlay.Instance.hasActiveModal = false; + this.targetDoc = undefined; + }), + 500 + ); + this.layoutDocAcls = false; + }); + + constructor(props: {}) { + super(props); + CalendarManager.Instance = this; + makeObservable(this); + } + + componentDidMount(): void {} + + @action + handleSelectChange = (option: any) => { + let selectOpt = option as CalendarSelectOptions; + this.selectedExistingCalendarOption = selectOpt; + this.calendarName = selectOpt.value; // or label + }; + + @action + handleTextFieldChange = (event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>) => { + this.calendarName = event.target.value; + }; + + // TODO: Make undoable + private addToCalendar = () => { + let docs = SelectionManager.Views.length < 2 ? [this.targetDoc] : SelectionManager.Views.map(docView => docView.Document); + const targetDoc = this.layoutDocAcls ? docs[0] : docs[0]?.[DocData]; // doc to add to calendar + + if (targetDoc) { + let calendar: Doc; + if (this.creationType === 'new-calendar') { + if (!this.existingCalendars.find(doc => StrCast(doc.title) === this.calendarName)) { + calendar = Docs.Create.CalendarDocument( + { + title: this.calendarName, + description: this.calendarDescription, + }, + [] + ); + } else { + this.errorMessage = 'Calendar with this name already exists'; + return; + } + } else { + // find existing calendar based on selected name (should technically always find one) + const existingCalendar = this.existingCalendars.find(calendar => StrCast(calendar.title) === this.calendarName); + if (existingCalendar) calendar = existingCalendar; + else { + this.errorMessage = 'Must select an existing calendar'; + return; + } + } + // Get start and end date strings + const startDateStr = formatDateToString(this.selectedDateRange.start); + const endDateStr = formatDateToString(this.selectedDateRange.end); + + const subDocEmbedding = Doc.MakeEmbedding(targetDoc); // embedding + subDocEmbedding.embedContainer = calendar; // set embed container + subDocEmbedding.date_range = `${startDateStr}-${endDateStr}`; // set subDoc date range + + Doc.AddDocToList(calendar, 'data', subDocEmbedding); // add embedded subDoc to calendar + + if (this.creationType === 'new-calendar') { + Doc.AddDocToList(Doc.MyCalendars, 'data', calendar); // add to new calendar to dashboard calendars + } + } + }; + + private focusOn = (contents: string) => { + const title = this.targetDoc ? StrCast(this.targetDoc.title) : ''; + const docs = SelectionManager.Views.length > 1 ? SelectionManager.Views.map(docView => docView.Document) : [this.targetDoc]; + return ( + <span + className="focus-span" + title={title} + onClick={() => { + if (this.targetDoc && this.targetDocView && docs.length === 1) { + DocumentManager.Instance.showDocument(this.targetDoc, { willZoomCentered: true }); + } + }} + onPointerEnter={action(() => { + if (docs.length) { + docs.forEach(doc => doc && Doc.BrushDoc(doc)); + this.dialogueBoxOpacity = 0.1; + this.overlayOpacity = 0.1; + } + })} + onPointerLeave={action(() => { + if (docs.length) { + docs.forEach(doc => doc && Doc.UnBrushDoc(doc)); + this.dialogueBoxOpacity = 1; + this.overlayOpacity = 0.4; + } + })}> + {contents} + </span> + ); + }; + + @observable + selectedDateRange: any = [ + { + start: new Date(), + end: new Date(), + }, + ]; + + @action + setSelectedDateRange = (range: any) => { + this.selectedDateRange = range; + }; + + @computed + get createButtonActive() { + if (this.calendarName.length === 0 || this.errorMessage.length > 0) return false; // disabled if no calendar name + let startDate: Date | undefined; + let endDate: Date | undefined; + try { + startDate = this.selectedDateRange[0].startDate; + endDate = this.selectedDateRange[0].endDate; + } catch (e: any) { + return false; // disabled + } + if (!startDate || !endDate) return false; // disabled if any is undefined + return true; + } + + @computed + get calendarInterface() { + let docs = SelectionManager.Views.length < 2 ? [this.targetDoc] : SelectionManager.Views.map(docView => docView.Document); + const targetDoc = this.layoutDocAcls ? docs[0] : docs[0]?.[DocData]; + + const currentDate = new Date(); + + return ( + <div + className="calendar-interface" + style={{ + background: SettingsManager.userBackgroundColor, + color: StrCast(Doc.UserDoc().userColor), + }}> + <p className="selected-doc-title" style={{ color: SettingsManager.userColor }}> + <b>{this.focusOn(docs.length < 2 ? StrCast(targetDoc?.title, 'this document') : '-multiple-')}</b> + </p> + <div className="creation-type-container"> + <div className={`calendar-creation ${this.creationType === 'new-calendar' ? 'calendar-creation-selected' : ''}`} onClick={e => this.setInterationType('new-calendar')}> + Add to New Calendar + </div> + <div className={`calendar-creation ${this.creationType === 'existing-calendar' ? 'calendar-creation-selected' : ''}`} onClick={e => this.setInterationType('existing-calendar')}> + Add to Existing calendar + </div> + </div> + <div className="choose-calendar-container"> + {this.creationType === 'new-calendar' ? ( + <TextField + fullWidth + onChange={this.handleTextFieldChange} + placeholder="Enter calendar name..." + variant="filled" + style={{ + backgroundColor: 'white', + color: 'black', + borderRadius: '5px', + }} + /> + ) : ( + <Select + className="existing-calendar-search" + placeholder="Search for existing calendar..." + isClearable + isSearchable + options={this.selectOptions} + value={this.selectedExistingCalendarOption} + onChange={this.handleSelectChange} + styles={{ + control: () => ({ + display: 'inline-flex', + width: '100%', + }), + indicatorSeparator: () => ({ + display: 'inline-flex', + visibility: 'hidden', + }), + indicatorsContainer: () => ({ + display: 'inline-flex', + textDecorationColor: 'black', + }), + valueContainer: () => ({ + display: 'inline-flex', + fontStyle: StrCast(Doc.UserDoc().userColor), + color: StrCast(Doc.UserDoc().userColor), + width: '100%', + }), + }}></Select> + )} + </div> + <div className="date-range-picker-container"> + <DateRangePicker value={this.selectedDateRange} onChange={v => this.setSelectedDateRange(v)} label="Date range" /> + </div> + <div className="create-button-container"> + <Button active={this.createButtonActive} onClick={() => {}} text="Add to Calendar" iconPlacement="right" icon={<FontAwesomeIcon icon={faPlus as IconLookup} />} /> + </div> + </div> + ); + } + + render() { + return <MainViewModal contents={this.calendarInterface} isDisplayed={this.isOpen} interactive={true} dialogueBoxDisplayedOpacity={this.dialogueBoxOpacity} overlayDisplayedOpacity={this.overlayOpacity} closeOnExternalClick={this.close} />; + } +} diff --git a/src/client/views/DashboardView.tsx b/src/client/views/DashboardView.tsx index 85cee83d4..523721b84 100644 --- a/src/client/views/DashboardView.tsx +++ b/src/client/views/DashboardView.tsx @@ -384,13 +384,42 @@ export class DashboardView extends ObservableReactComponent<{}> { Doc.AddDocToList(Doc.MyDashboards, 'data', dashboardDoc); DashboardView.SetupDashboardTrails(dashboardDoc); - + DashboardView.SetupDashboardCalendars(dashboardDoc); // open this new dashboard Doc.ActiveDashboard = dashboardDoc; Doc.ActivePage = 'dashboard'; Doc.ActivePresentation = undefined; }; + public static SetupDashboardCalendars(dashboardDoc: Doc){ + // this section is creating the button document itself === myTrails = new Button + + // create a a list of calendars (as a CalendarCollectionDocument) and store it on the new dashboard + const reqdOpts: DocumentOptions = { + title: 'My Calendars', + _layout_showTitle: 'title', + _height: 100, + treeView_HideTitle: true, + _layout_fitWidth: true, + _gridGap: 5, + _forceActive: true, + childDragAction: 'embed', + treeView_TruncateTitleWidth: 150, + ignoreClick: true, + contextMenuIcons: new List<string>(['plus']), + contextMenuLabels: new List<string>(['Create New Calendar']), + _lockedPosition: true, + layout_boxShadow: '0 0', + childDontRegisterViews: true, + dropAction: 'same', + isSystem: true, + layout_explainer: 'All of the calendars that you have created will appear here.', + }; + const myCalendars = DocUtils.AssignScripts(Docs.Create.CalendarCollectionDocument([], reqdOpts)); + // { treeView_ChildDoubleClick: 'openPresentation(documentView.rootDoc)' } + dashboardDoc.myCalendars = new PrefetchProxy(myCalendars); + } + public static SetupDashboardTrails(dashboardDoc: Doc) { // this section is creating the button document itself === myTrails = new Button const reqdBtnOpts: DocumentOptions = { diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx index 66b72226c..03f9ed52f 100644 --- a/src/client/views/DocumentButtonBar.tsx +++ b/src/client/views/DocumentButtonBar.tsx @@ -1,4 +1,4 @@ -import { IconProp } from '@fortawesome/fontawesome-svg-core'; +import { IconLookup, IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Tooltip } from '@mui/material'; import { action, computed, makeObservable, observable, runInAction } from 'mobx'; @@ -8,6 +8,7 @@ import { emptyFunction, returnFalse, setupMoveUpEvents, simulateMouseClick } fro import { Doc } from '../../fields/Doc'; import { Cast, DocCast } from '../../fields/Types'; import { DocUtils } from '../documents/Documents'; +import { CalendarManager } from '../util/CalendarManager'; import { DragManager } from '../util/DragManager'; import { IsFollowLinkScript } from '../util/LinkFollower'; import { SelectionManager } from '../util/SelectionManager'; @@ -22,9 +23,7 @@ import { DocumentLinksButton } from './nodes/DocumentLinksButton'; import { DocumentView, DocumentViewInternal, OpenWhere } from './nodes/DocumentView'; import { DashFieldView } from './nodes/formattedText/DashFieldView'; import { PinProps } from './nodes/trails'; -// import * as higflyout from '@hig/flyout'; -// export const { anchorPoints } = higflyout; -// export const Flyout = higflyout.default; +import { faCalendarDays } from '@fortawesome/free-solid-svg-icons'; const cloud: IconProp = 'cloud-upload-alt'; const fetch: IconProp = 'sync-alt'; @@ -315,6 +314,24 @@ export class DocumentButtonBar extends ObservableReactComponent<{ views: () => ( ); } + @computed + get calendarButton() { + const targetDoc = this.view0?.props.Document; + return !targetDoc ? null : ( + <Tooltip title={<div className="dash-calendar-button">Open calendar menu</div>}> + <div + className="documentButtonBar-icon" + style={{ color: 'white' }} + onClick={e => { + console.log('hi: ', CalendarManager.Instance); + CalendarManager.Instance.open(this.view0, targetDoc); + }}> + <FontAwesomeIcon className="documentdecorations-icon" icon={faCalendarDays as IconLookup} /> + </div> + </Tooltip> + ); + } + @observable _isRecording = false; _stopFunc: () => void = emptyFunction; @computed @@ -472,6 +489,7 @@ export class DocumentButtonBar extends ObservableReactComponent<{ views: () => ( {!SelectionManager.Views?.some(v => v.allLinks.length) ? null : <div className="documentButtonBar-button">{this.followLinkButton}</div>} <div className="documentButtonBar-button">{this.pinButton}</div> <div className="documentButtonBar-button">{this.recordButton}</div> + <div className="documentButtonBar-button">{this.calendarButton}</div> {!Doc.UserDoc()['documentLinksButton-fullMenu'] ? null : <div className="documentButtonBar-button">{this.shareButton}</div>} <div className="documentButtonBar-button">{this.menuButton}</div> </div> diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 655e34592..c71c72257 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -73,6 +73,7 @@ import { GPTPopup } from './pdf/GPTPopup/GPTPopup'; import { TopBar } from './topbar/TopBar'; const { default: { LEFT_MENU_WIDTH, TOPBAR_HEIGHT } } = require('./global/globalCssVariables.module.scss'); // prettier-ignore import { DirectionsAnchorMenu } from './nodes/MapBox/DirectionsAnchorMenu'; +import { CalendarManager } from '../util/CalendarManager'; const _global = (window /* browser */ || global) /* node */ as any; @observer @@ -1023,6 +1024,7 @@ export class MainView extends ObservableReactComponent<{}> { {this.inkResources} <DictationOverlay /> <SharingManager /> + <CalendarManager /> <ServerStats /> <RTFMarkup /> <SettingsManager /> diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 97d5cfc70..a9474fe93 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -467,6 +467,7 @@ export class CollectionDockingView extends CollectionSubView() { }); const copy = Docs.Create.DockDocument(newtabs, json, { title: incrementTitleCopy(StrCast(doc.title)) }); DashboardView.SetupDashboardTrails(copy); + DashboardView.SetupDashboardCalendars(copy); // Zaul TODO: needed? return DashboardView.openDashboard(copy); } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 1f4688729..311890ee3 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1434,7 +1434,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection return anchor; }; - infoUI = () => (this.Document.annotationOn ? null : <CollectionFreeFormInfoUI Document={this.Document} Freeform={this} />); + infoUI = () => (this.Document.annotationOn ? null : null); // <CollectionFreeFormInfoUI Document={this.Document} Freeform={this} />); componentDidMount() { this._props.setContentView?.(this); diff --git a/src/client/views/nodes/MapBox/MapBox.scss b/src/client/views/nodes/MapBox/MapBox.scss index 434e02b27..0987f8795 100644 --- a/src/client/views/nodes/MapBox/MapBox.scss +++ b/src/client/views/nodes/MapBox/MapBox.scss @@ -4,6 +4,7 @@ height: 100%; overflow: hidden; display: flex; + position: absolute; .mapBox-infoWindow { background-color: white; @@ -27,7 +28,7 @@ // } } - .mapbox-settings-panel{ + .mapbox-settings-panel { z-index: 900; padding: 10px 20px; display: flex; @@ -41,7 +42,7 @@ border-top-left-radius: 5px; border-bottom-left-radius: 5px; - .mapbox-style-select{ + .mapbox-style-select { display: flex; flex-direction: column; align-items: flex-start; @@ -49,14 +50,13 @@ gap: 4px; } - .mapbox-terrain-selection{ + .mapbox-terrain-selection { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 4px; } - } .mapbox-geocoding-search-results { @@ -75,11 +75,10 @@ .search-result-container { width: 100%; padding: 10px; - &:hover{ + &:hover { background-color: lighten(rgb(187, 187, 187), 10%); } } - } .animation-panel { @@ -88,12 +87,11 @@ flex-direction: column; justify-content: flex-start; align-items: flex-start; - position: absolute; background-color: rgb(187, 187, 187); padding: 10px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; - width: 100%; + position: absolute; #route-to-animate-title { font-size: 1.25em; @@ -106,7 +104,7 @@ align-items: center; gap: 7px; - .animation-suboptions{ + .animation-suboptions { display: flex; justify-content: flex-start; flex-wrap: wrap; @@ -114,25 +112,23 @@ gap: 7px; width: 100%; - .first-person-label{ + .first-person-label { width: '130px' !important; } - label{ + label { margin-bottom: 0; } - - .speed-label{ + + .speed-label { margin-right: 5px; } - #divider{ + #divider { margin-left: 10px; margin-right: 10px; } } - - } } @@ -149,10 +145,8 @@ bottom: 5px; left: 5px; padding: 3px; - } - .mapBox-topbar { display: flex; flex-direction: row; @@ -236,4 +230,3 @@ display: block; } } - diff --git a/src/client/views/nodes/MapBox/MapBox.tsx b/src/client/views/nodes/MapBox/MapBox.tsx index c25d10a0d..efe0a3620 100644 --- a/src/client/views/nodes/MapBox/MapBox.tsx +++ b/src/client/views/nodes/MapBox/MapBox.tsx @@ -1,72 +1,45 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import BingMapsReact from 'bingmaps-react'; -// import 'mapbox-gl/dist/mapbox-gl.css'; - -import { Button, EditableText, IconButton, Size, Type } from 'browndash-components'; -import { action, computed, IReactionDisposer, observable, ObservableMap, reaction, runInAction, flow, toJS, autorun, makeObservable } from 'mobx'; +import { IconButton, Size, Type } from 'browndash-components'; +import { IReactionDisposer, ObservableMap, action, autorun, computed, makeObservable, observable, reaction, runInAction } from 'mobx'; import { observer } from 'mobx-react'; import * as React from 'react'; +import { Utils, emptyFunction, setupMoveUpEvents } from '../../../../Utils'; import { Doc, DocListCast, Field, LinkedTo, Opt } from '../../../../fields/Doc'; import { DocCss, Highlight } from '../../../../fields/DocSymbols'; -import { Id } from '../../../../fields/FieldSymbols'; -import { Cast, DocCast, NumCast, StrCast } from '../../../../fields/Types'; -import { emptyFunction, returnEmptyDoclist, returnEmptyFilter, returnFalse, returnOne, setupMoveUpEvents, Utils } from '../../../../Utils'; -import { Docs, DocUtils } from '../../../documents/Documents'; +import { DocCast, NumCast, StrCast } from '../../../../fields/Types'; import { DocumentType } from '../../../documents/DocumentTypes'; +import { DocUtils, Docs } from '../../../documents/Documents'; import { DocumentManager } from '../../../util/DocumentManager'; import { DragManager } from '../../../util/DragManager'; import { LinkManager } from '../../../util/LinkManager'; import { SnappingManager } from '../../../util/SnappingManager'; -import { Transform } from '../../../util/Transform'; -import { undoable, UndoManager } from '../../../util/UndoManager'; -import { MarqueeOptionsMenu } from '../../collections/collectionFreeForm'; +import { UndoManager, undoable } from '../../../util/UndoManager'; import { ViewBoxAnnotatableComponent, ViewBoxAnnotatableProps } from '../../DocComponent'; -import { Colors } from '../../global/globalEnums'; import { SidebarAnnos } from '../../SidebarAnnos'; +import { MarqueeOptionsMenu } from '../../collections/collectionFreeForm'; +import { Colors } from '../../global/globalEnums'; import { DocumentView } from '../DocumentView'; import { FieldView, FieldViewProps } from '../FieldView'; import { FormattedTextBox } from '../formattedText/FormattedTextBox'; import { PinProps, PresBox } from '../trails'; import { MapAnchorMenu } from './MapAnchorMenu'; -import { - Map as MapboxMap, - MapRef, - Marker, - ControlPosition, - FullscreenControl, - MapProvider, - MarkerProps, - NavigationControl, - ScaleControl, - ViewState, - ViewStateChangeEvent, - useControl, - GeolocateControl, - Popup, - MapEvent, - Source, - Layer, -} from 'react-map-gl'; +import { ControlPosition, Layer, MapProvider, MapRef, Map as MapboxMap, Marker, MarkerProps, Source, ViewState, ViewStateChangeEvent } from 'react-map-gl'; import MapboxGeocoder, { GeocoderOptions } from '@mapbox/mapbox-gl-geocoder!'; import './MapBox.scss'; -import { NumberLiteralType } from 'typescript'; // import { GeocoderControl } from './GeocoderControl'; -import mapboxgl, { LngLat, LngLatBoundsLike, LngLatLike, MapLayerMouseEvent, MercatorCoordinate } from 'mapbox-gl!'; -import { Feature, FeatureCollection, GeoJsonProperties, Geometry, LineString, MultiLineString, Position } from 'geojson'; -import { MarkerEvent } from 'react-map-gl/dist/esm/types'; -import { MapboxApiUtility, TransportationType } from './MapboxApiUtility'; -import { Autocomplete, Checkbox, FormControlLabel, TextField } from '@mui/material'; -import { List } from '../../../../fields/List'; -import { listSpec } from '../../../../fields/Schema'; -import { IconLookup, faCircleXmark, faFileExport, faGear, faMinus, faPause, faPlay, faPlus, faRotate } from '@fortawesome/free-solid-svg-icons'; -import { MarkerIcons } from './MarkerIcons'; -import { SettingsManager } from '../../../util/SettingsManager'; +import { IconLookup, faCircleXmark, faGear, faPause, faPlay, faRotate } from '@fortawesome/free-solid-svg-icons'; +import { Checkbox, FormControlLabel, TextField } from '@mui/material'; import * as turf from '@turf/turf'; import * as d3 from 'd3'; -import { AnimationSpeed, AnimationStatus, AnimationUtility } from './AnimationUtility'; -import { fastSpeedIcon, mediumSpeedIcon, slowSpeedIcon } from './AnimationSpeedIcons'; +import { Feature, FeatureCollection, GeoJsonProperties, Geometry, LineString, Position } from 'geojson'; +import mapboxgl, { LngLat, LngLatBoundsLike, MapLayerMouseEvent } from 'mapbox-gl!'; import { CirclePicker, ColorResult } from 'react-color'; +import { MarkerEvent } from 'react-map-gl/dist/esm/types'; +import { fastSpeedIcon, mediumSpeedIcon, slowSpeedIcon } from './AnimationSpeedIcons'; +import { AnimationSpeed, AnimationStatus, AnimationUtility } from './AnimationUtility'; +import { MapboxApiUtility, TransportationType } from './MapboxApiUtility'; +import { MarkerIcons } from './MarkerIcons'; // amongus /** @@ -891,15 +864,16 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps }, 'createpin'); @action - createMapRoute = undoable((coordinates: Position[], origin: string, destination: any, createPinForDestination: boolean) => { - const mapRoute = Docs.Create.MapRouteDocument(false, [], { title: `${origin} --> ${destination.place_name}`, routeCoordinates: JSON.stringify(coordinates) }); - this.addDocument(mapRoute, this.annotationKey); - if (createPinForDestination) { - this.createPushpin(destination.center[1], destination.center[0], destination.place_name); + createMapRoute = undoable((coordinates: Position[], originName: string, destination: any, createPinForDestination: boolean) => { + if (originName !== destination.place_name) { + const mapRoute = Docs.Create.MapRouteDocument(false, [], { title: `${originName} --> ${destination.place_name}`, routeCoordinates: JSON.stringify(coordinates) }); + this.addDocument(mapRoute, this.annotationKey); + if (createPinForDestination) { + this.createPushpin(destination.center[1], destination.center[0], destination.place_name); + } + return mapRoute; } - return mapRoute; - - // mapMarker.infoWindowOpen = true; + // TODO: Display error that can't create route to same location }, 'createmaproute'); searchbarKeyDown = (e: any) => e.key === 'Enter' && this.bingSearch(); @@ -958,6 +932,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps @action handleMapClick = (e: MapLayerMouseEvent) => { + this.featuresFromGeocodeResults = []; if (this._mapRef.current) { const features = this._mapRef.current.queryRenderedFeatures(e.point, { layers: ['map-routes-layer'], @@ -1146,24 +1121,26 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps if (routeDoc) { MapAnchorMenu.Instance.fadeOut(true); document.removeEventListener('pointerdown', this.tryHideMapAnchorMenu, true); + this.featuresFromGeocodeResults = []; this.routeToAnimate = routeDoc; } }; - @observable - mapboxMapViewState: ViewState = { - zoom: this.dataDoc.map_zoom ? NumCast(this.dataDoc.map_zoom) : 8, - longitude: this.dataDoc.longitude ? NumCast(this.dataDoc.longitude) : -71.4128, - latitude: this.dataDoc.latitude ? NumCast(this.dataDoc.latitude) : 41.824, - pitch: this.dataDoc.map_pitch ? NumCast(this.dataDoc.map_pitch) : 0, - bearing: this.dataDoc.map_bearing ? NumCast(this.dataDoc.map_bearing) : 0, - padding: { - top: 0, - bottom: 0, - left: 0, - right: 0, - }, - }; + @computed get mapboxMapViewState(): ViewState { + return { + zoom: NumCast(this.dataDoc.map_zoom, 8), + longitude: NumCast(this.dataDoc.longitude, -71.4128), + latitude: NumCast(this.dataDoc.latitude, 41.824), + pitch: NumCast(this.dataDoc.map_pitch), + bearing: NumCast(this.dataDoc.map_bearing), + padding: { + top: 0, + bottom: 0, + left: 0, + right: 0, + }, + }; + } @computed get preAnimationViewState() { @@ -1390,9 +1367,6 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps this.routeToAnimate = undefined; this.animationUtility = null; } - if (this.preAnimationViewState) { - this.mapboxMapViewState = this.preAnimationViewState; - } }; @action @@ -1488,10 +1462,6 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps const fixedBearing = Math.max(0, Math.min(360, bearing)); this._mapRef.current.setBearing(fixedBearing); this.dataDoc.map_bearing = fixedBearing; - this.mapboxMapViewState = { - ...this.mapboxMapViewState, - bearing: fixedBearing, - }; } }; @@ -1502,10 +1472,6 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps const fixedPitch = Math.max(0, Math.min(85, pitch)); this._mapRef.current.setPitch(fixedPitch); this.dataDoc.map_pitch = fixedPitch; - this.mapboxMapViewState = { - ...this.mapboxMapViewState, - pitch: fixedPitch, - }; } }; @@ -1516,10 +1482,6 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps const fixedZoom = Math.max(0, Math.min(16, zoom)); this._mapRef.current.setZoom(fixedZoom); this.dataDoc.map_zoom = fixedZoom; - this.mapboxMapViewState = { - ...this.mapboxMapViewState, - zoom: fixedZoom, - }; } }; @@ -1529,23 +1491,18 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps let newZoom: number; if (increment) { console.log('inc'); - newZoom = this.mapboxMapViewState.zoom + 1; + newZoom = Math.min(16, this.mapboxMapViewState.zoom + 1); } else { console.log('dec'); - newZoom = this.mapboxMapViewState.zoom - 1; + newZoom = Math.max(0, this.mapboxMapViewState.zoom - 1); } this._mapRef.current.setZoom(newZoom); this.dataDoc.map_zoom = newZoom; - this.mapboxMapViewState = { - ...this.mapboxMapViewState, - zoom: increment ? Math.min(16, newZoom) : Math.max(0, newZoom), - }; } }; @action onMapMove = (e: ViewStateChangeEvent) => { - this.mapboxMapViewState = e.viewState; this.dataDoc.longitude = e.viewState.longitude; this.dataDoc.latitude = e.viewState.latitude; }; @@ -1581,8 +1538,8 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps }), MapBox._rerenderDelay); return null; } - const scale = this._props.NativeDimScaling?.() || 1; + const parscale = scale === 1 ? 1 : this._props.ScreenToLocalTransform().Scale ?? 1; const renderAnnotations = (childFilters?: () => string[]) => null; return ( @@ -1593,7 +1550,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps onPointerDown={async e => { e.button === 0 && !e.ctrlKey && e.stopPropagation(); }} - style={{ width: `calc(100% - ${this.sidebarWidthPercent})`, pointerEvents: this.pointerEvents() }}> + style={{ transformOrigin: 'top left', transform: `scale(${scale})`, width: `calc(100% - ${this.sidebarWidthPercent})`, pointerEvents: this.pointerEvents() }}> <div style={{ mixBlendMode: 'multiply' }}>{renderAnnotations(this.transparentFilter)}</div> {renderAnnotations(this.opaqueFilter)} {SnappingManager.IsDragging ? null : renderAnnotations()} @@ -1639,7 +1596,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps </div> )} {this.routeToAnimate && ( - <div className="animation-panel"> + <div className="animation-panel" style={{ width: this.sidebarWidth() === 0 ? '100%' : `calc(100% - ${this.sidebarWidth()}px)` }}> <div id="route-to-animate-title">{StrCast(this.routeToAnimate.title)}</div> <div className="route-animation-options">{this.getRouteAnimationOptions()}</div> </div> @@ -1683,15 +1640,15 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps <MapboxMap ref={this._mapRef} mapboxAccessToken={MAPBOX_ACCESS_TOKEN} - id="mapbox-map" - viewState={{ ...this.mapboxMapViewState, width: NumCast(this.layoutDoc._width) / scale, height: NumCast(this.layoutDoc._height) / scale }} + viewState={this.isAnimating ? undefined : { ...this.mapboxMapViewState, width: NumCast(this.layoutDoc._width), height: NumCast(this.layoutDoc._height) }} mapStyle={this.dataDoc.map_style ? StrCast(this.dataDoc.map_style) : 'mapbox://styles/mapbox/streets-v11'} style={{ - transformOrigin: 'center', - transform: `scale(${scale < 1 ? 1 : scale})`, + position: 'absolute', + top: 0, + left: 0, zIndex: '0', - width: '100%', - height: '100%', + width: NumCast(this.layoutDoc._width) * parscale, + height: NumCast(this.layoutDoc._height) * parscale, }} initialViewState={this.isAnimating ? undefined : this.mapboxMapViewState} onMove={this.onMapMove} diff --git a/src/client/views/nodes/MapBox/MapboxApiUtility.ts b/src/client/views/nodes/MapBox/MapboxApiUtility.ts index 011b6f72a..592330ac2 100644 --- a/src/client/views/nodes/MapBox/MapboxApiUtility.ts +++ b/src/client/views/nodes/MapBox/MapboxApiUtility.ts @@ -34,48 +34,39 @@ export class MapboxApiUtility { static getDirections = async (origin: number[], destination: number[]): Promise<Record<TransportationType, any> | undefined> => { try { - const drivingQuery = await fetch( - `${MAPBOX_DIRECTIONS_BASE_URL}/driving/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}`); - const cyclingQuery = await fetch( - `${MAPBOX_DIRECTIONS_BASE_URL}/cycling/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}`); + const directionsPromises: Promise<any>[] = []; + const transportationTypes: TransportationType[] = ['driving', 'cycling', 'walking']; - const walkingQuery = await fetch( - `${MAPBOX_DIRECTIONS_BASE_URL}/walking/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}`); + transportationTypes.forEach((type) => { + directionsPromises.push( + fetch( + `${MAPBOX_DIRECTIONS_BASE_URL}/${type}/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}` + ).then((response) => response.json()) + ); + }); - const drivingJson = await drivingQuery.json(); - const cyclingJson = await cyclingQuery.json(); - const walkingJson = await walkingQuery.json(); - - console.log("Driving: ", drivingJson); - console.log("Cycling: ", cyclingJson); - console.log("Waling: ", walkingJson); - - const routeMap = { - 'driving': drivingJson.routes[0], - 'cycling': cyclingJson.routes[0], - 'walking': walkingJson.routes[0] - } + const results = await Promise.all(directionsPromises); const routeInfoMap: Record<TransportationType, any> = { 'driving': {}, 'cycling': {}, 'walking': {}, - }; - - Object.entries(routeMap).forEach(([key, routeData]) => { - const transportationTypeKey = key as TransportationType; - const geometry = routeData.geometry; - const coordinates = geometry.coordinates; - - console.log(coordinates); - - routeInfoMap[transportationTypeKey] = { + }; + + transportationTypes.forEach((type, index) => { + const routeData = results[index].routes[0]; + if (routeData) { + const geometry = routeData.geometry; + const coordinates = geometry.coordinates; + + routeInfoMap[type] = { duration: this.secondsToMinutesHours(routeData.duration), distance: this.metersToMiles(routeData.distance), - coordinates: coordinates + coordinates: coordinates, + }; } - }) + }); return routeInfoMap; @@ -102,4 +93,47 @@ export class MapboxApiUtility { return `${parseFloat((meters/1609.34).toFixed(2))} mi`; } -}
\ No newline at end of file +} + +// const drivingQuery = await fetch( +// `${MAPBOX_DIRECTIONS_BASE_URL}/driving/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}`); + +// const cyclingQuery = await fetch( +// `${MAPBOX_DIRECTIONS_BASE_URL}/cycling/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}`); + +// const walkingQuery = await fetch( +// `${MAPBOX_DIRECTIONS_BASE_URL}/walking/${origin[0]},${origin[1]};${destination[0]},${destination[1]}?steps=true&geometries=geojson&access_token=${MAPBOX_ACCESS_TOKEN}`); + +// const drivingJson = await drivingQuery.json(); +// const cyclingJson = await cyclingQuery.json(); +// const walkingJson = await walkingQuery.json(); + +// console.log("Driving: ", drivingJson); +// console.log("Cycling: ", cyclingJson); +// console.log("Waling: ", walkingJson); + +// const routeMap = { +// 'driving': drivingJson.routes[0], +// 'cycling': cyclingJson.routes[0], +// 'walking': walkingJson.routes[0] +// } + +// const routeInfoMap: Record<TransportationType, any> = { +// 'driving': {}, +// 'cycling': {}, +// 'walking': {}, +// }; + +// Object.entries(routeMap).forEach(([key, routeData]) => { +// const transportationTypeKey = key as TransportationType; +// const geometry = routeData.geometry; +// const coordinates = geometry.coordinates; + +// console.log(coordinates); + +// routeInfoMap[transportationTypeKey] = { +// duration: this.secondsToMinutesHours(routeData.duration), +// distance: this.metersToMiles(routeData.distance), +// coordinates: coordinates +// } +// })
\ No newline at end of file diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts index 5449c8dea..8903a9f97 100644 --- a/src/fields/Doc.ts +++ b/src/fields/Doc.ts @@ -147,6 +147,7 @@ export class Doc extends RefField { public static get MyTopBarBtns() { return DocCast(Doc.UserDoc().myTopBarBtns); } // prettier-ignore public static get MyRecentlyClosed() { return DocCast(Doc.UserDoc().myRecentlyClosed); } // prettier-ignore public static get MyTrails() { return DocCast(Doc.ActiveDashboard?.myTrails); } // prettier-ignore + public static get MyCalendars() { return DocCast(Doc.ActiveDashboard?.myCalendars); } // prettier-ignore public static get MyOverlayDocs() { return DocListCast(Doc.ActiveDashboard?.myOverlayDocs ?? DocCast(Doc.UserDoc().myOverlayDocs)?.data); } // prettier-ignore public static get MyPublishedDocs() { return DocListCast(Doc.ActiveDashboard?.myPublishedDocs ?? DocCast(Doc.UserDoc().myPublishedDocs)?.data); } // prettier-ignore public static get MyDashboards() { return DocCast(Doc.UserDoc().myDashboards); } // prettier-ignore |