diff --git a/.eslintrc.json b/.eslintrc.json index c92d7f5..a623c7a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -7,6 +7,7 @@ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], "plugins": ["@typescript-eslint"], "rules": { - "@typescript-eslint/ban-types": "off" + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/no-explicit-any": "off" } } diff --git a/README.md b/README.md index 35d116d..eec553b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Features -- ⚡️ Lightweight — only 0.44kb +- ⚡️ Lightweight — only 0.46kb - ✨ Autocompletion in all editors - 🎨 Adapt the style based on props - ♻️ Reuse classes with `asChild` prop diff --git a/package.json b/package.json index 1dc3de3..d3c88f6 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "exports": { ".": { "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" } }, "types": "./dist/index.d.ts", @@ -49,6 +50,7 @@ "happy-dom": "^12.10.3", "prettier": "^3.1.1", "react": "^18.2.0", + "react-aria-components": "^1.0.0", "rollup": "^4.9.1", "rollup-plugin-swc3": "^0.11.0", "rollup-plugin-ts": "^3.4.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b529837..38a540c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,6 +52,9 @@ devDependencies: react: specifier: ^18.2.0 version: 18.2.0 + react-aria-components: + specifier: ^1.0.0 + version: 1.0.0(react-dom@18.2.0)(react@18.2.0) rollup: specifier: ^4.9.1 version: 4.9.1 @@ -562,136 +565,1435 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true + /@formatjs/ecma402-abstract@1.18.0: + resolution: {integrity: sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==} + dependencies: + '@formatjs/intl-localematcher': 0.5.2 + tslib: 2.6.2 + dev: true + + /@formatjs/fast-memoize@2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} + dependencies: + tslib: 2.6.2 + dev: true + + /@formatjs/icu-messageformat-parser@2.7.3: + resolution: {integrity: sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==} + dependencies: + '@formatjs/ecma402-abstract': 1.18.0 + '@formatjs/icu-skeleton-parser': 1.7.0 + tslib: 2.6.2 + dev: true + + /@formatjs/icu-skeleton-parser@1.7.0: + resolution: {integrity: sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==} + dependencies: + '@formatjs/ecma402-abstract': 1.18.0 + tslib: 2.6.2 + dev: true + + /@formatjs/intl-localematcher@0.5.2: + resolution: {integrity: sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==} + dependencies: + tslib: 2.6.2 + dev: true + /@humanwhocodes/config-array@0.11.13: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: true + + /@hutson/parse-repository-url@3.0.2: + resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@internationalized/date@3.5.1: + resolution: {integrity: sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==} + dependencies: + '@swc/helpers': 0.5.3 + dev: true + + /@internationalized/message@3.1.1: + resolution: {integrity: sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==} + dependencies: + '@swc/helpers': 0.5.3 + intl-messageformat: 10.5.8 + dev: true + + /@internationalized/number@3.5.0: + resolution: {integrity: sha512-ZY1BW8HT9WKYvaubbuqXbbDdHhOUMfE2zHHFJeTppid0S+pc8HtdIxFxaYMsGjCb4UsF+MEJ4n2TfU7iHnUK8w==} + dependencies: + '@swc/helpers': 0.5.3 + dev: true + + /@internationalized/string@3.2.0: + resolution: {integrity: sha512-Xx3Sy3f2c9ctT+vh8c7euEaEHQZltp0euZ3Hy4UfT3E13r6lxpUS3kgKyumEjboJZSnaZv7JhqWz3D75v+IxQg==} + dependencies: + '@swc/helpers': 0.5.3 + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@kristoferbaxter/async@1.0.0: + resolution: {integrity: sha512-CAQQQ8mUUBKI2P7stYojHwHb+ShdFN8SrC90/96V4m2XlDSctXAA+5PD5CqCICs0o5c/83cYJCeub+FSetKLrw==} + engines: {node: '>=12'} + dev: true + + /@kristoferbaxter/bytes@0.1.2: + resolution: {integrity: sha512-jEnik0TVc+nxANari0ZQ+4dZYxxA3HTcK9OVglK8kptsczKpW7I7AVCjKcfujTi8V3qrd9oklr8fJAzA4FjWDA==} + engines: {node: '>= 14'} + dev: true + + /@kristoferbaxter/kleur@4.0.2: + resolution: {integrity: sha512-qZzvfOCXECWaCv3GDOd0uw2iqY+/VqMKvrAu1ufwZNjZEVSMjrFWpeQa+8UnezFOtaBF1FxnzN1Y3u42doK01g==} + engines: {node: '>=12'} + dev: true + + /@mdn/browser-compat-data@5.5.1: + resolution: {integrity: sha512-uKCxAlG5dqNEuCqGSAHa8cSFCZujnv0SRBOuMWMLiza4YK/eSiyNlMwXtWJSrRmeCT+33DBk1VUtAcZdSRdA+g==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + dev: true + + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.42)(react@18.2.0): + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.5 + '@types/react': 18.2.42 + react: 18.2.0 + dev: false + + /@radix-ui/react-slot@1.0.2(@types/react@18.2.42)(react@18.2.0): + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.5 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.42)(react@18.2.0) + '@types/react': 18.2.42 + react: 18.2.0 + dev: false + + /@react-aria/breadcrumbs@3.5.9(react@18.2.0): + resolution: {integrity: sha512-asbXTL5NjeHl1+YIF0K70y8tNHk8Lb6VneYH8yOkpLO49ejyNDYBK0tp0jtI9IZAQiTa2qkhYq58c9LloTwebQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/link': 3.6.3(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/breadcrumbs': 3.7.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/button@3.9.1(react@18.2.0): + resolution: {integrity: sha512-nAnLMUAnwIVcRkKzS1G2IU6LZSkIWPJGu9amz/g7Y02cGUwFp3lk5bEw2LdoaXiSDJNSX8g0SZFU8FROg57jfQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/calendar@3.5.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8k7khgea5kwfWriZJWCADNB0R2d7g5A6tTjUEktK4FFZcTb0RCubFejts4hRyzKlF9XHUro2dfh6sbZrzfMKDQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/calendar': 3.4.3(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/calendar': 3.4.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/checkbox@3.13.0(react@18.2.0): + resolution: {integrity: sha512-eylJwtADIPKJ1Y5rITNJm/8JD8sXG2nhiZBIg1ko44Szxrpu+Le53NoGtg8nlrfh9vbUrXVvuFtf2jxbPXR5Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/form': 3.0.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/toggle': 3.10.0(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/checkbox': 3.6.1(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/combobox@3.8.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0Zsy91WC2uhnIjtProL1E5qRjBtRVdsNgpr8T9QCQht4i2sHd8L/srrOx7b6vRIngUMZq7GofOpQcKVdxx4kEA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/listbox': 3.11.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/menu': 3.12.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/overlays': 3.20.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/textfield': 3.14.0(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/combobox': 3.8.1(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/combobox': 3.10.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/datepicker@3.9.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bdlY2H/zwe3hQf64Lp1oGTf7Va8ennDyAv4Ffowb+BOoL8+FB9smtGyONKe87zXu7VJL2M5xYAi4n7c004PM+w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/number': 3.5.0 + '@internationalized/string': 3.2.0 + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/form': 3.0.1(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/spinbutton': 3.6.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/datepicker': 3.9.1(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/calendar': 3.4.3(react@18.2.0) + '@react-types/datepicker': 3.7.1(react@18.2.0) + '@react-types/dialog': 3.5.7(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/dialog@3.5.9(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Eg5pFJN3b5NitKL60nf30iPpQGCyOcU4YakUVn5+GWKLBlm8ryE8jyoIIO0e0LCM65K+fL+gGHGK01GCZyKrpQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/overlays': 3.20.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/dialog': 3.5.7(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/dnd@3.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7OPGePdle+xNYHAIAUOvIETRMfnkRt7h/C0bCkxUR2GYefEbTzfraso4ppNH2JZ7fCRd0K/Qe+jvQklwusHAKA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/string': 3.2.0 + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/overlays': 3.20.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/dnd': 3.2.7(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/focus@3.16.0(react@18.2.0): + resolution: {integrity: sha512-GP6EYI07E8NKQQcXHjpIocEU0vh0oi0Vcsd+/71fKS0NnTR0TUOEeil0JuuQ9ymkmPDTu51Aaaa4FxVsuN/23A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + clsx: 2.0.0 + react: 18.2.0 + dev: true + + /@react-aria/form@3.0.1(react@18.2.0): + resolution: {integrity: sha512-6586oODMDR4/ciGRwXjpvEAg7tWGSDrXE//waK0n5e5sMuzlPOo1DHc5SpPTvz0XdJsu6VDt2rHdVWVIC9LEyw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/grid@3.8.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JlQDkdm5heG1FfRyy5KnB8b6s/hRqSI6Xt2xN2AccLX5kcbfFr2/d5KVxyf6ahfa4Gfd46alN6477ju5eTWJew==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/grid': 3.8.4(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-stately/virtualizer': 3.6.6(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/gridlist@3.7.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-rkkepYM7xJiebR0g3uC4zzkdR7a8z0fLaM+sg9lSTbdElHMLAlrebS2ytEyZnhiu9nbOnw13GN1OC4/ZenzbHQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/grid': 3.8.6(react-dom@18.2.0)(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/i18n@3.10.0(react@18.2.0): + resolution: {integrity: sha512-sviD5Y1pLPG49HHRmVjR+5nONrp0HK219+nu9Y7cDfUhXu2EjyhMS9t/n9/VZ69hHChZ2PnHYLEE2visu9CuCg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/message': 3.1.1 + '@internationalized/number': 3.5.0 + '@internationalized/string': 3.2.0 + '@react-aria/ssr': 3.9.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/interactions@3.20.1(react@18.2.0): + resolution: {integrity: sha512-PLNBr87+SzRhe9PvvF9qvzYeP4ofTwfKSorwmO+hjr3qoczrSXf4LRQlb27wB6hF10C7ZE/XVbUI1lj4QQrZ/g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/ssr': 3.9.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/label@3.7.4(react@18.2.0): + resolution: {integrity: sha512-3Y0yyrqpLzZdzHw+TOyzwuyx5wa2ujU5DGfKuL5GFnU9Ii4DtdwBGSYS7Yu7qadU+eQmG4OGhAgFVswbIgIwJw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/link@3.6.3(react@18.2.0): + resolution: {integrity: sha512-8kPWc4u/lDow3Ll0LDxeMgaxt9Y3sl8UldKLGli8tzRSltYFugNh/n+i9sCnmo4Qv9Tp9kYv+yxBK50Uk9sINw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/link': 3.5.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/listbox@3.11.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PBrnldmyEYUUJvfDeljW8ITvZyBTfGpLNf0b5kfBPK3TDgRH4niEH2vYEcaZvSqb0FrpdvcunuTRXcOpfb+gCQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-types/listbox': 3.4.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/live-announcer@3.3.1: + resolution: {integrity: sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==} + dependencies: + '@swc/helpers': 0.5.3 + dev: true + + /@react-aria/menu@3.12.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Nsujv3b61WR0gybDKnBjAeyxDVJOfPLMggRUf9SQDfPWnrPXEsAFxaPaVcAkzlfI4HiQs1IxNwsKFNpc3PPZTQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/overlays': 3.20.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/menu': 3.6.0(react@18.2.0) + '@react-stately/tree': 3.7.5(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/meter@3.4.9(react@18.2.0): + resolution: {integrity: sha512-1/FHFmFmSyfQBJ2oH152lp4nps76v1UdhnFbIsmRIH+0g0IfMv1yDT2M9dIZ/b9DgVZSx527FmWOXm0eHGKD6w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/progress': 3.4.9(react@18.2.0) + '@react-types/meter': 3.3.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/numberfield@3.10.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9rt+O63UL3zKR99c+8njbtBeVoEhitzzSCFWsqbtStyoUEV5tJQDgD9kSlozFLAzYftq2pJ7uazlptMEXyS13g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/spinbutton': 3.6.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/textfield': 3.14.0(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/numberfield': 3.8.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/numberfield': 3.7.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/overlays@3.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2m7MpRJL5UucbEuu08lMHsiFJoDowkJV4JAIFBZYK1NzVH0vF/A+w9HRNM7jRwx2DUxE+iIsZnl8yKV/7KY8OQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/ssr': 3.9.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.8(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/progress@3.4.9(react@18.2.0): + resolution: {integrity: sha512-CME1ZLsJHOmSgK8IAPOC/+vYO5Oc614mkEw5MluT/yclw5rMyjAkK1XsHLjEXy81uwPeiRyoQQIMPKG2/sMxFQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/progress': 3.5.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/radio@3.10.0(react@18.2.0): + resolution: {integrity: sha512-6NaKzdGymdcVWLYgHT0cHsVmNzPOp89o8r41w29OPBQWu8w2c9mxg4366OiIZn/uXIBS4abhQ4nL4toBRLgBrg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/form': 3.0.1(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/radio': 3.10.1(react@18.2.0) + '@react-types/radio': 3.7.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/searchfield@3.7.0(react@18.2.0): + resolution: {integrity: sha512-btBbkIwsExXWv5av62gINEbm4QFmDDT7r+d5TAKin5tvKqU8zrsM9fm7KCDEhIGcpUW+q2AUS589iw19z9uCcA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/textfield': 3.14.0(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/searchfield': 3.5.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/searchfield': 3.5.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/select@3.14.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pAy/+Xbj11Lx6bi/O1hWH0NSIDRxFb6V7N0ry2L8x7MALljh516VbpnAc5RgvbjbuKq0cHUAcdINOzOzpYWm4A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/form': 3.0.1(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/listbox': 3.11.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/menu': 3.12.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.8(react@18.2.0) + '@react-stately/select': 3.6.1(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/select': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/selection@3.17.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xl2sgeGH61ngQeE05WOWWPVpGRTPMjQEFmsAWEprArFi4Z7ihSZgpGX22l1w7uSmtXM/eN/v0W8hUYUju5iXlQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/separator@3.3.9(react@18.2.0): + resolution: {integrity: sha512-1wEXiaSJjq2+DR5TC0RKnUBsfZN+YXTzyI7XMzjQoc3YlclumX8wQtzPAOGOEjHB1JKUgo1Gw70FtupVXz58QQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/slider@3.7.4(react@18.2.0): + resolution: {integrity: sha512-OFJWeGSL2duVDFs/kcjlWsY6bqCVKZgM0aFn2QN4wmID+vfBvBnqGHAgWv3BCePTAPS3+GBjMN002TrftorjwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/slider': 3.5.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/slider': 3.7.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/spinbutton@3.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-u5GuOP3k4Zis055iY0fZJNHU7dUNCoSfUq5LKwJ1iNaCqDcavdstAnAg+X1a7rhpp5zCnJmAMseo3Qmzi9P+Ew==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/ssr@3.9.1(react@18.2.0): + resolution: {integrity: sha512-NqzkLFP8ZVI4GSorS0AYljC13QW2sc8bDqJOkBvkAt3M8gbcAXJWVRGtZBCRscki9RZF+rNlnPdg0G0jYkhJcg==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/switch@3.6.0(react@18.2.0): + resolution: {integrity: sha512-YNWc5fGLNXE4XlmDAKyqAdllRiClGR7ki4KGFY7nL+xR5jxzjCGU3S3ToMK5Op3QSMGZLxY/aYmC4O+MvcoADQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/toggle': 3.10.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/switch': 3.5.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/table@3.13.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AzmETpyxwNqISTzwHJPs85x9gujG40IIsSOBUdp49oKhB85RbPLvMwhadp4wCVAoHw3erOC/TJxHtVc7o2K1LA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/grid': 3.8.6(react-dom@18.2.0)(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.8(react@18.2.0) + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/flags': 3.0.0 + '@react-stately/table': 3.11.4(react@18.2.0) + '@react-stately/virtualizer': 3.6.6(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/table': 3.9.2(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/tabs@3.8.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Plw0K/5Qv35vYq7pHZFfQB2BF5OClFx4Abzo9hLVx4oMy3qb7i5lxmLBVbt81yPX/MdjYeP4zO1EHGBl4zMRhA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/tabs': 3.6.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tabs': 3.3.4(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/tag@3.3.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-w7d8sVZqxTo8VFfeg2ixLp5kawtrcguGznVY4mt5aE6K8LMJOeNVDqNNfolfyia80VjOWjeX+RpVdVJRdrv/GQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/gridlist': 3.7.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@react-aria/textfield@3.14.0(react@18.2.0): + resolution: {integrity: sha512-LtHFcPK/N9m3KWSRM5KdmlIk7cUEk0OF+uBUrfKsGGc1bJKVToimdW7jQusChHmHhslHUR7WQ4KDjXyFjoLXOw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/form': 3.0.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/textfield': 3.9.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/toggle@3.10.0(react@18.2.0): + resolution: {integrity: sha512-6cUf4V9TuG2J7AvXUdU/GspEPFCubUOID3mrselSe563RViy+mMZk0vUEOdyoNanDcEXl58W4dE3SGWxFn71vg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/toolbar@3.0.0-beta.1(react@18.2.0): + resolution: {integrity: sha512-GTQ76i0N8/BzWRJ/95RpOFGmbtv0lV3T2zd7CUis6xmP1zJCpSycs1V2jAUs6ggkVDedHLU2d0AOMkXorZLiUg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/tooltip@3.7.0(react@18.2.0): + resolution: {integrity: sha512-+u9Sftkfe09IDyPEnbbreFKS50vh9X/WTa7n1u2y3PenI9VreLpUR6czyzda4BlvQ95e9jQz1cVxUjxTNaZmBw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/tooltip': 3.4.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tooltip': 3.4.6(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-aria/utils@3.23.0(react@18.2.0): + resolution: {integrity: sha512-fJA63/VU4iQNT8WUvrmll3kvToqMurD69CcgVmbQ56V7ZbvlzFi44E7BpnoaofScYLLtFWRjVdaHsohT6O/big==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/ssr': 3.9.1(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + clsx: 2.0.0 + react: 18.2.0 + dev: true + + /@react-aria/visually-hidden@3.8.8(react@18.2.0): + resolution: {integrity: sha512-Cn2PYKD4ijGDtF0+dvsh8qa4y7KTNAlkTG6h20r8Q+6UTyRNmtE2/26QEaApRF8CBiNy9/BZC/ZC4FK2OjvCoA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/calendar@3.4.3(react@18.2.0): + resolution: {integrity: sha512-OrEcdskszDjnjVnFuSiDC2PVBJ6lWMCJROD5s6W1LUehUtBp8LX9wPavAGHV43LbhN9ldj560sxaQ4WCddrRCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/calendar': 3.4.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/checkbox@3.6.1(react@18.2.0): + resolution: {integrity: sha512-rOjFeVBy32edYwhKiHj3ZLdLeO+xZ2fnBwxnOBjcygnw4Neygm8FJH/dB1J0hdYYR349yby86ED2x0wRc84zPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/collections@3.10.4(react@18.2.0): + resolution: {integrity: sha512-OHhCrItGt4zB2bSrgObRo0H2SC7QlkH8ReGxo+NVIWchXRLRoiWBP7S+IwleewEo5gOqDVPY3hqA9n4iiI8twg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/combobox@3.8.1(react@18.2.0): + resolution: {integrity: sha512-FaWkqTXQdWg7ptaeU4iPcqF/kxbRg2ZNUcvW/hiL/enciV5tRCsddvfNqvDvy1L30z9AUwlp9MWqzm/DhBITCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-stately/select': 3.6.1(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/combobox': 3.10.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/data@3.11.0(react@18.2.0): + resolution: {integrity: sha512-0BlPT58WrAtUvpiEfUuyvIsGFTzp/9vA5y+pk53kGJhOdc5tqBGHi9cg40pYE/i1vdHJGMpyHGRD9nkQb8wN3Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/datepicker@3.9.1(react@18.2.0): + resolution: {integrity: sha512-o5xLvlZGJyAbTev2yruGlV2fzQyIDuYTgL19TTt0W0WCfjGGr/AAA9GjGXXmyoRA7sZMxqIPnnv7lNrdA38ofA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/string': 3.2.0 + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/datepicker': 3.7.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/dnd@3.2.7(react@18.2.0): + resolution: {integrity: sha512-QqSCvE9Rhp+Mr8Mt/SrByze24BFX1cy7gmXbwoqAYgHNIx3gWCVdBLqxfpfgYIhZdF9H72EWS8lQkfkZla06Ng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/flags@3.0.0: + resolution: {integrity: sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==} + dependencies: + '@swc/helpers': 0.4.36 + dev: true + + /@react-stately/form@3.0.0(react@18.2.0): + resolution: {integrity: sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/grid@3.8.4(react@18.2.0): + resolution: {integrity: sha512-rwqV1K4lVhaiaqJkt4TfYqdJoVIyqvSm98rKAYfCNzrKcivVpoiCMJ2EMt6WlYCjDVBdEOQ7fMV1I60IV0pntA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/list@3.10.2(react@18.2.0): + resolution: {integrity: sha512-INt+zofkIg2KN8B95xPi9pJG7ZFWAm30oIm/lCPBqM3K1Nm03/QaAbiQj2QeJcOsG3lb7oqI6D6iwTolwJkjIQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/menu@3.6.0(react@18.2.0): + resolution: {integrity: sha512-OB6CjNyfOkAuirqx1oTL8z8epS9WDzLyrXjmRnxdiCU9EgRXLGAQNECuO7VIpl58oDry8tgRJiJ8fn8FivWSQA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/numberfield@3.8.0(react@18.2.0): + resolution: {integrity: sha512-1XvB8tDOvZKcFnMM6qNLEaTVJcIc0jRFS/9jtS8MzalZvh8DbKi0Ucm1bGU7S5rkCx2QWqZ0rGOIm2h/RlcpkA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/number': 3.5.0 + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/numberfield': 3.7.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/overlays@3.6.4(react@18.2.0): + resolution: {integrity: sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/radio@3.10.1(react@18.2.0): + resolution: {integrity: sha512-MsBYbcLCvjKsqTAKe43T681F2XwKMsS7PLG0eplZgWP9210AMY78GeY1XPYZKHPAau8XkbYiuJqbqTerIJ3DBw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/radio': 3.7.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + /@react-stately/searchfield@3.5.0(react@18.2.0): + resolution: {integrity: sha512-SStjChkn/33pEn40slKQPnBnmQYyxVazVwPjiBkdeVejC42lUVairUTrGJgF0PNoZTbxn0so2/XzjqTC9T8iCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/searchfield': 3.5.2(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@react-stately/select@3.6.1(react@18.2.0): + resolution: {integrity: sha512-e5ixtLiYLlFWM8z1msDqXWhflF9esIRfroptZsltMn1lt2iImUlDRlOTZlMtPQzUrDWoiHXRX88sSKUM/jXjQQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/select': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@hutson/parse-repository-url@3.0.2: - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} + /@react-stately/selection@3.14.2(react@18.2.0): + resolution: {integrity: sha512-mL7OoiUgVWaaF7ks5XSxgbXeShijYmD4G3bkBHhqkpugU600QH6BM2hloCq8KOUupk1y8oTljPtF9EmCv375DA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /@react-stately/slider@3.5.0(react@18.2.0): + resolution: {integrity: sha512-dOVpIxb7XKuiRxgpHt1bUSlsklciFki100tKIyBPR+Okar9iC/CwLYROYgVfLkGe77jEBNkor9tDLjDGEWcc1w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@sinclair/typebox': 0.27.8 + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/slider': 3.7.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} + /@react-stately/table@3.11.4(react@18.2.0): + resolution: {integrity: sha512-dWINJIEOKQl4qq3moq+S8xCD3m+yJqBj0dahr+rOkS+t2uqORwzsusTM35D2T/ZHZi49S2GpE7QuDa+edCynPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/flags': 3.0.0 + '@react-stately/grid': 3.8.4(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/table': 3.9.2(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: true + + /@react-stately/tabs@3.6.3(react@18.2.0): + resolution: {integrity: sha512-Nj+Gacwa2SIzYIvHW40GsyX4Q6c8kF7GOuXESeQswbCjnwqhrSbDBp+ngPcUPUJxqFh6JhDCVwAS3wMhUoyUwA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tabs': 3.3.4(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} + /@react-stately/toggle@3.7.0(react@18.2.0): + resolution: {integrity: sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + /@react-stately/tooltip@3.4.6(react@18.2.0): + resolution: {integrity: sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/tooltip': 3.4.6(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@react-stately/tree@3.7.5(react@18.2.0): + resolution: {integrity: sha512-xTJVwvhAeY0N5rui4N/TxN7f8hjXdqApDuGDxMZeFAWoQz8Abf7LFKBVQ3OkT6qVr7P+23dgoisUDBhD5a45Hg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + /@react-stately/utils@3.9.0(react@18.2.0): + resolution: {integrity: sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@kristoferbaxter/async@1.0.0: - resolution: {integrity: sha512-CAQQQ8mUUBKI2P7stYojHwHb+ShdFN8SrC90/96V4m2XlDSctXAA+5PD5CqCICs0o5c/83cYJCeub+FSetKLrw==} - engines: {node: '>=12'} + /@react-stately/virtualizer@3.6.6(react@18.2.0): + resolution: {integrity: sha512-9hWvfITdE/028q4YFve6FxlmA3PdSMkUwpYA+vfaGCXI/4DFZIssBMspUeu4PTRJoV+k+m0z1wYHPmufrq6a3g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 dev: true - /@kristoferbaxter/bytes@0.1.2: - resolution: {integrity: sha512-jEnik0TVc+nxANari0ZQ+4dZYxxA3HTcK9OVglK8kptsczKpW7I7AVCjKcfujTi8V3qrd9oklr8fJAzA4FjWDA==} - engines: {node: '>= 14'} + /@react-types/breadcrumbs@3.7.2(react@18.2.0): + resolution: {integrity: sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/link': 3.5.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 dev: true - /@kristoferbaxter/kleur@4.0.2: - resolution: {integrity: sha512-qZzvfOCXECWaCv3GDOd0uw2iqY+/VqMKvrAu1ufwZNjZEVSMjrFWpeQa+8UnezFOtaBF1FxnzN1Y3u42doK01g==} - engines: {node: '>=12'} + /@react-types/button@3.9.1(react@18.2.0): + resolution: {integrity: sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 dev: true - /@mdn/browser-compat-data@5.5.1: - resolution: {integrity: sha512-uKCxAlG5dqNEuCqGSAHa8cSFCZujnv0SRBOuMWMLiza4YK/eSiyNlMwXtWJSrRmeCT+33DBk1VUtAcZdSRdA+g==} + /@react-types/calendar@3.4.3(react@18.2.0): + resolution: {integrity: sha512-96x57ctX5wNEl+8et3sc2NQm8neOJayEeqOQQpyPtI7jyvst/xBrKCwysf9W/dhgPlUC+KeBAYFWfjd5hFVHYA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 dev: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + /@react-types/checkbox@3.6.0(react@18.2.0): + resolution: {integrity: sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 dev: true - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + /@react-types/combobox@3.10.0(react@18.2.0): + resolution: {integrity: sha512-1IXSNS02TPbguyYopaW2snU6sZusbClHrEyVr4zPeexTV4kpUUBNXOzFQ+eSQRR0r2XW57Z0yRW4GJ6FGU0yCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 dev: true - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + /@react-types/datepicker@3.7.1(react@18.2.0): + resolution: {integrity: sha512-5juVDULOytNzkotqX8j5mYKJckeIpkgbHqVSGkPgLw0++FceIaSZ6RH56cqLup0pO45paqIt9zHh+QXBYX+syg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + '@internationalized/date': 3.5.1 + '@react-types/calendar': 3.4.3(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 dev: true - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.42)(react@18.2.0): - resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + /@react-types/dialog@3.5.7(react@18.2.0): + resolution: {integrity: sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 - '@types/react': 18.2.42 + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) react: 18.2.0 - dev: false + dev: true - /@radix-ui/react-slot@1.0.2(@types/react@18.2.42)(react@18.2.0): - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + /@react-types/form@3.7.0(react@18.2.0): + resolution: {integrity: sha512-IPmFCh3/psQqJ9X+64tpdHyRNGXDzKvsHfZq27WVxkEDN2KC0g3nnVvuwKXY6gdzYEl6B4RRcmAk8bmGoZpvqg==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.42)(react@18.2.0) - '@types/react': 18.2.42 + '@react-types/shared': 3.22.0(react@18.2.0) react: 18.2.0 - dev: false + dev: true + + /@react-types/grid@3.2.3(react@18.2.0): + resolution: {integrity: sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/link@3.5.2(react@18.2.0): + resolution: {integrity: sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/listbox@3.4.6(react@18.2.0): + resolution: {integrity: sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/menu@3.9.6(react@18.2.0): + resolution: {integrity: sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/meter@3.3.6(react@18.2.0): + resolution: {integrity: sha512-1XYp1fA9UU0lO6kjf3TwVE8mppOJa64mBKAcLWtTyq1e/cYIAbx5o6CsuUx0YDpXKF6gdtvIWvfmxeWsmqJ1jQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/progress': 3.5.1(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/numberfield@3.7.0(react@18.2.0): + resolution: {integrity: sha512-gaGi+vqm1Y8LCWRsWYUjcGftPIzl+8W2VOfkgKMLM8y76nnwTPtmAqs+Ap1cg7sEJSfsiKMq93e9yvP3udrC2w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/overlays@3.8.4(react@18.2.0): + resolution: {integrity: sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/progress@3.5.1(react@18.2.0): + resolution: {integrity: sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/radio@3.7.0(react@18.2.0): + resolution: {integrity: sha512-EcwGAXzSHjSqpFZha7xn3IUrhPiJLj+0yb1Ip0qPmhWz0VVw2DwrkY7q/jfaKroVvQhTo2TbfGhcsAQrt0fRqg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/searchfield@3.5.2(react@18.2.0): + resolution: {integrity: sha512-JAK2/Kg4Dr393FYfbRw0TlXKnJPX77sq1x/ZBxtO6p64+MuuIYKqw0i9PwDlo1PViw2QI5u8GFhKA2TgemY9uA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/textfield': 3.9.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/select@3.9.1(react@18.2.0): + resolution: {integrity: sha512-EpKSxrnh8HdZvOF9dHQkjivAcdIp1K81FaxmvosH8Lygqh0iYXxAdZGtKLMyBoPI8YFhA+rotIzTcOqgCCnqWA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/shared@3.22.0(react@18.2.0): + resolution: {integrity: sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: true + + /@react-types/slider@3.7.0(react@18.2.0): + resolution: {integrity: sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/switch@3.5.0(react@18.2.0): + resolution: {integrity: sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/table@3.9.2(react@18.2.0): + resolution: {integrity: sha512-brw5JUANOzBa2rYNpN8AIl9nDZ9RwRZC6G/wTM/JhtirjC1S42oCtf8Ap5rWJBdmMG/5KOfcGNcAl/huyqb3gg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/tabs@3.3.4(react@18.2.0): + resolution: {integrity: sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/textfield@3.9.0(react@18.2.0): + resolution: {integrity: sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + + /@react-types/tooltip@3.4.6(react@18.2.0): + resolution: {integrity: sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true /@rollup/pluginutils@5.1.0(rollup@4.9.1): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} @@ -940,6 +2242,25 @@ packages: resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} dev: true + /@swc/helpers@0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.6.2 + dev: true + + /@swc/helpers@0.4.36: + resolution: {integrity: sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==} + dependencies: + legacy-swc-helpers: /@swc/helpers@0.4.14 + tslib: 2.6.2 + dev: true + + /@swc/helpers@0.5.3: + resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} + dependencies: + tslib: 2.6.2 + dev: true + /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} dev: true @@ -2819,6 +4140,15 @@ packages: side-channel: 1.0.4 dev: true + /intl-messageformat@10.5.8: + resolution: {integrity: sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==} + dependencies: + '@formatjs/ecma402-abstract': 1.18.0 + '@formatjs/fast-memoize': 2.2.0 + '@formatjs/icu-messageformat-parser': 2.7.3 + tslib: 2.6.2 + dev: true + /into-stream@3.1.0: resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} engines: {node: '>=4'} @@ -3858,6 +5188,78 @@ packages: engines: {node: '>=8'} dev: true + /react-aria-components@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Oyud2UcOXNPcvYn71he0FLIzpaJcLA+hu7i4wR/EKv+9Q/jOUGb++meKPB9vDBCFwGgWaoK7WpHJ2wB9xjLfGw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.1 + '@internationalized/string': 3.2.0 + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/toolbar': 3.0.0-beta.1(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-stately/table': 3.11.4(react@18.2.0) + '@react-types/form': 3.7.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/table': 3.9.2(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-aria: 3.31.0(react-dom@18.2.0)(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-stately: 3.29.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + dev: true + + /react-aria@3.31.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fdmiEhopCq4TIP0BMMsDh92RMfGzVyNaSPdYLs5qqhDlVmaVL3NqWcK8RVstgI13ST/DIM+h9jgtp8+X1EDHMw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/string': 3.2.0 + '@react-aria/breadcrumbs': 3.5.9(react@18.2.0) + '@react-aria/button': 3.9.1(react@18.2.0) + '@react-aria/calendar': 3.5.4(react-dom@18.2.0)(react@18.2.0) + '@react-aria/checkbox': 3.13.0(react@18.2.0) + '@react-aria/combobox': 3.8.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/datepicker': 3.9.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/dialog': 3.5.9(react-dom@18.2.0)(react@18.2.0) + '@react-aria/dnd': 3.5.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/focus': 3.16.0(react@18.2.0) + '@react-aria/gridlist': 3.7.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/i18n': 3.10.0(react@18.2.0) + '@react-aria/interactions': 3.20.1(react@18.2.0) + '@react-aria/label': 3.7.4(react@18.2.0) + '@react-aria/link': 3.6.3(react@18.2.0) + '@react-aria/listbox': 3.11.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/menu': 3.12.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/meter': 3.4.9(react@18.2.0) + '@react-aria/numberfield': 3.10.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/overlays': 3.20.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/progress': 3.4.9(react@18.2.0) + '@react-aria/radio': 3.10.0(react@18.2.0) + '@react-aria/searchfield': 3.7.0(react@18.2.0) + '@react-aria/select': 3.14.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/separator': 3.3.9(react@18.2.0) + '@react-aria/slider': 3.7.4(react@18.2.0) + '@react-aria/ssr': 3.9.1(react@18.2.0) + '@react-aria/switch': 3.6.0(react@18.2.0) + '@react-aria/table': 3.13.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/tabs': 3.8.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/tag': 3.3.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/textfield': 3.14.0(react@18.2.0) + '@react-aria/tooltip': 3.7.0(react@18.2.0) + '@react-aria/utils': 3.23.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.8(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -3881,6 +5283,37 @@ packages: engines: {node: '>=0.10.0'} dev: true + /react-stately@3.29.0(react@18.2.0): + resolution: {integrity: sha512-JWPgEg2RxDtSmMkypsBLuhsuiaMDfJcnFw96oDRg8lAGqkslZmbmYH/O1Wz08k2W6P3Bds4rZz6iK91XMNXomA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/calendar': 3.4.3(react@18.2.0) + '@react-stately/checkbox': 3.6.1(react@18.2.0) + '@react-stately/collections': 3.10.4(react@18.2.0) + '@react-stately/combobox': 3.8.1(react@18.2.0) + '@react-stately/data': 3.11.0(react@18.2.0) + '@react-stately/datepicker': 3.9.1(react@18.2.0) + '@react-stately/dnd': 3.2.7(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/list': 3.10.2(react@18.2.0) + '@react-stately/menu': 3.6.0(react@18.2.0) + '@react-stately/numberfield': 3.8.0(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-stately/radio': 3.10.1(react@18.2.0) + '@react-stately/searchfield': 3.5.0(react@18.2.0) + '@react-stately/select': 3.6.1(react@18.2.0) + '@react-stately/selection': 3.14.2(react@18.2.0) + '@react-stately/slider': 3.5.0(react@18.2.0) + '@react-stately/table': 3.11.4(react@18.2.0) + '@react-stately/tabs': 3.6.3(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-stately/tooltip': 3.4.6(react@18.2.0) + '@react-stately/tree': 3.7.5(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: true + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -4637,6 +6070,14 @@ packages: engines: {node: '>= 4'} dev: true + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: true + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true diff --git a/src/index.test.tsx b/src/index.test.tsx index d21ca05..e49bf3b 100644 --- a/src/index.test.tsx +++ b/src/index.test.tsx @@ -4,6 +4,10 @@ import { cva, VariantProps } from "class-variance-authority"; import { twc, createTwc, TwcComponentProps } from "./index"; import * as React from "react"; import { twMerge } from "tailwind-merge"; +import { + Button as AriaButton, + ButtonProps as AriaButtonProps, +} from "react-aria-components"; describe("twc", () => { beforeEach(cleanup); @@ -199,4 +203,27 @@ describe("twc", () => { expect(title.classList.contains("font-medium")).toBe(true); expect(title.classList.contains("font-bold")).toBe(false); }); + + test("works with render props", () => { + const Button = twc(AriaButton)( + (props) => (renderProps) => + props["aria-pressed"] || renderProps.isPressed + ? "bg-gray-700" + : "bg-gray-500", + ); + + render( + , + ); + const button = screen.getByText("Press me"); + expect(button).toBeDefined(); + expect(button.classList.contains("bg-gray-700")).toBe(true); + expect(button.classList.contains("opacity-35")).toBe(true); + }); }); diff --git a/src/index.tsx b/src/index.tsx index 889cd1a..9d47c60 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -5,7 +5,7 @@ import { Slot } from "@radix-ui/react-slot"; export { clsx as cx }; -type AbstractCompose = (...params: any) => string; +type AbstractCompose = (...params: any) => any; type ResultProps< TComponent extends React.ElementType, @@ -32,7 +32,9 @@ type Template< | TemplateStringsArray | (( props: ResultProps, - ) => Parameters[0]), + ) => "className" extends keyof TProps + ? TProps["className"] + : Parameters[0]), ...values: any[] ) => React.ForwardRefExoticComponent< ResultProps @@ -98,7 +100,7 @@ function filterProps( type Attributes = Record | ((props: any) => Record); -export const createTwc = ( +export const createTwc = ( config: Config = {}, ) => { const compose = config.compose || clsx; @@ -110,23 +112,30 @@ export const createTwc = ( stringsOrFn: TemplateStringsArray | Function, ...values: any[] ) => { - const isFn = typeof stringsOrFn === "function"; - const twClassName = isFn - ? "" - : String.raw({ raw: stringsOrFn }, ...values); + const isClassFn = typeof stringsOrFn === "function"; + const tplClassName = + !isClassFn && String.raw({ raw: stringsOrFn }, ...values); return React.forwardRef((p: any, ref) => { - const { className, asChild, ...rest } = p; + const { className: classNameProp, asChild, ...rest } = p; const rp = typeof attrs === "function" ? attrs(p) : attrs ? attrs : {}; const fp = filterProps({ ...rp, ...rest }, shouldForwardProp); const Comp = asChild ? Slot : Component; + const resClassName = isClassFn ? stringsOrFn(p) : tplClassName; return ( + compose( + resClassName(renderProps), + typeof classNameProp === "function" + ? classNameProp(renderProps) + : classNameProp, + ) + : compose(resClassName, classNameProp) + } {...fp} /> ); diff --git a/website/pages/docs/guides/_meta.json b/website/pages/docs/guides/_meta.json index b6e4a5b..8272de9 100644 --- a/website/pages/docs/guides/_meta.json +++ b/website/pages/docs/guides/_meta.json @@ -4,5 +4,6 @@ "refs": "Refs", "styling-any-component": "Styling any component", "additional-props": "Additional props", - "adapting-based-on-props": "Adapting based on props" + "adapting-based-on-props": "Adapting based on props", + "render-props": "Render Props" } diff --git a/website/pages/docs/guides/render-props.mdx b/website/pages/docs/guides/render-props.mdx new file mode 100644 index 0000000..611d9db --- /dev/null +++ b/website/pages/docs/guides/render-props.mdx @@ -0,0 +1,21 @@ +# Render props + +Some libraries like [`react-aria-components`](https://react-spectrum.adobe.com/react-aria/index.html) or [Remix](https://remix.run/docs/en/main/components/nav-link) accepts a function as `className`. `tsc` supports render props out of the box. + +## Usage + +In this example, we use a render props to change the class of a [`react-aria-components` button](https://react-spectrum.adobe.com/react-aria/Button.html) when the button is pressed. + +```tsx {5,6} +import { twc } from 'react-twc' +import { Button as AriaButton, ButtonProps } from "react-aria-components"; + +const Button = twc(AriaButton)( + (props) => (({ isPressed })) => + isPressed ? "bg-gray-700" : "bg-gray-500", +); + +export default () => ( + +); +``` diff --git a/website/pages/index.mdx b/website/pages/index.mdx index 3c5b636..9dd69e3 100644 --- a/website/pages/index.mdx +++ b/website/pages/index.mdx @@ -47,7 +47,7 @@ const Card = twc.div`rounded-lg border bg-slate-100 text-white shadow-sm`; With just one single line of code, you can create a reusable component with all these amazing features out-of-the-box: -- ⚡️ Lightweight — only 0.44kb +- ⚡️ Lightweight — only 0.46kb - ✨ Autocompletion in all editors - 🎨 Adapt the style based on props - ♻️ Reuse classes with `asChild` prop