@burtson-labs/ui 0.13.1 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSES/DEPENDENCIES.txt +2745 -0
- package/LICENSES/Radix-MIT.txt +21 -0
- package/LICENSES/cmdk-MIT.txt +21 -0
- package/LICENSES/overrides/react-remove-scroll-bar.txt +26 -0
- package/LICENSES/shadcn-MIT.txt +21 -0
- package/README.md +20 -12
- package/THIRD_PARTY_NOTICES.md +15 -3
- package/dist/components/accordion.d.ts +4 -4
- package/dist/components/accordion.js +22 -18
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.d.ts +13 -11
- package/dist/components/alert-dialog.js +41 -31
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.d.ts +5 -3
- package/dist/components/alert.js +12 -7
- package/dist/components/alert.js.map +1 -1
- package/dist/components/app-shell.d.ts +7 -6
- package/dist/components/app-shell.js +22 -14
- package/dist/components/app-shell.js.map +1 -1
- package/dist/components/attachment.d.ts +3 -3
- package/dist/components/attachment.js +11 -7
- package/dist/components/attachment.js.map +1 -1
- package/dist/components/audio-player.d.ts +2 -2
- package/dist/components/audio-player.js +9 -6
- package/dist/components/audio-player.js.map +1 -1
- package/dist/components/avatar.d.ts +4 -4
- package/dist/components/avatar.js +16 -12
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/badge.js +15 -13
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumb.d.ts +8 -8
- package/dist/components/breadcrumb.js +27 -20
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.d.ts +9 -2
- package/dist/components/button.js +15 -6
- package/dist/components/button.js.map +1 -1
- package/dist/components/card.d.ts +9 -9
- package/dist/components/card.js +33 -23
- package/dist/components/card.js.map +1 -1
- package/dist/components/chat-history.d.ts +1 -1
- package/dist/components/chat-history.js +11 -9
- package/dist/components/chat-history.js.map +1 -1
- package/dist/components/chat-layout.d.ts +1 -1
- package/dist/components/chat-layout.js +8 -3
- package/dist/components/chat-layout.js.map +1 -1
- package/dist/components/checkbox-card.d.ts +3 -3
- package/dist/components/checkbox-card.js +12 -10
- package/dist/components/checkbox-card.js.map +1 -1
- package/dist/components/checkbox.d.ts +24 -3
- package/dist/components/checkbox.js +52 -9
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/collapsible.d.ts +3 -3
- package/dist/components/collapsible.js +14 -11
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/combobox.d.ts +14 -4
- package/dist/components/combobox.js +19 -8
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/command.d.ts +68 -12
- package/dist/components/command.js +48 -34
- package/dist/components/command.js.map +1 -1
- package/dist/components/composer.d.ts +2 -2
- package/dist/components/composer.js +10 -7
- package/dist/components/composer.js.map +1 -1
- package/dist/components/connection-status.d.ts +3 -3
- package/dist/components/connection-status.js +19 -14
- package/dist/components/connection-status.js.map +1 -1
- package/dist/components/context-menu.d.ts +15 -14
- package/dist/components/context-menu.js +52 -41
- package/dist/components/context-menu.js.map +1 -1
- package/dist/components/conversation.d.ts +1 -1
- package/dist/components/conversation.js +7 -5
- package/dist/components/conversation.js.map +1 -1
- package/dist/components/copy-button.d.ts +1 -1
- package/dist/components/copy-button.js +4 -2
- package/dist/components/copy-button.js.map +1 -1
- package/dist/components/data-table.d.ts +7 -2
- package/dist/components/data-table.js +17 -42
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/dialog.d.ts +19 -10
- package/dist/components/dialog.js +50 -33
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dropdown-menu.d.ts +15 -14
- package/dist/components/dropdown-menu.js +52 -41
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/editor-tabs.d.ts +1 -1
- package/dist/components/editor-tabs.js +7 -5
- package/dist/components/editor-tabs.js.map +1 -1
- package/dist/components/empty-state.d.ts +5 -5
- package/dist/components/empty-state.js +17 -11
- package/dist/components/empty-state.js.map +1 -1
- package/dist/components/error-summary.d.ts +21 -0
- package/dist/components/error-summary.js +62 -0
- package/dist/components/error-summary.js.map +1 -0
- package/dist/components/field.d.ts +66 -7
- package/dist/components/field.js +152 -20
- package/dist/components/field.js.map +1 -1
- package/dist/components/form-actions.d.ts +18 -0
- package/dist/components/form-actions.js +30 -0
- package/dist/components/form-actions.js.map +1 -0
- package/dist/components/icon-button.d.ts +3 -1
- package/dist/components/icon-button.js +6 -3
- package/dist/components/icon-button.js.map +1 -1
- package/dist/components/input.d.ts +42 -7
- package/dist/components/input.js +54 -10
- package/dist/components/input.js.map +1 -1
- package/dist/components/kbd.d.ts +2 -2
- package/dist/components/kbd.js +8 -5
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/label.d.ts +7 -2
- package/dist/components/label.js +14 -7
- package/dist/components/label.js.map +1 -1
- package/dist/components/markdown.d.ts +4 -3
- package/dist/components/markdown.js +8 -6
- package/dist/components/markdown.js.map +1 -1
- package/dist/components/menubar.d.ts +17 -15
- package/dist/components/menubar.js +58 -45
- package/dist/components/menubar.js.map +1 -1
- package/dist/components/message-actions.d.ts +3 -3
- package/dist/components/message-actions.js +16 -12
- package/dist/components/message-actions.js.map +1 -1
- package/dist/components/message.d.ts +1 -1
- package/dist/components/message.js +6 -3
- package/dist/components/message.js.map +1 -1
- package/dist/components/mobile-nav.d.ts +1 -1
- package/dist/components/mobile-nav.js +7 -5
- package/dist/components/mobile-nav.js.map +1 -1
- package/dist/components/native-select.d.ts +16 -0
- package/dist/components/native-select.js +33 -0
- package/dist/components/native-select.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +13 -12
- package/dist/components/navigation-menu.js +43 -33
- package/dist/components/navigation-menu.js.map +1 -1
- package/dist/components/number-input.d.ts +23 -0
- package/dist/components/number-input.js +45 -0
- package/dist/components/number-input.js.map +1 -0
- package/dist/components/onboarding-checklist.d.ts +1 -1
- package/dist/components/onboarding-checklist.js +5 -3
- package/dist/components/onboarding-checklist.js.map +1 -1
- package/dist/components/page-header.d.ts +7 -6
- package/dist/components/page-header.js +23 -15
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/pagination.d.ts +1 -1
- package/dist/components/pagination.js +4 -2
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/popover.d.ts +14 -11
- package/dist/components/popover.js +30 -23
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress.d.ts +2 -2
- package/dist/components/progress.js +11 -9
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.d.ts +23 -4
- package/dist/components/radio-group.js +56 -14
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/reasoning.d.ts +3 -3
- package/dist/components/reasoning.js +14 -11
- package/dist/components/reasoning.js.map +1 -1
- package/dist/components/resizable.js +1 -0
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scroll-area.d.ts +4 -3
- package/dist/components/scroll-area.js +18 -14
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/secret-input.d.ts +3 -2
- package/dist/components/secret-input.js +7 -4
- package/dist/components/secret-input.js.map +1 -1
- package/dist/components/select.d.ts +12 -7
- package/dist/components/select.js +42 -35
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.d.ts +2 -2
- package/dist/components/separator.js +8 -6
- package/dist/components/separator.js.map +1 -1
- package/dist/components/sheet.d.ts +11 -9
- package/dist/components/sheet.js +41 -29
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/skeleton.d.ts +2 -1
- package/dist/components/skeleton.js +7 -4
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.d.ts +10 -6
- package/dist/components/slider.js +16 -7
- package/dist/components/slider.js.map +1 -1
- package/dist/components/source.d.ts +2 -2
- package/dist/components/source.js +10 -7
- package/dist/components/source.js.map +1 -1
- package/dist/components/spinner.d.ts +4 -2
- package/dist/components/spinner.js +5 -3
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/stat-card.d.ts +27 -2
- package/dist/components/stat-card.js +70 -9
- package/dist/components/stat-card.js.map +1 -1
- package/dist/components/status.d.ts +7 -6
- package/dist/components/status.js +12 -5
- package/dist/components/status.js.map +1 -1
- package/dist/components/steps.d.ts +1 -1
- package/dist/components/steps.js +5 -3
- package/dist/components/steps.js.map +1 -1
- package/dist/components/switch.d.ts +47 -3
- package/dist/components/switch.js +89 -11
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.d.ts +29 -12
- package/dist/components/table.js +80 -34
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +10 -5
- package/dist/components/tabs.js +29 -19
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/textarea.d.ts +6 -1
- package/dist/components/textarea.js +4 -3
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/toast.d.ts +11 -7
- package/dist/components/toast.js +37 -27
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toaster.d.ts +4 -2
- package/dist/components/toaster.js +7 -2
- package/dist/components/toaster.js.map +1 -1
- package/dist/components/tool-call.d.ts +2 -2
- package/dist/components/tool-call.js +15 -12
- package/dist/components/tool-call.js.map +1 -1
- package/dist/components/toolbar.d.ts +9 -4
- package/dist/components/toolbar.js +15 -9
- package/dist/components/toolbar.js.map +1 -1
- package/dist/components/tooltip.d.ts +4 -3
- package/dist/components/tooltip.js +17 -13
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/tour.js +10 -8
- package/dist/components/tour.js.map +1 -1
- package/dist/components/tree-view.d.ts +1 -1
- package/dist/components/tree-view.js +10 -5
- package/dist/components/tree-view.js.map +1 -1
- package/dist/components/voice-recorder.d.ts +1 -1
- package/dist/components/voice-recorder.js +5 -2
- package/dist/components/voice-recorder.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +17 -12
- package/dist/lib/media.d.ts +18 -0
- package/dist/lib/media.js +34 -0
- package/dist/lib/media.js.map +1 -0
- package/dist/lib/utils.d.ts +32 -0
- package/dist/lib/utils.js +33 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/mui/index.js +20 -8
- package/dist/mui/index.js.map +1 -1
- package/dist/primitives/vendor/cmdk/command-score.d.ts +1 -0
- package/dist/primitives/vendor/cmdk/command-score.js +64 -0
- package/dist/primitives/vendor/cmdk/command-score.js.map +1 -0
- package/dist/primitives/vendor/cmdk/index.d.ts +384 -0
- package/dist/primitives/vendor/cmdk/index.js +687 -0
- package/dist/primitives/vendor/cmdk/index.js.map +1 -0
- package/dist/primitives/vendor/radix/number/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/number/number.d.ts +2 -0
- package/dist/primitives/vendor/radix/number/number.js +9 -0
- package/dist/primitives/vendor/radix/number/number.js.map +1 -0
- package/dist/primitives/vendor/radix/primitive/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/primitive/is-development.d.ts +1 -0
- package/dist/primitives/vendor/radix/primitive/is-development.js +7 -0
- package/dist/primitives/vendor/radix/primitive/is-development.js.map +1 -0
- package/dist/primitives/vendor/radix/primitive/primitive.d.ts +14 -0
- package/dist/primitives/vendor/radix/primitive/primitive.js +12 -0
- package/dist/primitives/vendor/radix/primitive/primitive.js.map +1 -0
- package/dist/primitives/vendor/radix/primitive/types.d.ts +5 -0
- package/dist/primitives/vendor/radix/react-accordion/accordion.d.ts +112 -0
- package/dist/primitives/vendor/radix/react-accordion/accordion.js +266 -0
- package/dist/primitives/vendor/radix/react-accordion/accordion.js.map +1 -0
- package/dist/primitives/vendor/radix/react-accordion/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-alert-dialog/alert-dialog.d.ts +49 -0
- package/dist/primitives/vendor/radix/react-alert-dialog/alert-dialog.js +122 -0
- package/dist/primitives/vendor/radix/react-alert-dialog/alert-dialog.js.map +1 -0
- package/dist/primitives/vendor/radix/react-alert-dialog/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-arrow/arrow.d.ts +9 -0
- package/dist/primitives/vendor/radix/react-arrow/arrow.js +22 -0
- package/dist/primitives/vendor/radix/react-arrow/arrow.js.map +1 -0
- package/dist/primitives/vendor/radix/react-arrow/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-avatar/avatar.d.ts +19 -0
- package/dist/primitives/vendor/radix/react-avatar/avatar.js +132 -0
- package/dist/primitives/vendor/radix/react-avatar/avatar.js.map +1 -0
- package/dist/primitives/vendor/radix/react-avatar/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-checkbox/checkbox.d.ts +47 -0
- package/dist/primitives/vendor/radix/react-checkbox/checkbox.js +197 -0
- package/dist/primitives/vendor/radix/react-checkbox/checkbox.js.map +1 -0
- package/dist/primitives/vendor/radix/react-checkbox/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-collapsible/collapsible.d.ts +31 -0
- package/dist/primitives/vendor/radix/react-collapsible/collapsible.js +133 -0
- package/dist/primitives/vendor/radix/react-collapsible/collapsible.js.map +1 -0
- package/dist/primitives/vendor/radix/react-collapsible/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-collection/collection-legacy.d.ts +21 -0
- package/dist/primitives/vendor/radix/react-collection/collection-legacy.js +84 -0
- package/dist/primitives/vendor/radix/react-collection/collection-legacy.js.map +1 -0
- package/dist/primitives/vendor/radix/react-collection/collection.d.ts +32 -0
- package/dist/primitives/vendor/radix/react-collection/index.d.ts +4 -0
- package/dist/primitives/vendor/radix/react-collection/ordered-dictionary.d.ts +51 -0
- package/dist/primitives/vendor/radix/react-compose-refs/compose-refs.d.ts +13 -0
- package/dist/primitives/vendor/radix/react-compose-refs/compose-refs.js +43 -0
- package/dist/primitives/vendor/radix/react-compose-refs/compose-refs.js.map +1 -0
- package/dist/primitives/vendor/radix/react-compose-refs/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-context/create-context.d.ts +45 -0
- package/dist/primitives/vendor/radix/react-context/create-context.js +74 -0
- package/dist/primitives/vendor/radix/react-context/create-context.js.map +1 -0
- package/dist/primitives/vendor/radix/react-context/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-context-menu/context-menu.d.ts +95 -0
- package/dist/primitives/vendor/radix/react-context-menu/context-menu.js +279 -0
- package/dist/primitives/vendor/radix/react-context-menu/context-menu.js.map +1 -0
- package/dist/primitives/vendor/radix/react-context-menu/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-dialog/dialog.d.ts +97 -0
- package/dist/primitives/vendor/radix/react-dialog/dialog.js +262 -0
- package/dist/primitives/vendor/radix/react-dialog/dialog.js.map +1 -0
- package/dist/primitives/vendor/radix/react-dialog/index.d.ts +4 -0
- package/dist/primitives/vendor/radix/react-direction/direction.d.ts +10 -0
- package/dist/primitives/vendor/radix/react-direction/direction.js +13 -0
- package/dist/primitives/vendor/radix/react-direction/direction.js.map +1 -0
- package/dist/primitives/vendor/radix/react-direction/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.d.ts +61 -0
- package/dist/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.js +336 -0
- package/dist/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.js.map +1 -0
- package/dist/primitives/vendor/radix/react-dismissable-layer/index.d.ts +4 -0
- package/dist/primitives/vendor/radix/react-dropdown-menu/dropdown-menu.d.ts +95 -0
- package/dist/primitives/vendor/radix/react-dropdown-menu/dropdown-menu.js +257 -0
- package/dist/primitives/vendor/radix/react-dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/primitives/vendor/radix/react-dropdown-menu/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-focus-guards/focus-guards.d.ts +11 -0
- package/dist/primitives/vendor/radix/react-focus-guards/focus-guards.js +49 -0
- package/dist/primitives/vendor/radix/react-focus-guards/focus-guards.js.map +1 -0
- package/dist/primitives/vendor/radix/react-focus-guards/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-focus-scope/focus-scope.d.ts +31 -0
- package/dist/primitives/vendor/radix/react-focus-scope/focus-scope.js +221 -0
- package/dist/primitives/vendor/radix/react-focus-scope/focus-scope.js.map +1 -0
- package/dist/primitives/vendor/radix/react-focus-scope/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-id/id.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-id/id.js +17 -0
- package/dist/primitives/vendor/radix/react-id/id.js.map +1 -0
- package/dist/primitives/vendor/radix/react-id/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-label/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-label/label.d.ts +9 -0
- package/dist/primitives/vendor/radix/react-label/label.js +21 -0
- package/dist/primitives/vendor/radix/react-label/label.js.map +1 -0
- package/dist/primitives/vendor/radix/react-menu/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-menu/menu.d.ts +173 -0
- package/dist/primitives/vendor/radix/react-menu/menu.js +806 -0
- package/dist/primitives/vendor/radix/react-menu/menu.js.map +1 -0
- package/dist/primitives/vendor/radix/react-menubar/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-menubar/menubar.d.ts +106 -0
- package/dist/primitives/vendor/radix/react-menubar/menubar.js +377 -0
- package/dist/primitives/vendor/radix/react-menubar/menubar.js.map +1 -0
- package/dist/primitives/vendor/radix/react-navigation-menu/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-navigation-menu/navigation-menu.d.ts +124 -0
- package/dist/primitives/vendor/radix/react-navigation-menu/navigation-menu.js +743 -0
- package/dist/primitives/vendor/radix/react-navigation-menu/navigation-menu.js.map +1 -0
- package/dist/primitives/vendor/radix/react-popover/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-popover/popover.d.ts +83 -0
- package/dist/primitives/vendor/radix/react-popover/popover.js +236 -0
- package/dist/primitives/vendor/radix/react-popover/popover.js.map +1 -0
- package/dist/primitives/vendor/radix/react-popper/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-popper/popper.d.ts +44 -0
- package/dist/primitives/vendor/radix/react-popper/popper.js +276 -0
- package/dist/primitives/vendor/radix/react-popper/popper.js.map +1 -0
- package/dist/primitives/vendor/radix/react-portal/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-portal/portal.d.ts +13 -0
- package/dist/primitives/vendor/radix/react-portal/portal.js +21 -0
- package/dist/primitives/vendor/radix/react-portal/portal.js.map +1 -0
- package/dist/primitives/vendor/radix/react-presence/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-presence/presence.d.ts +11 -0
- package/dist/primitives/vendor/radix/react-presence/presence.js +152 -0
- package/dist/primitives/vendor/radix/react-presence/presence.js.map +1 -0
- package/dist/primitives/vendor/radix/react-presence/use-state-machine.d.ts +10 -0
- package/dist/primitives/vendor/radix/react-presence/use-state-machine.js +12 -0
- package/dist/primitives/vendor/radix/react-presence/use-state-machine.js.map +1 -0
- package/dist/primitives/vendor/radix/react-primitive/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-primitive/primitive.d.ts +56 -0
- package/dist/primitives/vendor/radix/react-primitive/primitive.js +84 -0
- package/dist/primitives/vendor/radix/react-primitive/primitive.js.map +1 -0
- package/dist/primitives/vendor/radix/react-progress/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-progress/progress.d.ts +17 -0
- package/dist/primitives/vendor/radix/react-progress/progress.js +79 -0
- package/dist/primitives/vendor/radix/react-progress/progress.js.map +1 -0
- package/dist/primitives/vendor/radix/react-radio-group/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-radio-group/radio-group.d.ts +55 -0
- package/dist/primitives/vendor/radix/react-radio-group/radio-group.js +173 -0
- package/dist/primitives/vendor/radix/react-radio-group/radio-group.js.map +1 -0
- package/dist/primitives/vendor/radix/react-radio-group/radio.d.ts +62 -0
- package/dist/primitives/vendor/radix/react-radio-group/radio.js +150 -0
- package/dist/primitives/vendor/radix/react-radio-group/radio.js.map +1 -0
- package/dist/primitives/vendor/radix/react-roving-focus/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-roving-focus/roving-focus-group.d.ts +47 -0
- package/dist/primitives/vendor/radix/react-roving-focus/roving-focus-group.js +218 -0
- package/dist/primitives/vendor/radix/react-roving-focus/roving-focus-group.js.map +1 -0
- package/dist/primitives/vendor/radix/react-scroll-area/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-scroll-area/scroll-area.d.ts +121 -0
- package/dist/primitives/vendor/radix/react-scroll-area/scroll-area.js +713 -0
- package/dist/primitives/vendor/radix/react-scroll-area/scroll-area.js.map +1 -0
- package/dist/primitives/vendor/radix/react-scroll-area/use-state-machine.d.ts +10 -0
- package/dist/primitives/vendor/radix/react-scroll-area/use-state-machine.js +12 -0
- package/dist/primitives/vendor/radix/react-scroll-area/use-state-machine.js.map +1 -0
- package/dist/primitives/vendor/radix/react-select/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-select/select.d.ts +163 -0
- package/dist/primitives/vendor/radix/react-select/select.js +1040 -0
- package/dist/primitives/vendor/radix/react-select/select.js.map +1 -0
- package/dist/primitives/vendor/radix/react-separator/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-separator/separator.d.ts +20 -0
- package/dist/primitives/vendor/radix/react-separator/separator.js +29 -0
- package/dist/primitives/vendor/radix/react-separator/separator.js.map +1 -0
- package/dist/primitives/vendor/radix/react-slot/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-slot/slot.d.ts +29 -0
- package/dist/primitives/vendor/radix/react-slot/slot.js +107 -0
- package/dist/primitives/vendor/radix/react-slot/slot.js.map +1 -0
- package/dist/primitives/vendor/radix/react-switch/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-switch/switch.d.ts +41 -0
- package/dist/primitives/vendor/radix/react-switch/switch.js +185 -0
- package/dist/primitives/vendor/radix/react-switch/switch.js.map +1 -0
- package/dist/primitives/vendor/radix/react-tabs/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-tabs/tabs.d.ts +54 -0
- package/dist/primitives/vendor/radix/react-tabs/tabs.js +145 -0
- package/dist/primitives/vendor/radix/react-tabs/tabs.js.map +1 -0
- package/dist/primitives/vendor/radix/react-toast/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-toast/toast.d.ts +125 -0
- package/dist/primitives/vendor/radix/react-toast/toast.js +557 -0
- package/dist/primitives/vendor/radix/react-toast/toast.js.map +1 -0
- package/dist/primitives/vendor/radix/react-tooltip/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-tooltip/tooltip.d.ts +99 -0
- package/dist/primitives/vendor/radix/react-tooltip/tooltip.js +503 -0
- package/dist/primitives/vendor/radix/react-tooltip/tooltip.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-callback-ref/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-callback-ref/use-callback-ref.d.ts +6 -0
- package/dist/primitives/vendor/radix/react-use-callback-ref/use-callback-ref.js +18 -0
- package/dist/primitives/vendor/radix/react-use-callback-ref/use-callback-ref.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-controllable-state/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state-reducer.d.ts +28 -0
- package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state.d.ts +11 -0
- package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state.js +59 -0
- package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-effect-event/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-effect-event/use-effect-event.d.ts +7 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated-legacy.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated-legacy.js +18 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated-legacy.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated.d.ts +6 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated.js +19 -0
- package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-layout-effect/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-layout-effect/use-layout-effect.d.ts +10 -0
- package/dist/primitives/vendor/radix/react-use-layout-effect/use-layout-effect.js +15 -0
- package/dist/primitives/vendor/radix/react-use-layout-effect/use-layout-effect.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-previous/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-previous/use-previous.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-use-previous/use-previous.js +20 -0
- package/dist/primitives/vendor/radix/react-use-previous/use-previous.js.map +1 -0
- package/dist/primitives/vendor/radix/react-use-size/index.d.ts +1 -0
- package/dist/primitives/vendor/radix/react-use-size/use-size.d.ts +5 -0
- package/dist/primitives/vendor/radix/react-use-size/use-size.js +42 -0
- package/dist/primitives/vendor/radix/react-use-size/use-size.js.map +1 -0
- package/dist/primitives/vendor/radix/react-visually-hidden/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/react-visually-hidden/visually-hidden.d.ts +21 -0
- package/dist/primitives/vendor/radix/react-visually-hidden/visually-hidden.js +32 -0
- package/dist/primitives/vendor/radix/react-visually-hidden/visually-hidden.js.map +1 -0
- package/dist/primitives/vendor/radix/rect/index.d.ts +2 -0
- package/dist/primitives/vendor/radix/rect/observe-element-rect.d.ts +16 -0
- package/dist/styles.css +1 -1
- package/dist/theme.css +36 -17
- package/dist/tokens.d.ts +78 -36
- package/dist/tokens.js +63 -32
- package/dist/tokens.js.map +1 -1
- package/package.json +25 -13
- package/vendor-manifest.json +1101 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["RadixDialog.Root","RadixDialog.Portal","RadixDialog.Overlay","RadixDialog.Content"],"sources":["../../../../src/primitives/vendor/cmdk/index.tsx"],"sourcesContent":["// Vendored from cmdk (c) 2022 Paco Coursey, MIT. See vendor/LICENSE.cmdk.\n// Local modification: Radix imports resolve to the pinned local source.\n'use client'\n\nimport * as RadixDialog from '../radix/react-dialog'\nimport * as React from 'react'\nimport { commandScore } from './command-score'\nimport { Primitive } from '../radix/react-primitive'\nimport { useId } from '../radix/react-id'\nimport { composeRefs } from '../radix/react-compose-refs'\n\ntype Children = { children?: React.ReactNode }\ntype DivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>\n\ntype LoadingProps = Children &\n DivProps & {\n /** Estimated progress of loading asynchronous options. */\n progress?: number\n /**\n * Accessible label for this loading progressbar. Not shown visibly.\n */\n label?: string\n }\n\ntype EmptyProps = Children & DivProps & {}\ntype SeparatorProps = DivProps & {\n /** Whether this separator should always be rendered. Useful if you disable automatic filtering. */\n alwaysRender?: boolean\n}\ntype DialogProps = RadixDialog.DialogProps &\n CommandProps & {\n /** Provide a className to the Dialog overlay. */\n overlayClassName?: string\n /** Provide a className to the Dialog content. */\n contentClassName?: string\n /** Provide a custom element the Dialog should portal into. */\n container?: HTMLElement\n }\ntype ListProps = Children &\n DivProps & {\n /**\n * Accessible label for this List of suggestions. Not shown visibly.\n */\n label?: string\n }\ntype ItemProps = Children &\n Omit<DivProps, 'disabled' | 'onSelect' | 'value'> & {\n /** Whether this item is currently disabled. */\n disabled?: boolean\n /** Event handler for when this item is selected, either via click or keyboard selection. */\n onSelect?: (value: string) => void\n /**\n * A unique value for this item.\n * If no value is provided, it will be inferred from `children` or the rendered `textContent`. If your `textContent` changes between renders, you _must_ provide a stable, unique `value`.\n */\n value?: string\n /** Optional keywords to match against when filtering. */\n keywords?: string[]\n /** Whether this item is forcibly rendered regardless of filtering. */\n forceMount?: boolean\n }\ntype GroupProps = Children &\n Omit<DivProps, 'heading' | 'value'> & {\n /** Optional heading to render for this group. */\n heading?: React.ReactNode\n /** If no heading is provided, you must provide a value that is unique for this group. */\n value?: string\n /** Whether this group is forcibly rendered regardless of filtering. */\n forceMount?: boolean\n }\ntype InputProps = Omit<React.ComponentPropsWithoutRef<typeof Primitive.input>, 'value' | 'onChange' | 'type'> & {\n /**\n * Optional controlled state for the value of the search input.\n */\n value?: string\n /**\n * Event handler called when the search value changes.\n */\n onValueChange?: (search: string) => void\n}\ntype CommandFilter = (value: string, search: string, keywords?: string[]) => number\ntype CommandProps = Children &\n DivProps & {\n /**\n * Accessible label for this command menu. Not shown visibly.\n */\n label?: string\n /**\n * Optionally set to `false` to turn off the automatic filtering and sorting.\n * If `false`, you must conditionally render valid items based on the search query yourself.\n */\n shouldFilter?: boolean\n /**\n * Custom filter function for whether each command menu item should matches the given search query.\n * It should return a number between 0 and 1, with 1 being the best match and 0 being hidden entirely.\n * By default, uses the `command-score` library.\n */\n filter?: CommandFilter\n /**\n * Optional default item value when it is initially rendered.\n */\n defaultValue?: string\n /**\n * Optional controlled state of the selected command menu item.\n */\n value?: string\n /**\n * Event handler called when the selected item of the menu changes.\n */\n onValueChange?: (value: string) => void\n /**\n * Optionally set to `true` to turn on looping around when using the arrow keys.\n */\n loop?: boolean\n /**\n * Optionally set to `true` to disable selection via pointer events.\n */\n disablePointerSelection?: boolean\n /**\n * Set to `false` to disable ctrl+n/j/p/k shortcuts. Defaults to `true`.\n */\n vimBindings?: boolean\n }\n\ntype Context = {\n value: (id: string, value: string, keywords?: string[]) => void\n item: (id: string, groupId: string) => () => void\n group: (id: string) => () => void\n filter: () => boolean | undefined\n label: string | undefined\n getDisablePointerSelection: () => boolean | undefined\n // Ids\n listId: string\n labelId: string\n inputId: string\n // Refs\n listInnerRef: React.RefObject<HTMLDivElement | null>\n}\ntype State = {\n search: string\n value: string\n selectedItemId?: string\n filtered: { count: number; items: Map<string, number>; groups: Set<string> }\n}\ntype Store = {\n subscribe: (callback: () => void) => () => void\n snapshot: () => State\n setState: <K extends keyof State>(key: K, value: State[K], opts?: any) => void\n emit: () => void\n}\ntype Group = {\n id: string\n forceMount?: boolean\n}\n\nconst GROUP_SELECTOR = `[cmdk-group=\"\"]`\nconst GROUP_ITEMS_SELECTOR = `[cmdk-group-items=\"\"]`\nconst GROUP_HEADING_SELECTOR = `[cmdk-group-heading=\"\"]`\nconst ITEM_SELECTOR = `[cmdk-item=\"\"]`\nconst VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled=\"true\"])`\nconst SELECT_EVENT = `cmdk-item-select`\nconst VALUE_ATTR = `data-value`\nconst defaultFilter: CommandFilter = (value, search, keywords) => commandScore(value, search, keywords)\n\nconst CommandContext = React.createContext<Context>(undefined!)\nconst useCommand = () => React.useContext(CommandContext)\nconst StoreContext = React.createContext<Store>(undefined!)\nconst useStore = () => React.useContext(StoreContext)\nconst GroupContext = React.createContext<Group>(undefined!)\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, forwardedRef) => {\n const state = useLazyRef<State>(() => ({\n /** Value of the search query. */\n search: '',\n /** Currently selected item value. */\n value: props.value ?? props.defaultValue ?? '',\n /** Currently selected item id. */\n selectedItemId: undefined,\n filtered: {\n /** The count of all visible items. */\n count: 0,\n /** Map from visible item id to its search score. */\n items: new Map(),\n /** Set of groups with at least one visible item. */\n groups: new Set(),\n },\n }))\n const allItems = useLazyRef<Set<string>>(() => new Set()) // [...itemIds]\n const allGroups = useLazyRef<Map<string, Set<string>>>(() => new Map()) // groupId → [...itemIds]\n const ids = useLazyRef<Map<string, { value: string; keywords?: string[] }>>(() => new Map()) // id → { value, keywords }\n const listeners = useLazyRef<Set<() => void>>(() => new Set()) // [...rerenders]\n const propsRef = useAsRef(props)\n const {\n label,\n children,\n value,\n onValueChange,\n filter,\n shouldFilter,\n loop,\n disablePointerSelection = false,\n vimBindings = true,\n ...etc\n } = props\n\n const listId = useId()\n const labelId = useId()\n const inputId = useId()\n\n const listInnerRef = React.useRef<HTMLDivElement>(null)\n\n const schedule = useScheduleLayoutEffect()\n\n /** Controlled mode `value` handling. */\n useLayoutEffect(() => {\n if (value !== undefined) {\n const v = value.trim()\n state.current.value = v\n store.emit()\n }\n }, [value])\n\n useLayoutEffect(() => {\n schedule(6, scrollSelectedIntoView)\n }, [])\n\n const store: Store = React.useMemo(() => {\n return {\n subscribe: (cb) => {\n listeners.current.add(cb)\n return () => listeners.current.delete(cb)\n },\n snapshot: () => {\n return state.current\n },\n setState: (key, value, opts) => {\n if (Object.is(state.current[key], value)) return\n state.current[key] = value\n\n if (key === 'search') {\n // Filter synchronously before emitting back to children\n filterItems()\n sort()\n schedule(1, selectFirstItem)\n } else if (key === 'value') {\n // Force focus input or root so accessibility works\n if (document.activeElement?.hasAttribute('cmdk-input') || document.activeElement?.hasAttribute('cmdk-root')) {\n const input = document.getElementById(inputId)\n if (input) input.focus()\n else document.getElementById(listId)?.focus()\n }\n\n schedule(7, () => {\n state.current.selectedItemId = getSelectedItem()?.id\n store.emit()\n })\n\n // opts is a boolean referring to whether it should NOT be scrolled into view\n if (!opts) {\n // Scroll the selected item into view\n schedule(5, scrollSelectedIntoView)\n }\n if (propsRef.current?.value !== undefined) {\n // If controlled, just call the callback instead of updating state internally\n const newValue = (value ?? '') as string\n propsRef.current.onValueChange?.(newValue)\n return\n }\n }\n\n // Notify subscribers that state has changed\n store.emit()\n },\n emit: () => {\n listeners.current.forEach((l) => l())\n },\n }\n }, [])\n\n const context: Context = React.useMemo(\n () => ({\n // Keep id → {value, keywords} mapping up-to-date\n value: (id, value, keywords) => {\n if (value !== ids.current.get(id)?.value) {\n ids.current.set(id, { value, keywords })\n state.current.filtered.items.set(id, score(value, keywords))\n schedule(2, () => {\n sort()\n store.emit()\n })\n }\n },\n // Track item lifecycle (mount, unmount)\n item: (id, groupId) => {\n allItems.current.add(id)\n\n // Track this item within the group\n if (groupId) {\n if (!allGroups.current.has(groupId)) {\n allGroups.current.set(groupId, new Set([id]))\n } else {\n allGroups.current.get(groupId)!.add(id)\n }\n }\n\n // Batch this, multiple items can mount in one pass\n // and we should not be filtering/sorting/emitting each time\n schedule(3, () => {\n filterItems()\n sort()\n\n // Could be initial mount, select the first item if none already selected\n if (!state.current.value) {\n selectFirstItem()\n }\n\n store.emit()\n })\n\n return () => {\n ids.current.delete(id)\n allItems.current.delete(id)\n state.current.filtered.items.delete(id)\n const selectedItem = getSelectedItem()\n\n // Batch this, multiple items could be removed in one pass\n schedule(4, () => {\n filterItems()\n\n // The item removed have been the selected one,\n // so selection should be moved to the first\n if (selectedItem?.getAttribute('id') === id) selectFirstItem()\n\n store.emit()\n })\n }\n },\n // Track group lifecycle (mount, unmount)\n group: (id) => {\n if (!allGroups.current.has(id)) {\n allGroups.current.set(id, new Set())\n }\n\n return () => {\n ids.current.delete(id)\n allGroups.current.delete(id)\n }\n },\n filter: () => {\n return propsRef.current.shouldFilter\n },\n label: label || props['aria-label'],\n getDisablePointerSelection: () => {\n return propsRef.current.disablePointerSelection\n },\n listId,\n inputId,\n labelId,\n listInnerRef,\n }),\n [],\n )\n\n function score(value: string, keywords?: string[]) {\n const filter = propsRef.current?.filter ?? defaultFilter\n return value ? filter(value, state.current.search, keywords) : 0\n }\n\n /** Sorts items by score, and groups by highest item score. */\n function sort() {\n if (\n !state.current.search ||\n // Explicitly false, because true | undefined is the default\n propsRef.current.shouldFilter === false\n ) {\n return\n }\n\n const scores = state.current.filtered.items\n\n // Sort the groups\n const groups: [string, number][] = []\n state.current.filtered.groups.forEach((value) => {\n const items = allGroups.current.get(value)\n\n // Get the maximum score of the group's items\n let max = 0\n items?.forEach((item) => {\n const score = scores.get(item)\n max = Math.max(score ?? 0, max)\n })\n\n groups.push([value, max])\n })\n\n // Sort items within groups to bottom\n // Sort items outside of groups\n // Sort groups to bottom (pushes all non-grouped items to the top)\n const listInsertionElement = listInnerRef.current\n\n // Sort the items\n getValidItems()\n .sort((a, b) => {\n const valueA = a.getAttribute('id')!\n const valueB = b.getAttribute('id')!\n return (scores.get(valueB) ?? 0) - (scores.get(valueA) ?? 0)\n })\n .forEach((item) => {\n const group = item.closest(GROUP_ITEMS_SELECTOR)\n\n if (group) {\n group.appendChild(item.parentElement === group ? item : item.closest(`${GROUP_ITEMS_SELECTOR} > *`)!)\n } else {\n listInsertionElement!.appendChild(\n item.parentElement === listInsertionElement ? item : item.closest(`${GROUP_ITEMS_SELECTOR} > *`)!,\n )\n }\n })\n\n groups\n .sort((a, b) => b[1] - a[1])\n .forEach((group) => {\n const element = listInnerRef.current?.querySelector(\n `${GROUP_SELECTOR}[${VALUE_ATTR}=\"${encodeURIComponent(group[0])}\"]`,\n )\n element?.parentElement?.appendChild(element)\n })\n }\n\n function selectFirstItem() {\n const item = getValidItems().find((item) => item.getAttribute('aria-disabled') !== 'true')\n const value = item?.getAttribute(VALUE_ATTR)\n store.setState('value', (value || undefined)!)\n }\n\n /** Filters the current items. */\n function filterItems() {\n if (\n !state.current.search ||\n // Explicitly false, because true | undefined is the default\n propsRef.current.shouldFilter === false\n ) {\n state.current.filtered.count = allItems.current.size\n // Do nothing, each item will know to show itself because search is empty\n return\n }\n\n // Reset the groups\n state.current.filtered.groups = new Set()\n let itemCount = 0\n\n // Check which items should be included\n for (const id of allItems.current) {\n const value = ids.current.get(id)?.value ?? ''\n const keywords = ids.current.get(id)?.keywords ?? []\n const rank = score(value, keywords)\n state.current.filtered.items.set(id, rank)\n if (rank > 0) itemCount++\n }\n\n // Check which groups have at least 1 item shown\n for (const [groupId, group] of allGroups.current) {\n for (const itemId of group) {\n if ((state.current.filtered.items.get(itemId) ?? 0) > 0) {\n state.current.filtered.groups.add(groupId)\n break\n }\n }\n }\n\n state.current.filtered.count = itemCount\n }\n\n function scrollSelectedIntoView() {\n const item = getSelectedItem()\n\n if (item) {\n if (item.parentElement?.firstChild === item) {\n // First item in Group, ensure heading is in view\n item.closest(GROUP_SELECTOR)?.querySelector(GROUP_HEADING_SELECTOR)?.scrollIntoView({ block: 'nearest' })\n }\n\n // Ensure the item is always in view\n item.scrollIntoView({ block: 'nearest' })\n }\n }\n\n /** Getters */\n\n function getSelectedItem() {\n return listInnerRef.current?.querySelector(`${ITEM_SELECTOR}[aria-selected=\"true\"]`)\n }\n\n function getValidItems() {\n return Array.from(listInnerRef.current?.querySelectorAll(VALID_ITEM_SELECTOR) || [])\n }\n\n /** Setters */\n\n function updateSelectedToIndex(index: number) {\n const items = getValidItems()\n const item = items[index]\n if (item) store.setState('value', item.getAttribute(VALUE_ATTR)!)\n }\n\n function updateSelectedByItem(change: 1 | -1) {\n const selected = getSelectedItem()\n const items = getValidItems()\n const index = items.findIndex((item) => item === selected)\n\n // Get item at this index\n let newSelected = items[index + change]\n\n if (propsRef.current?.loop) {\n newSelected =\n index + change < 0\n ? items[items.length - 1]\n : index + change === items.length\n ? items[0]\n : items[index + change]\n }\n\n if (newSelected) store.setState('value', newSelected.getAttribute(VALUE_ATTR)!)\n }\n\n function updateSelectedByGroup(change: 1 | -1) {\n const selected = getSelectedItem()\n let group = selected?.closest(GROUP_SELECTOR)\n let item: HTMLElement | null | undefined\n\n while (group && !item) {\n group = change > 0 ? findNextSibling(group, GROUP_SELECTOR) : findPreviousSibling(group, GROUP_SELECTOR)\n item = group?.querySelector(VALID_ITEM_SELECTOR)\n }\n\n if (item) {\n store.setState('value', item.getAttribute(VALUE_ATTR)!)\n } else {\n updateSelectedByItem(change)\n }\n }\n\n const last = () => updateSelectedToIndex(getValidItems().length - 1)\n\n const next = (e: React.KeyboardEvent) => {\n e.preventDefault()\n\n if (e.metaKey) {\n // Last item\n last()\n } else if (e.altKey) {\n // Next group\n updateSelectedByGroup(1)\n } else {\n // Next item\n updateSelectedByItem(1)\n }\n }\n\n const prev = (e: React.KeyboardEvent) => {\n e.preventDefault()\n\n if (e.metaKey) {\n // First item\n updateSelectedToIndex(0)\n } else if (e.altKey) {\n // Previous group\n updateSelectedByGroup(-1)\n } else {\n // Previous item\n updateSelectedByItem(-1)\n }\n }\n\n return (\n <Primitive.div\n ref={forwardedRef}\n tabIndex={-1}\n {...etc}\n cmdk-root=\"\"\n onKeyDown={(e) => {\n etc.onKeyDown?.(e)\n\n // Check if IME composition is finished before triggering key binds\n // This prevents unwanted triggering while user is still inputting text with IME\n // e.keyCode === 229 is for the CJK IME with Legacy Browser [https://w3c.github.io/uievents/#determine-keydown-keyup-keyCode]\n // isComposing is for the CJK IME with Modern Browser [https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent/isComposing]\n const isComposing = e.nativeEvent.isComposing || e.keyCode === 229\n\n if (e.defaultPrevented || isComposing) {\n return\n }\n\n switch (e.key) {\n case 'n':\n case 'j': {\n // vim keybind down\n if (vimBindings && e.ctrlKey) {\n next(e)\n }\n break\n }\n case 'ArrowDown': {\n next(e)\n break\n }\n case 'p':\n case 'k': {\n // vim keybind up\n if (vimBindings && e.ctrlKey) {\n prev(e)\n }\n break\n }\n case 'ArrowUp': {\n prev(e)\n break\n }\n case 'Home': {\n // First item\n e.preventDefault()\n updateSelectedToIndex(0)\n break\n }\n case 'End': {\n // Last item\n e.preventDefault()\n last()\n break\n }\n case 'Enter': {\n // Trigger item onSelect\n e.preventDefault()\n const item = getSelectedItem()\n if (item) {\n const event = new Event(SELECT_EVENT)\n item.dispatchEvent(event)\n }\n }\n }\n }}\n >\n <label\n cmdk-label=\"\"\n htmlFor={context.inputId}\n id={context.labelId}\n // Screen reader only\n style={srOnlyStyles}\n >\n {label}\n </label>\n {SlottableWithNestedChildren(props, (child) => (\n <StoreContext.Provider value={store}>\n <CommandContext.Provider value={context}>{child}</CommandContext.Provider>\n </StoreContext.Provider>\n ))}\n </Primitive.div>\n )\n})\n\n/**\n * Command menu item. Becomes active on pointer enter or through keyboard navigation.\n * Preferably pass a `value`, otherwise the value will be inferred from `children` or\n * the rendered item's `textContent`.\n */\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>((props, forwardedRef) => {\n const id = useId()\n const ref = React.useRef<HTMLDivElement>(null)\n const groupContext = React.useContext(GroupContext)\n const context = useCommand()\n const propsRef = useAsRef(props)\n const forceMount = propsRef.current?.forceMount ?? groupContext?.forceMount\n\n useLayoutEffect(() => {\n if (!forceMount) {\n return context.item(id, groupContext?.id)\n }\n }, [forceMount])\n\n const value = useValue(id, ref, [props.value, props.children, ref], props.keywords)\n\n const store = useStore()\n const selected = useCmdk((state) => state.value && state.value === value.current)\n const render = useCmdk((state) =>\n forceMount ? true : context.filter() === false ? true : !state.search ? true : (state.filtered.items.get(id) ?? 0) > 0,\n )\n\n React.useEffect(() => {\n const element = ref.current\n if (!element || props.disabled) return\n element.addEventListener(SELECT_EVENT, onSelect)\n return () => element.removeEventListener(SELECT_EVENT, onSelect)\n }, [render, props.onSelect, props.disabled])\n\n function onSelect() {\n select()\n propsRef.current.onSelect?.(value.current!)\n }\n\n function select() {\n store.setState('value', value.current!, true)\n }\n\n if (!render) return null\n\n const { disabled, value: _, onSelect: __, forceMount: ___, keywords: ____, ...etc } = props\n\n return (\n <Primitive.div\n ref={composeRefs(ref, forwardedRef)}\n {...etc}\n id={id}\n cmdk-item=\"\"\n role=\"option\"\n aria-disabled={Boolean(disabled)}\n aria-selected={Boolean(selected)}\n data-disabled={Boolean(disabled)}\n data-selected={Boolean(selected)}\n onPointerMove={disabled || context.getDisablePointerSelection() ? undefined : select}\n onClick={disabled ? undefined : onSelect}\n >\n {props.children}\n </Primitive.div>\n )\n})\n\n/**\n * Group command menu items together with a heading.\n * Grouped items are always shown together.\n */\nconst Group = React.forwardRef<HTMLDivElement, GroupProps>((props, forwardedRef) => {\n const { heading, children, forceMount, ...etc } = props\n const id = useId()\n const ref = React.useRef<HTMLDivElement>(null)\n const headingRef = React.useRef<HTMLDivElement>(null)\n const headingId = useId()\n const context = useCommand()\n const render = useCmdk((state) =>\n forceMount ? true : context.filter() === false ? true : !state.search ? true : state.filtered.groups.has(id),\n )\n\n useLayoutEffect(() => {\n return context.group(id)\n }, [])\n\n useValue(id, ref, [props.value, props.heading, headingRef])\n\n const contextValue = React.useMemo(() => ({ id, forceMount }), [forceMount])\n\n return (\n <Primitive.div\n ref={composeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-group=\"\"\n role=\"presentation\"\n hidden={render ? undefined : true}\n >\n {heading && (\n <div ref={headingRef} cmdk-group-heading=\"\" aria-hidden id={headingId}>\n {heading}\n </div>\n )}\n {SlottableWithNestedChildren(props, (child) => (\n <div cmdk-group-items=\"\" role=\"group\" aria-labelledby={heading ? headingId : undefined}>\n <GroupContext.Provider value={contextValue}>{child}</GroupContext.Provider>\n </div>\n ))}\n </Primitive.div>\n )\n})\n\n/**\n * A visual and semantic separator between items or groups.\n * Visible when the search query is empty or `alwaysRender` is true, hidden otherwise.\n */\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>((props, forwardedRef) => {\n const { alwaysRender, ...etc } = props\n const ref = React.useRef<HTMLDivElement>(null)\n const render = useCmdk((state) => !state.search)\n\n if (!alwaysRender && !render) return null\n return <Primitive.div ref={composeRefs(ref, forwardedRef)} {...etc} cmdk-separator=\"\" role=\"separator\" />\n})\n\n/**\n * Command menu input.\n * All props are forwarded to the underyling `input` element.\n */\nconst Input = React.forwardRef<HTMLInputElement, InputProps>((props, forwardedRef) => {\n const { onValueChange, ...etc } = props\n const isControlled = props.value != null\n const store = useStore()\n const search = useCmdk((state) => state.search)\n const selectedItemId = useCmdk((state) => state.selectedItemId)\n const context = useCommand()\n\n React.useEffect(() => {\n if (props.value != null) {\n store.setState('search', props.value)\n }\n }, [props.value])\n\n return (\n <Primitive.input\n ref={forwardedRef}\n {...etc}\n cmdk-input=\"\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n role=\"combobox\"\n aria-expanded={true}\n aria-controls={context.listId}\n aria-labelledby={context.labelId}\n aria-activedescendant={selectedItemId}\n id={context.inputId}\n type=\"text\"\n value={isControlled ? props.value : search}\n onChange={(e) => {\n if (!isControlled) {\n store.setState('search', e.target.value)\n }\n\n onValueChange?.(e.target.value)\n }}\n />\n )\n})\n\n/**\n * Contains `Item`, `Group`, and `Separator`.\n * Use the `--cmdk-list-height` CSS variable to animate height based on the number of results.\n */\nconst List = React.forwardRef<HTMLDivElement, ListProps>((props, forwardedRef) => {\n const { children, label = 'Suggestions', ...etc } = props\n const ref = React.useRef<HTMLDivElement>(null)\n const height = React.useRef<HTMLDivElement>(null)\n const selectedItemId = useCmdk((state) => state.selectedItemId)\n const context = useCommand()\n\n React.useEffect(() => {\n if (height.current && ref.current) {\n const el = height.current\n const wrapper = ref.current\n let animationFrame: number = 0\n const observer = new ResizeObserver(() => {\n animationFrame = requestAnimationFrame(() => {\n const height = el.offsetHeight\n wrapper.style.setProperty(`--cmdk-list-height`, height.toFixed(1) + 'px')\n })\n })\n observer.observe(el)\n return () => {\n cancelAnimationFrame(animationFrame)\n observer.unobserve(el)\n }\n }\n }, [])\n\n return (\n <Primitive.div\n ref={composeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-list=\"\"\n role=\"listbox\"\n tabIndex={-1}\n aria-activedescendant={selectedItemId}\n aria-label={label}\n id={context.listId}\n >\n {SlottableWithNestedChildren(props, (child) => (\n <div ref={composeRefs(height, context.listInnerRef)} cmdk-list-sizer=\"\">\n {child}\n </div>\n ))}\n </Primitive.div>\n )\n})\n\n/**\n * Renders the command menu in a Radix Dialog.\n */\nconst Dialog = React.forwardRef<HTMLDivElement, DialogProps>((props, forwardedRef) => {\n const { open, onOpenChange, overlayClassName, contentClassName, container, ...etc } = props\n return (\n <RadixDialog.Root open={open} onOpenChange={onOpenChange}>\n <RadixDialog.Portal container={container}>\n <RadixDialog.Overlay cmdk-overlay=\"\" className={overlayClassName} />\n <RadixDialog.Content aria-label={props.label} cmdk-dialog=\"\" className={contentClassName}>\n <Command ref={forwardedRef} {...etc} />\n </RadixDialog.Content>\n </RadixDialog.Portal>\n </RadixDialog.Root>\n )\n})\n\n/**\n * Automatically renders when there are no results for the search query.\n */\nconst Empty = React.forwardRef<HTMLDivElement, EmptyProps>((props, forwardedRef) => {\n const render = useCmdk((state) => state.filtered.count === 0)\n\n if (!render) return null\n return <Primitive.div ref={forwardedRef} {...props} cmdk-empty=\"\" role=\"presentation\" />\n})\n\n/**\n * You should conditionally render this with `progress` while loading asynchronous items.\n */\nconst Loading = React.forwardRef<HTMLDivElement, LoadingProps>((props, forwardedRef) => {\n const { progress, children, label = 'Loading...', ...etc } = props\n\n return (\n <Primitive.div\n ref={forwardedRef}\n {...etc}\n cmdk-loading=\"\"\n role=\"progressbar\"\n aria-valuenow={progress}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={label}\n >\n {SlottableWithNestedChildren(props, (child) => (\n <div aria-hidden>{child}</div>\n ))}\n </Primitive.div>\n )\n})\n\nconst pkg = Object.assign(Command, {\n List,\n Item,\n Input,\n Group,\n Separator,\n Dialog,\n Empty,\n Loading,\n})\n\nexport { useCmdk as useCommandState }\nexport { pkg as Command }\nexport { defaultFilter }\n\nexport { Command as CommandRoot }\nexport { List as CommandList }\nexport { Item as CommandItem }\nexport { Input as CommandInput }\nexport { Group as CommandGroup }\nexport { Separator as CommandSeparator }\nexport { Dialog as CommandDialog }\nexport { Empty as CommandEmpty }\nexport { Loading as CommandLoading }\n\n/**\n *\n *\n * Helpers\n *\n *\n */\n\nfunction findNextSibling(el: Element, selector: string) {\n let sibling = el.nextElementSibling\n\n while (sibling) {\n if (sibling.matches(selector)) return sibling\n sibling = sibling.nextElementSibling\n }\n}\n\nfunction findPreviousSibling(el: Element, selector: string) {\n let sibling = el.previousElementSibling\n\n while (sibling) {\n if (sibling.matches(selector)) return sibling\n sibling = sibling.previousElementSibling\n }\n}\n\nfunction useAsRef<T>(data: T) {\n const ref = React.useRef<T>(data)\n\n useLayoutEffect(() => {\n ref.current = data\n })\n\n return ref\n}\n\nconst useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | undefined>(undefined)\n\n if (ref.current === undefined) {\n ref.current = fn()\n }\n\n return ref as React.MutableRefObject<T>\n}\n\n/** Run a selector against the store state. */\nfunction useCmdk<T = any>(selector: (state: State) => T): T {\n const store = useStore()\n const cb = () => selector(store.snapshot())\n return React.useSyncExternalStore(store.subscribe, cb, cb)\n}\n\nfunction useValue(\n id: string,\n ref: React.RefObject<HTMLElement | null>,\n deps: (string | React.ReactNode | React.RefObject<HTMLElement | null>)[],\n aliases: string[] = [],\n) {\n const valueRef = React.useRef<string | undefined>(undefined)\n const context = useCommand()\n\n useLayoutEffect(() => {\n const value = (() => {\n for (const part of deps) {\n if (typeof part === 'string') {\n return part.trim()\n }\n\n if (part !== null && typeof part === 'object' && 'current' in part) {\n if (part.current) {\n return part.current.textContent?.trim()\n }\n return valueRef.current\n }\n }\n })()\n\n const keywords = aliases.map((alias) => alias.trim())\n\n context.value(id, value!, keywords)\n ref.current?.setAttribute(VALUE_ATTR, value!)\n valueRef.current = value\n })\n\n return valueRef\n}\n\n/** Imperatively run a function on the next layout effect cycle. */\nconst useScheduleLayoutEffect = () => {\n const [s, ss] = React.useState<object>()\n const fns = useLazyRef(() => new Map<string | number, () => void>())\n\n useLayoutEffect(() => {\n fns.current.forEach((f) => f())\n fns.current = new Map()\n }, [s])\n\n return (id: string | number, cb: () => void) => {\n fns.current.set(id, cb)\n ss({})\n }\n}\n\nfunction renderChildren(children: React.ReactElement) {\n const childrenType = children.type as any\n // The children is a component\n if (typeof childrenType === 'function') return childrenType(children.props)\n // The children is a component with `forwardRef`\n else if ('render' in childrenType) return childrenType.render(children.props)\n // It's a string, boolean, etc.\n else return children\n}\n\nfunction SlottableWithNestedChildren(\n { asChild, children }: { asChild?: boolean; children?: React.ReactNode },\n render: (child: React.ReactNode) => React.JSX.Element,\n) {\n if (asChild && React.isValidElement<{ children?: React.ReactNode }>(children)) {\n return React.cloneElement(renderChildren(children), { ref: (children as any).ref }, render(children.props.children))\n }\n return render(children)\n}\n\nconst srOnlyStyles = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: '0',\n} as const\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { clamp } from './number';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.js","names":[],"sources":["../../../../../src/primitives/vendor/radix/number/number.ts"],"sourcesContent":["// Vendored from Radix Primitives (c) 2022 WorkOS, MIT. See vendor/LICENSE.radix.\n// Local modification: package imports resolve to the pinned local source.\nfunction clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport { clamp };\n"],"mappings":";;AAEA,SAAS,MAAM,OAAe,CAAC,KAAK,MAAgC;CAClE,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const IS_DEVELOPMENT: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-development.js","names":[],"sources":["../../../../../src/primitives/vendor/radix/primitive/is-development.ts"],"sourcesContent":["// MIT (c) 2022 WorkOS. Local replacement for package export conditions.\n// Local ambient type keeps copied source independent of @types/node.\ndeclare const process: { env: { NODE_ENV?: string } };\nexport const IS_DEVELOPMENT = process.env.NODE_ENV !== 'production';\n"],"mappings":";;AAGA,IAAa,iBAAA,QAAA,IAAA,aAA0C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const canUseDOM: boolean;
|
|
2
|
+
export declare function composeEventHandlers<E extends {
|
|
3
|
+
defaultPrevented: boolean;
|
|
4
|
+
}>(originalEventHandler?: (event: E) => void, ourEventHandler?: (event: E) => void, { checkForDefaultPrevented }?: {
|
|
5
|
+
checkForDefaultPrevented?: boolean | undefined;
|
|
6
|
+
}): (event: E) => void;
|
|
7
|
+
export declare function getOwnerWindow(element: Node | null | undefined): Window & typeof globalThis;
|
|
8
|
+
export declare function getOwnerDocument(element: Node | null | undefined): Document;
|
|
9
|
+
/**
|
|
10
|
+
* Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37
|
|
11
|
+
* MIT License, Copyright (c) AriaKit.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getActiveElement(node: Node | null | undefined, activeDescendant?: boolean): HTMLElement | null;
|
|
14
|
+
export declare function isFrame(element: Element): element is HTMLIFrameElement;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
typeof window !== "undefined" && window.document && window.document.createElement;
|
|
3
|
+
function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
|
|
4
|
+
return function handleEvent(event) {
|
|
5
|
+
originalEventHandler?.(event);
|
|
6
|
+
if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) return ourEventHandler?.(event);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { composeEventHandlers };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=primitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.js","names":[],"sources":["../../../../../src/primitives/vendor/radix/primitive/primitive.tsx"],"sourcesContent":["// Vendored from Radix Primitives (c) 2022 WorkOS, MIT. See vendor/LICENSE.radix.\n// Local modification: package imports resolve to the pinned local source.\n/* eslint-disable no-restricted-properties */\n\n/* eslint-disable no-restricted-globals */\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n/* eslint-enable no-restricted-globals */\n\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {},\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport function getOwnerWindow(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access window outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument?.defaultView ?? window;\n}\n\nexport function getOwnerDocument(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access document outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument ?? document;\n}\n\n/**\n * Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37\n * MIT License, Copyright (c) AriaKit.\n */\nexport function getActiveElement(\n node: Node | null | undefined,\n activeDescendant = false,\n): HTMLElement | null {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n // `activeElement` might be an empty object if we're interacting with elements\n // inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute('aria-activedescendant');\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement as HTMLElement | null;\n}\n\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n return element.tagName === 'IFRAME';\n}\n"],"mappings":";AAME,OAAO,WAAW,eAClB,OAAO,YACP,OAAO,SAAS;AAIlB,SAAgB,qBACd,sBACA,iBACA,EAAE,2BAA2B,SAAS,CAAC,GACvC;CACA,OAAO,SAAS,YAAY,OAAU;EACpC,uBAAuB,KAAK;EAE5B,IAAI,6BAA6B,SAAS,CAAC,SAAS,CAAC,MAAM,kBACzD,OAAO,kBAAkB,KAAK;CAElC;AACF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Primitive } from '../react-primitive';
|
|
3
|
+
import * as CollapsiblePrimitive from '../react-collapsible';
|
|
4
|
+
type Direction = 'ltr' | 'rtl';
|
|
5
|
+
declare const createAccordionScope: import("../react-context").CreateScope;
|
|
6
|
+
interface AccordionSingleProps extends AccordionImplSingleProps {
|
|
7
|
+
type: 'single';
|
|
8
|
+
}
|
|
9
|
+
interface AccordionMultipleProps extends AccordionImplMultipleProps {
|
|
10
|
+
type: 'multiple';
|
|
11
|
+
}
|
|
12
|
+
declare const Accordion: React.ForwardRefExoticComponent<(AccordionSingleProps | AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
interface AccordionImplSingleProps extends AccordionImplProps {
|
|
14
|
+
/**
|
|
15
|
+
* The controlled stateful value of the accordion item whose content is expanded.
|
|
16
|
+
*/
|
|
17
|
+
value?: string;
|
|
18
|
+
/**
|
|
19
|
+
* The value of the item whose content is expanded when the accordion is initially rendered. Use
|
|
20
|
+
* `defaultValue` if you do not need to control the state of an accordion.
|
|
21
|
+
*/
|
|
22
|
+
defaultValue?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The callback that fires when the state of the accordion changes.
|
|
25
|
+
*/
|
|
26
|
+
onValueChange?(value: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Whether an accordion item can be collapsed after it has been opened.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
collapsible?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface AccordionImplMultipleProps extends AccordionImplProps {
|
|
34
|
+
/**
|
|
35
|
+
* The controlled stateful value of the accordion items whose contents are expanded.
|
|
36
|
+
*/
|
|
37
|
+
value?: string[];
|
|
38
|
+
/**
|
|
39
|
+
* The value of the items whose contents are expanded when the accordion is initially rendered. Use
|
|
40
|
+
* `defaultValue` if you do not need to control the state of an accordion.
|
|
41
|
+
*/
|
|
42
|
+
defaultValue?: string[];
|
|
43
|
+
/**
|
|
44
|
+
* The callback that fires when the state of the accordion changes.
|
|
45
|
+
*/
|
|
46
|
+
onValueChange?(value: string[]): void;
|
|
47
|
+
}
|
|
48
|
+
type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
49
|
+
interface AccordionImplProps extends PrimitiveDivProps {
|
|
50
|
+
/**
|
|
51
|
+
* Whether or not an accordion is disabled from user interaction.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue false
|
|
54
|
+
*/
|
|
55
|
+
disabled?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The layout in which the Accordion operates.
|
|
58
|
+
* @default vertical
|
|
59
|
+
*/
|
|
60
|
+
orientation?: React.AriaAttributes['aria-orientation'];
|
|
61
|
+
/**
|
|
62
|
+
* The language read direction.
|
|
63
|
+
*/
|
|
64
|
+
dir?: Direction;
|
|
65
|
+
}
|
|
66
|
+
type CollapsibleProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Root>;
|
|
67
|
+
interface AccordionItemProps extends Omit<CollapsibleProps, 'open' | 'defaultOpen' | 'onOpenChange'> {
|
|
68
|
+
/**
|
|
69
|
+
* Whether or not an accordion item is disabled from user interaction.
|
|
70
|
+
*
|
|
71
|
+
* @defaultValue false
|
|
72
|
+
*/
|
|
73
|
+
disabled?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* A string value for the accordion item. All items within an accordion should use a unique value.
|
|
76
|
+
*/
|
|
77
|
+
value: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* `AccordionItem` contains all of the parts of a collapsible section inside of an `Accordion`.
|
|
81
|
+
*/
|
|
82
|
+
declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
83
|
+
type PrimitiveHeading3Props = React.ComponentPropsWithoutRef<typeof Primitive.h3>;
|
|
84
|
+
interface AccordionHeaderProps extends PrimitiveHeading3Props {
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* `AccordionHeader` contains the content for the parts of an `AccordionItem` that will be visible
|
|
88
|
+
* whether or not its content is collapsed.
|
|
89
|
+
*/
|
|
90
|
+
declare const AccordionHeader: React.ForwardRefExoticComponent<AccordionHeaderProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
91
|
+
type CollapsibleTriggerProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger>;
|
|
92
|
+
interface AccordionTriggerProps extends CollapsibleTriggerProps {
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* `AccordionTrigger` is the trigger that toggles the collapsed state of an `AccordionItem`. It
|
|
96
|
+
* should always be nested inside of an `AccordionHeader`.
|
|
97
|
+
*/
|
|
98
|
+
declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
99
|
+
type CollapsibleContentProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>;
|
|
100
|
+
interface AccordionContentProps extends CollapsibleContentProps {
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* `AccordionContent` contains the collapsible content for an `AccordionItem`.
|
|
104
|
+
*/
|
|
105
|
+
declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
106
|
+
declare const Root: React.ForwardRefExoticComponent<(AccordionSingleProps | AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
|
|
107
|
+
declare const Item: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
108
|
+
declare const Header: React.ForwardRefExoticComponent<AccordionHeaderProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
109
|
+
declare const Trigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
110
|
+
declare const Content: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
111
|
+
export { createAccordionScope, Accordion, AccordionItem, AccordionHeader, AccordionTrigger, AccordionContent, Root, Item, Header, Trigger, Content, };
|
|
112
|
+
export type { AccordionSingleProps, AccordionMultipleProps, AccordionItemProps, AccordionHeaderProps, AccordionTriggerProps, AccordionContentProps, };
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContextScope } from "../react-context/create-context.js";
|
|
3
|
+
import { useComposedRefs } from "../react-compose-refs/compose-refs.js";
|
|
4
|
+
import { createCollection } from "../react-collection/collection-legacy.js";
|
|
5
|
+
import { composeEventHandlers } from "../primitive/primitive.js";
|
|
6
|
+
import { useControllableState } from "../react-use-controllable-state/use-controllable-state.js";
|
|
7
|
+
import { Primitive } from "../react-primitive/primitive.js";
|
|
8
|
+
import { useId } from "../react-id/id.js";
|
|
9
|
+
import { Content as Content$1, Root as Root$1, Trigger as Trigger$1, createCollapsibleScope } from "../react-collapsible/collapsible.js";
|
|
10
|
+
import { useDirection } from "../react-direction/direction.js";
|
|
11
|
+
import * as React from "react";
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
//#region src/primitives/vendor/radix/react-accordion/accordion.tsx
|
|
14
|
+
var ACCORDION_NAME = "Accordion";
|
|
15
|
+
var ACCORDION_KEYS = [
|
|
16
|
+
"Home",
|
|
17
|
+
"End",
|
|
18
|
+
"ArrowDown",
|
|
19
|
+
"ArrowUp",
|
|
20
|
+
"ArrowLeft",
|
|
21
|
+
"ArrowRight"
|
|
22
|
+
];
|
|
23
|
+
var [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);
|
|
24
|
+
var [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [createCollectionScope, createCollapsibleScope]);
|
|
25
|
+
var useCollapsibleScope = createCollapsibleScope();
|
|
26
|
+
var Accordion = /* @__PURE__ */ React.forwardRef(function Accordion(props, forwardedRef) {
|
|
27
|
+
const { type, ...accordionProps } = props;
|
|
28
|
+
const singleProps = accordionProps;
|
|
29
|
+
const multipleProps = accordionProps;
|
|
30
|
+
return /* @__PURE__ */ jsx(Collection.Provider, {
|
|
31
|
+
scope: props.__scopeAccordion,
|
|
32
|
+
children: type === "multiple" ? /* @__PURE__ */ jsx(AccordionImplMultiple, {
|
|
33
|
+
...multipleProps,
|
|
34
|
+
ref: forwardedRef
|
|
35
|
+
}) : /* @__PURE__ */ jsx(AccordionImplSingle, {
|
|
36
|
+
...singleProps,
|
|
37
|
+
ref: forwardedRef
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
var [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);
|
|
42
|
+
var [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(ACCORDION_NAME, { collapsible: false });
|
|
43
|
+
var AccordionImplSingle = /* @__PURE__ */ React.forwardRef(function AccordionImplSingle(props, forwardedRef) {
|
|
44
|
+
const { value: valueProp, defaultValue, onValueChange = () => {}, collapsible = false, ...accordionSingleProps } = props;
|
|
45
|
+
const [value, setValue] = useControllableState({
|
|
46
|
+
prop: valueProp,
|
|
47
|
+
defaultProp: defaultValue ?? "",
|
|
48
|
+
onChange: onValueChange,
|
|
49
|
+
caller: ACCORDION_NAME
|
|
50
|
+
});
|
|
51
|
+
return /* @__PURE__ */ jsx(AccordionValueProvider, {
|
|
52
|
+
scope: props.__scopeAccordion,
|
|
53
|
+
value: React.useMemo(() => value ? [value] : [], [value]),
|
|
54
|
+
onItemOpen: setValue,
|
|
55
|
+
onItemClose: React.useCallback(() => collapsible && setValue(""), [collapsible, setValue]),
|
|
56
|
+
children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, {
|
|
57
|
+
scope: props.__scopeAccordion,
|
|
58
|
+
collapsible,
|
|
59
|
+
children: /* @__PURE__ */ jsx(AccordionImpl, {
|
|
60
|
+
...accordionSingleProps,
|
|
61
|
+
ref: forwardedRef
|
|
62
|
+
})
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
var AccordionImplMultiple = /* @__PURE__ */ React.forwardRef(function AccordionImplMultiple(props, forwardedRef) {
|
|
67
|
+
const { value: valueProp, defaultValue, onValueChange = () => {}, ...accordionMultipleProps } = props;
|
|
68
|
+
const [value, setValue] = useControllableState({
|
|
69
|
+
prop: valueProp,
|
|
70
|
+
defaultProp: defaultValue ?? [],
|
|
71
|
+
onChange: onValueChange,
|
|
72
|
+
caller: ACCORDION_NAME
|
|
73
|
+
});
|
|
74
|
+
const handleItemOpen = React.useCallback((itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]), [setValue]);
|
|
75
|
+
const handleItemClose = React.useCallback((itemValue) => setValue((prevValue = []) => prevValue.filter((value) => value !== itemValue)), [setValue]);
|
|
76
|
+
return /* @__PURE__ */ jsx(AccordionValueProvider, {
|
|
77
|
+
scope: props.__scopeAccordion,
|
|
78
|
+
value,
|
|
79
|
+
onItemOpen: handleItemOpen,
|
|
80
|
+
onItemClose: handleItemClose,
|
|
81
|
+
children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, {
|
|
82
|
+
scope: props.__scopeAccordion,
|
|
83
|
+
collapsible: true,
|
|
84
|
+
children: /* @__PURE__ */ jsx(AccordionImpl, {
|
|
85
|
+
...accordionMultipleProps,
|
|
86
|
+
ref: forwardedRef
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
var [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);
|
|
92
|
+
var AccordionImpl = /* @__PURE__ */ React.forwardRef(function AccordionImpl(props, forwardedRef) {
|
|
93
|
+
const { __scopeAccordion, disabled, dir, orientation = "vertical", ...accordionProps } = props;
|
|
94
|
+
const accordionRef = React.useRef(null);
|
|
95
|
+
const composedRefs = useComposedRefs(accordionRef, forwardedRef);
|
|
96
|
+
const getItems = useCollection(__scopeAccordion);
|
|
97
|
+
const isDirectionLTR = useDirection(dir) === "ltr";
|
|
98
|
+
const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {
|
|
99
|
+
if (!ACCORDION_KEYS.includes(event.key)) return;
|
|
100
|
+
const target = event.target;
|
|
101
|
+
const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);
|
|
102
|
+
const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);
|
|
103
|
+
const triggerCount = triggerCollection.length;
|
|
104
|
+
if (triggerIndex === -1) return;
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
let nextIndex = triggerIndex;
|
|
107
|
+
const homeIndex = 0;
|
|
108
|
+
const endIndex = triggerCount - 1;
|
|
109
|
+
const moveNext = () => {
|
|
110
|
+
nextIndex = triggerIndex + 1;
|
|
111
|
+
if (nextIndex > endIndex) nextIndex = homeIndex;
|
|
112
|
+
};
|
|
113
|
+
const movePrev = () => {
|
|
114
|
+
nextIndex = triggerIndex - 1;
|
|
115
|
+
if (nextIndex < homeIndex) nextIndex = endIndex;
|
|
116
|
+
};
|
|
117
|
+
switch (event.key) {
|
|
118
|
+
case "Home":
|
|
119
|
+
nextIndex = homeIndex;
|
|
120
|
+
break;
|
|
121
|
+
case "End":
|
|
122
|
+
nextIndex = endIndex;
|
|
123
|
+
break;
|
|
124
|
+
case "ArrowRight":
|
|
125
|
+
if (orientation === "horizontal") {
|
|
126
|
+
if (isDirectionLTR) moveNext();
|
|
127
|
+
else movePrev();
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
case "ArrowDown":
|
|
131
|
+
if (orientation === "vertical") moveNext();
|
|
132
|
+
break;
|
|
133
|
+
case "ArrowLeft":
|
|
134
|
+
if (orientation === "horizontal") {
|
|
135
|
+
if (isDirectionLTR) movePrev();
|
|
136
|
+
else moveNext();
|
|
137
|
+
}
|
|
138
|
+
break;
|
|
139
|
+
case "ArrowUp": if (orientation === "vertical") movePrev();
|
|
140
|
+
}
|
|
141
|
+
triggerCollection[nextIndex % triggerCount].ref.current?.focus();
|
|
142
|
+
});
|
|
143
|
+
return /* @__PURE__ */ jsx(AccordionImplProvider, {
|
|
144
|
+
scope: __scopeAccordion,
|
|
145
|
+
disabled,
|
|
146
|
+
direction: dir,
|
|
147
|
+
orientation,
|
|
148
|
+
children: /* @__PURE__ */ jsx(Collection.Slot, {
|
|
149
|
+
scope: __scopeAccordion,
|
|
150
|
+
children: /* @__PURE__ */ jsx(Primitive.div, {
|
|
151
|
+
...accordionProps,
|
|
152
|
+
"data-orientation": orientation,
|
|
153
|
+
ref: composedRefs,
|
|
154
|
+
onKeyDown: disabled ? void 0 : handleKeyDown
|
|
155
|
+
})
|
|
156
|
+
})
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
var ITEM_NAME = "AccordionItem";
|
|
160
|
+
var [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);
|
|
161
|
+
/**
|
|
162
|
+
* `AccordionItem` contains all of the parts of a collapsible section inside of an `Accordion`.
|
|
163
|
+
*/
|
|
164
|
+
var AccordionItem = /* @__PURE__ */ React.forwardRef(function AccordionItem(props, forwardedRef) {
|
|
165
|
+
const { __scopeAccordion, value, ...accordionItemProps } = props;
|
|
166
|
+
const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);
|
|
167
|
+
const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);
|
|
168
|
+
const collapsibleScope = useCollapsibleScope(__scopeAccordion);
|
|
169
|
+
const triggerId = useId();
|
|
170
|
+
const open = value && valueContext.value.includes(value) || false;
|
|
171
|
+
const disabled = accordionContext.disabled || props.disabled;
|
|
172
|
+
return /* @__PURE__ */ jsx(AccordionItemProvider, {
|
|
173
|
+
scope: __scopeAccordion,
|
|
174
|
+
open,
|
|
175
|
+
disabled,
|
|
176
|
+
triggerId,
|
|
177
|
+
children: /* @__PURE__ */ jsx(Root$1, {
|
|
178
|
+
"data-orientation": accordionContext.orientation,
|
|
179
|
+
"data-state": getState(open),
|
|
180
|
+
...collapsibleScope,
|
|
181
|
+
...accordionItemProps,
|
|
182
|
+
ref: forwardedRef,
|
|
183
|
+
disabled,
|
|
184
|
+
open,
|
|
185
|
+
onOpenChange: (open) => {
|
|
186
|
+
if (open) valueContext.onItemOpen(value);
|
|
187
|
+
else valueContext.onItemClose(value);
|
|
188
|
+
}
|
|
189
|
+
})
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
var HEADER_NAME = "AccordionHeader";
|
|
193
|
+
/**
|
|
194
|
+
* `AccordionHeader` contains the content for the parts of an `AccordionItem` that will be visible
|
|
195
|
+
* whether or not its content is collapsed.
|
|
196
|
+
*/
|
|
197
|
+
var AccordionHeader = /* @__PURE__ */ React.forwardRef(function AccordionHeader(props, forwardedRef) {
|
|
198
|
+
const { __scopeAccordion, ...headerProps } = props;
|
|
199
|
+
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
|
|
200
|
+
const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);
|
|
201
|
+
return /* @__PURE__ */ jsx(Primitive.h3, {
|
|
202
|
+
"data-orientation": accordionContext.orientation,
|
|
203
|
+
"data-state": getState(itemContext.open),
|
|
204
|
+
"data-disabled": itemContext.disabled ? "" : void 0,
|
|
205
|
+
...headerProps,
|
|
206
|
+
ref: forwardedRef
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
var TRIGGER_NAME = "AccordionTrigger";
|
|
210
|
+
/**
|
|
211
|
+
* `AccordionTrigger` is the trigger that toggles the collapsed state of an `AccordionItem`. It
|
|
212
|
+
* should always be nested inside of an `AccordionHeader`.
|
|
213
|
+
*/
|
|
214
|
+
var AccordionTrigger = /* @__PURE__ */ React.forwardRef(function AccordionTrigger(props, forwardedRef) {
|
|
215
|
+
const { __scopeAccordion, ...triggerProps } = props;
|
|
216
|
+
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
|
|
217
|
+
const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);
|
|
218
|
+
const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);
|
|
219
|
+
const collapsibleScope = useCollapsibleScope(__scopeAccordion);
|
|
220
|
+
return /* @__PURE__ */ jsx(Collection.ItemSlot, {
|
|
221
|
+
scope: __scopeAccordion,
|
|
222
|
+
children: /* @__PURE__ */ jsx(Trigger$1, {
|
|
223
|
+
"aria-disabled": itemContext.open && !collapsibleContext.collapsible || void 0,
|
|
224
|
+
"data-orientation": accordionContext.orientation,
|
|
225
|
+
id: itemContext.triggerId,
|
|
226
|
+
...collapsibleScope,
|
|
227
|
+
...triggerProps,
|
|
228
|
+
ref: forwardedRef
|
|
229
|
+
})
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
var CONTENT_NAME = "AccordionContent";
|
|
233
|
+
/**
|
|
234
|
+
* `AccordionContent` contains the collapsible content for an `AccordionItem`.
|
|
235
|
+
*/
|
|
236
|
+
var AccordionContent = /* @__PURE__ */ React.forwardRef(function AccordionContent(props, forwardedRef) {
|
|
237
|
+
const { __scopeAccordion, ...contentProps } = props;
|
|
238
|
+
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
|
|
239
|
+
const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);
|
|
240
|
+
const collapsibleScope = useCollapsibleScope(__scopeAccordion);
|
|
241
|
+
return /* @__PURE__ */ jsx(Content$1, {
|
|
242
|
+
role: "region",
|
|
243
|
+
"aria-labelledby": itemContext.triggerId,
|
|
244
|
+
"data-orientation": accordionContext.orientation,
|
|
245
|
+
...collapsibleScope,
|
|
246
|
+
...contentProps,
|
|
247
|
+
ref: forwardedRef,
|
|
248
|
+
style: {
|
|
249
|
+
"--radix-accordion-content-height": "var(--radix-collapsible-content-height)",
|
|
250
|
+
"--radix-accordion-content-width": "var(--radix-collapsible-content-width)",
|
|
251
|
+
...props.style
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
function getState(open) {
|
|
256
|
+
return open ? "open" : "closed";
|
|
257
|
+
}
|
|
258
|
+
var Root = Accordion;
|
|
259
|
+
var Item = AccordionItem;
|
|
260
|
+
var Header = AccordionHeader;
|
|
261
|
+
var Trigger = AccordionTrigger;
|
|
262
|
+
var Content = AccordionContent;
|
|
263
|
+
//#endregion
|
|
264
|
+
export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionTrigger, Content, Header, Item, Root, Trigger };
|
|
265
|
+
|
|
266
|
+
//# sourceMappingURL=accordion.js.map
|