diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 57a4838dc7..d06faa1bae 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,6 @@ ## Next +* In the item picker, you can long-press or shift-click an item to see its item details. A regular click still pulls that item. * `breaker:` searches now match items that can have that breaker type granted by this season's artifact (whether or not the correct artifact mods are enabled). The effective breaker type from artifact mods also now shows up on item tiles and in the Armory. ## 8.35.1 (2024-09-01) diff --git a/package.json b/package.json index 89bbcf855f..35a5cfbc20 100644 --- a/package.json +++ b/package.json @@ -228,6 +228,7 @@ "memoize-one": "^6.0.0", "papaparse": "^5.4.1", "react": "^18.3.1", + "react-aria": "^3.34.3", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dnd-multi-backend": "^8.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb38a5c662..e46e63404e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -104,6 +104,9 @@ dependencies: react: specifier: ^18.3.1 version: 18.3.1 + react-aria: + specifier: ^3.34.3 + version: 3.34.3(react-dom@18.3.1)(react@18.3.1) react-dnd: specifier: ^16.0.1 version: 16.0.1(@types/node@22.0.2)(@types/react@18.3.4)(react@18.3.1) @@ -2253,6 +2256,40 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /@formatjs/ecma402-abstract@2.0.0: + resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==} + dependencies: + '@formatjs/intl-localematcher': 0.5.4 + tslib: 2.7.0 + dev: false + + /@formatjs/fast-memoize@2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} + dependencies: + tslib: 2.7.0 + dev: false + + /@formatjs/icu-messageformat-parser@2.7.8: + resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==} + dependencies: + '@formatjs/ecma402-abstract': 2.0.0 + '@formatjs/icu-skeleton-parser': 1.8.2 + tslib: 2.7.0 + dev: false + + /@formatjs/icu-skeleton-parser@1.8.2: + resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==} + dependencies: + '@formatjs/ecma402-abstract': 2.0.0 + tslib: 2.7.0 + dev: false + + /@formatjs/intl-localematcher@0.5.4: + resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} + dependencies: + tslib: 2.7.0 + dev: false + /@fortawesome/fontawesome-common-types@0.3.0: resolution: {integrity: sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w==} engines: {node: '>=6'} @@ -2325,6 +2362,31 @@ packages: engines: {node: '>=18.18'} dev: true + /@internationalized/date@3.5.5: + resolution: {integrity: sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==} + dependencies: + '@swc/helpers': 0.5.13 + dev: false + + /@internationalized/message@3.1.4: + resolution: {integrity: sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw==} + dependencies: + '@swc/helpers': 0.5.13 + intl-messageformat: 10.5.14 + dev: false + + /@internationalized/number@3.5.3: + resolution: {integrity: sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==} + dependencies: + '@swc/helpers': 0.5.13 + dev: false + + /@internationalized/string@3.2.3: + resolution: {integrity: sha512-9kpfLoA8HegiWTeCbR2livhdVeKobCnVv8tlJ6M2jF+4tcMqDo94ezwlnrUANBWPgd8U7OXIHCk2Ov2qhk4KXw==} + dependencies: + '@swc/helpers': 0.5.13 + dev: false + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2736,6 +2798,679 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false + /@react-aria/breadcrumbs@3.5.16(react@18.3.1): + resolution: {integrity: sha512-OXLKKu4SmjnSaSHkk4kow5/aH/SzlHWPJt+Uq3xec9TwDOr/Ob8aeFVGFoY0HxfGozuQlUz+4e+d29vfA0jNWg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/link': 3.7.4(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/breadcrumbs': 3.7.7(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/button@3.9.8(react@18.3.1): + resolution: {integrity: sha512-MdbMQ3t5KSCkvKtwYd/Z6sgw0v+r1VQFRYOZ4L53xOkn+u140z8vBpNeWKZh/45gxGv7SJn9s2KstLPdCWmIxw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/toggle': 3.7.7(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/calendar@3.5.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-VLhBovLVu3uJXBkHbgEippmo/K58QLcc/tSJQ0aJUNyHsrvPgHEcj484cb+Uj/yOirXEIzaoW6WEvhcdKrb49Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/calendar': 3.5.4(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/calendar': 3.4.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/checkbox@3.14.6(react@18.3.1): + resolution: {integrity: sha512-LICY1PR3WsW/VbuLMjZbxo75+poeo3XCXGcUnk6hxMlWfp/Iy/XHVsHlGu9stRPKRF8BSuOGteaHWVn6IXfwtA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/form': 3.0.8(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/toggle': 3.10.7(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/checkbox': 3.6.8(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/toggle': 3.7.7(react@18.3.1) + '@react-types/checkbox': 3.8.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/combobox@3.10.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-EdDwr2Rp1xy7yWjOYHt2qF1IpAtUrkaNKZJzlIw1XSwcqizQY6E8orNPdZr6ZwD6/tgujxF1N71JTKyffrR0Xw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/listbox': 3.13.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@react-aria/menu': 3.15.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/overlays': 3.23.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.14.8(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/combobox': 3.9.2(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/combobox': 3.12.1(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/datepicker@3.11.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-6sbLln3VXSBcBRDgSACBzIzF/5KV5NlNOhZvXPFE6KqFw6GbevjZQTv5BNDXiwA3CQoawIRF7zgRvTANw8HkNA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@internationalized/number': 3.5.3 + '@internationalized/string': 3.2.3 + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/form': 3.0.8(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/spinbutton': 3.6.8(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/datepicker': 3.10.2(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/calendar': 3.4.9(react@18.3.1) + '@react-types/datepicker': 3.8.2(react@18.3.1) + '@react-types/dialog': 3.5.12(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/dialog@3.5.17(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-lvfEgaqg922J1hurscqCS600OZQVitGtdpo81kAefJaUzMnCxzrYviyT96aaW0simHOlimbYF5js8lxBLZJRaw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/overlays': 3.23.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/dialog': 3.5.12(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/dnd@3.7.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-NuE3EGqoBbe9aXAO9mDfbu4kMO7S4MCgkjkCqYi16TWfRUf38ajQbIlqodCx91b3LVN3SYvNbE3D4Tj5ebkljw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/string': 3.2.3 + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@react-aria/overlays': 3.23.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/dnd': 3.4.2(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/focus@3.18.2(react@18.3.1): + resolution: {integrity: sha512-Jc/IY+StjA3uqN73o6txKQ527RFU7gnG5crEl5Xy3V+gbYp2O5L3ezAo/E0Ipi2cyMbG6T5Iit1IDs7hcGu8aw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + clsx: 2.1.1 + react: 18.3.1 + dev: false + + /@react-aria/form@3.0.8(react@18.3.1): + resolution: {integrity: sha512-8S2QiyUdAgK43M3flohI0R+2rTyzH088EmgeRArA8euvJTL16cj/oSOKMEgWVihjotJ9n6awPb43ZhKboyNsMg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/grid@3.10.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-l0r9mz05Gwjq3t6JOTNQOf+oAoWN0bXELPJtIr8m0XyXMPFCQe1xsTaX8igVQdrDmXyBc75RAWS0BJo2JF2fIA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/grid': 3.9.2(react@18.3.1) + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-types/checkbox': 3.8.3(react@18.3.1) + '@react-types/grid': 3.2.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/gridlist@3.9.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-bb9GnKKeuL6NljoVUcHxr9F0cy/2WDOXRYeMikTnviRw6cuX95oojrhFfCUvz2d6ID22Btrvh7LkE+oIPVuc+g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/grid': 3.10.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/list': 3.10.8(react@18.3.1) + '@react-stately/tree': 3.8.4(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/i18n@3.12.2(react@18.3.1): + resolution: {integrity: sha512-PvEyC6JWylTpe8dQEWqQwV6GiA+pbTxHQd//BxtMSapRW3JT9obObAnb/nFhj3HthkUvqHyj0oO1bfeN+mtD8A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@internationalized/message': 3.1.4 + '@internationalized/number': 3.5.3 + '@internationalized/string': 3.2.3 + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/interactions@3.22.2(react@18.3.1): + resolution: {integrity: sha512-xE/77fRVSlqHp2sfkrMeNLrqf2amF/RyuAS6T5oDJemRSgYM3UoxTbWjucPhfnoW7r32pFPHHgz4lbdX8xqD/g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/label@3.7.11(react@18.3.1): + resolution: {integrity: sha512-REgejE5Qr8cXG/b8H2GhzQmjQlII/0xQW/4eDzydskaTLvA7lF5HoJUE6biYTquH5va38d8XlH465RPk+bvHzA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/link@3.7.4(react@18.3.1): + resolution: {integrity: sha512-E8SLDuS9ssm/d42+3sDFNthfMcNXMUrT2Tq1DIZt22EsMcuEzmJ9B0P7bDP5RgvIw05xVGqZ20nOpU4mKTxQtA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/link': 3.5.7(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/listbox@3.13.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-htluPyDfFtn66OEYaJdIaFCYH9wGCNk30vOgZrQkPul9F9Cjce52tTyPVR0ERsf14oCUsjjS5qgeq3dGidRqEw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/list': 3.10.8(react@18.3.1) + '@react-types/listbox': 3.5.1(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/live-announcer@3.3.4: + resolution: {integrity: sha512-w8lxs35QrRrn6pBNzVfyGOeqWdxeVKf9U6bXIVwhq7rrTqRULL8jqy8RJIMfIs1s8G5FpwWYjyBOjl2g5Cu1iA==} + dependencies: + '@swc/helpers': 0.5.13 + dev: false + + /@react-aria/menu@3.15.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-vvUmVjJwIg3h2r+7isQXTwlmoDlPAFBckHkg94p3afrT1kNOTHveTsaVl17mStx/ymIioaAi3PrIXk/PZXp1jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/overlays': 3.23.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/menu': 3.8.2(react@18.3.1) + '@react-stately/tree': 3.8.4(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/menu': 3.9.11(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/meter@3.4.16(react@18.3.1): + resolution: {integrity: sha512-hJqKnEE6mmK2Psx5kcI7NZ44OfTg0Bp7DatQSQ4zZE4yhnykRRwxqSKjze37tPR63cCqgRXtQ5LISfBfG54c0Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/progress': 3.4.16(react@18.3.1) + '@react-types/meter': 3.4.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/numberfield@3.11.6(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-nvEWiQcWRwj6O2JXmkXEeWoBX/GVZT9zumFJcew3XknGTWJUr3h2AOymIQFt9g4mpag8IgOFEpSIlwhtZHdp1A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/spinbutton': 3.6.8(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.14.8(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/numberfield': 3.9.6(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/numberfield': 3.8.5(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/overlays@3.23.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-vjlplr953YAuJfHiP4O+CyrTlr6OaFgXAGrzWq4MVMjnpV/PT5VRJWYFHR0sUGlHTPqeKS4NZbi/xCSgl/3pGQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-aria/visually-hidden': 3.8.15(react@18.3.1) + '@react-stately/overlays': 3.6.10(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/overlays': 3.8.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/progress@3.4.16(react@18.3.1): + resolution: {integrity: sha512-RbDIFQg4+/LG+KYZeLAijt2zH7K2Gp0CY9RKWdho3nU5l3/w57Fa7NrfDGWtpImrt7bR2nRmXMA6ESfr7THfrg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/progress': 3.5.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/radio@3.10.7(react@18.3.1): + resolution: {integrity: sha512-o2tqIe7xd1y4HeCBQfz/sXIwLJuI6LQbVoCQ1hgk/5dGhQ0LiuXohRYitGRl9zvxW8jYdgLULmOEDt24IflE8A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/form': 3.0.8(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/radio': 3.10.7(react@18.3.1) + '@react-types/radio': 3.8.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/searchfield@3.7.8(react@18.3.1): + resolution: {integrity: sha512-SsF5xwH8Us548QgzivvbM7nhFbw7pu23xnRRIuhlP3MwOR3jRUFh17NKxf3Z0jvrDv/u0xfm3JKHIgaUN0KJ2A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/textfield': 3.14.8(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/searchfield': 3.5.6(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/searchfield': 3.5.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/select@3.14.9(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-tiNgMyA2G9nKnFn3pB/lMSgidNToxSFU7r6l4OcG+Vyr63J7B/3dF2lTXq8IYhlfOR3K3uQkjroSx52CmC3NDw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/form': 3.0.8(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/listbox': 3.13.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/menu': 3.15.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-aria/visually-hidden': 3.8.15(react@18.3.1) + '@react-stately/select': 3.6.7(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/select': 3.9.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/selection@3.19.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-GYoObXCXlmGK08hp7Qfl6Bk0U+bKP5YDWSsX+MzNjJsqzQSLm4S06tRB9ACM7gIo9dDCvL4IRxdSYTJAlJc6bw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/separator@3.4.2(react@18.3.1): + resolution: {integrity: sha512-Xql9Kg3VlGesEUC7QheE+L5b3KgBv0yxiUU+/4JP8V2vfU/XSz4xmprHEeq7KVQVOetn38iiXU8gA5g26SEsUA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/slider@3.7.11(react@18.3.1): + resolution: {integrity: sha512-2WAwjANXPsA2LHJ5nxxV4c7ihFAzz2spaBz8+FJ7MDYE7WroYnE8uAXElea1aGo+Lk0DTiAdepLpBkggqPNanw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/slider': 3.5.7(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/slider': 3.7.5(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/spinbutton@3.6.8(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-OJMAYRIZ0WrWE+5tZsywrSg4t+aOwl6vl/e1+J64YcGMM+p+AKd61KGG5T0OgNSORXjoVIZOmj6wZ6Od4xfPMw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/ssr@3.9.5(react@18.3.1): + resolution: {integrity: sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/switch@3.6.7(react@18.3.1): + resolution: {integrity: sha512-yBNvKylhc3ZRQ0+7mD0mIenRRe+1yb8YaqMMZr8r3Bf87LaiFtQyhRFziq6ZitcwTJz5LEWjBihxbSVvUrf49w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/toggle': 3.10.7(react@18.3.1) + '@react-stately/toggle': 3.7.7(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/switch': 3.5.5(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/table@3.15.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-nQCLjlEvyJHyuijHw8ESqnA9fxNJfQHx0WPcl08VDEb8VxcE/MVzSAIedSWaqjG5k9Oflz6o/F/zHtzw4AFAow==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/grid': 3.10.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-aria/visually-hidden': 3.8.15(react@18.3.1) + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/flags': 3.0.3 + '@react-stately/table': 3.12.2(react@18.3.1) + '@react-types/checkbox': 3.8.3(react@18.3.1) + '@react-types/grid': 3.2.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/table': 3.10.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/tabs@3.9.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-aQZGAoOIg1B16qlvXIy6+rHbNBNVcWkGjOjeyvqTTPMjXt/FmElkICnqckI7MRJ1lTqzyppCOBitYOHSXRo8Uw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/tabs': 3.6.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/tabs': 3.3.9(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/tag@3.4.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-iyJuATQ8t2cdLC7hiZm143eeZze/MtgxaMq0OewlI9TUje54bkw2Q+CjERdgisIo3Eemf55JJgylGrTcalEJAg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/gridlist': 3.9.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/list': 3.10.8(react@18.3.1) + '@react-types/button': 3.9.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@react-aria/textfield@3.14.8(react@18.3.1): + resolution: {integrity: sha512-FHEvsHdE1cMR2B7rlf+HIneITrC40r201oLYbHAp3q26jH/HUujzFBB9I20qhXjyBohMWfQLqJhSwhs1VW1RJQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/form': 3.0.8(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/textfield': 3.9.6(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/toggle@3.10.7(react@18.3.1): + resolution: {integrity: sha512-/RJQU8QlPZXRElZ3Tt10F5K5STgUBUGPpfuFUGuwF3Kw3GpPxYsA1YAVjxXz2MMGwS0+y6+U/J1xIs1AF0Jwzg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/toggle': 3.7.7(react@18.3.1) + '@react-types/checkbox': 3.8.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/tooltip@3.7.7(react@18.3.1): + resolution: {integrity: sha512-UOTTDbbUz7OaE48VjNSWl+XQbYCUs5Gss4I3Tv1pfRLXzVtGYXv3ur/vRayvZR0xd12ANY26fZPNkSmCFpmiXw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-stately/tooltip': 3.4.12(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/tooltip': 3.4.11(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-aria/utils@3.25.2(react@18.3.1): + resolution: {integrity: sha512-GdIvG8GBJJZygB4L2QJP1Gabyn2mjFsha73I2wSe+o4DYeGWoJiMZRM06PyTIxLH4S7Sn7eVDtsSBfkc2VY/NA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + clsx: 2.1.1 + react: 18.3.1 + dev: false + + /@react-aria/visually-hidden@3.8.15(react@18.3.1): + resolution: {integrity: sha512-l+sJ7xTdD5Sd6+rDNDaeJCSPnHOsI+BaJyApvb/YcVgHa7rB47lp6TXCWUCDItcPY4JqRGyeByRJVrtzBFTWCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + /@react-dnd/asap@4.0.1: resolution: {integrity: sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==} dev: true @@ -2786,6 +3521,533 @@ packages: react: 18.3.1 dev: false + /@react-stately/calendar@3.5.4(react@18.3.1): + resolution: {integrity: sha512-R2011mtFSXIjzMXaA+CZ1sflPm9XkTBMqVk77Bnxso2ZsG7FUX8nqFmaDavxwTuHFC6OUexAGSMs8bP9KycTNg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/calendar': 3.4.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/checkbox@3.6.8(react@18.3.1): + resolution: {integrity: sha512-c8TWjU67XHHBCpqj6+FXXhQUWGr2Pil1IKggX81pkedhWiJl3/7+WHJuZI0ivGnRjp3aISNOG8UNVlBEjS9E8A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/checkbox': 3.8.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/collections@3.10.9(react@18.3.1): + resolution: {integrity: sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/combobox@3.9.2(react@18.3.1): + resolution: {integrity: sha512-ZsbAcD58IvxZqwYxg9d2gOf8R/k5RUB2TPUiGKD6wgWfEKH6SDzY3bgRByHGOyMCyJB62cHjih/ZShizNTguqA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/list': 3.10.8(react@18.3.1) + '@react-stately/overlays': 3.6.10(react@18.3.1) + '@react-stately/select': 3.6.7(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/combobox': 3.12.1(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/datepicker@3.10.2(react@18.3.1): + resolution: {integrity: sha512-pa5IZUw+49AyOnddwu4XwU2kI5eo/1thbiIVNHP8uDpbbBrBkquSk3zVFDAGX1cu/I1U2VUkt64U/dxgkwaMQw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@internationalized/string': 3.2.3 + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/overlays': 3.6.10(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/datepicker': 3.8.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/dnd@3.4.2(react@18.3.1): + resolution: {integrity: sha512-VrHmNoNdVGrx5JHdz/zewmN+N8rlZe+vL/iAOLmvQ74RRLEz8KDFnHdlhgKg1AZqaSg3JJ18BlHEkS7oL1n+tA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/flags@3.0.3: + resolution: {integrity: sha512-/ha7XFA0RZTQsbzSPwu3KkbNMgbvuM0GuMTYLTBWpgBrovBNTM+QqI/PfZTdHg8PwCYF4H5Y8gjdSpdulCvJFw==} + dependencies: + '@swc/helpers': 0.5.13 + dev: false + + /@react-stately/form@3.0.5(react@18.3.1): + resolution: {integrity: sha512-J3plwJ63HQz109OdmaTqTA8Qhvl3gcYYK7DtgKyNP6mc/Me2Q4tl2avkWoA+22NRuv5m+J8TpBk4AVHUEOwqeQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/grid@3.9.2(react@18.3.1): + resolution: {integrity: sha512-2gK//sqAqg2Xaq6UITTFQwFUJnBRgcW+cKBVbFt+F8d152xB6UwwTS/K79E5PUkOotwqZgTEpkrSFs/aVxCLpw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-types/grid': 3.2.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/list@3.10.8(react@18.3.1): + resolution: {integrity: sha512-rHCiPLXd+Ry3ztR9DkLA5FPQeH4Zd4/oJAEDWJ77W3oBBOdiMp3ZdHDLP7KBRh17XGNLO/QruYoHWAQTPiMF4g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/menu@3.8.2(react@18.3.1): + resolution: {integrity: sha512-lt6hIHmSixMzkKx1rKJf3lbAf01EmEvvIlENL20GLiU9cRbpPnPJ1aJMZ5Ad5ygglA7wAemAx+daPhlTQfF2rg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/overlays': 3.6.10(react@18.3.1) + '@react-types/menu': 3.9.11(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/numberfield@3.9.6(react@18.3.1): + resolution: {integrity: sha512-p2R9admGLI439qZzB39dyANhkruprJJtZwuoGVtxW/VD0ficw6BrPVqAaKG25iwKPkmveleh9p8o+yRqjGedcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/number': 3.5.3 + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/numberfield': 3.8.5(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/overlays@3.6.10(react@18.3.1): + resolution: {integrity: sha512-XxZ2qScT5JPwGk9qiVJE4dtVh3AXTcYwGRA5RsHzC26oyVVsegPqY2PmNJGblAh6Q57VyodoVUyebE0Eo5CzRw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/overlays': 3.8.9(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/radio@3.10.7(react@18.3.1): + resolution: {integrity: sha512-ZwGzFR+sGd42DxRlDTp3G2vLZyhMVtgHkwv2BxazPHxPMvLO9yYl7+3PPNxAmhMB4tg2u9CrzffpGX2rmEJEXA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/radio': 3.8.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/searchfield@3.5.6(react@18.3.1): + resolution: {integrity: sha512-gVzU0FeWiLYD8VOYRgWlk79Qn7b2eirqOnWhtI5VNuGN8WyNaCIuBp6SkXTW2dY8hs2Hzn8HlMbgy1MIc7130Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/searchfield': 3.5.8(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/select@3.6.7(react@18.3.1): + resolution: {integrity: sha512-hCUIddw0mPxVy1OH6jhyaDwgNea9wESjf+MYdnnTG/abRB+OZv/dWScd87OjzVsHTHWcw7CN4ZzlJoXm0FJbKQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/form': 3.0.5(react@18.3.1) + '@react-stately/list': 3.10.8(react@18.3.1) + '@react-stately/overlays': 3.6.10(react@18.3.1) + '@react-types/select': 3.9.6(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/selection@3.16.2(react@18.3.1): + resolution: {integrity: sha512-C4eSKw7BIZHJLPzwqGqCnsyFHiUIEyryVQZTJDt6d0wYBOHU6k1pW+Q4VhrZuzSv+IMiI2RkiXeJKc55f0ZXrg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/slider@3.5.7(react@18.3.1): + resolution: {integrity: sha512-gEIGTcpBLcXixd8LYiLc8HKrBiGQJltrrEGoOvvTP8KVItXQxmeL+JiSsh8qgOoUdRRpzmAoFNUKGEg2/gtN8A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/slider': 3.7.5(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/table@3.12.2(react@18.3.1): + resolution: {integrity: sha512-dUcsrdALylhWz6exqIoqtR/dnrzjIAptMyAUPT378Y/mCYs4PxKkHSvtPEQrZhdQS1ALIIgfeg9KUVIempoXPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/flags': 3.0.3 + '@react-stately/grid': 3.9.2(react@18.3.1) + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/grid': 3.2.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/table': 3.10.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/tabs@3.6.9(react@18.3.1): + resolution: {integrity: sha512-YZDqZng3HrRX+uXmg6u78x73Oi24G5ICpiXVqDKKDkO333XCA5H8MWItiuPZkYB2h3SbaCaLqSobLkvCoWYpNQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/list': 3.10.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/tabs': 3.3.9(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/toggle@3.7.7(react@18.3.1): + resolution: {integrity: sha512-AS+xB4+hHWa3wzYkbS6pwBkovPfIE02B9SnuYTe0stKcuejpWKo5L3QMptW0ftFYsW3ZPCXuneImfObEw2T01A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/checkbox': 3.8.3(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/tooltip@3.4.12(react@18.3.1): + resolution: {integrity: sha512-QKYT/cze7n9qaBsk7o5ais3jRfhYCzcVRfps+iys/W+/9FFbbhjfQG995Lwi6b+vGOHWfXxXpwmyIO2tzM1Iog==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/overlays': 3.6.10(react@18.3.1) + '@react-types/tooltip': 3.4.11(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/tree@3.8.4(react@18.3.1): + resolution: {integrity: sha512-HFNclIXJ/3QdGQWxXbj+tdlmIX/XwCfzAMB5m26xpJ6HtJhia6dtx3GLfcdyHNjmuRbAsTBsAAnnVKBmNRUdIQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-stately/collections': 3.10.9(react@18.3.1) + '@react-stately/selection': 3.16.2(react@18.3.1) + '@react-stately/utils': 3.10.3(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-stately/utils@3.10.3(react@18.3.1): + resolution: {integrity: sha512-moClv7MlVSHpbYtQIkm0Cx+on8Pgt1XqtPx6fy9rQFb2DNc9u1G3AUVnqA17buOkH1vLxAtX4MedlxMWyRCYYA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@swc/helpers': 0.5.13 + react: 18.3.1 + dev: false + + /@react-types/breadcrumbs@3.7.7(react@18.3.1): + resolution: {integrity: sha512-ZmhXwD2LLzfEA2OvOCp/QvXu8A/Edsrn5q0qUDGsmOZj9SCVeT82bIv8P+mQnATM13mi2gyoik6102Jc1OscJA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/link': 3.5.7(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/button@3.9.6(react@18.3.1): + resolution: {integrity: sha512-8lA+D5JLbNyQikf8M/cPP2cji91aVTcqjrGpDqI7sQnaLFikM8eFR6l1ZWGtZS5MCcbfooko77ha35SYplSQvw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/calendar@3.4.9(react@18.3.1): + resolution: {integrity: sha512-O/PS9c21HgO9qzxOyZ7/dTccxabFZdF6tj3UED4DrBw7AN3KZ7JMzwzYbwHinOcO7nUcklGgNoAIHk45UAKR9g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/checkbox@3.8.3(react@18.3.1): + resolution: {integrity: sha512-f4c1mnLEt0iS1NMkyZXgT3q3AgcxzDk7w6MSONOKydcnh0xG5L2oefY14DhVDLkAuQS7jThlUFwiAs+MxiO3MA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/combobox@3.12.1(react@18.3.1): + resolution: {integrity: sha512-bd5YwHZWtgnJx4jGbplWbYzXj7IbO5w3IY5suNR7r891rx6IktquZ8GQwyYH0pQ/x+X5LdK2xI59i6+QC2PmlA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/datepicker@3.8.2(react@18.3.1): + resolution: {integrity: sha512-Ih4F0bNVGrEuwCD8XmmBAspuuOBsj/Svn/pDFtC2RyAZjXfWh+sI+n4XLz/sYKjvARh5TUI8GNy9smYS4vYXug==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/date': 3.5.5 + '@react-types/calendar': 3.4.9(react@18.3.1) + '@react-types/overlays': 3.8.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/dialog@3.5.12(react@18.3.1): + resolution: {integrity: sha512-JmpQbSpXltqEyYfEwoqDolABIiojeExkqolHNdQlayIsfFuSxZxNwXZPOpz58Ri/iwv21JP7K3QF0Gb2Ohxl9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/overlays': 3.8.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/grid@3.2.8(react@18.3.1): + resolution: {integrity: sha512-6PJrpukwMqlv3IhJSDkJuVbhHM8Oe6hd2supWqd9adMXrlSP7QHt9a8SgFcFblCCTx8JzUaA0PvY5sTudcEtOQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/link@3.5.7(react@18.3.1): + resolution: {integrity: sha512-2WyaVmm1qr9UrSG3Dq6iz+2ziuVp+DH8CsYZ9CA6aNNb6U18Hxju3LTPb4a5gM0eC7W0mQGNBmrgGlAdDZEJOw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/listbox@3.5.1(react@18.3.1): + resolution: {integrity: sha512-n5bOgD9lgfK1qaLtag9WPnu151SwXBCNn/OgGY/Br9mWRl+nPUEYtFcPX+2VCld7uThf54kwrTmzlFnaraIlcw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/menu@3.9.11(react@18.3.1): + resolution: {integrity: sha512-IguQVF70d7aHXgWB1Rd2a/PiIuLZ2Nt7lyayJshLcy/NLOYmgpTmTyn2WCtlA5lTfQwmQrNFf4EvnWkeljJXdA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/overlays': 3.8.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/meter@3.4.3(react@18.3.1): + resolution: {integrity: sha512-Y2fX5CTAPGRKxVSeepbeyN6/K+wlF9pMRcNxTSU2qDwdoFqNCtTWMcWuCsU/Y2L/zU0jFWu4x0Vo7WkrcsgcMA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/progress': 3.5.6(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/numberfield@3.8.5(react@18.3.1): + resolution: {integrity: sha512-LVWggkxwd1nyVZomXBPfQA1E4I4/i4PBifjcDs2AfcV7q5RE9D+DVIDXsYucVOBxPlDOxiAq/T9ypobspWSwHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/overlays@3.8.9(react@18.3.1): + resolution: {integrity: sha512-9ni9upQgXPnR+K9cWmbYWvm3ll9gH8P/XsEZprqIV5zNLMF334jADK48h4jafb1X9RFnj0WbHo6BqcSObzjTig==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/progress@3.5.6(react@18.3.1): + resolution: {integrity: sha512-Nh43sjQ5adyN1bTHBPRaIPhXUdBqP0miYeJpeMY3V/KUl4qmouJLwDnccwFG4xLm6gBfYe22lgbbV7nAfNnuTQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/radio@3.8.3(react@18.3.1): + resolution: {integrity: sha512-fUVJt4Bb6jOReFqnhHVNxWXH7t6c60uSFfoPKuXt/xI9LL1i2jhpur0ggpTfIn3qLIAmNBU6bKBCWAdr4KjeVQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/searchfield@3.5.8(react@18.3.1): + resolution: {integrity: sha512-EcdqalHNIC6BJoRfmqUhAvXRd3aHkWlV1cFCz57JJKgUEFYyXPNrXd1b73TKLzTXEk+X/D6LKV15ILYpEaxu8w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + '@react-types/textfield': 3.9.6(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/select@3.9.6(react@18.3.1): + resolution: {integrity: sha512-cVSFR0eJLup/ht1Uto+y8uyLmHO89J6wNh65SIHb3jeVz9oLBAedP3YNI2qB+F9qFMUcA8PBSLXIIuT6gXzLgQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/shared@3.24.1(react@18.3.1): + resolution: {integrity: sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + react: 18.3.1 + dev: false + + /@react-types/slider@3.7.5(react@18.3.1): + resolution: {integrity: sha512-bRitwQRQjQoOcKEdPMljnvm474dwrmsc6pdsVQDh/qynzr+KO9IHuYc3qPW53WVE2hMQJDohlqtCAWQXWQ5Vcg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/switch@3.5.5(react@18.3.1): + resolution: {integrity: sha512-SZx1Bd+COhAOs/RTifbZG+uq/llwba7VAKx7XBeX4LeIz1dtguy5bigOBgFTMQi4qsIVCpybSWEEl+daj4XFPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/table@3.10.1(react@18.3.1): + resolution: {integrity: sha512-xsNh0Gm4GtNeSknZqkMsfGvc94fycmfhspGO+FzQKim2hB5k4yILwd+lHYQ2UKW6New9GVH/zN2Pd3v67IeZ2g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/grid': 3.2.8(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/tabs@3.3.9(react@18.3.1): + resolution: {integrity: sha512-3Q9kRVvg/qDyeJR/W1+C2z2OyvDWQrSLvOCvAezX5UKzww4rBEAA8OqBlyDwn7q3fiwrh/m64l6p+dbln+RdxQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/textfield@3.9.6(react@18.3.1): + resolution: {integrity: sha512-0uPqjJh4lYp1aL1HL9IlV8Cgp8eT0PcsNfdoCktfkLytvvBPmox2Pfm57W/d0xTtzZu2CjxhYNTob+JtGAOeXA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + + /@react-types/tooltip@3.4.11(react@18.3.1): + resolution: {integrity: sha512-WPikHQxeT5Lb09yJEaW6Ja3ecE0g1YM6ukWYS2v/iZLUPn5YlYrGytspuCYQNSh/u7suCz4zRLEHYCl7OCigjw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@react-types/overlays': 3.8.9(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + dev: false + /@remix-run/router@1.19.1: resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==} engines: {node: '>=14.0.0'} @@ -3007,6 +4269,12 @@ packages: string.prototype.matchall: 4.0.11 dev: true + /@swc/helpers@0.5.13: + resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + dependencies: + tslib: 2.7.0 + dev: false + /@tanstack/react-virtual@3.10.4(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Y2y1QJN3e5gNTG4wlZcoW2IAFrVCuho80oyeODKKFVSbAhJAXmkDNH3ZztM6EQij5ueqpqgz5FlsgKP9TGjImA==} peerDependencies: @@ -7780,6 +9048,15 @@ packages: engines: {node: '>=10.13.0'} dev: true + /intl-messageformat@10.5.14: + resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==} + dependencies: + '@formatjs/ecma402-abstract': 2.0.0 + '@formatjs/fast-memoize': 2.2.0 + '@formatjs/icu-messageformat-parser': 2.7.8 + tslib: 2.7.0 + dev: false + /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -10624,6 +11901,53 @@ packages: strip-json-comments: 2.0.1 dev: true + /react-aria@3.34.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-wSprEI5EojDFCm357MxnKAxJZN68OYIt6UH6N0KCo6MEUAVZMbhMSmGYjw/kLK4rI7KrbJDqGqUMQkwc93W9Ng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + dependencies: + '@internationalized/string': 3.2.3 + '@react-aria/breadcrumbs': 3.5.16(react@18.3.1) + '@react-aria/button': 3.9.8(react@18.3.1) + '@react-aria/calendar': 3.5.11(react-dom@18.3.1)(react@18.3.1) + '@react-aria/checkbox': 3.14.6(react@18.3.1) + '@react-aria/combobox': 3.10.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/datepicker': 3.11.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/dialog': 3.5.17(react-dom@18.3.1)(react@18.3.1) + '@react-aria/dnd': 3.7.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/focus': 3.18.2(react@18.3.1) + '@react-aria/gridlist': 3.9.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/i18n': 3.12.2(react@18.3.1) + '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/label': 3.7.11(react@18.3.1) + '@react-aria/link': 3.7.4(react@18.3.1) + '@react-aria/listbox': 3.13.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/menu': 3.15.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/meter': 3.4.16(react@18.3.1) + '@react-aria/numberfield': 3.11.6(react-dom@18.3.1)(react@18.3.1) + '@react-aria/overlays': 3.23.2(react-dom@18.3.1)(react@18.3.1) + '@react-aria/progress': 3.4.16(react@18.3.1) + '@react-aria/radio': 3.10.7(react@18.3.1) + '@react-aria/searchfield': 3.7.8(react@18.3.1) + '@react-aria/select': 3.14.9(react-dom@18.3.1)(react@18.3.1) + '@react-aria/selection': 3.19.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/separator': 3.4.2(react@18.3.1) + '@react-aria/slider': 3.7.11(react@18.3.1) + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-aria/switch': 3.6.7(react@18.3.1) + '@react-aria/table': 3.15.3(react-dom@18.3.1)(react@18.3.1) + '@react-aria/tabs': 3.9.5(react-dom@18.3.1)(react@18.3.1) + '@react-aria/tag': 3.4.5(react-dom@18.3.1)(react@18.3.1) + '@react-aria/textfield': 3.14.8(react@18.3.1) + '@react-aria/tooltip': 3.7.7(react@18.3.1) + '@react-aria/utils': 3.25.2(react@18.3.1) + '@react-aria/visually-hidden': 3.8.15(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /react-dnd-html5-backend@16.0.1: resolution: {integrity: sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==} dependencies: diff --git a/src/app/inventory/ItemPopupTrigger.tsx b/src/app/inventory/ItemPopupTrigger.tsx index 01708a416e..1355f898b1 100644 --- a/src/app/inventory/ItemPopupTrigger.tsx +++ b/src/app/inventory/ItemPopupTrigger.tsx @@ -12,17 +12,6 @@ import { import { clearNewItem } from './actions'; import { DimItem } from './item-types'; -interface Props { - item: DimItem; - extraData?: ItemPopupExtraInfo; - /** Don't allow adding to compare */ - noCompare?: boolean; - children: ( - ref: React.Ref, - onClick: (e: React.MouseEvent) => void, - ) => React.ReactNode; -} - /** * This provides a ref and onclick function for a component that will show the move popup for the provided item. */ @@ -31,7 +20,16 @@ export default function ItemPopupTrigger({ extraData, children, noCompare, -}: Props): JSX.Element { +}: { + item: DimItem; + extraData?: ItemPopupExtraInfo; + /** Don't allow adding to compare */ + noCompare?: boolean; + children: ( + ref: React.Ref, + onClick: (e: React.MouseEvent) => void, + ) => React.ReactNode; +}): JSX.Element { const ref = useRef(null); const dispatch = useThunkDispatch(); diff --git a/src/app/item-picker/ItemPicker.scss b/src/app/item-picker/ItemPicker.m.scss similarity index 76% rename from src/app/item-picker/ItemPicker.scss rename to src/app/item-picker/ItemPicker.m.scss index d122a846a4..f701548be6 100644 --- a/src/app/item-picker/ItemPicker.scss +++ b/src/app/item-picker/ItemPicker.m.scss @@ -2,21 +2,17 @@ // These classes are used in item-picker, mod-picker, exotic-picker and search results -.item-picker { - .item { - cursor: pointer; - } -} - -.item-picker-grid { +.grid { + composes: sub-bucket from global; margin: 10px; } -.item-picker-item { +.itemPickerItem { + composes: resetButton from '../dim-ui/common.m.scss'; position: relative; } -.item-picker-item-class-icon { +.classIcon { box-sizing: border-box; width: calc(var(--item-size) / 4) !important; height: calc(var(--item-size) / 4) !important; diff --git a/src/app/item-picker/ItemPicker.m.scss.d.ts b/src/app/item-picker/ItemPicker.m.scss.d.ts new file mode 100644 index 0000000000..59f4fb5d75 --- /dev/null +++ b/src/app/item-picker/ItemPicker.m.scss.d.ts @@ -0,0 +1,9 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'classIcon': string; + 'grid': string; + 'itemPickerItem': string; +} +export const cssExports: CssExports; +export default cssExports; diff --git a/src/app/item-picker/ItemPicker.tsx b/src/app/item-picker/ItemPicker.tsx index aa35656812..e5cde3040f 100644 --- a/src/app/item-picker/ItemPicker.tsx +++ b/src/app/item-picker/ItemPicker.tsx @@ -1,19 +1,20 @@ import ClassIcon from 'app/dim-ui/ClassIcon'; import { t } from 'app/i18next-t'; +import { hideItemPopup, showItemPopup, showItemPopup$ } from 'app/item-popup/item-popup'; import SearchBar from 'app/search/SearchBar'; import { filterFactorySelector } from 'app/search/items/item-search-filter'; import { uniqBy } from 'app/utils/collections'; -import clsx from 'clsx'; import { BucketHashes } from 'data/d2/generated-enums'; import _ from 'lodash'; -import { useCallback, useDeferredValue, useMemo, useState } from 'react'; +import { useCallback, useDeferredValue, useEffect, useMemo, useRef, useState } from 'react'; +import { mergeProps, useKeyboard, useLongPress, usePress } from 'react-aria'; import { useSelector } from 'react-redux'; import Sheet from '../dim-ui/Sheet'; import ConnectedInventoryItem from '../inventory/ConnectedInventoryItem'; import { DimItem } from '../inventory/item-types'; import { allItemsSelector } from '../inventory/selectors'; import { itemSorterSelector } from '../settings/item-sort'; -import './ItemPicker.scss'; +import styles from './ItemPicker.m.scss'; import { ItemPickerState } from './item-picker'; export default function ItemPicker({ @@ -79,11 +80,11 @@ export default function ItemPicker({ {({ onClose }) => ( -
+
{items.map((item) => ( void; onItemSelectedFn: (item: DimItem, onClose: () => void) => void; }) { - const handleClick = useCallback( - () => onItemSelectedFn(item, onClose), - [item, onClose, onItemSelectedFn], + const ref = useRef(null); + const { longPressProps } = useLongPress({ + onLongPress: () => { + showItemPopup(item, ref.current!); + }, + }); + const { pressProps } = usePress({ + onPress: (e) => { + if (e.shiftKey) { + showItemPopup(item, ref.current!); + } else if (showItemPopup$.getCurrentValue()?.item) { + hideItemPopup(); + } else { + onItemSelectedFn(item, onClose); + } + }, + }); + + const { keyboardProps } = useKeyboard({ + onKeyDown: (e) => { + if (e.key === 'i') { + showItemPopup(item, ref.current!); + } + }, + }); + + // Close the popup if this component is unmounted + useEffect( + () => () => { + if (showItemPopup$.getCurrentValue()?.item?.index === item.index) { + hideItemPopup(); + } + }, + [item.index], ); return ( -
+
+ ); } diff --git a/src/app/item-popup/SocketDetails.tsx b/src/app/item-popup/SocketDetails.tsx index 9f27dab26a..3b9142e255 100644 --- a/src/app/item-popup/SocketDetails.tsx +++ b/src/app/item-popup/SocketDetails.tsx @@ -284,14 +284,12 @@ export default function SocketDetails({ {requiresEnergy && }
{socketCategory.displayProperties.name}
-
- -
+
); diff --git a/src/app/loadout-builder/filter/ExoticPicker.tsx b/src/app/loadout-builder/filter/ExoticPicker.tsx index 24e811a3ff..6859c840f9 100644 --- a/src/app/loadout-builder/filter/ExoticPicker.tsx +++ b/src/app/loadout-builder/filter/ExoticPicker.tsx @@ -177,14 +177,12 @@ export default function ExoticPicker({ header={

{t('LB.ChooseAnExotic')}

-
- -
+
} onClose={onClose} diff --git a/src/app/loadout/plug-drawer/PlugDrawer.tsx b/src/app/loadout/plug-drawer/PlugDrawer.tsx index 8977f7ced5..ba3a88b3f2 100644 --- a/src/app/loadout/plug-drawer/PlugDrawer.tsx +++ b/src/app/loadout/plug-drawer/PlugDrawer.tsx @@ -11,7 +11,6 @@ import { produce } from 'immer'; import React, { useCallback, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import Sheet from '../../dim-ui/Sheet'; -import '../../item-picker/ItemPicker.scss'; import Footer from './Footer'; import PlugSection from './PlugSection'; import { PlugSelectionType, PlugSet } from './types'; @@ -206,25 +205,17 @@ export default function PlugDrawer({ const header = (

{title}

-
- -
+
); return ( - + {queryFilteredPlugSets.map((plugSet) => (