diff --git a/package-lock.json b/package-lock.json index 27fa22c83..e2d8becbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -101,72 +101,23 @@ "license": "MIT" }, "node_modules/@adobe/react-spectrum": { - "version": "3.38.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.38.0.tgz", - "integrity": "sha512-0/zFmTz/sKf8rvB8EHMuWIE5miY1gSAvTr5q4fPIiQJQwMAlQyXfH3oy++/MsiC30HyT3Mp93scxX2F1ErKL4g==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", + "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", "dependencies": { - "@internationalized/string": "^3.2.5", - "@react-aria/i18n": "^3.12.4", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.26.0", - "@react-aria/visually-hidden": "^3.8.18", - "@react-spectrum/accordion": "^3.0.0", - "@react-spectrum/actionbar": "^3.6.2", - "@react-spectrum/actiongroup": "^3.10.10", - "@react-spectrum/avatar": "^3.0.17", - "@react-spectrum/badge": "^3.1.18", - "@react-spectrum/breadcrumbs": "^3.9.12", - "@react-spectrum/button": "^3.16.9", - "@react-spectrum/buttongroup": "^3.6.17", - "@react-spectrum/calendar": "^3.5.0", - "@react-spectrum/checkbox": "^3.9.11", - "@react-spectrum/color": "^3.0.2", - "@react-spectrum/combobox": "^3.14.0", - "@react-spectrum/contextualhelp": "^3.6.16", - "@react-spectrum/datepicker": "^3.11.0", - "@react-spectrum/dialog": "^3.8.16", - "@react-spectrum/divider": "^3.5.18", - "@react-spectrum/dnd": "^3.5.0", - "@react-spectrum/dropzone": "^3.0.6", - "@react-spectrum/filetrigger": "^3.0.6", - "@react-spectrum/form": "^3.7.10", - "@react-spectrum/icon": "^3.8.0", - "@react-spectrum/illustratedmessage": "^3.5.5", - "@react-spectrum/image": "^3.5.6", - "@react-spectrum/inlinealert": "^3.2.10", - "@react-spectrum/labeledvalue": "^3.1.18", - "@react-spectrum/layout": "^3.6.10", - "@react-spectrum/link": "^3.6.12", - "@react-spectrum/list": "^3.9.0", - "@react-spectrum/listbox": "^3.14.0", - "@react-spectrum/menu": "^3.21.0", - "@react-spectrum/meter": "^3.5.5", - "@react-spectrum/numberfield": "^3.9.8", - "@react-spectrum/overlays": "^5.7.0", - "@react-spectrum/picker": "^3.15.4", - "@react-spectrum/progress": "^3.7.11", - "@react-spectrum/provider": "^3.10.0", - "@react-spectrum/radio": "^3.7.11", - "@react-spectrum/searchfield": "^3.8.11", - "@react-spectrum/slider": "^3.7.0", - "@react-spectrum/statuslight": "^3.5.17", - "@react-spectrum/switch": "^3.5.10", - "@react-spectrum/table": "^3.15.0", - "@react-spectrum/tabs": "^3.8.15", - "@react-spectrum/tag": "^3.2.11", - "@react-spectrum/text": "^3.5.10", - "@react-spectrum/textfield": "^3.12.7", - "@react-spectrum/theme-dark": "^3.5.14", - "@react-spectrum/theme-default": "^3.5.14", - "@react-spectrum/theme-light": "^3.4.14", - "@react-spectrum/tooltip": "^3.7.0", - "@react-spectrum/view": "^3.6.14", - "@react-spectrum/well": "^3.4.18", - "@react-stately/collections": "^3.12.0", - "@react-stately/data": "^3.12.0", - "@react-types/shared": "^3.26.0", - "client-only": "^0.0.1" + "@internationalized/date": "^3.12.1", + "@react-types/shared": "^3.34.0", + "@spectrum-icons/ui": "^3.7.0", + "@spectrum-icons/workflow": "^4.3.0", + "@swc/helpers": "^0.5.0", + "client-only": "^0.0.1", + "clsx": "^2.0.0", + "react-aria": "3.48.0", + "react-aria-components": "1.17.0", + "react-stately": "3.46.0", + "react-transition-group": "^4.4.5", + "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", @@ -230,7 +181,6 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -876,7 +826,6 @@ "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -1802,7 +1751,6 @@ "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-module-imports": "^7.28.6", @@ -2313,6 +2261,7 @@ "integrity": "sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@cacheable/utils": "^2.4.0", "@keyv/bigmap": "^1.3.1", @@ -2326,6 +2275,7 @@ "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "hashery": "^1.4.0", "hookified": "^1.15.0" @@ -2354,6 +2304,7 @@ "integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "hashery": "^1.5.1", "keyv": "^5.6.0" @@ -2365,6 +2316,7 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -2397,6 +2349,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2445,6 +2398,7 @@ } ], "license": "MIT-0", + "peer": true, "peerDependencies": { "css-tree": "^3.2.1" }, @@ -2491,6 +2445,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2515,6 +2470,7 @@ } ], "license": "MIT-0", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2538,6 +2494,7 @@ } ], "license": "MIT-0", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2597,17 +2554,17 @@ } }, "node_modules/@deephaven/chart": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-1.17.0.tgz", - "integrity": "sha512-5HG0YfZrMali/6NVtKidpDYO+vOdLq2piWiwqHZf2XApdhwrn502I8xj1w2KsSLhbMJH8X6HFRMsqLLQjDZvbA==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-1.21.1.tgz", + "integrity": "sha512-KdOegNcp0EMPijbFSDYsIaAlx6XTeMEaCKdwwYbkIPZn309FPZrm8nfn9zCzynYIOWolUnWPBPt+Xkj1lBPvTg==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", + "@deephaven/components": "^1.21.1", "@deephaven/icons": "^1.2.0", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@deephaven/utils": "^1.10.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", @@ -2710,15 +2667,15 @@ } }, "node_modules/@deephaven/components": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-1.17.0.tgz", - "integrity": "sha512-0H/W0q3iH07rKvS/Ev3OLLfeAQtZi/sujuZL+MnQInPJTX3rNHb8XcwAKI5bI/u5a/+PvGkNswZcS3njvKxJ0Q==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-1.21.1.tgz", + "integrity": "sha512-eZrjkw4FmZ9qtUZyt8+hdq9HI+NuIYlvqs7QeJkhKBbLrWyi4ApDTO+8WuquoDgh/Tp8GkZeHTjpiagHd82NNw==", "license": "Apache-2.0", "dependencies": { - "@adobe/react-spectrum": "3.38.0", + "@adobe/react-spectrum": "3.47.0", "@deephaven/icons": "^1.2.0", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@deephaven/utils": "^1.10.0", "@fontsource/fira-mono": "5.0.13", "@fontsource/fira-sans": "5.0.20", @@ -2726,13 +2683,20 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@hello-pangea/dnd": "^18.0.1", "@internationalized/date": "^3.5.5", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/toast": "^3.0.0-beta.16", - "@react-spectrum/utils": "^3.11.5", - "@react-types/combobox": "3.13.1", - "@react-types/radio": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", + "@react-aria/focus": "3.22.0", + "@react-aria/i18n": "3.13.0", + "@react-spectrum/label": "3.17.0", + "@react-spectrum/overlays": "5.10.0", + "@react-spectrum/theme-default": "3.6.0", + "@react-spectrum/toast": "3.2.0", + "@react-spectrum/utils": "3.13.0", + "@react-stately/overlays": "3.7.0", + "@react-stately/utils": "3.12.0", + "@react-types/combobox": "3.15.0", + "@react-types/radio": "3.10.0", + "@react-types/shared": "3.34.0", + "@react-types/textfield": "3.13.0", + "@spectrum-icons/ui": "3.7.0", "bootstrap": "4.6.2", "classnames": "^2.3.1", "event-target-shim": "^6.0.2", @@ -2775,20 +2739,20 @@ } }, "node_modules/@deephaven/console": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-1.17.0.tgz", - "integrity": "sha512-6ppKiIEauOsaoQqNVvnuy/sAUQ08jlt1oqpA+zDGExa4johJQznGtw33OlTCDpmOINui8JEQy8XRdRne/ND9tw==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-1.21.1.tgz", + "integrity": "sha512-RYgkaDvvzo0jhUCyofjw59U7mEMlLYqLTv8J/T+bjMZptWYUwGYk/YWQmsMrF+RvPS6mzXVGxF3qgdkEZtr7fA==", "license": "Apache-2.0", "dependencies": { "@astral-sh/ruff-wasm-web": "0.6.4", - "@deephaven/chart": "^1.17.0", - "@deephaven/components": "^1.17.0", + "@deephaven/chart": "^1.21.1", + "@deephaven/components": "^1.21.1", "@deephaven/icons": "^1.2.0", - "@deephaven/jsapi-bootstrap": "^1.17.0", + "@deephaven/jsapi-bootstrap": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@deephaven/storage": "^1.8.0", "@deephaven/utils": "^1.10.0", "@fortawesome/react-fontawesome": "^0.2.0", @@ -2831,16 +2795,16 @@ } }, "node_modules/@deephaven/dashboard": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-1.17.1.tgz", - "integrity": "sha512-ToEAhv9Im/kumvv+OLJgQO27rc+jRJGoNbej4rbRRU2PQGjKh9+eJlYMA4kHM4jSQrM9EJUtmF5MAoU9fwwyPA==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-1.21.1.tgz", + "integrity": "sha512-YtKeFA9D+Am5Y00jH6FXi/+OpumWI2HMQ7rpQSF77jg77yG9ftzU5kvwSlqaNf0J92nwJU1iKzZZsti2KGuiHQ==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", - "@deephaven/golden-layout": "^1.17.1", + "@deephaven/components": "^1.21.1", + "@deephaven/golden-layout": "^1.21.1", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", - "@deephaven/redux": "^1.17.0", + "@deephaven/react-hooks": "^1.21.1", + "@deephaven/redux": "^1.19.0", "@deephaven/utils": "^1.10.0", "classnames": "^2.3.1", "fast-deep-equal": "^3.1.3", @@ -2860,29 +2824,29 @@ } }, "node_modules/@deephaven/dashboard-core-plugins": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-1.18.0.tgz", - "integrity": "sha512-dnzylWF6wZ4gFqoh/FE9aHrn+B0pWVbjiPcj2kOtE+xjh6IpfcuCin09J+atGUbnpXmun4LmR5yKU8bowds3kQ==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-1.21.1.tgz", + "integrity": "sha512-coD0/T6+i/Q1lJtNIOPLz1ag+PKgzm5ynA2a7BrdAoWxCThlE1uh2y5wjsjvyOMvGOo88smr4GwyybPo5pJUVQ==", "license": "Apache-2.0", "dependencies": { - "@deephaven/chart": "^1.17.0", - "@deephaven/components": "^1.17.0", - "@deephaven/console": "^1.17.0", - "@deephaven/dashboard": "^1.17.1", - "@deephaven/file-explorer": "^1.17.0", + "@deephaven/chart": "^1.21.1", + "@deephaven/components": "^1.21.1", + "@deephaven/console": "^1.21.1", + "@deephaven/dashboard": "^1.21.1", + "@deephaven/file-explorer": "^1.21.1", "@deephaven/filters": "^1.1.0", - "@deephaven/golden-layout": "^1.17.1", - "@deephaven/grid": "^1.18.0", + "@deephaven/golden-layout": "^1.21.1", + "@deephaven/grid": "^1.18.2", "@deephaven/icons": "^1.2.0", - "@deephaven/iris-grid": "^1.18.0", - "@deephaven/jsapi-bootstrap": "^1.17.0", - "@deephaven/jsapi-components": "^1.17.0", + "@deephaven/iris-grid": "^1.21.1", + "@deephaven/jsapi-bootstrap": "^1.21.1", + "@deephaven/jsapi-components": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/plugin": "^1.18.0", - "@deephaven/react-hooks": "^1.14.0", - "@deephaven/redux": "^1.17.0", + "@deephaven/plugin": "^1.21.1", + "@deephaven/react-hooks": "^1.21.1", + "@deephaven/redux": "^1.19.0", "@deephaven/storage": "^1.8.0", "@deephaven/utils": "^1.10.0", "@fortawesome/react-fontawesome": "^0.2.0", @@ -2969,12 +2933,12 @@ } }, "node_modules/@deephaven/file-explorer": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-1.17.0.tgz", - "integrity": "sha512-bFMN3oQ6RikiPskD9aXoEyCN0voej8r8Zl6jgUzgym8HCFegSt5nJccBxgWmC3LppuZIgDMQqqjcfxPgfKLwRw==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-1.21.1.tgz", + "integrity": "sha512-Eadt+EmVR8dTbcnzdgliC7x5eepaFRXCRvqDmv8LAdUbpg8uBWT4MTOQraTPP/0NnO2lbzBgFrYGjCCA4DdyuQ==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", + "@deephaven/components": "^1.21.1", "@deephaven/icons": "^1.2.0", "@deephaven/log": "^1.8.0", "@deephaven/storage": "^1.8.0", @@ -3001,12 +2965,12 @@ } }, "node_modules/@deephaven/golden-layout": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-1.17.1.tgz", - "integrity": "sha512-lnA87WSFcFoceK7DtsxNqKjEYCF7L427VxtMdMR7xU/tsTJUQnlT5MNR9BV/2Ybz8AR8Kh1qQv/3EmY1vlHGmA==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-1.21.1.tgz", + "integrity": "sha512-7kLxFWtwzQ77nakHKhXe1n8Z6B3ceRX5UGwK4GI3/LxYlt928K2YXaB5a6h2FmjWH5pX1yb0mkLbms3uaHMa5A==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", + "@deephaven/components": "^1.21.1", "jquery": "^3.6.0", "nanoid": "^5.0.7" }, @@ -3034,9 +2998,9 @@ } }, "node_modules/@deephaven/grid": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-1.18.0.tgz", - "integrity": "sha512-2uF99HNqRhvqVOmLL1HSDlF7P8mjkS3LgFIxVZA6qxDbBQVo6sxr6ymPWChAd3I+MseDJedojgMjfsGTOOedFw==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-1.18.2.tgz", + "integrity": "sha512-bPqymdO9cjVGw3yfdPsa9TqYzxXVIri3iw4fkp8EB7JsdXcKgDSE0iafSvuq2zXK+/O1ndS7kh/vExiJ7RkMGw==", "license": "Apache-2.0", "dependencies": { "@deephaven/utils": "^1.10.0", @@ -3069,21 +3033,21 @@ } }, "node_modules/@deephaven/iris-grid": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-1.18.0.tgz", - "integrity": "sha512-DP6Hh2Nn0R3CgC4ED3eNPN8Ns9nUvHu3Ezi/++PerzqC6Ej0K1493KtapObJy9xESqBNkvzMStakypZ7nfm0PA==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-1.21.1.tgz", + "integrity": "sha512-xeBCIS5aNtKFYdDiqJqbeBw+w5dGOKj1K21Vum1MxDi9Z8JZsN2Ry9SzZFZaaoIys3WTIlTtg7M+6GiarMEvwA==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", - "@deephaven/console": "^1.17.0", + "@deephaven/components": "^1.21.1", + "@deephaven/console": "^1.21.1", "@deephaven/filters": "^1.1.0", - "@deephaven/grid": "^1.18.0", + "@deephaven/grid": "^1.18.2", "@deephaven/icons": "^1.2.0", - "@deephaven/jsapi-components": "^1.17.0", + "@deephaven/jsapi-components": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@deephaven/storage": "^1.8.0", "@deephaven/utils": "^1.10.0", "@dnd-kit/core": "^6.1.0", @@ -3167,15 +3131,15 @@ "link": true }, "node_modules/@deephaven/jsapi-bootstrap": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-1.17.0.tgz", - "integrity": "sha512-0ffPtsrq0oTOzfjwG/JYx7gMVIrJ0125Axk0yDt1/ozOnPzVMSN9MpK9EtUyGxgckWCdCwvQ8XYgkYtliNmHPw==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-1.21.1.tgz", + "integrity": "sha512-SgxMUTtP1d/FxopHP33QtYvl3q14+QYWTIwurAfWtDKYr+c+3v6+30qRrv2/lvcn5yzxgwY9UQ2hwK/5sBX4SQ==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", + "@deephaven/components": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@deephaven/utils": "^1.10.0" }, "engines": { @@ -3186,17 +3150,17 @@ } }, "node_modules/@deephaven/jsapi-components": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-1.17.0.tgz", - "integrity": "sha512-am7GSuDiAa2L8+otndrK3wQ5HIZOiSnxBf/ytIEZo9J+bpuCuDH31J5E1GrXWNnRjKxEqSACwk7e5+fCysJXbw==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-1.21.1.tgz", + "integrity": "sha512-m7R4YkPyskANh0hgbalceoslZ3MauSgPnVDMc1jwcOShV3MyrLgGxaUyjrD1JRwcScspwTTVe8BxtFGaUCG91Q==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", - "@deephaven/jsapi-bootstrap": "^1.17.0", + "@deephaven/components": "^1.21.1", + "@deephaven/jsapi-bootstrap": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@deephaven/utils": "^1.10.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", @@ -3266,20 +3230,20 @@ } }, "node_modules/@deephaven/plugin": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-1.18.0.tgz", - "integrity": "sha512-vn5AKTlPDeI9p/yMDsacJqrkIL4FiQkQzGkctMbQH4c3tsbkcC+iPUIBbqKrvWOYDs42+ZoHHpQqDMOAM4c/tQ==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-1.21.1.tgz", + "integrity": "sha512-u3BX2ZhbWg82ZSrb2INxopxcSMCyOVUlZBYg6Tr9mhnfguhBENYUh/9MB/We1LbwtQuCuWaf9GhKPZlf2itU5Q==", "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^1.17.0", - "@deephaven/dashboard": "^1.17.1", - "@deephaven/golden-layout": "^1.17.1", - "@deephaven/grid": "^1.18.0", + "@deephaven/components": "^1.21.1", + "@deephaven/dashboard": "^1.21.1", + "@deephaven/golden-layout": "^1.21.1", + "@deephaven/grid": "^1.18.2", "@deephaven/icons": "^1.2.0", - "@deephaven/iris-grid": "^1.18.0", + "@deephaven/iris-grid": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", "@deephaven/log": "^1.8.0", - "@deephaven/react-hooks": "^1.14.0", + "@deephaven/react-hooks": "^1.21.1", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0", "nanoid": "^5.0.7" @@ -3320,12 +3284,12 @@ } }, "node_modules/@deephaven/react-hooks": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-1.14.0.tgz", - "integrity": "sha512-VWRU6Hka5GyN0zO5LJYI5YgKrEsf0xAKrQ5LnEX4WSloB1C5DFoS1K1kH3fPqVBhid5JTu7R7oe0y4Tvt4wesQ==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-1.21.1.tgz", + "integrity": "sha512-i0rx4hsoGyD8o91tyv600RPkbBd0JI4u4NYasttZXUEHNCjhTGrreG82ssrtlkFkzNgpQr7FI4GJBYPNFDCqcA==", "license": "Apache-2.0", "dependencies": { - "@adobe/react-spectrum": "3.38.0", + "@adobe/react-spectrum": "3.47.0", "@deephaven/log": "^1.8.0", "@deephaven/utils": "^1.10.0", "lodash.debounce": "^4.0.8", @@ -3340,9 +3304,9 @@ } }, "node_modules/@deephaven/react-hooks/node_modules/nanoid": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.9.tgz", - "integrity": "sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==", + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.11.tgz", + "integrity": "sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==", "funding": [ { "type": "github", @@ -3358,9 +3322,9 @@ } }, "node_modules/@deephaven/redux": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-1.17.0.tgz", - "integrity": "sha512-pbq1Npd0JHkZDiK7gt5Oj4EVJuikQ76Jd0qoo20P5Ouan5M2iZg3HZNHVmicAJHA9p7+EmYAeXpHS52rUmQszg==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-1.19.0.tgz", + "integrity": "sha512-ChzeUsaaoTMhM9Qrw9t0yCmEjdNNBoVf9RDfBQhTb2ifxNh2ZVxAgN4/yWB7kIlynfEmUwqYNQ7f2gcRNeEIHw==", "license": "Apache-2.0", "dependencies": { "@deephaven/jsapi-types": "^1.0.0-dev0.40.4", @@ -3469,7 +3433,6 @@ "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "license": "MIT", - "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -4059,7 +4022,6 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", "license": "MIT", - "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.7.2" }, @@ -4073,7 +4035,6 @@ "integrity": "sha512-mtBFIi1UsYQo7rYonYFkjgYKGoL8T+fEH6NGUpvuqtY3ytMsAoDaPo5rk25KuMtKDipY4bGYM/CkmCHA1N3FUg==", "deprecated": "v0.2.x is no longer supported. Unless you are still using FontAwesome 5, please update to v3.1.1 or greater.", "license": "MIT", - "peer": true, "dependencies": { "prop-types": "^15.8.1" }, @@ -4136,8 +4097,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", @@ -5221,7 +5181,8 @@ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@mapbox/geojson-rewind": { "version": "0.5.2", @@ -6391,7 +6352,6 @@ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -6880,6 +6840,7 @@ "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -6998,30 +6959,26 @@ "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==", "license": "MIT" }, - "node_modules/@react-aria/i18n": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.13.0.tgz", - "integrity": "sha512-APjw4EwmvlnIyDxixSWfjHvOFFkW2rVTyKZ4l9FV0v7hOerh+FWLE6mF1XnnX3pgz3yARkKWwhSR9xYcRK6tpg==", + "node_modules/@react-aria/combobox": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.16.1.tgz", + "integrity": "sha512-Ufoos0z66dRx8bxN3OJ25ASqksukPQaxVP5thr7dnu2QqqhxlZb1Va1ebaVxzMAnSrB78oQh3h1d9/hS4uhcPQ==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.12.1", - "@internationalized/message": "^3.1.9", - "@internationalized/string": "^3.2.8", "@swc/helpers": "^0.5.0", - "react-aria": "3.48.0" + "react-aria": "^3.48.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/radio": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.13.0.tgz", - "integrity": "sha512-3aqUvX2xV9AAriddw/INm/l1rkMEVdxTRi8BovDnpGUuDmOetKLI2geojiwftmSsHDwqknFwqEH1g7MYFDPaTw==", + "node_modules/@react-aria/focus": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.22.0.tgz", + "integrity": "sha512-ZfDOVuVhqDsM9mkNji3QUZ/d40JhlVgXrDkrfXylM1035QCrcTHN7m2DpbE95sU2A8EQb4wikvt5jM6K/73BPg==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.34.0", "@swc/helpers": "^0.5.0", "react-aria": "3.48.0" }, @@ -7030,29 +6987,30 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/ssr": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.10.0.tgz", - "integrity": "sha512-mnelvACtfNWWKFCT1YHebxJRmfBmmANGwHQhCFPByMVTx1L8RumcaLxChYkE87g2KPuP5xX2il/oRn1DytW+qQ==", + "node_modules/@react-aria/i18n": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.13.0.tgz", + "integrity": "sha512-APjw4EwmvlnIyDxixSWfjHvOFFkW2rVTyKZ4l9FV0v7hOerh+FWLE6mF1XnnX3pgz3yARkKWwhSR9xYcRK6tpg==", "license": "Apache-2.0", "dependencies": { + "@internationalized/date": "^3.12.1", + "@internationalized/message": "^3.1.9", + "@internationalized/string": "^3.2.8", "@swc/helpers": "^0.5.0", "react-aria": "3.48.0" }, - "engines": { - "node": ">= 12" - }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/textfield": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.19.0.tgz", - "integrity": "sha512-P5Da8QFV/bCp3oCXQAqaTWhXNtx4vWEjvoqa49oG5TM1blodLjFrzNyiRM7TmQU0VLwiQPAQrqD4yaDLXZ0Nqg==", + "node_modules/@react-aria/radio": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.13.0.tgz", + "integrity": "sha512-3aqUvX2xV9AAriddw/INm/l1rkMEVdxTRi8BovDnpGUuDmOetKLI2geojiwftmSsHDwqknFwqEH1g7MYFDPaTw==", "license": "Apache-2.0", "dependencies": { + "@react-types/shared": "^3.34.0", "@swc/helpers": "^0.5.0", "react-aria": "3.48.0" }, @@ -7061,25 +7019,10 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/utils": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.34.0.tgz", - "integrity": "sha512-ZM1ZXIqpwGTJjjL6o3JhlZkEaBpQdxuOCqLEvwEwooaj5GsYI3E9UfOl5vy3UW6bYiEEWl9pNBntrb9CR9kItQ==", - "license": "Apache-2.0", - "dependencies": { - "@swc/helpers": "^0.5.0", - "react-aria": "3.48.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-aria/visually-hidden": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.9.0.tgz", - "integrity": "sha512-OBSwuke98mVtd2po43VOT999rO9mpL7yaSehMuIylOT2wyY01Tut+ATpjavKbcZAust4eZFALVARYAS/0+GHyA==", + "node_modules/@react-aria/textfield": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.19.0.tgz", + "integrity": "sha512-P5Da8QFV/bCp3oCXQAqaTWhXNtx4vWEjvoqa49oG5TM1blodLjFrzNyiRM7TmQU0VLwiQPAQrqD4yaDLXZ0Nqg==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0", @@ -7090,3681 +7033,82 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/accordion": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/accordion/-/accordion-3.1.0.tgz", - "integrity": "sha512-pcTpvAcrZ2WyOAr3Fh9cWYzaYbxeM4c5yCP36Wwui2j+qZ34PFHxss1BzhWN0VbuHp4aZQX4StwDpTUX30UKtA==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/accordion/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/accordion/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/accordion/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", + "node_modules/@react-spectrum/combobox": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.17.1.tgz", + "integrity": "sha512-687FgU6lYIFSUducoqp77YJaAL5BZDhuwB6q7B01pNMuq6oAa6PAW6b2iNA8QGbI/JBw/UMVga8DAziiZchcug==", "license": "Apache-2.0", "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/actionbar": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.7.0.tgz", - "integrity": "sha512-uh/hmcu9pRc5ikPszIyBe+xtegT3ABcwq+D02QL/sI/K2HiNyg/gI+3aps0WDa9w/8AqLRJOH3Xr6iQTBTqh4g==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/actionbar/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/actionbar/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/actionbar/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" + "react-stately": "^3.46.0" }, "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/actiongroup": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.12.0.tgz", - "integrity": "sha512-cred7cSV58oTLF0JRiO0OCWxVq5WSjUyM/yzH0lv0a/0w72XHH+lFKKM+NWglHOJy1HYJwOzQj6M+hK/PqVMQw==", + "node_modules/@react-spectrum/label": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.17.0.tgz", + "integrity": "sha512-cv3cHYSOvKfDvjyYSZylyhxZHnWDEm6k0RvqxAv9DKu3KMPgNxiUHoQAWHhJ9pzz4Jqch7DF9ZiL9t6TNDfb3Q==", "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" + "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } - }, - "node_modules/@react-spectrum/actiongroup/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/actiongroup/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/actiongroup/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/avatar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.1.0.tgz", - "integrity": "sha512-TGnu2DE7HUV8NKyRdTECu0+Tk2RCiLio/b2nZ/gIyXBtFtF/g6YEksDhut05j3aykFOTdczF4q6k1p9IUABIfw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/avatar/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/avatar/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/avatar/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/badge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.2.0.tgz", - "integrity": "sha512-Tf1FBqKS6PBg9i3VCBwdXHGpVdDm+Pjh6YQS2sVlGuBKFiOFrOKxFJH5aCzRgp40RyTYMqAhYLbC0pahCIfyzQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/badge/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/badge/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/badge/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/breadcrumbs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.10.0.tgz", - "integrity": "sha512-3m4CQlnPNIEVW5oytJHtWMxtc4jVSzewWeUmoxsrTzJl8N4T158YxdF9xyvM65y95CRrgfvLahqUwDeaPdtRiA==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/breadcrumbs/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/breadcrumbs/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/breadcrumbs/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/button": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.18.0.tgz", - "integrity": "sha512-SmjsXt+mLK2cf8PGstNZvLBfjqE5TjHW15yPIATI6ddqMdcC9JZ3ldnBTdFji9P/B6Rlop4ajnAdDV6bpxLtXA==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/button/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/button/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/button/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/buttongroup": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.7.0.tgz", - "integrity": "sha512-wswBAiZAxDtvgNCWySXw/8Y82GMOQi+hu32JjbVuVr3VXaIAJIcmRxfECE9DI/CJUKueqrwh1wYWuqx8/oF/jg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/buttongroup/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/buttongroup/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/buttongroup/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/calendar": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.8.0.tgz", - "integrity": "sha512-Qnkbiu8cS3h0cXFIv12QxEe6FGHA+byaw8diCVMgGKJyKZHao3AU3IYbrpXPI8eDNwiDwFF9XfKPdelYXQ56Ww==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/calendar/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/calendar/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/calendar/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/checkbox": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.11.0.tgz", - "integrity": "sha512-76jDNkUcMUJO8ukXnn2fsNwLT7z0x/T++UwFH4dNymInKCLxSve2uJrgIDvWBQBwYUwLbPZ3tS5lJEIkpCGRSg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/checkbox/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/checkbox/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/checkbox/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/color": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/color/-/color-3.2.0.tgz", - "integrity": "sha512-Xg/U8+l1CQdvPRF4Zrv7AvtqsjuYUNkMxJMG0cIug9RKtIfEoyh7VR4Xg3FNd4Y/AwKXNJZZN4l94qz4WlK23Q==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/color/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/color/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/color/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/combobox": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.17.0.tgz", - "integrity": "sha512-HuJjm7m5W/lvpak0KQXAdqkvO17GpIfQ6/AuddnXEyltWhl481oRok04b9VQKdZAy9xrmmpReFcvXJ4zFDIGvg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/combobox/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/combobox/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/combobox/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/contextualhelp": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.7.0.tgz", - "integrity": "sha512-KmwkhFPlzOEIYyqFIzoVU5R8YYCFxZjUmcNesymCyt7OrTclfPr1R8F84IAZg4xCfA5kzd62Dt+yQV/dTB4gOg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/contextualhelp/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/contextualhelp/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/contextualhelp/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/datepicker": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.15.0.tgz", - "integrity": "sha512-VS12NUz3f9JE622FNgWWn6KSmLJx6OR6nW/RxUkg5EjQ8o/C0kjWZvogPd/t7a69SCMbZYkGYZDSiHQeM3W3BQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/datepicker/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/datepicker/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/datepicker/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dialog": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.10.0.tgz", - "integrity": "sha512-U+0rTx1eG+BIpIb3vUAtP/n65CsyGydhtkJSNDTGUzG8yHgc7jGU/siwhY6/C8Y25wU4QggkXhIcn0y6rLvJ4g==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dialog/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dialog/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dialog/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/divider": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.6.0.tgz", - "integrity": "sha512-CWR3hUuGslO8bYcetzOKu/IK1fAeU4HZIO+QIid9E9gPwqcB7kRsT80FlOCAByjVjw8MwjTT1g+d71jR4cHeJQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/divider/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/divider/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/divider/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dnd": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.7.0.tgz", - "integrity": "sha512-Zs+PJGL070ttC/POGBKzXRCiLgyty9jIjVuaos7RfMRGyXE1nkLBHrVPmBmFxD8ijzi3ow79/hQP6aMLFtqs3g==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@react-types/shared": "^3.34.0", - "@swc/helpers": "^0.5.0", - "react-aria": "3.48.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dnd/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dnd/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dnd/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dropzone": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/dropzone/-/dropzone-3.1.0.tgz", - "integrity": "sha512-65zjquBNvhMCECi9R8XOWaG9guOkwOjD3r9o1j/icD+GJbm2/3R35pR8TN1uM2D9fmLaUqQxyH2+r3sY210ppg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dropzone/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dropzone/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/dropzone/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/filetrigger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/filetrigger/-/filetrigger-3.1.0.tgz", - "integrity": "sha512-Skipc9Sq95bJxs92CD5xYpkglYzZiXejSI5iAAR/02VkrYGBqA0xlm8Vg8blLrdzP7CUGYkMojprZ9i41pKy+Q==", - "license": "Apache-2.0", - "dependencies": { - "@swc/helpers": "^0.5.0", - "react-aria-components": "1.17.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/form": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.8.0.tgz", - "integrity": "sha512-zNFA1zRFvoEZAhK6HxWyo2yUDlUXqCaaySxHvuCaevq4Zw3DKndbxq72ax9YDaUAvYlhgnb/bI616JBCZUAhdA==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/form/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/form/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/form/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/icon": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.9.0.tgz", - "integrity": "sha512-eD/Dg7QYTKRdzwHF+kdzZud0sKnTzZ0TjgK5XDjt5ZdCeMO98jWOZNy5kpSiUlE69+lmhxPQGCAjpWS+NBWU/Q==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/icon/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/icon/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/icon/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/illustratedmessage": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.6.0.tgz", - "integrity": "sha512-jjqpf7WBq/R486djHIn6CkK1ujgvsv5dajNJp4d15pwEph1tnFJK+Z2anfL3irjVw1eQZ24Hjv6RICh7KECMQw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/illustratedmessage/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/illustratedmessage/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/illustratedmessage/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/image": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.7.0.tgz", - "integrity": "sha512-qNcD3YfsoZIkJ7K4ylTsebdRZbkhhTeVOPxh9w9ob3KBzNLxydSaA6ZBnD4yNBAl9mdYZfVrDqiodfW3Txtjvw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/image/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/image/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/image/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/inlinealert": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.3.0.tgz", - "integrity": "sha512-1CrlWZKeCBB4ShnQtPJmRA3pRRZusACrRXBLTQK+DWVqHTUcYL3NbgFbST4Wr4+PQj1rFtx2GPVWscxehrvwag==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/inlinealert/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/inlinealert/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/inlinealert/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/labeledvalue": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.3.0.tgz", - "integrity": "sha512-DQ5PrPXwc3oQlzObYJxVw4ufX/LDvZ1MKHcjuBsas08pz8Kgsk3RfDR/XjkkJk1w/dOA5ZFyYjlykHlxW+oOuQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/labeledvalue/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/labeledvalue/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/labeledvalue/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/layout": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.7.0.tgz", - "integrity": "sha512-UZal20cErK6Eqz7EKHzal5yOk5kl/LopQIkaYT+suiF1xMRc9zKEjYnjJJQlQImjqF4pg77d64N6pARWBrEsJg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@react-types/shared": "^3.34.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/layout/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/layout/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/layout/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/link": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.7.0.tgz", - "integrity": "sha512-JE2aN/f0A29R0qb1KVc9ZkW3ve8iOSBqxjiaXSH+ldeGOokQ7uQiRvxwv0JIFKbSAJ0C30AqQcovbBJ8WSXS0Q==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/link/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/link/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/link/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/list": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.11.0.tgz", - "integrity": "sha512-m6W/Al36LS0oywR/yrqGvg1Df+AGUt1tnVqPgZis3VEjpm8cMskUfLd3gkkb2YpjkMcJJKAiayY0DZ6E1tNQXg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/list/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/list/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/list/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/listbox": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.16.0.tgz", - "integrity": "sha512-yYpBUScaF7v2qA6wcUM1D2bGlU63ZvFphkiu5qGeQHd4TdDNqVfmF4tlkUQZIH/PPPoXwvyFpKHwVfbNgqzJ5Q==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/listbox/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/listbox/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/listbox/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/menu": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.23.0.tgz", - "integrity": "sha512-oM7VjcoUbF8HU/jnHzGowQ1kSyntoIviVlvm00uvHUbQiwm0w59PMeL++JSG3sQ1WhZz5vk2B/sEnUjPvu6ruQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/menu/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/menu/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/menu/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/meter": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.6.0.tgz", - "integrity": "sha512-Qmqqnek11eoSHOmA5ET7m4KYtkQMSiDx0n3kTzA/Lvff9EvBuM0Wxr4uwW9bCEPAdXdW2gxeWFktcYxHRz4BRw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/meter/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/meter/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/meter/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/numberfield": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.11.0.tgz", - "integrity": "sha512-58O3URmyBDgqRr543Bfa1TOzzbXrYOON8o+g2fPZEvmZs2MdNdyuiR6Yg7aeGUpZtQLvGA9C1Cn64cRKHUBJlQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/numberfield/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/numberfield/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/numberfield/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/overlays": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.10.0.tgz", - "integrity": "sha512-iGHXE5wdF4wNqdkgTKWAoeJUeKec+ki1BeRdiguywjY/SGMIx8Htd4dWyglDsOboBBJuEWMHKFAmTbMDhz6B9w==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/overlays/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/overlays/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/overlays/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/picker": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.17.0.tgz", - "integrity": "sha512-KY7EKR51pXkGg0hl1ZggxWQz9blatF7RczTk/l1FAjnKDLBIN4AhE/bZOTQDRgBY/l0EMzAzzmaZy58YEJg5/w==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/picker/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/picker/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/picker/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/progress": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.8.0.tgz", - "integrity": "sha512-pvJR9U7nPZ7zRX875CP0uK6IHjAr7oIVaPyJf2Bp5Nj8e2AolxttHaOaunZ6X1RAWyUNH2uK7XBoK8Ggy4s8Ww==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/progress/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/progress/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/progress/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/provider": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.11.0.tgz", - "integrity": "sha512-W2Gxbj8AcG5OR2K5Ua3K8qQqxdsiytEiz+2rhr6oQyBM8VafEgDcNPYSOTtfjrQM3snl2Uhp8LzwN0jwQe/6nQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/provider/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/provider/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/provider/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/radio": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.8.0.tgz", - "integrity": "sha512-89wHBWM974JnI8IhM5FV5ptz6SaSq//wPG1tGPxPa1uNWlBa/7u0ItGwhAPg5Oix9EH4Va/PoFjTUwXIsen/WQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/radio/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/radio/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/radio/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/searchfield": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.9.0.tgz", - "integrity": "sha512-so1IeolnYPsgjoIJmoGakUuQv+Ij5NVoWx2VTBc3o2sUva1GkxtFp6Woiow2Qqw0mFyoTwwoKi6zQJHLMqHhvQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/searchfield/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/searchfield/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/searchfield/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/slider": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.9.0.tgz", - "integrity": "sha512-FTsfWfn6+BkXi8ZDcd7mBQs/KbKYJRHV6aQ64pC4gCnMw54eFcKSuCtlCtdGw3exLPQtGHCNVWGznOjgc8PtGw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/slider/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/slider/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/slider/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/statuslight": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.6.0.tgz", - "integrity": "sha512-uJ9ofz1plxJ5kVbYyx9YoluHLr0Wh3C5Eiw5X1f36jCa4lKKlU7bHoaHDpIAAFFoSn2lYOIoJiDL6UbRqMS0Rw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/statuslight/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/statuslight/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/statuslight/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/switch": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.7.0.tgz", - "integrity": "sha512-xr+/6BefcxnuD2OJ8X2/nuz1XQOsHcbR1nnYE2B/KUJhrrTSxKpQcPnU36E1N1U8iQUO3TYn8zwCl3NHxpuByQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/switch/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/switch/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/switch/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/table": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.18.0.tgz", - "integrity": "sha512-ckvjjz/Tp8Y/Ck/OOOXX/dTs8PtoWCy7+QDBxWzNpqvxcLiLviudNKJFhGfeyGGDi3IOMWRSaG5yWN9wrvItNQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/table/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/table/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/table/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tabs": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.9.0.tgz", - "integrity": "sha512-gTHgc7pONFCQDlOu9PYn2LueWQd5Oq49YVcRR8UxTM2TwrXf1gHcBnZKPmsfNoZ6FWMsXUG7ByeQJ6gdGoZC1g==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tabs/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tabs/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tabs/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tag": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.4.0.tgz", - "integrity": "sha512-OKUUlATl+nBHOd7LBaMeJMPgI4FTxeHPu4nmx6h53lO3ZWGev0F8LlQ8pubLd22YnGIHOecaJJFz5wsg1c6Rog==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tag/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tag/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tag/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/text": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.6.0.tgz", - "integrity": "sha512-MwQkXYwBmrv+GNYZhlT9mmmnQ4vd2QDvUPeg4KvQ8z73tAld/H5GNiDyzN4aSMVsOuh6veuq+mg4QWDHVeMrRw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/text/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/text/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/text/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/textfield": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.15.0.tgz", - "integrity": "sha512-FUDUOjPml2zyYzax7fYIV6P72wyMSLXj65GKvAofmUzu1g7rSD6M1AGHarwA8hbQf2O6ogt7TgN1goreAP25CQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/textfield/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/textfield/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/textfield/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-dark": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.6.0.tgz", - "integrity": "sha512-Ea8z3B6I0rbSk2UlzIH5s2w1yUWnIzIsfuJ+W/3WGqgsUOlN427gxqXV7P653V6FGElretUzKZ3B5DfCKUmYNA==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-dark/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-dark/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-dark/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-default": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.6.0.tgz", - "integrity": "sha512-zrsr/Bl/iw8H3/XPEwrsOJQbxQYCJTK7bC6dkX1OQnlOObmYA3wI+HhGeF3Q7j5NVS4+qcukSqSiLVewfh247w==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-default/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-default/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-default/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-light": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.5.0.tgz", - "integrity": "sha512-zN/tIZYQUsTMN7dDX+mht1C8NaGEl5nmaRhzh8KP84uPlVvE+qr3jc0Yr4dYM/Xp5hNhJ16X8Zd2XOmro06SAg==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-light/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-light/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/theme-light/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/toast": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/toast/-/toast-3.2.0.tgz", - "integrity": "sha512-V9hWjjb1+RKIPwyWvE0z+ObADNDl5DQnASgG4fY2nfcERR5uRasm1UNCQD9idtpS6T9ZTS3OqET9BcLYIoJzyQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/toast/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/toast/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/toast/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tooltip": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.9.0.tgz", - "integrity": "sha512-e0EOJaJZgNQtY3XWpJdoc0/+SIfEv1F9tumDeIJSQIFsd65dk4x5CnFFyHfauYNRgrt7qr65zKqbxmgy0/tBnA==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tooltip/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tooltip/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/tooltip/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/utils": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.13.0.tgz", - "integrity": "sha512-xtuKCwbsP2xwRtsYojSh/kbm5/YfVs398Five1RfJZNLSc/dXrz6KWdyusHp+gNCpv4Z83hwCaO8TPwbrehwoQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0", - "react-aria": "3.48.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/utils/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/utils/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/utils/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/view": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.7.0.tgz", - "integrity": "sha512-XjCCSvdX2c4nacsEbgNQkmIaLQlTsN6/LhAvocf/DAsf8Um/eOz9WzdLDx9oCkRNwVWu8JGEkz5S3gVo0hmyiw==", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.47.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@react-spectrum/view/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" + }, + "node_modules/@react-spectrum/overlays": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.10.0.tgz", + "integrity": "sha512-iGHXE5wdF4wNqdkgTKWAoeJUeKec+ki1BeRdiguywjY/SGMIx8Htd4dWyglDsOboBBJuEWMHKFAmTbMDhz6B9w==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/view/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", + "node_modules/@react-spectrum/provider": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.11.0.tgz", + "integrity": "sha512-W2Gxbj8AcG5OR2K5Ua3K8qQqxdsiytEiz+2rhr6oQyBM8VafEgDcNPYSOTtfjrQM3snl2Uhp8LzwN0jwQe/6nQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", + "@adobe/react-spectrum": "3.47.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/view/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", + "node_modules/@react-spectrum/radio": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.8.0.tgz", + "integrity": "sha512-89wHBWM974JnI8IhM5FV5ptz6SaSq//wPG1tGPxPa1uNWlBa/7u0ItGwhAPg5Oix9EH4Va/PoFjTUwXIsen/WQ==", "license": "Apache-2.0", "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", + "@adobe/react-spectrum": "3.47.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/well": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.5.0.tgz", - "integrity": "sha512-cWYQxH+Rm0XbZrK5f18tO7YMQ3O/7GC2tPfOXLScfCq4BOiMUMuyKvqouJoh29OrMO12u1zfFPURSllBa+weTg==", + "node_modules/@react-spectrum/textfield": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.15.0.tgz", + "integrity": "sha512-FUDUOjPml2zyYzax7fYIV6P72wyMSLXj65GKvAofmUzu1g7rSD6M1AGHarwA8hbQf2O6ogt7TgN1goreAP25CQ==", "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "3.47.0", @@ -10775,80 +7119,67 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/well/node_modules/@adobe/react-spectrum": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", - "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", + "node_modules/@react-spectrum/theme-default": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.6.0.tgz", + "integrity": "sha512-zrsr/Bl/iw8H3/XPEwrsOJQbxQYCJTK7bC6dkX1OQnlOObmYA3wI+HhGeF3Q7j5NVS4+qcukSqSiLVewfh247w==", "license": "Apache-2.0", - "peer": true, "dependencies": { - "@internationalized/date": "^3.12.1", - "@react-types/shared": "^3.34.0", - "@spectrum-icons/ui": "^3.7.0", - "@spectrum-icons/workflow": "^4.3.0", - "@swc/helpers": "^0.5.0", - "client-only": "^0.0.1", - "clsx": "^2.0.0", - "react-aria": "3.48.0", - "react-aria-components": "1.17.0", - "react-stately": "3.46.0", - "react-transition-group": "^4.4.5", - "use-sync-external-store": "^1.6.0" + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/well/node_modules/@spectrum-icons/ui": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", - "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", + "node_modules/@react-spectrum/toast": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/toast/-/toast-3.2.0.tgz", + "integrity": "sha512-V9hWjjb1+RKIPwyWvE0z+ObADNDl5DQnASgG4fY2nfcERR5uRasm1UNCQD9idtpS6T9ZTS3OqET9BcLYIoJzyQ==", "license": "Apache-2.0", "dependencies": { - "@adobe/react-spectrum-ui": "1.2.1", - "@babel/runtime": "^7.24.4", + "@adobe/react-spectrum": "3.47.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-spectrum/well/node_modules/@spectrum-icons/workflow": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", - "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", + "node_modules/@react-spectrum/utils": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.13.0.tgz", + "integrity": "sha512-xtuKCwbsP2xwRtsYojSh/kbm5/YfVs398Five1RfJZNLSc/dXrz6KWdyusHp+gNCpv4Z83hwCaO8TPwbrehwoQ==", "license": "Apache-2.0", "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.5", - "@swc/helpers": "^0.5.0" + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" }, "peerDependencies": { - "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-stately/collections": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.13.0.tgz", - "integrity": "sha512-f5HPoCjofrubOTbxch/GfGCV53U7C2y8JJM6RmLssbraw/iYGFME+UiorO+i7UFdMPQbyB6SoOpvtIYwuzS9WA==", + "node_modules/@react-stately/combobox": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.14.1.tgz", + "integrity": "sha512-Sko1oHiKt07LERxUgpgmbQOYh5Yk8cU1dgRZlcE1wmmaxSVZBzBnd3fGZrEGRKSDezVOKHLibsmuYYDbxPEc+Q==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0", - "react-stately": "3.46.0" + "react-stately": "^3.46.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-stately/data": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.16.0.tgz", - "integrity": "sha512-1bxU6mgKJsTR/exvqRHMmgwZTnKhEEAETj/94uBiCndYvowTHBQwON8rZjXkjpee7ZAAzk8YpVVb3ZkNw/ib/g==", + "node_modules/@react-stately/overlays": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.7.0.tgz", + "integrity": "sha512-VyFlju6JqEUTyr+igrEjTeUi2MXw7IBOxWYzLoq26UJxf+45okqUWfyKRdXTvNjGJqQol9fqIg5Nv8fU4H/CvQ==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0", @@ -10873,16 +7204,34 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, + "node_modules/@react-stately/utils": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.12.0.tgz", + "integrity": "sha512-7q+iHz9cENvro1dVKgdTxNh1i1mtWuLUI6UHp10TAgpxM9DyRDvmuN35zLXYCmMDgx3WLY2xkwqoez8xd+CdxQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-stately": "3.46.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/@react-types/combobox": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.1.tgz", - "integrity": "sha512-7xr+HknfhReN4QPqKff5tbKTe2kGZvH+DGzPYskAtb51FAAiZsKo+WvnNAvLwg3kRoC9Rkn4TAiVBp/HgymRDw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.15.0.tgz", + "integrity": "sha512-iWV9UfLg1P0XhEqPTbnhsVMHFwc0RnrZjHfCLwgilH0Af0z1CQ8RyWiT8cOd1eqbkOAiVgCv29Xs8PAxaQBHSg==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.26.0" + "@react-aria/combobox": "^3.16.0", + "@react-spectrum/combobox": "^3.17.0", + "@react-stately/combobox": "^3.14.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/radio": { @@ -11464,6 +7813,7 @@ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -11491,6 +7841,37 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@spectrum-icons/ui": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", + "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum-ui": "1.2.1", + "@babel/runtime": "^7.24.4", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "@adobe/react-spectrum": "^3.47.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@spectrum-icons/workflow": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.1.tgz", + "integrity": "sha512-kDF+/EbFVyLGytotqqdYt4uSij4j/PQmDQO5km/C6DyzKjyuic3FnSBFinR+mA6oFv1OjMcLvrrDBqK3wbqRlA==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum-workflow": "2.3.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "@adobe/react-spectrum": "^3.47.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/@swc/core": { "version": "1.15.30", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.30.tgz", @@ -12178,7 +8559,8 @@ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -12490,7 +8872,6 @@ "integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -12724,7 +9105,6 @@ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -13023,7 +9403,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -13539,6 +9918,7 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14115,7 +10495,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", @@ -14328,6 +10707,7 @@ "integrity": "sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@cacheable/memory": "^2.0.8", "@cacheable/utils": "^2.4.0", @@ -14342,6 +10722,7 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -14820,7 +11201,8 @@ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/columnify": { "version": "1.6.0", @@ -15257,6 +11639,7 @@ "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" } @@ -16152,6 +12535,7 @@ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" @@ -16951,7 +13335,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -17050,7 +13433,6 @@ "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -17139,6 +13521,7 @@ "integrity": "sha512-DEfpfuk+O/T5e9HBZOxocmwMuUGkvQQd5WRiMJF9kKNT9amByqOyGlWoAZAQiv0SZSy4GMtG1clmnvQA/RzA0A==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "debug": "^4.3.4", "enhanced-resolve": "^5.10.0", @@ -17165,6 +13548,7 @@ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -17185,6 +13569,7 @@ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -17266,7 +13651,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -17349,7 +13733,6 @@ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -17390,6 +13773,7 @@ "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "prettier-linter-helpers": "^1.0.1", "synckit": "^0.11.12" @@ -17421,6 +13805,7 @@ "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -17434,6 +13819,7 @@ "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@pkgr/core": "^0.2.9" }, @@ -17450,7 +13836,6 @@ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -17484,7 +13869,6 @@ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -17587,6 +13971,7 @@ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -17603,6 +13988,7 @@ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=4" } @@ -17899,7 +14285,8 @@ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/fast-glob": { "version": "3.3.3", @@ -17975,7 +14362,8 @@ "url": "https://opencollective.com/fastify" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -17983,6 +14371,7 @@ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4.9.1" } @@ -18441,6 +14830,7 @@ "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -18642,6 +15032,7 @@ "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -18837,6 +15228,7 @@ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "global-prefix": "^3.0.0" }, @@ -18850,6 +15242,7 @@ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -18865,6 +15258,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -18931,7 +15325,8 @@ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-inject-defines": { "version": "1.0.3", @@ -19373,6 +15768,7 @@ "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "hookified": "^1.15.0" }, @@ -19496,7 +15892,8 @@ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/hosted-git-info": { "version": "9.0.2", @@ -19546,6 +15943,7 @@ "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.10" }, @@ -19765,6 +16163,7 @@ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "dev": true, "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -20328,6 +16727,7 @@ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -20693,7 +17093,6 @@ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -22114,8 +18513,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/js-cookie": { "version": "3.0.5", @@ -23065,7 +19463,8 @@ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/log-symbols": { "version": "4.1.0", @@ -23148,6 +19547,7 @@ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "lz-string": "bin/bin.js" } @@ -23464,6 +19864,7 @@ "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -23717,7 +20118,8 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, - "license": "CC0-1.0" + "license": "CC0-1.0", + "peer": true }, "node_modules/memoize-one": { "version": "5.2.1", @@ -25618,7 +22020,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", @@ -26865,7 +23266,6 @@ "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-3.5.0.tgz", "integrity": "sha512-a3AYQIMG7OdZmrJ/fJ65HSt3g1l5qDeludKqjjafU1dh5E+fwqDhsEBndW7VCYwjlducCfN6KtPdWdiWFcoBWw==", "license": "MIT", - "peer": true, "dependencies": { "@plotly/d3": "3.8.2", "@plotly/d3-sankey": "0.7.2", @@ -26946,7 +23346,6 @@ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -26981,7 +23380,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -27011,6 +23409,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18.0" }, @@ -27024,7 +23423,6 @@ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -27038,7 +23436,8 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/potpack": { "version": "1.0.2", @@ -27062,7 +23461,6 @@ "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -27079,6 +23477,7 @@ "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-diff": "^1.1.2" }, @@ -27092,6 +23491,7 @@ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -27107,6 +23507,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -27321,6 +23722,7 @@ "integrity": "sha512-n7mar4T0xQ+39dE2vGTAlbxUEpndwPANH0kDef1/MYsB8Bba9wshkybIRx74qgcvKQPEWErf9AqAdYjhzY2Ilg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "hookified": "^2.1.1" }, @@ -27333,7 +23735,8 @@ "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.1.1.tgz", "integrity": "sha512-AHb76R16GB5EsPBE2J7Ko5kiEyXwviB9P5SMrAKcuAu4vJPZttViAbj9+tZeaQE5zjDme+1vcHP78Yj/WoAveA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/querystringify": { "version": "2.2.0", @@ -27398,7 +23801,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -27450,7 +23852,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -27463,8 +23864,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/react-markdown": { "version": "8.0.7", @@ -27521,7 +23921,6 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -27881,7 +24280,6 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.9.2" } @@ -27964,6 +24362,7 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -28191,6 +24590,7 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -28261,6 +24661,7 @@ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -28727,7 +25128,6 @@ "integrity": "sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.1.5", @@ -29003,6 +25403,7 @@ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -29589,6 +25990,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@csstools/css-calc": "^3.1.1", "@csstools/css-parser-algorithms": "^4.0.0", @@ -29640,6 +26042,7 @@ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -29653,6 +26056,7 @@ "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -29680,6 +26084,7 @@ "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flat-cache": "^6.1.20" } @@ -29690,6 +26095,7 @@ "integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cacheable": "^2.3.4", "flatted": "^3.4.2", @@ -29702,6 +26108,7 @@ "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "fast-glob": "^3.3.3", @@ -29723,6 +26130,7 @@ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -29733,6 +26141,7 @@ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -29746,6 +26155,7 @@ "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20" }, @@ -29759,6 +26169,7 @@ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": ">=14" }, @@ -29772,6 +26183,7 @@ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=14.16" }, @@ -29785,6 +26197,7 @@ "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" @@ -29802,6 +26215,7 @@ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^6.2.2" }, @@ -29818,6 +26232,7 @@ "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "signal-exit": "^4.0.1" }, @@ -29865,6 +26280,7 @@ "integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^5.0.1", "supports-color": "^10.2.2" @@ -29882,6 +26298,7 @@ "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -29895,6 +26312,7 @@ "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -29958,7 +26376,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/symbol-tree": { "version": "3.2.4", @@ -29972,6 +26391,7 @@ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" @@ -29989,6 +26409,7 @@ "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -30006,6 +26427,7 @@ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -30022,7 +26444,8 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/tapable": { "version": "2.3.2", @@ -30030,6 +26453,7 @@ "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" }, @@ -30240,7 +26664,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -30621,7 +27044,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -30720,6 +27142,7 @@ "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20" }, @@ -31055,7 +27478,6 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -31951,23 +28373,23 @@ "version": "0.37.0", "license": "Apache-2.0", "dependencies": { - "@deephaven/chart": "^1.17.0", - "@deephaven/components": "^1.17.0", - "@deephaven/console": "^1.17.0", - "@deephaven/dashboard": "^1.17.1", - "@deephaven/dashboard-core-plugins": "^1.18.0", - "@deephaven/golden-layout": "^1.17.1", - "@deephaven/grid": "^1.18.0", + "@deephaven/chart": "^1.21.1", + "@deephaven/components": "^1.21.1", + "@deephaven/console": "^1.21.1", + "@deephaven/dashboard": "^1.21.1", + "@deephaven/dashboard-core-plugins": "^1.21.1", + "@deephaven/golden-layout": "^1.21.1", + "@deephaven/grid": "^1.18.2", "@deephaven/icons": "^1.2.0", - "@deephaven/iris-grid": "^1.18.0", - "@deephaven/jsapi-bootstrap": "^1.17.0", - "@deephaven/jsapi-components": "^1.17.0", + "@deephaven/iris-grid": "^1.21.1", + "@deephaven/jsapi-bootstrap": "^1.21.1", + "@deephaven/jsapi-components": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.39.6", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/plugin": "^1.18.0", - "@deephaven/react-hooks": "^1.14.0", - "@deephaven/redux": "^1.17.0", + "@deephaven/plugin": "^1.21.1", + "@deephaven/react-hooks": "^1.21.1", + "@deephaven/redux": "^1.19.0", "@deephaven/test-utils": "^1.8.0", "@deephaven/utils": "^1.10.0", "@fortawesome/react-fontawesome": "^0.2.0", diff --git a/plugins/ui/docs/components/combo_box.md b/plugins/ui/docs/components/combo_box.md index 65e4e9c20..7756027b3 100644 --- a/plugins/ui/docs/components/combo_box.md +++ b/plugins/ui/docs/components/combo_box.md @@ -36,14 +36,15 @@ my_combo_box_basic = ui_combo_box_basic() Recommendations for creating clear and effective combo boxes: 1. The combo box's text input simplifies searching through large lists. For lists with fewer than 6 items, use radio buttons. For lists with more than 6 items, assess if the list is complex enough to need searching and filtering, and if not, use a picker instead. -2. Every combo box should have a label specified. Without one, the combo box is ambiguous and not accessible. -3. Options in the combo box should be kept short and concise; multiple lines are strongly discouraged. If more than one line is needed, consider using a description to add context to the option. -4. Choose a `width` for your combo boxes that can accommodate most of the available options. -5. The field labels, menu items, and placeholder text should all be in sentence case. -6. Identify which combo boxes are required or optional, and use the `is_required` field or the `necessity_indicator` to mark them accordingly. -7. A combo box's help text should provide actionable guidance on what to select and how to select it, offering additional context without repeating the placeholder text. -8. When an error occurs, the help text specified in a combo box is replaced by error text; thus, ensure both help and error text convey the same essential information to maintain consistent messaging and prevent loss of critical details. -9. Write error messages in a clear, concise, and helpful manner, guiding users to resolve the issue without ambiguity; ideally, they should be 1-2 short, complete sentences. +2. For selecting multiple options, use a [multi-select](multi_select.md) instead. +3. Every combo box should have a label specified. Without one, the combo box is ambiguous and not accessible. +4. Options in the combo box should be kept short and concise; multiple lines are strongly discouraged. If more than one line is needed, consider using a description to add context to the option. +5. Choose a `width` for your combo boxes that can accommodate most of the available options. +6. The field labels, menu items, and placeholder text should all be in sentence case. +7. Identify which combo boxes are required or optional, and use the `is_required` field or the `necessity_indicator` to mark them accordingly. +8. A combo box's help text should provide actionable guidance on what to select and how to select it, offering additional context without repeating the placeholder text. +9. When an error occurs, the help text specified in a combo box is replaced by error text; thus, ensure both help and error text convey the same essential information to maintain consistent messaging and prevent loss of critical details. +10. Write error messages in a clear, concise, and helpful manner, guiding users to resolve the issue without ambiguity; ideally, they should be 1-2 short, complete sentences. ## Data sources @@ -767,7 +768,7 @@ my_combo_box_alignment_direction_examples = ui_combo_box_alignment_direction_exa ## How to create a multi-select component -By leveraging the `on_change` handler of `ui.combo_box` to dynamically generate items, you can pair it with `ui.tag_group` to build a multi-select component. +It is recommended to use [`multi_select`](multi_select.md) for `multi-select` use cases, but if you want the `combo_box` separate from the tags, you can also use a `tag_group` to show selected items, and use the `on_input_change` and `on_change` events to manage the state between them. ```python from deephaven import ui diff --git a/plugins/ui/docs/components/multi_select.md b/plugins/ui/docs/components/multi_select.md new file mode 100644 index 000000000..479736fb9 --- /dev/null +++ b/plugins/ui/docs/components/multi_select.md @@ -0,0 +1,759 @@ +# Multi Select + +Multi select displays selected items as tags inside the input area and presents a filterable dropdown list for multi-selection. + +## Example + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_basic(): + selected, set_selected = ui.use_state([]) + + return ui.multi_select( + ui.item("red panda"), + ui.item("cat"), + ui.item("dog"), + ui.item("aardvark"), + ui.item("kangaroo"), + ui.item("snake"), + ui.item("ant"), + label="Favorite Animals", + selected_keys=selected, + on_change=set_selected, + ) + + +my_multi_select_basic = ui_multi_select_basic() +``` + +## UI Recommendations + +Recommendations for creating clear and effective multi selects: + +1. The multi select's text input simplifies searching through large lists. For lists with fewer than 6 items, use a checkbox group. +2. For selecting only one option, use a [`combo_box`](combo_box.md) instead. +3. Every multi select should have a label specified. Without one, the multi select is ambiguous and not accessible. +4. Options in the multi select should be kept short and concise; multiple lines are strongly discouraged. If more than one line is needed, consider using a description to add context to the option. +5. Choose a `width` for your multi selects that can accommodate most of the available options. +6. The field labels, menu items, and placeholder text should all be in sentence case. +7. Identify which multi selects are required or optional, and use the `is_required` field or the `necessity_indicator` to mark them accordingly. +8. A multi select's help text should provide actionable guidance on what to select and how to select it, offering additional context without repeating the placeholder text. +9. When an error occurs, the help text specified in a multi select is replaced by error text; thus, ensure both help and error text convey the same essential information to maintain consistent messaging and prevent loss of critical details. +10. Write error messages in a clear, concise, and helpful manner, guiding users to resolve the issue without ambiguity; ideally, they should be 1-2 short, complete sentences. + +## Data sources + +For multi selects, we can use a Deephaven table or [URI](uri.md) as a data source to populate the options. When using a table, the first column automatically is used as both the key and the label. If there are any duplicate keys, an error will be thrown; to avoid this, a `select_distinct` can be used on the table prior to using it as a multi select data source. + +```python order=my_multi_select_table_source_example,countries +from deephaven import ui +from deephaven.plot import express as dx + + +countries = dx.data.gapminder().select_distinct("Country") + + +my_multi_select_table_source_example = ui.multi_select(countries, label="Sample Multi Select") +``` + +## Item table sources + +If you wish to manually specify the keys and labels, use a `ui.item_table_source` to dynamically derive the options from a table. + +```python order=my_multi_select_item_table_source_example,column_types +from deephaven import ui, empty_table + +account_icon = "vsAccount" +columns = [ + "Key=new Integer(i)", + "Label=new String(`Display `+i)", + "Icon=(String) account_icon", +] +column_types = empty_table(20).update(columns) + + +item_table_source = ui.item_table_source( + column_types, + key_column="Key", + label_column="Label", + icon_column="Icon", +) + + +my_multi_select_item_table_source_example = ui.multi_select( + item_table_source, label="User Multi Select" +) +``` + +## Custom Value + +By default, when a multi select loses focus, it resets its input value. To allow users to enter custom values as tags, use the `allows_custom_value` prop. Pressing **Enter** when no item is focused adds the typed text as a custom tag. If the typed text matches an existing item's label, that item's key is used instead. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_custom_value_example(): + selected, set_selected = ui.use_state([]) + return ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + allows_custom_value=True, + selected_keys=selected, + on_change=set_selected, + label="Select or type options", + ) + + +my_multi_select_custom_value_example = ui_multi_select_custom_value_example() +``` + +## HTML Forms + +Multi selects can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. The `form_value` prop determines whether comma-joined keys or labels of the selected items are submitted via the hidden form input. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_form_example(): + return ui.form( + ui.multi_select( + ui.item("Chocolate"), + ui.item("Mint"), + ui.item("Vanilla"), + ui.item("Strawberry"), + ui.item("Cookies and Cream"), + ui.item("Coffee"), + ui.item("Mango"), + label="Ice cream flavors", + name="flavors", + ), + ui.button("Submit", type="submit"), + on_submit=lambda event: print(event), + ) + + +my_multi_select_form_example = ui_multi_select_form_example() +``` + +## Labeling + +Use the `label` prop to label a multi select. If no label is provided, you must use an `aria_label` to identify the control for accessibility purposes. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_label_examples(): + return [ + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + label="Pick options", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + aria_label="Pick options", + ), + ] + + +my_multi_select_label_examples = ui_multi_select_label_examples() +``` + +Use the `is_required` prop and the `necessity_indicator` props to show whether selecting an option in the multi-select is required or optional. + +When the `necessity_indicator` prop is set to "label", a localized string for "(required)" or "(optional)" will automatically be generated. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_required_examples(): + return [ + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + label="Pick options", + is_required=True, + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + label="Pick options", + is_required=True, + necessity_indicator="label", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Pick options", + necessity_indicator="label", + ), + ] + + +my_multi_select_required_examples = ui_multi_select_required_examples() +``` + +## Selection + +Use `selected_keys` or `default_selected_keys` to set the selected options. + +`default_selected_keys` is useful for simpler scenarios where you don't need to control the state externally. Use `selected_keys`for scenarios where the state should be managed by the parent component, providing control and flexibility over the selection of the multi select. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_selected_keys_examples(): + options, set_options = ui.use_state(["Option 1", "Option 3"]) + return [ + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + default_selected_keys=["Option 2", "Option 4"], + label="Pick options (uncontrolled)", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + selected_keys=options, + on_change=set_options, + label="Pick options (controlled)", + ), + ] + + +my_multi_select_selected_keys_examples = ui_multi_select_selected_keys_examples() +``` + +## Sections + +Multi selects support sections to group options. Sections can be used by wrapping groups of items in a `section` element. Each Section takes a title and key prop. + +Note that, when searching for options, searching by section will not result in the respective options within that section appearing. + +> [!CAUTION] +> Sections can only be used directly, not from a table data source. + +```python +from deephaven import ui + + +my_multi_select_section_example = ui.multi_select( + ui.section( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + title="Section 1", + ), + ui.section( + ui.item("Option 9"), + ui.item("Option 10"), + ui.item("Option 11"), + ui.item("Option 12"), + ui.item("Option 13"), + ui.item("Option 14"), + ui.item("Option 15"), + ui.item("Option 16"), + title="Section 2", + ), + label="Pick options", +) +``` + +## Events + +Multi selects support selection via mouse, keyboard, and touch. You can handle all these via the `on_change` prop. Additionally, multi selects accept an `on_input_change` prop, which is triggered whenever the search value is edited by the user, whether through typing or option selection. + +Each interaction within the multi select will trigger its associated event handler. For instance, typing in the input field triggers the `on_input_change`, not the `on_change`. + +> [!NOTE] +> This is not the case for selections: when a selection is made, both the `on_change` and `on_input_change` are triggered. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_events_example(): + input_value, set_input_value = ui.use_state("") + selection_state, set_selection_state = ui.use_state([]) + + def handle_input_change(new_value): + set_input_value(new_value) + print(f"Text changed to {new_value}") + + def handle_selection_change(new_value): + set_selection_state(new_value) + print(f"Selection changed to {new_value}") + + return ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + input_value=input_value, + on_input_change=handle_input_change, + selected_keys=selection_state, + on_change=handle_selection_change, + label="Pick options", + ) + + +my_multi_select_events_example = ui_multi_select_events_example() +``` + +## Complex items + +Items within a multi select can include additional content to better convey options. You can add icons, avatars, and descriptions to the children of an `ui.item`. When adding a description, set the `slot` prop to "description" to differentiate between the text elements. + +```python +from deephaven import ui + + +my_multi_select_complex_items_example = ui.multi_select( + ui.item( + ui.icon("vsGithubAlt"), + ui.text("Github"), + ui.text("Github Option", slot="description"), + text_value="Github", + ), + ui.item( + ui.icon("vsAzureDevops"), + ui.text("Azure"), + ui.text("Azure Option", slot="description"), + text_value="Azure", + ), + label="Pick services", +) +``` + +## Validation + +The `is_required` prop ensures that the user selects an option. The related `validation_behaviour` prop allows the user to specify aria or native verification. + +When the prop is set to "native", validation errors block form submission and are displayed automatically as help text. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_validation_behaviour_example(): + return ui.form( + ui.multi_select( + ui.section(ui.item("Option 1"), ui.item("Option 2"), title="Section 1"), + validation_behavior="aria", + is_required=True, + label="Pick options", + ) + ) + + +my_multi_select_validation_behaviour_example = ( + ui_multi_select_validation_behaviour_example() +) +``` + +## Trigger Options + +By default, the multi select's menu opens when the user types into the input field (`"input"`). This behavior can be changed to open on focus (`"focus"`) or only when the field button is clicked (`"manual"`) using the `menu_trigger` prop. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_trigger_option_examples(): + return [ + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Select Options", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Select Options", + menu_trigger="focus", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Select Options", + menu_trigger="manual", + ), + ] + + +my_multi_select_trigger_option_examples = ui_multi_select_trigger_option_examples() +``` + +## Label position + +By default, the label is positioned above the multi select, but it can be moved to the side using the `label_position` prop. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_label_position_examples(): + return [ + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Test Label", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Test Label", + label_position="side", + ), + ] + + +my_multi_select_label_position_examples = ui_multi_select_label_position_examples() +``` + +## Quiet State + +The `is_quiet` prop makes a multi select "quiet". This can be useful when the multi select and its corresponding styling should not distract users from surrounding content. + +```python +from deephaven import ui + + +my_multi_select_is_quiet_example = ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + is_quiet=True, + label="Pick options", +) +``` + +## Disabled State + +The `is_disabled` prop disables a multi select to prevent user interaction. This is useful when the multi select should be visible but unavailable for selection. + +```python +from deephaven import ui + + +my_multi_select_is_disabled_example = ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + is_disabled=True, + label="Pick options", +) +``` + +## Read-only State + +The `is_read_only` prop prevents user input in a multi select, but the selected options should be visible. + +```python +from deephaven import ui + + +my_multi_select_is_read_only_example = ui.multi_select( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + default_selected_keys=["Option 1", "Option 3"], + is_read_only=True, + label="Pick options", +) +``` + +## Help text + +A multi select can have both a `description` and an `error_message`. The description remains visible at all times. Use the error message to offer specific guidance on how to correct the input. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_help_text_examples(): + return [ + ui.multi_select( + ui.section( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + title="Section 1", + ), + label="Sample Label", + description="Select one or more options.", + ), + ui.multi_select( + ui.section( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + title="Section 1", + ), + label="Sample Label", + validation_state="invalid", + error_message="Sample invalid error message.", + ), + ] + + +my_multi_select_help_text_examples = ui_multi_select_help_text_examples() +``` + +## Contextual Help + +Using the `contextual_help` prop, a `ui.contextual_help` can be placed next to the label to provide additional information about the multi select. + +```python +from deephaven import ui + + +my_multi_select_contextual_help_example = ui.multi_select( + ui.section( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + title="Section 1", + ), + label="Sample Label", + contextual_help=ui.contextual_help( + ui.heading("Content tips"), ui.content("Tips for the content.") + ), +) +``` + +## Custom width + +The `width` prop adjusts the width of a multi select, and the `max_width` prop enforces a maximum width. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_width_examples(): + return [ + ui.multi_select( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + width="size-3600", + ), + ui.multi_select( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + width="size-3600", + max_width="100%", + ), + ] + + +my_multi_select_width_examples = ui_multi_select_width_examples() +``` + +## Align and Direction + +The `align` prop sets the text alignment of the options in the multi select, while the `direction` prop specifies which direction the menu will open. + +```python +from deephaven import ui + + +@ui.component +def ui_multi_select_alignment_direction_examples(): + return ui.view( + ui.flex( + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + align="end", + menu_width="size-3000", + ), + ui.multi_select( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + direction="top", + ), + gap="size-150", + direction="column", + ), + padding=40, + ) + + +my_multi_select_alignment_direction_examples = ( + ui_multi_select_alignment_direction_examples() +) +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.multi_select +``` diff --git a/plugins/ui/docs/sidebar.json b/plugins/ui/docs/sidebar.json index 41a688a24..2d7c4e19a 100644 --- a/plugins/ui/docs/sidebar.json +++ b/plugins/ui/docs/sidebar.json @@ -326,6 +326,10 @@ "label": "meter", "path": "components/meter.md" }, + { + "label": "multi_select", + "path": "components/multi_select.md" + }, { "label": "number_field", "path": "components/number_field.md" @@ -359,7 +363,7 @@ "path": "components/range_slider.md" }, { - "label": "route", + "label": "router", "path": "components/router.md" }, { diff --git a/plugins/ui/docs/snapshots/0761e766ac976e28061e143e034b23bf.json b/plugins/ui/docs/snapshots/0761e766ac976e28061e143e034b23bf.json index 62b851727..ef787579e 100644 --- a/plugins/ui/docs/snapshots/0761e766ac976e28061e143e034b23bf.json +++ b/plugins/ui/docs/snapshots/0761e766ac976e28061e143e034b23bf.json @@ -1 +1 @@ -{"file":"components/combo_box.md","objects":{"my_combo_box_selected_key_examples":{"type":"deephaven.ui.Element","data":{"document":{"props":{"children":[{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","defaultSelectedKey":"Option 2","validationBehavior":"aria","label":"Pick an option (uncontrolled)","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","selectedKey":"Option 1","validationBehavior":"aria","label":"Pick an option (controlled)","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]},"__dhElemName":"__main__.ui_combo_box_selected_key_examples"},"state":"{\"state\": {\"0\": \"Option 1\"}}"}}}} \ No newline at end of file +{"file":"components/combo_box.md","objects":{"my_combo_box_selected_key_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_combo_box_selected_key_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","defaultSelectedKey":"Option 2","validationBehavior":"aria","label":"Pick an option (uncontrolled)","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","selectedKey":"Option 1","validationBehavior":"aria","label":"Pick an option (controlled)","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]}},"state":"{\"state\": {\"0\": \"Option 1\"}}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/16d416b14e0b60ca58840768ebb3377f.json b/plugins/ui/docs/snapshots/16d416b14e0b60ca58840768ebb3377f.json new file mode 100644 index 000000000..8b043ad0e --- /dev/null +++ b/plugins/ui/docs/snapshots/16d416b14e0b60ca58840768ebb3377f.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_contextual_help_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Sample Label","labelPosition":"top","contextualHelp":{"__dhElemName":"deephaven.ui.components.ContextualHelp","props":{"heading":{"__dhElemName":"deephaven.ui.components.Heading","props":{"children":["Content tips"],"level":3}},"content":{"__dhElemName":"deephaven.ui.components.Content","props":{"children":["Tips for the content."]}},"variant":"help","placement":"bottom start"}},"children":{"__dhElemName":"deephaven.ui.components.Section","props":{"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/2de457dcb8fd02dae37ae4d35d28a023.json b/plugins/ui/docs/snapshots/2de457dcb8fd02dae37ae4d35d28a023.json new file mode 100644 index 000000000..0395334b8 --- /dev/null +++ b/plugins/ui/docs/snapshots/2de457dcb8fd02dae37ae4d35d28a023.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"column_types":{"type":"Table","data":{"columns":[{"name":"Key","type":"int"},{"name":"Label","type":"java.lang.String"},{"name":"Icon","type":"java.lang.String"}],"rows":[[{"value":"0"},{"value":"Display 0"},{"value":"vsAccount"}],[{"value":"1"},{"value":"Display 1"},{"value":"vsAccount"}],[{"value":"2"},{"value":"Display 2"},{"value":"vsAccount"}],[{"value":"3"},{"value":"Display 3"},{"value":"vsAccount"}],[{"value":"4"},{"value":"Display 4"},{"value":"vsAccount"}],[{"value":"5"},{"value":"Display 5"},{"value":"vsAccount"}],[{"value":"6"},{"value":"Display 6"},{"value":"vsAccount"}],[{"value":"7"},{"value":"Display 7"},{"value":"vsAccount"}],[{"value":"8"},{"value":"Display 8"},{"value":"vsAccount"}],[{"value":"9"},{"value":"Display 9"},{"value":"vsAccount"}],[{"value":"10"},{"value":"Display 10"},{"value":"vsAccount"}],[{"value":"11"},{"value":"Display 11"},{"value":"vsAccount"}],[{"value":"12"},{"value":"Display 12"},{"value":"vsAccount"}],[{"value":"13"},{"value":"Display 13"},{"value":"vsAccount"}],[{"value":"14"},{"value":"Display 14"},{"value":"vsAccount"}],[{"value":"15"},{"value":"Display 15"},{"value":"vsAccount"}],[{"value":"16"},{"value":"Display 16"},{"value":"vsAccount"}],[{"value":"17"},{"value":"Display 17"},{"value":"vsAccount"}],[{"value":"18"},{"value":"Display 18"},{"value":"vsAccount"}],[{"value":"19"},{"value":"Display 19"},{"value":"vsAccount"}]]}},"my_multi_select_item_table_source_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"User Multi Select","labelPosition":"top","labelColumn":"Label","iconColumn":"Icon","keyColumn":"Key","children":{"__dhObid":0}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/388471963fdcbabcc15e590d509e0263.json b/plugins/ui/docs/snapshots/388471963fdcbabcc15e590d509e0263.json new file mode 100644 index 000000000..2d952a883 --- /dev/null +++ b/plugins/ui/docs/snapshots/388471963fdcbabcc15e590d509e0263.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_complex_items_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Pick services","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"textValue":"Github","children":[{"__dhElemName":"deephaven.ui.icons.vsGithubAlt","props":{"name":"vsGithubAlt","slot":"icon"}},{"__dhElemName":"deephaven.ui.components.Text","props":{"children":["Github"],"slot":"text"}},{"__dhElemName":"deephaven.ui.components.Text","props":{"children":["Github Option"],"slot":"description"}}]}},{"__dhElemName":"deephaven.ui.components.Item","props":{"textValue":"Azure","children":[{"__dhElemName":"deephaven.ui.icons.vsAzureDevops","props":{"name":"vsAzureDevops","slot":"icon"}},{"__dhElemName":"deephaven.ui.components.Text","props":{"children":["Azure"],"slot":"text"}},{"__dhElemName":"deephaven.ui.components.Text","props":{"children":["Azure Option"],"slot":"description"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/3e1db3f10151d0f7fddf9f4259d62447.json b/plugins/ui/docs/snapshots/3e1db3f10151d0f7fddf9f4259d62447.json new file mode 100644 index 000000000..f7a7998ec --- /dev/null +++ b/plugins/ui/docs/snapshots/3e1db3f10151d0f7fddf9f4259d62447.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_selected_keys_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_selected_keys_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","defaultSelectedKeys":["Option 2","Option 4"],"validationBehavior":"aria","label":"Pick options (uncontrolled)","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","selectedKeys":["Option 1","Option 3"],"validationBehavior":"aria","label":"Pick options (controlled)","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/415bf47be017adfd4bc2f5c6cba8a5fe.json b/plugins/ui/docs/snapshots/415bf47be017adfd4bc2f5c6cba8a5fe.json new file mode 100644 index 000000000..e8d1af4ca --- /dev/null +++ b/plugins/ui/docs/snapshots/415bf47be017adfd4bc2f5c6cba8a5fe.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_is_disabled_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","isDisabled":true,"validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/41b900591efc757b23440b1380150047.json b/plugins/ui/docs/snapshots/41b900591efc757b23440b1380150047.json new file mode 100644 index 000000000..4bd0a5d1a --- /dev/null +++ b/plugins/ui/docs/snapshots/41b900591efc757b23440b1380150047.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_label_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_label_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","labelPosition":"top","aria-label":"Pick options","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/4d5923035666817d4436260b412c39bf.json b/plugins/ui/docs/snapshots/4d5923035666817d4436260b412c39bf.json new file mode 100644 index 000000000..b09d3cd00 --- /dev/null +++ b/plugins/ui/docs/snapshots/4d5923035666817d4436260b412c39bf.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_label_position_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_label_position_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Test Label","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Test Label","labelPosition":"side","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/52d601a9bcb4a2a8f8be03c3992b8d63.json b/plugins/ui/docs/snapshots/52d601a9bcb4a2a8f8be03c3992b8d63.json new file mode 100644 index 000000000..df416ae26 --- /dev/null +++ b/plugins/ui/docs/snapshots/52d601a9bcb4a2a8f8be03c3992b8d63.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_alignment_direction_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_alignment_direction_examples","props":{"children":{"__dhElemName":"deephaven.ui.components.View","props":{"children":[{"__dhElemName":"deephaven.ui.components.Flex","props":{"direction":"column","gap":"size-150","flex":"auto","children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"menuWidth":"size-3000","formValue":"text","validationBehavior":"aria","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"top","shouldFlip":true,"formValue":"text","validationBehavior":"aria","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}}]}}],"padding":40}}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/560d89953fdb8d1b95ca2898778b9519.json b/plugins/ui/docs/snapshots/560d89953fdb8d1b95ca2898778b9519.json new file mode 100644 index 000000000..06e22fe45 --- /dev/null +++ b/plugins/ui/docs/snapshots/560d89953fdb8d1b95ca2898778b9519.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_help_text_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_help_text_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Sample Label","description":"Select one or more options.","labelPosition":"top","children":{"__dhElemName":"deephaven.ui.components.Section","props":{"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]}}}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Sample Label","errorMessage":"Sample invalid error message.","validationState":"invalid","labelPosition":"top","children":{"__dhElemName":"deephaven.ui.components.Section","props":{"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]}}}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/5d3ed3fecda2d0bd4ae4d8825d6fbea9.json b/plugins/ui/docs/snapshots/5d3ed3fecda2d0bd4ae4d8825d6fbea9.json new file mode 100644 index 000000000..abf8a23dc --- /dev/null +++ b/plugins/ui/docs/snapshots/5d3ed3fecda2d0bd4ae4d8825d6fbea9.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_width_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_width_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","labelPosition":"top","width":"size-3600","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","labelPosition":"top","width":"size-3600","maxWidth":"100%","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/607ba14453021687f50ec3ebd1fd4c77.json b/plugins/ui/docs/snapshots/607ba14453021687f50ec3ebd1fd4c77.json new file mode 100644 index 000000000..fd56b06ce --- /dev/null +++ b/plugins/ui/docs/snapshots/607ba14453021687f50ec3ebd1fd4c77.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"countries":{"type":"Table","data":{"columns":[{"name":"Country","type":"java.lang.String"}],"rows":[[{"value":"Afghanistan"}],[{"value":"Albania"}],[{"value":"Algeria"}],[{"value":"Angola"}],[{"value":"Argentina"}],[{"value":"Australia"}],[{"value":"Austria"}],[{"value":"Bahrain"}],[{"value":"Bangladesh"}],[{"value":"Belgium"}],[{"value":"Benin"}],[{"value":"Bolivia"}],[{"value":"Bosnia and Herzegovina"}],[{"value":"Botswana"}],[{"value":"Brazil"}],[{"value":"Bulgaria"}],[{"value":"Burkina Faso"}],[{"value":"Burundi"}],[{"value":"Cambodia"}],[{"value":"Cameroon"}],[{"value":"Canada"}],[{"value":"Central African Republic"}],[{"value":"Chad"}],[{"value":"Chile"}],[{"value":"China"}],[{"value":"Colombia"}],[{"value":"Comoros"}],[{"value":"Congo, Dem. Rep."}],[{"value":"Congo, Rep."}],[{"value":"Costa Rica"}],[{"value":"Cote d'Ivoire"}],[{"value":"Croatia"}],[{"value":"Cuba"}],[{"value":"Czech Republic"}],[{"value":"Denmark"}],[{"value":"Djibouti"}],[{"value":"Dominican Republic"}],[{"value":"Ecuador"}],[{"value":"Egypt"}],[{"value":"El Salvador"}],[{"value":"Equatorial Guinea"}],[{"value":"Eritrea"}],[{"value":"Ethiopia"}],[{"value":"Finland"}],[{"value":"France"}],[{"value":"Gabon"}],[{"value":"Gambia"}],[{"value":"Germany"}],[{"value":"Ghana"}],[{"value":"Greece"}],[{"value":"Guatemala"}],[{"value":"Guinea"}],[{"value":"Guinea-Bissau"}],[{"value":"Haiti"}],[{"value":"Honduras"}],[{"value":"Hong Kong, China"}],[{"value":"Hungary"}],[{"value":"Iceland"}],[{"value":"India"}],[{"value":"Indonesia"}],[{"value":"Iran"}],[{"value":"Iraq"}],[{"value":"Ireland"}],[{"value":"Israel"}],[{"value":"Italy"}],[{"value":"Jamaica"}],[{"value":"Japan"}],[{"value":"Jordan"}],[{"value":"Kenya"}],[{"value":"Korea, Dem. Rep."}],[{"value":"Korea, Rep."}],[{"value":"Kuwait"}],[{"value":"Lebanon"}],[{"value":"Lesotho"}],[{"value":"Liberia"}],[{"value":"Libya"}],[{"value":"Madagascar"}],[{"value":"Malawi"}],[{"value":"Malaysia"}],[{"value":"Mali"}],[{"value":"Mauritania"}],[{"value":"Mauritius"}],[{"value":"Mexico"}],[{"value":"Mongolia"}],[{"value":"Montenegro"}],[{"value":"Morocco"}],[{"value":"Mozambique"}],[{"value":"Myanmar"}],[{"value":"Namibia"}],[{"value":"Nepal"}],[{"value":"Netherlands"}],[{"value":"New Zealand"}],[{"value":"Nicaragua"}],[{"value":"Niger"}],[{"value":"Nigeria"}],[{"value":"Norway"}],[{"value":"Oman"}],[{"value":"Pakistan"}],[{"value":"Panama"}],[{"value":"Paraguay"}]]}},"my_multi_select_table_source_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Sample Multi Select","labelPosition":"top","children":{"__dhObid":0}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/6b92d2a00b4d446f687c171939f4549c.json b/plugins/ui/docs/snapshots/6b92d2a00b4d446f687c171939f4549c.json new file mode 100644 index 000000000..ebc28d478 --- /dev/null +++ b/plugins/ui/docs/snapshots/6b92d2a00b4d446f687c171939f4549c.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_section_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Section","props":{"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}},{"__dhElemName":"deephaven.ui.components.Section","props":{"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 10"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 11"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 12"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 13"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 14"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 15"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 16"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/6d5a83c0b867d4737036ba0c7df3d06a.json b/plugins/ui/docs/snapshots/6d5a83c0b867d4737036ba0c7df3d06a.json new file mode 100644 index 000000000..462654c41 --- /dev/null +++ b/plugins/ui/docs/snapshots/6d5a83c0b867d4737036ba0c7df3d06a.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_validation_behaviour_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_validation_behaviour_example","props":{"children":{"__dhElemName":"deephaven.ui.components.Form","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","isRequired":true,"validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":{"__dhElemName":"deephaven.ui.components.Section","props":{"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}}]}}}}],"validationBehavior":"aria","labelPosition":"top"}}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/8c0650bf02ecad7705b427d2ba3dcae9.json b/plugins/ui/docs/snapshots/8c0650bf02ecad7705b427d2ba3dcae9.json new file mode 100644 index 000000000..83a6df562 --- /dev/null +++ b/plugins/ui/docs/snapshots/8c0650bf02ecad7705b427d2ba3dcae9.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_events_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_events_example","props":{"children":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","inputValue":"","selectedKeys":[],"validationBehavior":"aria","label":"Pick options","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"onInputChange":{"__dhCbid":"cb1"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}}},"state":"{\"state\": {\"0\": \"\"}}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/8f831cd9142e5f4d10792383db92ffb8.json b/plugins/ui/docs/snapshots/8f831cd9142e5f4d10792383db92ffb8.json new file mode 100644 index 000000000..fec855f76 --- /dev/null +++ b/plugins/ui/docs/snapshots/8f831cd9142e5f4d10792383db92ffb8.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_is_read_only_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","defaultSelectedKeys":["Option 1","Option 3"],"isReadOnly":true,"validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/94ab46014a1ec4241a826e7b08b163ef.json b/plugins/ui/docs/snapshots/94ab46014a1ec4241a826e7b08b163ef.json index cc1802ac2..243247a7b 100644 --- a/plugins/ui/docs/snapshots/94ab46014a1ec4241a826e7b08b163ef.json +++ b/plugins/ui/docs/snapshots/94ab46014a1ec4241a826e7b08b163ef.json @@ -1 +1 @@ -{"file":"components/combo_box.md","objects":{"my_combo_box_is_read_only_example":{"type":"deephaven.ui.Element","data":{"document":{"props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","defaultSelectedKey":"Option 1","isReadOnly":true,"validationBehavior":"aria","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]},"__dhElemName":"deephaven.ui.components.ComboBox"},"state":"{}"}}}} \ No newline at end of file +{"file":"components/combo_box.md","objects":{"my_combo_box_is_read_only_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","defaultSelectedKey":"Option 1","isReadOnly":true,"validationBehavior":"aria","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 1","children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 2","children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 3","children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 4","children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 5","children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 6","children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 7","children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"key":"Option 8","children":"Option 8"}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/9bf473151e912a23a38ae067fbcd5d60.json b/plugins/ui/docs/snapshots/9bf473151e912a23a38ae067fbcd5d60.json new file mode 100644 index 000000000..88b320ef3 --- /dev/null +++ b/plugins/ui/docs/snapshots/9bf473151e912a23a38ae067fbcd5d60.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_basic":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_basic","props":{"children":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","selectedKeys":[],"validationBehavior":"aria","label":"Favorite Animals","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"red panda"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"cat"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"dog"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"aardvark"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"kangaroo"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"snake"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"ant"}}]}}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/b895d93116f94b87b7b2d8a4ced584ef.json b/plugins/ui/docs/snapshots/b895d93116f94b87b7b2d8a4ced584ef.json new file mode 100644 index 000000000..2c47abe8c --- /dev/null +++ b/plugins/ui/docs/snapshots/b895d93116f94b87b7b2d8a4ced584ef.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_required_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_required_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","isRequired":true,"validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","isRequired":true,"validationBehavior":"aria","label":"Pick options","labelPosition":"top","necessityIndicator":"label","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Pick options","labelPosition":"top","necessityIndicator":"label","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/ba962573b1353e4b0230301ecf71f981.json b/plugins/ui/docs/snapshots/ba962573b1353e4b0230301ecf71f981.json new file mode 100644 index 000000000..662385143 --- /dev/null +++ b/plugins/ui/docs/snapshots/ba962573b1353e4b0230301ecf71f981.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_custom_value_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_custom_value_example","props":{"children":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","allowsCustomValue":true,"selectedKeys":[],"validationBehavior":"aria","label":"Select or type options","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}}]}}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/d90e47400a6a9800a0dcf18d62cfa277.json b/plugins/ui/docs/snapshots/d90e47400a6a9800a0dcf18d62cfa277.json new file mode 100644 index 000000000..cb3f90984 --- /dev/null +++ b/plugins/ui/docs/snapshots/d90e47400a6a9800a0dcf18d62cfa277.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_form_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_form_example","props":{"children":{"__dhElemName":"deephaven.ui.components.Form","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Ice cream flavors","name":"flavors","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Chocolate"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Mint"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Vanilla"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Strawberry"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Cookies and Cream"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Coffee"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Mango"}}]}},{"__dhElemName":"deephaven.ui.components.Button","props":{"variant":"accent","style":"fill","type":"submit","children":"Submit"}}],"validationBehavior":"aria","labelPosition":"top","onSubmit":{"__dhCbid":"cb0"}}}}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/f1891462b585b31dabf2e7d96395c968.json b/plugins/ui/docs/snapshots/f1891462b585b31dabf2e7d96395c968.json index 861e7edad..b9d3df24e 100644 --- a/plugins/ui/docs/snapshots/f1891462b585b31dabf2e7d96395c968.json +++ b/plugins/ui/docs/snapshots/f1891462b585b31dabf2e7d96395c968.json @@ -1 +1 @@ -{"file":"components/combo_box.md","objects":{"my_combo_box_control_example":{"type":"deephaven.ui.Element","data":{"document":{"props":{"children":[{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","inputValue":"","selectedKey":"","validationBehavior":"aria","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"onInputChange":{"__dhCbid":"cb1"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]},"__dhElemName":"__main__.ui_combo_box_control_example"},"state":"{\"state\": {\"0\": \"\", \"1\": \"\"}}"}}}} \ No newline at end of file +{"file":"components/combo_box.md","objects":{"my_combo_box_control_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_combo_box_control_example","props":{"children":[{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","inputValue":"","selectedKey":"","validationBehavior":"aria","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"onInputChange":{"__dhCbid":"cb1"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]}},"state":"{\"state\": {\"0\": \"\", \"1\": \"\"}}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/f51c43058b3f9e3badc91be0005f516b.json b/plugins/ui/docs/snapshots/f51c43058b3f9e3badc91be0005f516b.json new file mode 100644 index 000000000..cb697b537 --- /dev/null +++ b/plugins/ui/docs/snapshots/f51c43058b3f9e3badc91be0005f516b.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_trigger_option_examples":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_multi_select_trigger_option_examples","props":{"children":[{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Select Options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"focus","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Select Options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"manual","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Select Options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/fa4c431cba8e02a50fb02b9cbf6dd6de.json b/plugins/ui/docs/snapshots/fa4c431cba8e02a50fb02b9cbf6dd6de.json index 626eb4f37..f640bfcb1 100644 --- a/plugins/ui/docs/snapshots/fa4c431cba8e02a50fb02b9cbf6dd6de.json +++ b/plugins/ui/docs/snapshots/fa4c431cba8e02a50fb02b9cbf6dd6de.json @@ -1 +1 @@ -{"file":"components/combo_box.md","objects":{"my_combo_box_basic":{"type":"deephaven.ui.Element","data":{"document":{"props":{"children":{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","selectedKey":"","validationBehavior":"aria","label":"Favorite Animal","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"red panda"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"cat"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"dog"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"aardvark"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"kangaroo"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"snake"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"ant"}}]}}},"__dhElemName":"__main__.ui_combo_box_basic"},"state":"{\"state\": {\"0\": \"\"}}"}}}} \ No newline at end of file +{"file":"components/combo_box.md","objects":{"my_combo_box_basic":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"__main__.ui_combo_box_basic","props":{"children":{"__dhElemName":"deephaven.ui.components.ComboBox","props":{"menuTrigger":"input","align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","selectedKey":"","validationBehavior":"aria","label":"Favorite Animal","labelPosition":"top","onChange":{"__dhCbid":"cb0"},"children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"red panda"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"cat"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"dog"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"aardvark"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"kangaroo"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"snake"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"ant"}}]}}}},"state":"{\"state\": {\"0\": \"\"}}"}}}} \ No newline at end of file diff --git a/plugins/ui/docs/snapshots/fe8c8adb28d909d50fb4fef51e2ab1c9.json b/plugins/ui/docs/snapshots/fe8c8adb28d909d50fb4fef51e2ab1c9.json new file mode 100644 index 000000000..af3e3b6bd --- /dev/null +++ b/plugins/ui/docs/snapshots/fe8c8adb28d909d50fb4fef51e2ab1c9.json @@ -0,0 +1 @@ +{"file":"components/multi_select.md","objects":{"my_multi_select_is_quiet_example":{"type":"deephaven.ui.Element","data":{"document":{"__dhElemName":"deephaven.ui.components.MultiSelect","props":{"menuTrigger":"input","isQuiet":true,"align":"end","direction":"bottom","shouldFlip":true,"formValue":"text","validationBehavior":"aria","label":"Pick options","labelPosition":"top","children":[{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 1"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 2"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 3"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 4"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 5"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 6"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 7"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 8"}},{"__dhElemName":"deephaven.ui.components.Item","props":{"children":"Option 9"}}]}},"state":"{}"}}}} \ No newline at end of file diff --git a/plugins/ui/src/deephaven/ui/components/__init__.py b/plugins/ui/src/deephaven/ui/components/__init__.py index 26f9eae1b..ed6a631a6 100644 --- a/plugins/ui/src/deephaven/ui/components/__init__.py +++ b/plugins/ui/src/deephaven/ui/components/__init__.py @@ -53,6 +53,7 @@ from .menu import menu from .menu_trigger import menu_trigger from .meter import meter +from .multi_select import multi_select from .number_field import number_field from .panel import panel from .picker import picker @@ -143,6 +144,7 @@ "menu", "menu_trigger", "meter", + "multi_select", "number_field", "panel", "picker", diff --git a/plugins/ui/src/deephaven/ui/components/multi_select.py b/plugins/ui/src/deephaven/ui/components/multi_select.py new file mode 100644 index 000000000..af494decc --- /dev/null +++ b/plugins/ui/src/deephaven/ui/components/multi_select.py @@ -0,0 +1,257 @@ +from __future__ import annotations + +from typing import Callable, Any, Sequence + +from .types import ( + FocusEventCallable, + KeyboardEventCallable, + LayoutFlex, + DimensionValue, + AlignSelf, + JustifySelf, + Position, + CSSProperties, + LabelPosition, + ValidationBehavior, + NecessityIndicator, + ValidationState, + MenuTriggerAction, + Align, + MenuDirection, + LoadingState, + FormValue, + Alignment, +) + +from deephaven.table import Table, PartitionedTable +from .section import SectionElement +from .item import Item +from .item_table_source import ItemTableSource +from ..elements import BaseElement, Element, NodeType +from .._internal.utils import create_props, unpack_item_table_source +from ..types import Key, Selection +from .basic import component_element + + +MultiSelectElement = BaseElement + +SUPPORTED_SOURCE_ARGS = { + "key_column", + "label_column", + "description_column", + "icon_column", + "title_column", +} + + +def multi_select( + *children: Item | SectionElement | Table | PartitionedTable | ItemTableSource, + menu_trigger: MenuTriggerAction | None = "input", + is_quiet: bool | None = None, + align: Align | None = "end", + direction: MenuDirection | None = "bottom", + loading_state: LoadingState | None = None, + should_flip: bool = True, + menu_width: DimensionValue | None = None, + form_value: FormValue | None = "text", + should_focus_wrap: bool | None = None, + input_value: str | None = None, + default_input_value: str | None = None, + allows_custom_value: bool | None = None, + disabled_keys: list[Key] | None = None, + selected_keys: Selection | None = None, + default_selected_keys: Selection | None = None, + is_disabled: bool | None = None, + is_read_only: bool | None = None, + is_required: bool | None = None, + validation_behavior: ValidationBehavior = "aria", + auto_focus: bool | None = None, + label: NodeType = None, + description: Element | None = None, + error_message: Element | None = None, + name: str | None = None, + validation_state: ValidationState | None = None, + label_position: LabelPosition = "top", + label_align: Alignment | None = None, + necessity_indicator: NecessityIndicator | None = None, + contextual_help: Element | None = None, + on_open_change: Callable[[bool, MenuTriggerAction], None] | None = None, + on_selection_change: Callable[[Selection], None] | None = None, + on_change: Callable[[Selection], None] | None = None, + on_input_change: Callable[[str], None] | None = None, + on_focus: Callable[[FocusEventCallable], None] | None = None, + on_blur: Callable[[FocusEventCallable], None] | None = None, + on_focus_change: Callable[[bool], None] | None = None, + on_key_down: Callable[[KeyboardEventCallable], None] | None = None, + on_key_up: Callable[[KeyboardEventCallable], None] | None = None, + flex: LayoutFlex | None = None, + flex_grow: float | None = None, + flex_shrink: float | None = None, + flex_basis: DimensionValue | None = None, + align_self: AlignSelf | None = None, + justify_self: JustifySelf | None = None, + order: int | None = None, + grid_area: str | None = None, + grid_row: str | None = None, + grid_row_start: str | None = None, + grid_row_end: str | None = None, + grid_column: str | None = None, + grid_column_start: str | None = None, + grid_column_end: str | None = None, + margin: DimensionValue | None = None, + margin_top: DimensionValue | None = None, + margin_bottom: DimensionValue | None = None, + margin_start: DimensionValue | None = None, + margin_end: DimensionValue | None = None, + margin_x: DimensionValue | None = None, + margin_y: DimensionValue | None = None, + width: DimensionValue | None = None, + height: DimensionValue | None = None, + min_width: DimensionValue | None = None, + min_height: DimensionValue | None = None, + max_width: DimensionValue | None = None, + max_height: DimensionValue | None = None, + position: Position | None = None, + top: DimensionValue | None = None, + bottom: DimensionValue | None = None, + start: DimensionValue | None = None, + end: DimensionValue | None = None, + left: DimensionValue | None = None, + right: DimensionValue | None = None, + z_index: int | None = None, + is_hidden: bool | None = None, + id: str | None = None, + aria_label: str | None = None, + aria_labelledby: str | None = None, + aria_describedby: str | None = None, + aria_details: str | None = None, + UNSAFE_class_name: str | None = None, + UNSAFE_style: CSSProperties | None = None, + key: str | None = None, +) -> MultiSelectElement: + """ + A multi-select component that displays selected items as tags inside the input area + and presents a filterable dropdown list for multi-selection. + + Children should be one of five types: + + 1. If children are of type `Item`, they are the dropdown options. + 2. If children are of type `SectionElement`, they are the dropdown sections. + 3. If children are of type `Table`, the values in the table are the dropdown options. + There can only be one child, the `Table`. + The first column is used as the key and label by default. + 4. If children are of type `PartitionedTable`, the values in the table are the dropdown options + and the partitions create multiple sections. There can only be one child, the `PartitionedTable`. + The first column is used as the key and label by default. + 5. If children are of type `ItemTableSource`, complex items are created from the source. + There can only be one child, the `ItemTableSource`. + Supported ItemTableSource arguments are `key_column`, `label_column`, `description_column`, + `icon_column`, and `title_column`. + + Args: + *children: The options to render within the multi-select. + menu_trigger: The interaction required to display the menu. + is_quiet: Whether the component should be displayed with a quiet style. + align: Alignment of the menu relative to the input target. + direction: Direction the menu will render relative to the component. + loading_state: The current loading state. + Determines whether or not the progress circle should be shown. + should_flip: Whether the menu should automatically flip direction when space is limited. + menu_width: Width of the menu. By default, matches width of the component. + Note that the minimum width of the dropdown is always equal to the component's width. + form_value: Whether the text or key of the selected items is submitted as part of an HTML form. + Controls whether comma-joined keys or labels are submitted via the hidden form input. + should_focus_wrap: Whether keyboard navigation is circular. + input_value: The value of the search input (controlled). + default_input_value: The default value of the search input (uncontrolled). + allows_custom_value: Whether the component allows a non-item matching input value to be set. + Pressing Enter when no item is focused adds the typed text as a custom tag. + If the typed text matches an existing item's label, that item's key is used instead. + disabled_keys: The item keys that are disabled. + These items cannot be selected, focused, or otherwise interacted with. + selected_keys: The currently selected keys in the collection (controlled). + default_selected_keys: The initial selected keys in the collection (uncontrolled). + is_disabled: Whether the input is disabled. + is_read_only: Whether the input can be selected but not changed by the user. + is_required: Whether user input is required on the input before form submission. + validation_behavior: Whether to use native HTML form validation to prevent + form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA. + auto_focus: Whether the element should receive focus on render. + label: The content to display as the label. + description: A description for the field. Provides a hint such as specific requirements for what to choose. + error_message: An error message for the field. + name: The name of the input element, used when submitting an HTML form. + validation_state: Whether the input should display its "valid" or "invalid" visual styling. + label_position: The label's overall position relative to the element it is labeling. + label_align: The label's horizontal alignment relative to the element it is labeling. + necessity_indicator: Whether the required state should be shown as an icon or text. + contextual_help: A ContextualHelp element to place next to the label. + on_open_change: Method that is called when the open state of the menu changes. + Returns the new open state and the action that caused the opening of the menu. + on_selection_change: Handler that is called when the selection changes. + Receives a `Selection` (list of keys). + on_change: Alias of `on_selection_change`. Handler that is called when the selection changes. + Receives a `Selection` (list of keys). + on_input_change: Handler that is called when the input value changes. + on_focus: Handler that is called when the element receives focus. + on_blur: Handler that is called when the element loses focus. + on_focus_change: Handler that is called when the element's focus status changes. + on_key_down: Handler that is called when a key is pressed. + on_key_up: Handler that is called when a key is released. + flex: When used in a flex layout, specifies how the element will grow or shrink to fit the space available. + flex_grow: When used in a flex layout, specifies how much the element will grow to fit the space available. + flex_shrink: When used in a flex layout, specifies how much the element will shrink to fit the space available. + flex_basis: When used in a flex layout, specifies the initial size of the element. + align_self: Overrides the align_items property of a flex or grid container. + justify_self: Specifies how the element is justified inside a flex or grid container. + order: The layout order for the element within a flex or grid container. + grid_area: The name of the grid area to place the element in. + grid_row: The name of the grid row to place the element in. + grid_row_start: The name of the grid row to start the element in. + grid_row_end: The name of the grid row to end the element in. + grid_column: The name of the grid column to place the element in. + grid_column_start: The name of the grid column to start the element in. + grid_column_end: The name of the grid column to end the element in. + margin: The margin to apply around the element. + margin_top: The margin to apply above the element. + margin_bottom: The margin to apply below the element. + margin_start: The margin to apply before the element. + margin_end: The margin to apply after the element. + margin_x: The margin to apply to the left and right of the element. + margin_y: The margin to apply to the top and bottom of the element. + width: The width of the element. + height: The height of the element. + min_width: The minimum width of the element. + min_height: The minimum height of the element. + max_width: The maximum width of the element. + max_height: The maximum height of the element. + position: Specifies how the element is positioned. + top: The distance from the top of the containing element. + bottom: The distance from the bottom of the containing element. + start: The distance from the start of the containing element. + end: The distance from the end of the containing element. + left: The distance from the left of the containing element. + right: The distance from the right of the containing element. + z_index: The stack order of the element. + is_hidden: Whether the element is hidden. + id: A unique identifier for the element. + aria_label: The label for the element. + aria_labelledby: The id of the element that labels the element. + aria_describedby: The id of the element that describes the element. + aria_details: The details for the element. + UNSAFE_class_name: A CSS class to apply to the element. + UNSAFE_style: A CSS style to apply to the element. + key: A unique identifier used by React to render elements in a list. + + Returns: + The rendered MultiSelect. + """ + children, props = create_props(locals()) + + children, props = unpack_item_table_source(children, props, SUPPORTED_SOURCE_ARGS) + + return component_element( + "MultiSelect", + *children, + **props, + ) diff --git a/plugins/ui/src/js/package.json b/plugins/ui/src/js/package.json index 28e8a1f5e..0c4c4a3b0 100644 --- a/plugins/ui/src/js/package.json +++ b/plugins/ui/src/js/package.json @@ -40,23 +40,23 @@ "react-dom": "^18.0.0 || ^19.0.0" }, "dependencies": { - "@deephaven/chart": "^1.17.0", - "@deephaven/components": "^1.17.0", - "@deephaven/console": "^1.17.0", - "@deephaven/dashboard": "^1.17.1", - "@deephaven/dashboard-core-plugins": "^1.18.0", - "@deephaven/golden-layout": "^1.17.1", - "@deephaven/grid": "^1.18.0", + "@deephaven/chart": "^1.21.1", + "@deephaven/components": "^1.21.1", + "@deephaven/console": "^1.21.1", + "@deephaven/dashboard": "^1.21.1", + "@deephaven/dashboard-core-plugins": "^1.21.1", + "@deephaven/golden-layout": "^1.21.1", + "@deephaven/grid": "^1.18.2", "@deephaven/icons": "^1.2.0", - "@deephaven/iris-grid": "^1.18.0", - "@deephaven/jsapi-bootstrap": "^1.17.0", - "@deephaven/jsapi-components": "^1.17.0", + "@deephaven/iris-grid": "^1.21.1", + "@deephaven/jsapi-bootstrap": "^1.21.1", + "@deephaven/jsapi-components": "^1.21.1", "@deephaven/jsapi-types": "^1.0.0-dev0.39.6", "@deephaven/jsapi-utils": "^1.16.0", "@deephaven/log": "^1.8.0", - "@deephaven/plugin": "^1.18.0", - "@deephaven/react-hooks": "^1.14.0", - "@deephaven/redux": "^1.17.0", + "@deephaven/plugin": "^1.21.1", + "@deephaven/react-hooks": "^1.21.1", + "@deephaven/redux": "^1.19.0", "@deephaven/test-utils": "^1.8.0", "@deephaven/utils": "^1.10.0", "@fortawesome/react-fontawesome": "^0.2.0", diff --git a/plugins/ui/src/js/src/elements/ComboBox.tsx b/plugins/ui/src/js/src/elements/ComboBox.tsx index a322f6fa0..0db613082 100644 --- a/plugins/ui/src/js/src/elements/ComboBox.tsx +++ b/plugins/ui/src/js/src/elements/ComboBox.tsx @@ -48,17 +48,13 @@ export function ComboBox( {...pickerProps} errorMessage={message} validationState="invalid" - > - {[]} - + /> ); } if (isLoading || table == null || api == null) { return ( // eslint-disable-next-line react/jsx-props-no-spreading - - {[]} - + ); } return ( diff --git a/plugins/ui/src/js/src/elements/ListView.tsx b/plugins/ui/src/js/src/elements/ListView.tsx index 44741c92f..68e39f471 100644 --- a/plugins/ui/src/js/src/elements/ListView.tsx +++ b/plugins/ui/src/js/src/elements/ListView.tsx @@ -38,9 +38,7 @@ export function ListView(props: SerializedListViewProps): JSX.Element | null { // eslint-disable-next-line react/jsx-props-no-spreading {...listViewProps} renderEmptyState={() => } - > - {[]} - + /> ); } if (isLoading || table == null || api == null) { @@ -49,9 +47,7 @@ export function ListView(props: SerializedListViewProps): JSX.Element | null { // eslint-disable-next-line react/jsx-props-no-spreading {...listViewProps} loadingState="loading" - > - {[]} - + /> ); } return ( diff --git a/plugins/ui/src/js/src/elements/MultiSelect.test.tsx b/plugins/ui/src/js/src/elements/MultiSelect.test.tsx new file mode 100644 index 000000000..7018b8a0c --- /dev/null +++ b/plugins/ui/src/js/src/elements/MultiSelect.test.tsx @@ -0,0 +1,169 @@ +import React from 'react'; +import { render } from '@testing-library/react'; +import { MultiSelect } from './MultiSelect'; +import type { SerializedMultiSelectProps } from './hooks/useMultiSelectProps'; + +// Mock ObjectView and UriObjectView before they trigger deep dependency chains +jest.mock('./ObjectView', () => jest.fn(() => null)); +jest.mock('./UriObjectView', () => jest.fn(() => null)); +jest.mock('../widget/WidgetErrorUtils', () => ({ + getErrorShortMessage: jest.fn((e: Error) => e.message), +})); + +// Mock all heavy dependencies +jest.mock('react-redux', () => ({ + useSelector: jest.fn(() => ({})), +})); + +jest.mock('./hooks/useMultiSelectProps', () => ({ + useMultiSelectProps: jest.fn((props: Record) => { + const { + onChange, + onSelectionChange, + onFocus, + onBlur, + onKeyDown, + onKeyUp, + ...rest + } = props; + return rest; + }), +})); + +jest.mock('./hooks/useObjectViewObject', () => ({ + useObjectViewObject: jest.fn(() => ({ + widget: null, + api: null, + isLoading: false, + error: null, + })), +})); + +jest.mock('@deephaven/components', () => ({ + MultiSelect: jest.fn( + ({ children }: { children?: React.ReactNode; [key: string]: unknown }) => ( +
{children}
+ ) + ), +})); + +jest.mock('@deephaven/jsapi-components', () => ({ + MultiSelect: jest.fn(() =>
), +})); + +jest.mock('@deephaven/react-hooks', () => ({ + isElementOfType: jest.fn(() => false), +})); + +jest.mock('@deephaven/jsapi-bootstrap', () => ({ + ApiContext: { + Provider: ({ children }: { children: React.ReactNode }) => children, + }, +})); + +jest.mock('@deephaven/redux', () => ({ + getSettings: jest.fn(() => ({})), +})); + +describe('MultiSelect', () => { + it('renders DHMultiSelect with children when not an ObjectView', () => { + const props = { + children: ['Option A', 'Option B'], + label: 'Test', + } as unknown as SerializedMultiSelectProps; + + const { getByTestId } = render( + + ); + expect(getByTestId('dh-multi-select')).toBeTruthy(); + }); + + it('renders loading state when ObjectView with no table', () => { + const { isElementOfType } = jest.requireMock('@deephaven/react-hooks'); + isElementOfType.mockReturnValue(true); + + const { useObjectViewObject } = jest.requireMock( + './hooks/useObjectViewObject' + ); + useObjectViewObject.mockReturnValue({ + widget: null, + api: null, + isLoading: true, + error: null, + }); + + const props = { + children: React.createElement('div'), + label: 'Loading test', + } as unknown as SerializedMultiSelectProps; + + const { getByTestId } = render( + + ); + const el = getByTestId('dh-multi-select'); + expect(el).toBeTruthy(); + }); + + it('renders error state when ObjectView has error', () => { + const { isElementOfType } = jest.requireMock('@deephaven/react-hooks'); + isElementOfType.mockReturnValue(true); + + const { useObjectViewObject } = jest.requireMock( + './hooks/useObjectViewObject' + ); + useObjectViewObject.mockReturnValue({ + widget: null, + api: null, + isLoading: false, + error: new Error('Test error'), + }); + + const props = { + children: React.createElement('div'), + label: 'Error test', + } as unknown as SerializedMultiSelectProps; + + const { getByTestId } = render( + + ); + const el = getByTestId('dh-multi-select'); + expect(el).toBeTruthy(); + }); + + it('renders JSApi MultiSelect when ObjectView has table and api', () => { + const { isElementOfType } = jest.requireMock('@deephaven/react-hooks'); + isElementOfType.mockReturnValue(true); + + const { useObjectViewObject } = jest.requireMock( + './hooks/useObjectViewObject' + ); + useObjectViewObject.mockReturnValue({ + widget: {}, + api: {}, + isLoading: false, + error: null, + }); + + const props = { + children: React.createElement('div'), + label: 'JSApi test', + } as unknown as SerializedMultiSelectProps; + + const { getByTestId } = render( + + ); + expect(getByTestId('dh-multi-select-jsapi')).toBeTruthy(); + }); +}); diff --git a/plugins/ui/src/js/src/elements/MultiSelect.tsx b/plugins/ui/src/js/src/elements/MultiSelect.tsx new file mode 100644 index 000000000..b89bdec42 --- /dev/null +++ b/plugins/ui/src/js/src/elements/MultiSelect.tsx @@ -0,0 +1,67 @@ +import { useSelector } from 'react-redux'; +import { MultiSelect as DHMultiSelect } from '@deephaven/components'; +import { MultiSelect as DHMultiSelectJSApi } from '@deephaven/jsapi-components'; +import { isElementOfType } from '@deephaven/react-hooks'; +import type { dh } from '@deephaven/jsapi-types'; +import { ApiContext } from '@deephaven/jsapi-bootstrap'; +import { getSettings, type RootState } from '@deephaven/redux'; +import { + type SerializedMultiSelectProps, + useMultiSelectProps, +} from './hooks/useMultiSelectProps'; +import ObjectView from './ObjectView'; +import { useObjectViewObject } from './hooks/useObjectViewObject'; +import UriObjectView from './UriObjectView'; +import { getErrorShortMessage } from '../widget/WidgetErrorUtils'; + +export function MultiSelect( + props: SerializedMultiSelectProps +): JSX.Element | null { + const settings = useSelector(getSettings); + const { children, ...multiSelectProps } = useMultiSelectProps(props); + + const isObjectView = + isElementOfType(children, ObjectView) || + isElementOfType(children, UriObjectView); + const { widget: table, api, error } = useObjectViewObject(children); + + if (isObjectView) { + if (error != null) { + const message = getErrorShortMessage(error); + return ( + + ); + } + // Don't gate on `isLoading` as it flips true on server round-trips and + // would unmount/remount the spectrum MultiSelect, closing any open + // popover. + if (table == null || api == null) { + return ( + // eslint-disable-next-line react/jsx-props-no-spreading + + ); + } + return ( + + + + ); + } + + return ( + // eslint-disable-next-line react/jsx-props-no-spreading + {children} + ); +} + +export default MultiSelect; diff --git a/plugins/ui/src/js/src/elements/Picker.tsx b/plugins/ui/src/js/src/elements/Picker.tsx index 59e5ce501..9998c07d0 100644 --- a/plugins/ui/src/js/src/elements/Picker.tsx +++ b/plugins/ui/src/js/src/elements/Picker.tsx @@ -44,17 +44,13 @@ export function Picker( const message = getErrorShortMessage(error); return ( // eslint-disable-next-line react/jsx-props-no-spreading - - {[]} - + ); } if (isLoading || table == null || api == null) { return ( // eslint-disable-next-line react/jsx-props-no-spreading - - {[]} - + ); } return ( diff --git a/plugins/ui/src/js/src/elements/hooks/useMultiSelectProps.test.ts b/plugins/ui/src/js/src/elements/hooks/useMultiSelectProps.test.ts new file mode 100644 index 000000000..54c1540b9 --- /dev/null +++ b/plugins/ui/src/js/src/elements/hooks/useMultiSelectProps.test.ts @@ -0,0 +1,127 @@ +import { renderHook, act } from '@testing-library/react'; +import { useMultiSelectProps } from './useMultiSelectProps'; +import type { SerializedMultiSelectProps } from './useMultiSelectProps'; + +describe('useMultiSelectProps', () => { + it('passes through other props unchanged', () => { + const props = { + label: 'Test Label', + isDisabled: true, + selectedKeys: ['a', 'b'], + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + expect(result.current).toMatchObject({ + label: 'Test Label', + isDisabled: true, + selectedKeys: ['a', 'b'], + }); + }); + + it('deserializes onChange into a function', () => { + const onChange = jest.fn(); + const props = { + onChange, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + expect(result.current.onChange).toBeDefined(); + expect(typeof result.current.onChange).toBe('function'); + }); + + it('deserializes onSelectionChange into a function', () => { + const onSelectionChange = jest.fn(); + const props = { + onSelectionChange, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + expect(result.current.onSelectionChange).toBeDefined(); + expect(typeof result.current.onSelectionChange).toBe('function'); + }); + + it('serializes Set selection to array when onChange fires', () => { + const onChange = jest.fn(); + const props = { + onChange, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + act(() => { + result.current.onChange?.(new Set(['a', 'b'])); + }); + + expect(onChange).toHaveBeenCalledWith(['a', 'b']); + }); + + it('serializes Set selection to array when onSelectionChange fires', () => { + const onSelectionChange = jest.fn(); + const props = { + onSelectionChange, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + act(() => { + result.current.onSelectionChange?.(new Set(['x', 'y'])); + }); + + expect(onSelectionChange).toHaveBeenCalledWith(['x', 'y']); + }); + + it('passes "all" selection through unchanged', () => { + const onChange = jest.fn(); + const props = { + onChange, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + act(() => { + result.current.onChange?.('all'); + }); + + expect(onChange).toHaveBeenCalledWith('all'); + }); + + it('deserializes focus and blur callbacks', () => { + const onFocus = jest.fn(); + const onBlur = jest.fn(); + const props = { + onFocus, + onBlur, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + expect(result.current.onFocus).toBeDefined(); + expect(result.current.onBlur).toBeDefined(); + }); + + it('deserializes keyboard callbacks', () => { + const onKeyDown = jest.fn(); + const onKeyUp = jest.fn(); + const props = { + onKeyDown, + onKeyUp, + } as unknown as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + expect(result.current.onKeyDown).toBeDefined(); + expect(result.current.onKeyUp).toBeDefined(); + }); + + it('returns undefined for omitted callbacks', () => { + const props = {} as SerializedMultiSelectProps; + + const { result } = renderHook(() => useMultiSelectProps(props)); + + expect(result.current.onChange).toBeUndefined(); + expect(result.current.onSelectionChange).toBeUndefined(); + }); +}); diff --git a/plugins/ui/src/js/src/elements/hooks/useMultiSelectProps.ts b/plugins/ui/src/js/src/elements/hooks/useMultiSelectProps.ts new file mode 100644 index 000000000..62119083d --- /dev/null +++ b/plugins/ui/src/js/src/elements/hooks/useMultiSelectProps.ts @@ -0,0 +1,63 @@ +import type { MultiSelectProps as DHMultiSelectProps } from '@deephaven/components'; +import type { MultiSelectProps as DHMultiSelectJSApiProps } from '@deephaven/jsapi-components'; +import { + type SerializedSelectionProps, + useSelectionProps, +} from './useSelectionProps'; +import type { + SerializedPickerEventProps, + WrappedDHPickerJSApiProps, +} from './usePickerProps'; +import { useFocusEventCallback } from './useFocusEventCallback'; +import { useKeyboardEventCallback } from './useKeyboardEventCallback'; + +type WrappedDHMultiSelectJSApiProps = + WrappedDHPickerJSApiProps; + +export type SerializedMultiSelectProps = ( + | DHMultiSelectProps + | WrappedDHMultiSelectJSApiProps +) & + SerializedSelectionProps & + SerializedPickerEventProps; + +/** + * Wrap MultiSelect props with the appropriate serialized event callbacks. + * @param props Props to wrap + * @returns Wrapped props + */ +export function useMultiSelectProps({ + onChange: serializedOnChange, + onSelectionChange: serializedOnSelectionChange, + onFocus, + onBlur, + onKeyDown, + onKeyUp, + ...otherProps +}: SerializedMultiSelectProps): + | DHMultiSelectProps + | WrappedDHMultiSelectJSApiProps { + const { onChange, onSelectionChange } = useSelectionProps({ + onChange: serializedOnChange, + onSelectionChange: serializedOnSelectionChange, + }); + + const deserializedOnFocus = useFocusEventCallback(onFocus); + const deserializedOnBlur = useFocusEventCallback(onBlur); + const deserializedOnKeyDown = useKeyboardEventCallback(onKeyDown); + const deserializedOnKeyUp = useKeyboardEventCallback(onKeyUp); + + return { + onChange, + onSelectionChange, + onFocus: deserializedOnFocus, + onBlur: deserializedOnBlur, + onKeyDown: deserializedOnKeyDown, + onKeyUp: deserializedOnKeyUp, + // The @deephaven/components `MultiSelect` has its own normalization logic + // that handles primitive children types (string, number, boolean). It also + // handles nested children inside of `Item` and `Section` components, so + // we are intentionally not wrapping `otherProps` in `mapSpectrumProps` + ...otherProps, + }; +} diff --git a/plugins/ui/src/js/src/elements/index.ts b/plugins/ui/src/js/src/elements/index.ts index ecb7ad07c..dcd60ceae 100644 --- a/plugins/ui/src/js/src/elements/index.ts +++ b/plugins/ui/src/js/src/elements/index.ts @@ -29,6 +29,7 @@ export * from './LogicButton'; export * from './Markdown'; export * from './Menu'; export * from './Meter'; +export * from './MultiSelect'; export * from './model'; export * from './ObjectView'; export * from './Picker'; diff --git a/plugins/ui/src/js/src/elements/model/ElementConstants.ts b/plugins/ui/src/js/src/elements/model/ElementConstants.ts index 928da2331..c8447b82b 100644 --- a/plugins/ui/src/js/src/elements/model/ElementConstants.ts +++ b/plugins/ui/src/js/src/elements/model/ElementConstants.ts @@ -71,6 +71,7 @@ export const ELEMENT_NAME = { menu: uiComponentName('Menu'), menuTrigger: uiComponentName('MenuTrigger'), meter: uiComponentName('Meter'), + multiSelect: uiComponentName('MultiSelect'), numberField: uiComponentName('NumberField'), picker: uiComponentName('Picker'), progressBar: uiComponentName('ProgressBar'), diff --git a/plugins/ui/src/js/src/widget/WidgetUtils.tsx b/plugins/ui/src/js/src/widget/WidgetUtils.tsx index 136b32f30..2172f0025 100644 --- a/plugins/ui/src/js/src/widget/WidgetUtils.tsx +++ b/plugins/ui/src/js/src/widget/WidgetUtils.tsx @@ -87,6 +87,7 @@ import { Markdown, Menu, Meter, + MultiSelect, Picker, ProgressBar, ProgressCircle, @@ -186,6 +187,7 @@ export const elementComponentMap: Record, unknown> = { [ELEMENT_NAME.menu]: Menu, [ELEMENT_NAME.menuTrigger]: MenuTrigger, [ELEMENT_NAME.meter]: Meter, + [ELEMENT_NAME.multiSelect]: MultiSelect, [ELEMENT_NAME.numberField]: NumberField, [ELEMENT_NAME.picker]: Picker, [ELEMENT_NAME.progressBar]: ProgressBar, diff --git a/plugins/ui/test/deephaven/ui/test_combo_box.py b/plugins/ui/test/deephaven/ui/test_combo_box.py new file mode 100644 index 000000000..9efa6db91 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/test_combo_box.py @@ -0,0 +1,35 @@ +import unittest + +from .BaseTest import BaseTestCase + + +class ComboBoxTest(BaseTestCase): + def test_renders_combo_box(self): + from deephaven.ui import combo_box + + result = combo_box(label="Test") + self.assertEqual(result.name, "deephaven.ui.components.ComboBox") + + def test_selected_key(self): + from deephaven.ui import combo_box + + result = combo_box(selected_key="a", label="Test") + self.assertEqual(result.name, "deephaven.ui.components.ComboBox") + + +class MultiSelectTest(BaseTestCase): + def test_renders_multi_select(self): + from deephaven.ui import multi_select + + result = multi_select(label="Test") + self.assertEqual(result.name, "deephaven.ui.components.MultiSelect") + + def test_accepts_selected_keys(self): + from deephaven.ui import multi_select + + result = multi_select(selected_keys=["a", "b"], label="Test") + self.assertEqual(result.name, "deephaven.ui.components.MultiSelect") + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/app.d/tests.app b/tests/app.d/tests.app index a508c3393..f10ec43d8 100644 --- a/tests/app.d/tests.app +++ b/tests/app.d/tests.app @@ -19,4 +19,6 @@ file_12=theme_demo.py file_13=ui_nested_dashboard.py file_14=ui_query_params.py file_15=ui_home_screen.py -file_16=ui_routing.py \ No newline at end of file +file_16=ui_routing.py +file_17=ui_combo_box.py +file_18=ui_multi_select.py \ No newline at end of file diff --git a/tests/app.d/ui_combo_box.py b/tests/app.d/ui_combo_box.py new file mode 100644 index 000000000..3e583c048 --- /dev/null +++ b/tests/app.d/ui_combo_box.py @@ -0,0 +1,38 @@ +from deephaven import ui + + +@ui.component +def ui_combo_box_basic(): + value, set_value = ui.use_state(None) + return ui.flex( + ui.combo_box( + "Option A", + "Option B", + "Option C", + label="Select an option", + on_change=set_value, + ), + ui.text(f"Selected: {value}"), + direction="column", + ) + + +@ui.component +def ui_combo_box_controlled(): + value, set_value = ui.use_state("Option B") + return ui.flex( + ui.combo_box( + "Option A", + "Option B", + "Option C", + label="Controlled", + selected_key=value, + on_change=set_value, + ), + ui.text(f"Selected: {value}"), + direction="column", + ) + + +cb_basic = ui_combo_box_basic() +cb_controlled = ui_combo_box_controlled() diff --git a/tests/app.d/ui_multi_select.py b/tests/app.d/ui_multi_select.py new file mode 100644 index 000000000..70f883619 --- /dev/null +++ b/tests/app.d/ui_multi_select.py @@ -0,0 +1,40 @@ +from deephaven import ui + + +@ui.component +def ui_multi_select_basic(): + values, set_values = ui.use_state(None) + return ui.flex( + ui.multi_select( + "Option A", + "Option B", + "Option C", + "Option D", + label="Select options", + on_change=set_values, + ), + ui.text(f"Count: {len(values) if values else 0}"), + direction="column", + ) + + +@ui.component +def ui_multi_select_controlled(): + values, set_values = ui.use_state(["Option A", "Option C"]) + return ui.flex( + ui.multi_select( + "Option A", + "Option B", + "Option C", + "Option D", + label="Controlled", + selected_keys=values, + on_change=set_values, + ), + ui.text(f"Count: {len(values) if values else 0}"), + direction="column", + ) + + +ms_basic = ui_multi_select_basic() +ms_controlled = ui_multi_select_controlled() diff --git a/tests/ui_combo_box.spec.ts b/tests/ui_combo_box.spec.ts new file mode 100644 index 000000000..5570f693d --- /dev/null +++ b/tests/ui_combo_box.spec.ts @@ -0,0 +1,43 @@ +import { expect, test } from '@playwright/test'; +import { openPanel, gotoPage, SELECTORS } from './utils'; + +test.describe('UI combo_box', () => { + test('renders basic combo box', async ({ page }) => { + await gotoPage(page, ''); + await openPanel(page, 'cb_basic', SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + + const panel = page.locator(SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + await expect(panel.getByText('Selected: None')).toBeVisible(); + await expect(panel).toHaveScreenshot(); + }); + + test('renders controlled combo box with initial value', async ({ page }) => { + await gotoPage(page, ''); + await openPanel( + page, + 'cb_controlled', + SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE + ); + + const panel = page.locator(SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + await expect(panel.getByText('Selected: Option B')).toBeVisible(); + }); + + test('selects an option', async ({ page }) => { + await gotoPage(page, ''); + await openPanel(page, 'cb_basic', SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + + const panel = page.locator(SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + + // Click the combo box trigger button to open the dropdown + await panel.getByRole('button', { name: 'Show suggestions' }).click(); + + // Wait for the listbox to appear and select an option + const listbox = page.getByRole('listbox'); + await expect(listbox).toBeVisible(); + await listbox.getByRole('option', { name: 'Option A' }).click(); + + // Verify the selection was applied + await expect(panel.getByText('Selected: Option A')).toBeVisible(); + }); +}); diff --git a/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-chromium-linux.png b/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-chromium-linux.png new file mode 100644 index 000000000..250ab645e Binary files /dev/null and b/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-chromium-linux.png differ diff --git a/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-firefox-linux.png b/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-firefox-linux.png new file mode 100644 index 000000000..53c5b5623 Binary files /dev/null and b/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-firefox-linux.png differ diff --git a/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-webkit-linux.png b/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-webkit-linux.png new file mode 100644 index 000000000..55f8503a7 Binary files /dev/null and b/tests/ui_combo_box.spec.ts-snapshots/UI-combo-box-renders-basic-combo-box-1-webkit-linux.png differ diff --git a/tests/ui_multi_select.spec.ts b/tests/ui_multi_select.spec.ts new file mode 100644 index 000000000..fc287eae4 --- /dev/null +++ b/tests/ui_multi_select.spec.ts @@ -0,0 +1,26 @@ +import { expect, test } from '@playwright/test'; +import { openPanel, gotoPage, SELECTORS } from './utils'; + +test.describe('UI multi_select', () => { + test('renders basic multi select', async ({ page }) => { + await gotoPage(page, ''); + await openPanel(page, 'ms_basic', SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + + const panel = page.locator(SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + await expect(panel).toHaveScreenshot(); + }); + + test('renders controlled multi select with initial values', async ({ + page, + }) => { + await gotoPage(page, ''); + await openPanel( + page, + 'ms_controlled', + SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE + ); + + const panel = page.locator(SELECTORS.WIDGET_LOADER_ELEMENT_VISIBLE); + await expect(panel).toHaveScreenshot(); + }); +}); diff --git a/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-chromium-linux.png b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-chromium-linux.png new file mode 100644 index 000000000..a2166fd71 Binary files /dev/null and b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-chromium-linux.png differ diff --git a/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-firefox-linux.png b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-firefox-linux.png new file mode 100644 index 000000000..e0dee1c3b Binary files /dev/null and b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-firefox-linux.png differ diff --git a/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-webkit-linux.png b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-webkit-linux.png new file mode 100644 index 000000000..acb076a46 Binary files /dev/null and b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-basic-multi-select-1-webkit-linux.png differ diff --git a/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-chromium-linux.png b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-chromium-linux.png new file mode 100644 index 000000000..da0c9df97 Binary files /dev/null and b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-chromium-linux.png differ diff --git a/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-firefox-linux.png b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-firefox-linux.png new file mode 100644 index 000000000..2cddb3134 Binary files /dev/null and b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-firefox-linux.png differ diff --git a/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-webkit-linux.png b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-webkit-linux.png new file mode 100644 index 000000000..0caa53c3b Binary files /dev/null and b/tests/ui_multi_select.spec.ts-snapshots/UI-multi-select-renders-controlled-multi-select-with-initial-values-1-webkit-linux.png differ