@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
|
@@ -1,25 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { cn } from "../lib/utils.js";
|
|
2
|
-
import {
|
|
3
|
-
import "react";
|
|
3
|
+
import { Indicator, Root } from "../primitives/vendor/radix/react-progress/progress.js";
|
|
4
|
+
import * as React from "react";
|
|
4
5
|
import { jsx } from "react/jsx-runtime";
|
|
5
6
|
//#region src/components/progress.tsx
|
|
6
|
-
function Progress
|
|
7
|
+
var Progress = React.forwardRef(function Progress({ className, value, max = 100, ...props }, ref) {
|
|
7
8
|
const maximum = Number.isFinite(max) && max > 0 ? max : 100;
|
|
8
9
|
const progress = typeof value === "number" && Number.isFinite(value) ? Math.min(maximum, Math.max(0, value)) : null;
|
|
9
|
-
return /* @__PURE__ */ jsx(
|
|
10
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
11
|
+
ref,
|
|
10
12
|
"data-slot": "progress",
|
|
11
13
|
value: progress,
|
|
12
14
|
max: maximum,
|
|
13
|
-
className: cn("relative h-1.5 w-full overflow-hidden rounded-full bg-
|
|
15
|
+
className: cn("relative h-1.5 w-full overflow-hidden rounded-full bg-border", className),
|
|
14
16
|
...props,
|
|
15
|
-
children: /* @__PURE__ */ jsx(
|
|
17
|
+
children: /* @__PURE__ */ jsx(Indicator, {
|
|
16
18
|
"data-slot": "progress-indicator",
|
|
17
|
-
className: cn("h-full bg-brand transition-transform", progress === null ? "w-1/3 animate-pulse" : "w-full"),
|
|
19
|
+
className: cn("h-full bg-brand transition-transform duration-(--duration-standard)", progress === null ? "w-1/3 animate-pulse" : "w-full"),
|
|
18
20
|
style: progress === null ? void 0 : { transform: `translateX(-${100 - progress / maximum * 100}%)` }
|
|
19
21
|
})
|
|
20
22
|
});
|
|
21
|
-
}
|
|
23
|
+
});
|
|
22
24
|
//#endregion
|
|
23
|
-
export { Progress
|
|
25
|
+
export { Progress };
|
|
24
26
|
|
|
25
27
|
//# sourceMappingURL=progress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","names":["
|
|
1
|
+
{"version":3,"file":"progress.js","names":["ProgressPrimitive.Root","ProgressPrimitive.Indicator"],"sources":["../../src/components/progress.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../lib/utils';\nimport * as ProgressPrimitive from '../primitives/vendor/radix/react-progress';\n\nconst Progress = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ProgressPrimitive.Root>\n>(function Progress({ className, value, max = 100, ...props }, ref) {\n const maximum = Number.isFinite(max) && max > 0 ? max : 100;\n const progress =\n typeof value === 'number' && Number.isFinite(value)\n ? Math.min(maximum, Math.max(0, value))\n : null;\n return (\n <ProgressPrimitive.Root\n ref={ref}\n data-slot=\"progress\"\n value={progress}\n max={maximum}\n className={cn('relative h-1.5 w-full overflow-hidden rounded-full bg-border', className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\n 'h-full bg-brand transition-transform duration-(--duration-standard)',\n progress === null ? 'w-1/3 animate-pulse' : 'w-full',\n )}\n style={\n progress === null\n ? undefined\n : { transform: `translateX(-${100 - (progress / maximum) * 100}%)` }\n }\n />\n </ProgressPrimitive.Root>\n );\n});\n\nexport { Progress };\n"],"mappings":";;;;;;AAKA,IAAM,WAAW,MAAM,WAGrB,SAAS,SAAS,EAAE,WAAW,OAAO,MAAM,KAAK,GAAG,SAAS,KAAK;CAClE,MAAM,UAAU,OAAO,SAAS,GAAG,KAAK,MAAM,IAAI,MAAM;CACxD,MAAM,WACJ,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,IAC9C,KAAK,IAAI,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,IACpC;CACN,OACE,oBAACA,MAAD;EACO;EACL,aAAU;EACV,OAAO;EACP,KAAK;EACL,WAAW,GAAG,gEAAgE,SAAS;EACvF,GAAI;EAEJ,UAAA,oBAACC,WAAD;GACE,aAAU;GACV,WAAW,GACT,uEACA,aAAa,OAAO,wBAAwB,QAC9C;GACA,OACE,aAAa,OACT,KAAA,IACA,EAAE,WAAW,eAAe,MAAO,WAAW,UAAW,IAAI,IAAI;EAExE,CAAA;CACqB,CAAA;AAE5B,CAAC"}
|
|
@@ -1,5 +1,24 @@
|
|
|
1
|
-
import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';
|
|
2
1
|
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
declare
|
|
5
|
-
|
|
2
|
+
import * as RadioGroupPrimitive from '../primitives/vendor/radix/react-radio-group';
|
|
3
|
+
declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
/**
|
|
5
|
+
* A 16px dot with a 44px hit area on touch screens; focus is the shared 2px
|
|
6
|
+
* outline. Chosen, it is primary in light mode and brand in dark mode (see
|
|
7
|
+
* Checkbox).
|
|
8
|
+
*/
|
|
9
|
+
declare const RadioGroupItem: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
10
|
+
export interface RadioCardProps extends Omit<React.ComponentProps<typeof RadioGroupPrimitive.Item>, 'title' | 'children'> {
|
|
11
|
+
/** The option's name. */
|
|
12
|
+
title: React.ReactNode;
|
|
13
|
+
/** A sentence under the name: what choosing it means. */
|
|
14
|
+
description?: React.ReactNode;
|
|
15
|
+
/** Extra classes for the card (the label); className goes to the radio. */
|
|
16
|
+
cardClassName?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One option of a RadioGroup as a bordered card: the dot, a title and a line
|
|
20
|
+
* of help, the whole card the target (44px or taller). The chosen card takes
|
|
21
|
+
* the brand border; focus shows once, on the card. Pairs with CheckboxCard.
|
|
22
|
+
*/
|
|
23
|
+
declare const RadioCard: React.ForwardRefExoticComponent<Omit<RadioCardProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
export { RadioCard, RadioGroup, RadioGroupItem };
|
|
@@ -1,28 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import "react";
|
|
4
|
-
import
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn, focusRingClasses, noOutlineClasses, touchTargetClasses } from "../lib/utils.js";
|
|
3
|
+
import { Indicator as RadioGroupIndicator, Item as RadioGroupItem$1, RadioGroup as RadioGroup$1 } from "../primitives/vendor/radix/react-radio-group/radio-group.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
//#region src/components/radio-group.tsx
|
|
6
|
-
function RadioGroup
|
|
7
|
-
return /* @__PURE__ */ jsx(RadioGroup
|
|
7
|
+
var RadioGroup = React.forwardRef(function RadioGroup({ className, ...props }, ref) {
|
|
8
|
+
return /* @__PURE__ */ jsx(RadioGroup$1, {
|
|
9
|
+
ref,
|
|
8
10
|
"data-slot": "radio-group",
|
|
9
11
|
className: cn("grid gap-3", className),
|
|
10
12
|
...props
|
|
11
13
|
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* A 16px dot with a 44px hit area on touch screens; focus is the shared 2px
|
|
17
|
+
* outline. Chosen, it is primary in light mode and brand in dark mode (see
|
|
18
|
+
* Checkbox).
|
|
19
|
+
*/
|
|
20
|
+
var RadioGroupItem = React.forwardRef(function RadioGroupItem({ className, ...props }, ref) {
|
|
21
|
+
return /* @__PURE__ */ jsx(RadioGroupItem$1, {
|
|
22
|
+
ref,
|
|
15
23
|
"data-slot": "radio-group-item",
|
|
16
|
-
className: cn("aspect-square size-4 shrink-0 rounded-full border border-
|
|
24
|
+
className: cn("aspect-square size-4 shrink-0 rounded-full border border-input bg-surface text-primary shadow-xs transition-[border-color,box-shadow] hover:border-brand/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive data-[state=checked]:border-primary dark:text-brand dark:data-[state=checked]:border-brand", focusRingClasses, touchTargetClasses, className),
|
|
17
25
|
...props,
|
|
18
|
-
children: /* @__PURE__ */ jsx(
|
|
26
|
+
children: /* @__PURE__ */ jsx(RadioGroupIndicator, {
|
|
19
27
|
"data-slot": "radio-group-indicator",
|
|
20
28
|
className: "relative flex items-center justify-center",
|
|
21
|
-
children: /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-
|
|
29
|
+
children: /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-current" })
|
|
22
30
|
})
|
|
23
31
|
});
|
|
24
|
-
}
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* One option of a RadioGroup as a bordered card: the dot, a title and a line
|
|
35
|
+
* of help, the whole card the target (44px or taller). The chosen card takes
|
|
36
|
+
* the brand border; focus shows once, on the card. Pairs with CheckboxCard.
|
|
37
|
+
*/
|
|
38
|
+
var RadioCard = React.forwardRef(function RadioCard({ title, description, id: idProp, disabled, className, cardClassName, ...props }, ref) {
|
|
39
|
+
const auto = React.useId();
|
|
40
|
+
const id = idProp ?? auto;
|
|
41
|
+
return /* @__PURE__ */ jsxs("label", {
|
|
42
|
+
htmlFor: id,
|
|
43
|
+
"data-slot": "radio-card",
|
|
44
|
+
className: cn("flex min-h-11 cursor-pointer items-start gap-3 rounded-md border border-border bg-surface px-3 py-2.5 transition-colors hover:border-border-strong", "has-[[data-state=checked]]:border-brand/40 has-[[data-state=checked]]:bg-brand-soft/50", "has-[:focus-visible]:border-ring has-[:focus-visible]:inset-ring-1 has-[:focus-visible]:inset-ring-ring", "has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-60 has-[:disabled]:hover:border-border", cardClassName),
|
|
45
|
+
children: [/* @__PURE__ */ jsx(RadioGroupItem, {
|
|
46
|
+
ref,
|
|
47
|
+
id,
|
|
48
|
+
disabled,
|
|
49
|
+
"aria-labelledby": `${id}-title`,
|
|
50
|
+
"aria-describedby": description ? `${id}-description` : void 0,
|
|
51
|
+
className: cn("mt-0.5 focus-visible:outline-none", noOutlineClasses, className),
|
|
52
|
+
...props
|
|
53
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
54
|
+
className: "grid min-w-0 gap-0.5",
|
|
55
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
56
|
+
id: `${id}-title`,
|
|
57
|
+
className: "text-sm leading-5 font-medium",
|
|
58
|
+
children: title
|
|
59
|
+
}), description && /* @__PURE__ */ jsx("span", {
|
|
60
|
+
id: `${id}-description`,
|
|
61
|
+
className: "text-[13px] leading-5 text-muted-foreground",
|
|
62
|
+
children: description
|
|
63
|
+
})]
|
|
64
|
+
})]
|
|
65
|
+
});
|
|
66
|
+
});
|
|
25
67
|
//#endregion
|
|
26
|
-
export {
|
|
68
|
+
export { RadioCard, RadioGroup, RadioGroupItem };
|
|
27
69
|
|
|
28
70
|
//# sourceMappingURL=radio-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.js","names":["
|
|
1
|
+
{"version":3,"file":"radio-group.js","names":["RadioGroupPrimitive.Root","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator"],"sources":["../../src/components/radio-group.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn, focusRingClasses, noOutlineClasses, touchTargetClasses } from '../lib/utils';\nimport * as RadioGroupPrimitive from '../primitives/vendor/radix/react-radio-group';\n\nconst RadioGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RadioGroupPrimitive.Root>\n>(function RadioGroup({ className, ...props }, ref) {\n return (\n <RadioGroupPrimitive.Root\n ref={ref}\n data-slot=\"radio-group\"\n className={cn('grid gap-3', className)}\n {...props}\n />\n );\n});\n\n/**\n * A 16px dot with a 44px hit area on touch screens; focus is the shared 2px\n * outline. Chosen, it is primary in light mode and brand in dark mode (see\n * Checkbox).\n */\nconst RadioGroupItem = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof RadioGroupPrimitive.Item>\n>(function RadioGroupItem({ className, ...props }, ref) {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n data-slot=\"radio-group-item\"\n className={cn(\n 'aspect-square size-4 shrink-0 rounded-full border border-input bg-surface text-primary shadow-xs transition-[border-color,box-shadow] hover:border-brand/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive data-[state=checked]:border-primary dark:text-brand dark:data-[state=checked]:border-brand',\n focusRingClasses,\n touchTargetClasses,\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <span className=\"size-2 rounded-full bg-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\n\nexport interface RadioCardProps extends Omit<\n React.ComponentProps<typeof RadioGroupPrimitive.Item>,\n 'title' | 'children'\n> {\n /** The option's name. */\n title: React.ReactNode;\n /** A sentence under the name: what choosing it means. */\n description?: React.ReactNode;\n /** Extra classes for the card (the label); className goes to the radio. */\n cardClassName?: string;\n}\n\n/**\n * One option of a RadioGroup as a bordered card: the dot, a title and a line\n * of help, the whole card the target (44px or taller). The chosen card takes\n * the brand border; focus shows once, on the card. Pairs with CheckboxCard.\n */\nconst RadioCard = React.forwardRef<HTMLButtonElement, RadioCardProps>(function RadioCard(\n { title, description, id: idProp, disabled, className, cardClassName, ...props },\n ref,\n) {\n const auto = React.useId();\n const id = idProp ?? auto;\n return (\n <label\n htmlFor={id}\n data-slot=\"radio-card\"\n className={cn(\n 'flex min-h-11 cursor-pointer items-start gap-3 rounded-md border border-border bg-surface px-3 py-2.5 transition-colors hover:border-border-strong',\n 'has-[[data-state=checked]]:border-brand/40 has-[[data-state=checked]]:bg-brand-soft/50',\n 'has-[:focus-visible]:border-ring has-[:focus-visible]:inset-ring-1 has-[:focus-visible]:inset-ring-ring',\n 'has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-60 has-[:disabled]:hover:border-border',\n cardClassName,\n )}\n >\n <RadioGroupItem\n ref={ref}\n id={id}\n disabled={disabled}\n aria-labelledby={`${id}-title`}\n aria-describedby={description ? `${id}-description` : undefined}\n // The card draws the focus ring; the dot keeps a system outline in forced colors.\n className={cn('mt-0.5 focus-visible:outline-none', noOutlineClasses, className)}\n {...props}\n />\n <span className=\"grid min-w-0 gap-0.5\">\n <span id={`${id}-title`} className=\"text-sm leading-5 font-medium\">\n {title}\n </span>\n {description && (\n <span id={`${id}-description`} className=\"text-[13px] leading-5 text-muted-foreground\">\n {description}\n </span>\n )}\n </span>\n </label>\n );\n});\n\nexport { RadioCard, RadioGroup, RadioGroupItem };\n"],"mappings":";;;;;;AAKA,IAAM,aAAa,MAAM,WAGvB,SAAS,WAAW,EAAE,WAAW,GAAG,SAAS,KAAK;CAClD,OACE,oBAACA,cAAD;EACO;EACL,aAAU;EACV,WAAW,GAAG,cAAc,SAAS;EACrC,GAAI;CACL,CAAA;AAEL,CAAC;;;;;;AAOD,IAAM,iBAAiB,MAAM,WAG3B,SAAS,eAAe,EAAE,WAAW,GAAG,SAAS,KAAK;CACtD,OACE,oBAACC,kBAAD;EACO;EACL,aAAU;EACV,WAAW,GACT,0UACA,kBACA,oBACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAACC,qBAAD;GACE,aAAU;GACV,WAAU;GAEV,UAAA,oBAAC,QAAD,EAAM,WAAU,iCAAkC,CAAA;EACrB,CAAA;CACP,CAAA;AAE9B,CAAC;;;;;;AAmBD,IAAM,YAAY,MAAM,WAA8C,SAAS,UAC7E,EAAE,OAAO,aAAa,IAAI,QAAQ,UAAU,WAAW,eAAe,GAAG,SACzE,KACA;CACA,MAAM,OAAO,MAAM,MAAM;CACzB,MAAM,KAAK,UAAU;CACrB,OACE,qBAAC,SAAD;EACE,SAAS;EACT,aAAU;EACV,WAAW,GACT,sJACA,0FACA,2GACA,qGACA,aACF;EATF,UAAA,CAWE,oBAAC,gBAAD;GACO;GACD;GACM;GACV,mBAAiB,GAAG,GAAG;GACvB,oBAAkB,cAAc,GAAG,GAAG,gBAAgB,KAAA;GAEtD,WAAW,GAAG,qCAAqC,kBAAkB,SAAS;GAC9E,GAAI;EACL,CAAA,GACD,qBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACE,oBAAC,QAAD;IAAM,IAAI,GAAG,GAAG;IAAS,WAAU;IAChC,UAAA;GACG,CAAA,GACL,eACC,oBAAC,QAAD;IAAM,IAAI,GAAG,GAAG;IAAe,WAAU;IACtC,UAAA;GACG,CAAA,CAEJ;EACD,CAAA,CAAA;;AAEX,CAAC"}
|
|
@@ -6,9 +6,9 @@ export interface ReasoningProps extends React.ComponentProps<'div'> {
|
|
|
6
6
|
defaultOpen?: boolean;
|
|
7
7
|
}
|
|
8
8
|
/** A model's reasoning, collapsed to one line ("Thought for 3s") unless opened. */
|
|
9
|
-
declare
|
|
9
|
+
declare const Reasoning: React.ForwardRefExoticComponent<Omit<ReasoningProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
/** Three pulsing dots while a reply is on its way. Still under reduced motion. */
|
|
11
|
-
declare
|
|
11
|
+
declare const StreamingIndicator: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
|
|
12
12
|
label?: string;
|
|
13
|
-
}
|
|
13
|
+
}, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
14
14
|
export { Reasoning, StreamingIndicator };
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import "react";
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn, focusRingClasses } from "../lib/utils.js";
|
|
3
|
+
import { Content, Root, Trigger } from "../primitives/vendor/radix/react-collapsible/collapsible.js";
|
|
4
|
+
import * as React from "react";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import ChevronRight from "@burtson-labs/icons/react/chevron-right";
|
|
6
7
|
import Lightbulb from "@burtson-labs/icons/react/lightbulb";
|
|
7
8
|
//#region src/components/reasoning.tsx
|
|
8
9
|
/** A model's reasoning, collapsed to one line ("Thought for 3s") unless opened. */
|
|
9
|
-
function Reasoning({ streaming = false, durationMs, defaultOpen = false, children, className, ...props }) {
|
|
10
|
+
var Reasoning = React.forwardRef(function Reasoning({ streaming = false, durationMs, defaultOpen = false, children, className, ...props }, ref) {
|
|
10
11
|
const label = streaming ? "Thinking…" : durationMs !== void 0 ? `Thought for ${Math.max(1, Math.round(durationMs / 1e3))}s` : "Reasoning";
|
|
11
|
-
return /* @__PURE__ */ jsx(
|
|
12
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
12
13
|
defaultOpen,
|
|
13
14
|
children: /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
ref,
|
|
14
16
|
"data-slot": "reasoning",
|
|
15
17
|
className: cn("grid gap-1.5", className),
|
|
16
18
|
...props,
|
|
17
|
-
children: [/* @__PURE__ */ jsxs(
|
|
18
|
-
className: "group/reasoning inline-flex w-fit items-center gap-1.5 rounded-sm text-xs text-muted-foreground
|
|
19
|
+
children: [/* @__PURE__ */ jsxs(Trigger, {
|
|
20
|
+
className: cn("group/reasoning inline-flex w-fit items-center gap-1.5 rounded-sm text-xs text-muted-foreground hover:text-foreground pointer-coarse:min-h-11", focusRingClasses),
|
|
19
21
|
children: [
|
|
20
22
|
/* @__PURE__ */ jsx(Lightbulb, {
|
|
21
23
|
className: cn("size-3.5", streaming && "animate-pulse"),
|
|
@@ -27,7 +29,7 @@ function Reasoning({ streaming = false, durationMs, defaultOpen = false, childre
|
|
|
27
29
|
className: "size-3.5 transition-transform group-data-[state=open]/reasoning:rotate-90"
|
|
28
30
|
})
|
|
29
31
|
]
|
|
30
|
-
}), /* @__PURE__ */ jsx(
|
|
32
|
+
}), /* @__PURE__ */ jsx(Content, {
|
|
31
33
|
className: "overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down",
|
|
32
34
|
children: /* @__PURE__ */ jsx("div", {
|
|
33
35
|
className: "border-l-2 border-border-strong pl-3 text-[13px] leading-6 text-muted-foreground",
|
|
@@ -36,10 +38,11 @@ function Reasoning({ streaming = false, durationMs, defaultOpen = false, childre
|
|
|
36
38
|
})]
|
|
37
39
|
})
|
|
38
40
|
});
|
|
39
|
-
}
|
|
41
|
+
});
|
|
40
42
|
/** Three pulsing dots while a reply is on its way. Still under reduced motion. */
|
|
41
|
-
function StreamingIndicator({ className, label = "Assistant is typing", ...props }) {
|
|
43
|
+
var StreamingIndicator = React.forwardRef(function StreamingIndicator({ className, label = "Assistant is typing", ...props }, ref) {
|
|
42
44
|
return /* @__PURE__ */ jsx("span", {
|
|
45
|
+
ref,
|
|
43
46
|
"data-slot": "streaming-indicator",
|
|
44
47
|
role: "status",
|
|
45
48
|
"aria-label": label,
|
|
@@ -54,7 +57,7 @@ function StreamingIndicator({ className, label = "Assistant is typing", ...props
|
|
|
54
57
|
style: { animationDelay: `${delay}ms` }
|
|
55
58
|
}, delay))
|
|
56
59
|
});
|
|
57
|
-
}
|
|
60
|
+
});
|
|
58
61
|
//#endregion
|
|
59
62
|
export { Reasoning, StreamingIndicator };
|
|
60
63
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning.js","names":["CollapsiblePrimitive"],"sources":["../../src/components/reasoning.tsx"],"sourcesContent":["import ChevronRight from '@burtson-labs/icons/react/chevron-right';\nimport Lightbulb from '@burtson-labs/icons/react/lightbulb';\nimport
|
|
1
|
+
{"version":3,"file":"reasoning.js","names":["CollapsiblePrimitive.Root","CollapsiblePrimitive.Trigger","CollapsiblePrimitive.Content"],"sources":["../../src/components/reasoning.tsx"],"sourcesContent":["import ChevronRight from '@burtson-labs/icons/react/chevron-right';\nimport Lightbulb from '@burtson-labs/icons/react/lightbulb';\nimport * as React from 'react';\n\nimport { cn, focusRingClasses } from '../lib/utils';\nimport * as CollapsiblePrimitive from '../primitives/vendor/radix/react-collapsible';\n\nexport interface ReasoningProps extends React.ComponentProps<'div'> {\n /** True while the model is still thinking. */\n streaming?: boolean;\n durationMs?: number;\n defaultOpen?: boolean;\n}\n\n/** A model's reasoning, collapsed to one line (\"Thought for 3s\") unless opened. */\nconst Reasoning = React.forwardRef<HTMLDivElement, ReasoningProps>(function Reasoning(\n { streaming = false, durationMs, defaultOpen = false, children, className, ...props },\n ref,\n) {\n const label = streaming\n ? 'Thinking…'\n : durationMs !== undefined\n ? `Thought for ${Math.max(1, Math.round(durationMs / 1000))}s`\n : 'Reasoning';\n return (\n <CollapsiblePrimitive.Root defaultOpen={defaultOpen}>\n <div ref={ref} data-slot=\"reasoning\" className={cn('grid gap-1.5', className)} {...props}>\n <CollapsiblePrimitive.Trigger\n className={cn(\n 'group/reasoning inline-flex w-fit items-center gap-1.5 rounded-sm text-xs text-muted-foreground hover:text-foreground pointer-coarse:min-h-11',\n focusRingClasses,\n )}\n >\n <Lightbulb className={cn('size-3.5', streaming && 'animate-pulse')} aria-hidden />\n {label}\n <ChevronRight\n aria-hidden\n className=\"size-3.5 transition-transform group-data-[state=open]/reasoning:rotate-90\"\n />\n </CollapsiblePrimitive.Trigger>\n <CollapsiblePrimitive.Content className=\"overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down\">\n <div className=\"border-l-2 border-border-strong pl-3 text-[13px] leading-6 text-muted-foreground\">\n {children}\n </div>\n </CollapsiblePrimitive.Content>\n </div>\n </CollapsiblePrimitive.Root>\n );\n});\n\n/** Three pulsing dots while a reply is on its way. Still under reduced motion. */\nconst StreamingIndicator = React.forwardRef<\n HTMLSpanElement,\n React.ComponentProps<'span'> & { label?: string }\n>(function StreamingIndicator({ className, label = 'Assistant is typing', ...props }, ref) {\n return (\n <span\n ref={ref}\n data-slot=\"streaming-indicator\"\n role=\"status\"\n aria-label={label}\n className={cn('inline-flex h-5 items-center gap-1', className)}\n {...props}\n >\n {[0, 150, 300].map((delay) => (\n <span\n key={delay}\n className=\"size-1.5 animate-bounce rounded-full bg-muted-foreground motion-reduce:animate-none\"\n style={{ animationDelay: `${delay}ms` }}\n />\n ))}\n </span>\n );\n});\n\nexport { Reasoning, StreamingIndicator };\n"],"mappings":";;;;;;;;;AAeA,IAAM,YAAY,MAAM,WAA2C,SAAS,UAC1E,EAAE,YAAY,OAAO,YAAY,cAAc,OAAO,UAAU,WAAW,GAAG,SAC9E,KACA;CACA,MAAM,QAAQ,YACV,cACA,eAAe,KAAA,IACb,eAAe,KAAK,IAAI,GAAG,KAAK,MAAM,aAAa,GAAI,CAAC,EAAE,KAC1D;CACN,OACE,oBAACA,MAAD;EAAwC;EACtC,UAAA,qBAAC,OAAD;GAAU;GAAK,aAAU;GAAY,WAAW,GAAG,gBAAgB,SAAS;GAAG,GAAI;GAAnF,UAAA,CACE,qBAACC,SAAD;IACE,WAAW,GACT,iJACA,gBACF;IAJF,UAAA;KAME,oBAAC,WAAD;MAAW,WAAW,GAAG,YAAY,aAAa,eAAe;MAAG,eAAA;KAAa,CAAA;KAChF;KACD,oBAAC,cAAD;MACE,eAAA;MACA,WAAU;KACX,CAAA;IAC2B;GAC9B,CAAA,GAAA,oBAACC,SAAD;IAA8B,WAAU;IACtC,UAAA,oBAAC,OAAD;KAAK,WAAU;KACZ;IACE,CAAA;GACuB,CAAA,CAC3B;;CACoB,CAAA;AAE/B,CAAC;;AAGD,IAAM,qBAAqB,MAAM,WAG/B,SAAS,mBAAmB,EAAE,WAAW,QAAQ,uBAAuB,GAAG,SAAS,KAAK;CACzF,OACE,oBAAC,QAAD;EACO;EACL,aAAU;EACV,MAAK;EACL,cAAY;EACZ,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;EAEH,UAAA;GAAC;GAAG;GAAK;EAAG,CAAC,CAAC,KAAK,UAClB,oBAAC,QAAD;GAEE,WAAU;GACV,OAAO,EAAE,gBAAgB,GAAG,MAAM,IAAI;EACvC,GAHM,KAGN,CACF;CACG,CAAA;AAEV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.js","names":[],"sources":["../../src/components/resizable.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Group,\n Panel,\n Separator,\n type GroupImperativeHandle,\n type Layout,\n type LayoutChangedMeta,\n} from 'react-resizable-panels';\n\nimport { cn } from '../lib/utils';\n\n// Resizing is react-resizable-panels: it implements the WAI-ARIA window\n// splitter (arrow keys, Home/End, Enter to collapse), captures the pointer so\n// a drag over an iframe or terminal keeps tracking, and enforces min/max and\n// collapse. This file adds the Burtson look and a controlled `layout` prop.\n\nexport type ResizableLayout = Layout;\n\nexport interface ResizablePanelGroupProps extends Omit<\n React.ComponentProps<typeof Group>,\n 'defaultLayout' | 'onLayoutChange' | 'onLayoutChanged'\n> {\n /**\n * Controlled sizes: panel id → percentage (0..100). Pass it with\n * onLayoutChange, or onLayoutChanged if you only need the settled value.\n * The group re-applies it whenever it differs from what is on screen.\n */\n layout?: ResizableLayout;\n /** Initial sizes when uncontrolled, e.g. restored from storage. */\n defaultLayout?: ResizableLayout;\n /** Every change, including each pointer move while dragging. */\n onLayoutChange?: (layout: ResizableLayout) => void;\n /** After a drag ends or a key resizes; the one to persist. */\n onLayoutChanged?: (layout: ResizableLayout, meta: LayoutChangedMeta) => void;\n}\n\nconst sameLayout = (a: ResizableLayout, b: ResizableLayout) => {\n const keys = Object.keys(a);\n return (\n keys.length === Object.keys(b).length &&\n keys.every((k) => b[k] !== undefined && Math.abs((a[k] ?? 0) - (b[k] ?? 0)) < 0.01)\n );\n};\n\nfunction ResizablePanelGroup({\n className,\n layout,\n defaultLayout,\n groupRef: groupRefProp,\n orientation = 'horizontal',\n ...props\n}: ResizablePanelGroupProps) {\n const groupRef = React.useRef<GroupImperativeHandle | null>(null);\n React.useImperativeHandle(groupRefProp, () => groupRef.current as GroupImperativeHandle, []);\n\n React.useEffect(() => {\n const group = groupRef.current;\n if (!layout || !group) return;\n if (!sameLayout(group.getLayout(), layout)) group.setLayout(layout);\n }, [layout]);\n\n return (\n <Group\n data-slot=\"resizable-panel-group\"\n data-orientation={orientation}\n orientation={orientation}\n groupRef={groupRef}\n defaultLayout={layout ?? defaultLayout}\n className={cn('flex h-full w-full data-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({ className, ...props }: React.ComponentProps<typeof Panel>) {\n return (\n <Panel data-slot=\"resizable-panel\" className={cn('min-h-0 min-w-0', className)} {...props} />\n );\n}\n\nexport interface ResizeHandleProps extends React.ComponentProps<typeof Separator> {\n /** Show a small grip in the middle of the line. */\n withHandle?: boolean;\n /** What the handle resizes, e.g. \"Resize explorer\". Required for screen readers. */\n 'aria-label': string;\n}\n\n/**\n * The separator between two panels. It is a 1px line with an 8px hit area;\n * hover and drag tint it, keyboard focus draws it in the brand colour.\n */\nfunction ResizeHandle({ className, withHandle, ...props }: ResizeHandleProps) {\n return (\n <Separator\n data-slot=\"resize-handle\"\n className={cn(\n 'group/handle relative flex shrink-0 items-center justify-center bg-border outline-none',\n // Hit area wider than the line, on the axis being dragged.\n 'after:absolute after:content-[\"\"]',\n // The library sets aria-orientation on the line itself: a horizontal\n // group has vertical separators. Nested groups stay independent.\n 'aria-[orientation=vertical]:w-px aria-[orientation=vertical]:after:inset-y-0 aria-[orientation=vertical]:after:-inset-x-1',\n 'aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:-inset-y-1',\n 'transition-colors data-[separator=hover]:bg-border-strong data-[separator=active]:bg-brand',\n 'focus-visible:outline-none data-[separator=focus]:bg-ring data-[separator=focus]:shadow-[0_0_0_1px_var(--ring)]',\n 'data-[separator=disabled]:opacity-50',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <span\n aria-hidden\n className=\"z-10 flex items-center justify-center rounded-xs border bg-surface group-aria-[orientation=vertical]/handle:h-6 group-aria-[orientation=vertical]/handle:w-2 group-aria-[orientation=horizontal]/handle:h-2 group-aria-[orientation=horizontal]/handle:w-6\"\n >\n <span className=\"rounded-full bg-muted-foreground/60 group-aria-[orientation=vertical]/handle:h-3 group-aria-[orientation=vertical]/handle:w-px group-aria-[orientation=horizontal]/handle:h-px group-aria-[orientation=horizontal]/handle:w-3\" />\n </span>\n )}\n </Separator>\n );\n}\n\nexport { usePanelRef, useGroupRef } from 'react-resizable-panels';\nexport type {\n GroupImperativeHandle as ResizablePanelGroupHandle,\n PanelImperativeHandle as ResizablePanelHandle,\n} from 'react-resizable-panels';\nexport { ResizablePanelGroup, ResizablePanel, ResizeHandle };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"resizable.js","names":[],"sources":["../../src/components/resizable.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Group,\n Panel,\n Separator,\n type GroupImperativeHandle,\n type Layout,\n type LayoutChangedMeta,\n} from 'react-resizable-panels';\n\nimport { cn } from '../lib/utils';\n\n// Resizing is react-resizable-panels: it implements the WAI-ARIA window\n// splitter (arrow keys, Home/End, Enter to collapse), captures the pointer so\n// a drag over an iframe or terminal keeps tracking, and enforces min/max and\n// collapse. This file adds the Burtson look and a controlled `layout` prop.\n\nexport type ResizableLayout = Layout;\n\nexport interface ResizablePanelGroupProps extends Omit<\n React.ComponentProps<typeof Group>,\n 'defaultLayout' | 'onLayoutChange' | 'onLayoutChanged'\n> {\n /**\n * Controlled sizes: panel id → percentage (0..100). Pass it with\n * onLayoutChange, or onLayoutChanged if you only need the settled value.\n * The group re-applies it whenever it differs from what is on screen.\n */\n layout?: ResizableLayout;\n /** Initial sizes when uncontrolled, e.g. restored from storage. */\n defaultLayout?: ResizableLayout;\n /** Every change, including each pointer move while dragging. */\n onLayoutChange?: (layout: ResizableLayout) => void;\n /** After a drag ends or a key resizes; the one to persist. */\n onLayoutChanged?: (layout: ResizableLayout, meta: LayoutChangedMeta) => void;\n}\n\nconst sameLayout = (a: ResizableLayout, b: ResizableLayout) => {\n const keys = Object.keys(a);\n return (\n keys.length === Object.keys(b).length &&\n keys.every((k) => b[k] !== undefined && Math.abs((a[k] ?? 0) - (b[k] ?? 0)) < 0.01)\n );\n};\n\nfunction ResizablePanelGroup({\n className,\n layout,\n defaultLayout,\n groupRef: groupRefProp,\n orientation = 'horizontal',\n ...props\n}: ResizablePanelGroupProps) {\n const groupRef = React.useRef<GroupImperativeHandle | null>(null);\n React.useImperativeHandle(groupRefProp, () => groupRef.current as GroupImperativeHandle, []);\n\n React.useEffect(() => {\n const group = groupRef.current;\n if (!layout || !group) return;\n if (!sameLayout(group.getLayout(), layout)) group.setLayout(layout);\n }, [layout]);\n\n return (\n <Group\n data-slot=\"resizable-panel-group\"\n data-orientation={orientation}\n orientation={orientation}\n groupRef={groupRef}\n defaultLayout={layout ?? defaultLayout}\n className={cn('flex h-full w-full data-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({ className, ...props }: React.ComponentProps<typeof Panel>) {\n return (\n <Panel data-slot=\"resizable-panel\" className={cn('min-h-0 min-w-0', className)} {...props} />\n );\n}\n\nexport interface ResizeHandleProps extends React.ComponentProps<typeof Separator> {\n /** Show a small grip in the middle of the line. */\n withHandle?: boolean;\n /** What the handle resizes, e.g. \"Resize explorer\". Required for screen readers. */\n 'aria-label': string;\n}\n\n/**\n * The separator between two panels. It is a 1px line with an 8px hit area;\n * hover and drag tint it, keyboard focus draws it in the brand colour.\n */\nfunction ResizeHandle({ className, withHandle, ...props }: ResizeHandleProps) {\n return (\n <Separator\n data-slot=\"resize-handle\"\n className={cn(\n 'group/handle relative flex shrink-0 items-center justify-center bg-border outline-none',\n // Hit area wider than the line, on the axis being dragged.\n 'after:absolute after:content-[\"\"]',\n // The library sets aria-orientation on the line itself: a horizontal\n // group has vertical separators. Nested groups stay independent.\n 'aria-[orientation=vertical]:w-px aria-[orientation=vertical]:after:inset-y-0 aria-[orientation=vertical]:after:-inset-x-1',\n 'aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:-inset-y-1',\n 'transition-colors data-[separator=hover]:bg-border-strong data-[separator=active]:bg-brand',\n 'focus-visible:outline-none data-[separator=focus]:bg-ring data-[separator=focus]:shadow-[0_0_0_1px_var(--ring)]',\n 'data-[separator=disabled]:opacity-50',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <span\n aria-hidden\n className=\"z-10 flex items-center justify-center rounded-xs border bg-surface group-aria-[orientation=vertical]/handle:h-6 group-aria-[orientation=vertical]/handle:w-2 group-aria-[orientation=horizontal]/handle:h-2 group-aria-[orientation=horizontal]/handle:w-6\"\n >\n <span className=\"rounded-full bg-muted-foreground/60 group-aria-[orientation=vertical]/handle:h-3 group-aria-[orientation=vertical]/handle:w-px group-aria-[orientation=horizontal]/handle:h-px group-aria-[orientation=horizontal]/handle:w-3\" />\n </span>\n )}\n </Separator>\n );\n}\n\nexport { usePanelRef, useGroupRef } from 'react-resizable-panels';\nexport type {\n GroupImperativeHandle as ResizablePanelGroupHandle,\n PanelImperativeHandle as ResizablePanelHandle,\n} from 'react-resizable-panels';\nexport { ResizablePanelGroup, ResizablePanel, ResizeHandle };\n"],"mappings":";;;;;;AAqCA,IAAM,cAAc,GAAoB,MAAuB;CAC7D,MAAM,OAAO,OAAO,KAAK,CAAC;CAC1B,OACE,KAAK,WAAW,OAAO,KAAK,CAAC,CAAC,CAAC,UAC/B,KAAK,OAAO,MAAM,EAAE,OAAO,KAAA,KAAa,KAAK,KAAK,EAAE,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,GAAI;AAEtF;AAEA,SAAS,oBAAoB,EAC3B,WACA,QACA,eACA,UAAU,cACV,cAAc,cACd,GAAG,SACwB;CAC3B,MAAM,WAAW,MAAM,OAAqC,IAAI;CAChE,MAAM,oBAAoB,oBAAoB,SAAS,SAAkC,CAAC,CAAC;CAE3F,MAAM,gBAAgB;EACpB,MAAM,QAAQ,SAAS;EACvB,IAAI,CAAC,UAAU,CAAC,OAAO;EACvB,IAAI,CAAC,WAAW,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,UAAU,MAAM;CACpE,GAAG,CAAC,MAAM,CAAC;CAEX,OACE,oBAAC,OAAD;EACE,aAAU;EACV,oBAAkB;EACL;EACH;EACV,eAAe,UAAU;EACzB,WAAW,GAAG,2DAA2D,SAAS;EAClF,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,SAA6C;CACnF,OACE,oBAAC,OAAD;EAAO,aAAU;EAAkB,WAAW,GAAG,mBAAmB,SAAS;EAAG,GAAI;CAAQ,CAAA;AAEhG;;;;;AAaA,SAAS,aAAa,EAAE,WAAW,YAAY,GAAG,SAA4B;CAC5E,OACE,oBAAC,WAAD;EACE,aAAU;EACV,WAAW,GACT,0FAEA,uCAGA,6HACA,mIACA,8FACA,mHACA,wCACA,SACF;EACA,GAAI;EAEH,UAAA,cACC,oBAAC,QAAD;GACE,eAAA;GACA,WAAU;GAEV,UAAA,oBAAC,QAAD,EAAM,WAAU,gOAAiO,CAAA;EAC7O,CAAA;CAEC,CAAA;AAEf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
|
|
2
1
|
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import * as ScrollAreaPrimitive from '../primitives/vendor/radix/react-scroll-area';
|
|
3
|
+
/** The viewport joins the tab order; its focus outline is drawn inside the box, so nothing clips it. */
|
|
4
|
+
declare const ScrollArea: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const ScrollBar: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
6
|
export { ScrollArea, ScrollBar };
|
|
@@ -1,37 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import "react";
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn, focusRingClasses } from "../lib/utils.js";
|
|
3
|
+
import { Corner, Root, ScrollAreaScrollbar, ScrollAreaThumb, Viewport } from "../primitives/vendor/radix/react-scroll-area/scroll-area.js";
|
|
4
|
+
import * as React from "react";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
//#region src/components/scroll-area.tsx
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
/** The viewport joins the tab order; its focus outline is drawn inside the box, so nothing clips it. */
|
|
8
|
+
var ScrollArea = React.forwardRef(function ScrollArea({ className, children, ...props }, ref) {
|
|
9
|
+
return /* @__PURE__ */ jsxs(Root, {
|
|
10
|
+
ref,
|
|
8
11
|
"data-slot": "scroll-area",
|
|
9
12
|
className: cn("relative", className),
|
|
10
13
|
...props,
|
|
11
14
|
children: [
|
|
12
|
-
/* @__PURE__ */ jsx(
|
|
15
|
+
/* @__PURE__ */ jsx(Viewport, {
|
|
13
16
|
"data-slot": "scroll-area-viewport",
|
|
14
|
-
className: "size-full rounded-[inherit] transition-[color,box-shadow]
|
|
17
|
+
className: cn("size-full rounded-[inherit] transition-[color,box-shadow]", focusRingClasses, "focus-visible:outline-offset-[-2px]"),
|
|
15
18
|
children
|
|
16
19
|
}),
|
|
17
20
|
/* @__PURE__ */ jsx(ScrollBar, {}),
|
|
18
|
-
/* @__PURE__ */ jsx(
|
|
21
|
+
/* @__PURE__ */ jsx(Corner, {})
|
|
19
22
|
]
|
|
20
23
|
});
|
|
21
|
-
}
|
|
22
|
-
function ScrollBar({ className, orientation = "vertical", ...props }) {
|
|
23
|
-
return /* @__PURE__ */ jsx(
|
|
24
|
+
});
|
|
25
|
+
var ScrollBar = React.forwardRef(function ScrollBar({ className, orientation = "vertical", ...props }, ref) {
|
|
26
|
+
return /* @__PURE__ */ jsx(ScrollAreaScrollbar, {
|
|
27
|
+
ref,
|
|
24
28
|
"data-slot": "scroll-area-scrollbar",
|
|
25
29
|
orientation,
|
|
26
30
|
className: cn("flex touch-none p-px transition-colors select-none", orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent", orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent", className),
|
|
27
31
|
...props,
|
|
28
|
-
children: /* @__PURE__ */ jsx(
|
|
32
|
+
children: /* @__PURE__ */ jsx(ScrollAreaThumb, {
|
|
29
33
|
"data-slot": "scroll-area-thumb",
|
|
30
34
|
className: "relative flex-1 rounded-full bg-border-strong"
|
|
31
35
|
})
|
|
32
36
|
});
|
|
33
|
-
}
|
|
37
|
+
});
|
|
34
38
|
//#endregion
|
|
35
|
-
export { ScrollArea
|
|
39
|
+
export { ScrollArea, ScrollBar };
|
|
36
40
|
|
|
37
41
|
//# sourceMappingURL=scroll-area.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.js","names":["
|
|
1
|
+
{"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive.Root","ScrollAreaPrimitive.Viewport","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb"],"sources":["../../src/components/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn, focusRingClasses } from '../lib/utils';\nimport * as ScrollAreaPrimitive from '../primitives/vendor/radix/react-scroll-area';\n\n/** The viewport joins the tab order; its focus outline is drawn inside the box, so nothing clips it. */\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ScrollAreaPrimitive.Root>\n>(function ScrollArea({ className, children, ...props }, ref) {\n return (\n <ScrollAreaPrimitive.Root\n ref={ref}\n data-slot=\"scroll-area\"\n className={cn('relative', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn(\n 'size-full rounded-[inherit] transition-[color,box-shadow]',\n focusRingClasses,\n 'focus-visible:outline-offset-[-2px]',\n )}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n});\n\nconst ScrollBar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(function ScrollBar({ className, orientation = 'vertical', ...props }, ref) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n 'flex touch-none p-px transition-colors select-none',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border-strong\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n});\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":";;;;;;;AAMA,IAAM,aAAa,MAAM,WAGvB,SAAS,WAAW,EAAE,WAAW,UAAU,GAAG,SAAS,KAAK;CAC5D,OACE,qBAACA,MAAD;EACO;EACL,aAAU;EACV,WAAW,GAAG,YAAY,SAAS;EACnC,GAAI;EAJN,UAAA;GAME,oBAACC,UAAD;IACE,aAAU;IACV,WAAW,GACT,6DACA,kBACA,qCACF;IAEC;GAC2B,CAAA;GAC9B,oBAAC,WAAD,CAAY,CAAA;GACZ,oBAACC,QAAD,CAA6B,CAAA;EACL;;AAE9B,CAAC;AAED,IAAM,YAAY,MAAM,WAGtB,SAAS,UAAU,EAAE,WAAW,cAAc,YAAY,GAAG,SAAS,KAAK;CAC3E,OACE,oBAACC,qBAAD;EACO;EACL,aAAU;EACG;EACb,WAAW,GACT,sDACA,gBAAgB,cAAc,8CAC9B,gBAAgB,gBAAgB,gDAChC,SACF;EACA,GAAI;EAEJ,UAAA,oBAACC,iBAAD;GACE,aAAU;GACV,WAAU;EACX,CAAA;CACsC,CAAA;AAE7C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { type InputProps } from './input';
|
|
3
|
+
export interface SecretInputProps extends Omit<InputProps, 'type'> {
|
|
3
4
|
/** What is hidden, for the toggle's name ("Show API key"). */
|
|
4
5
|
revealLabel?: string;
|
|
5
6
|
}
|
|
@@ -7,5 +8,5 @@ export interface SecretInputProps extends Omit<React.ComponentProps<'input'>, 't
|
|
|
7
8
|
* Password-style input with a show/hide toggle, in monospace so keys and
|
|
8
9
|
* tokens read cleanly. The toggle is hidden while the field is disabled.
|
|
9
10
|
*/
|
|
10
|
-
declare
|
|
11
|
+
declare const SecretInput: React.ForwardRefExoticComponent<Omit<SecretInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
11
12
|
export { SecretInput };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { cn } from "../lib/utils.js";
|
|
2
3
|
import { Input } from "./input.js";
|
|
3
4
|
import { IconButton } from "./icon-button.js";
|
|
@@ -10,16 +11,18 @@ import EyeOff from "@burtson-labs/icons/react/eye-off";
|
|
|
10
11
|
* Password-style input with a show/hide toggle, in monospace so keys and
|
|
11
12
|
* tokens read cleanly. The toggle is hidden while the field is disabled.
|
|
12
13
|
*/
|
|
13
|
-
function SecretInput({ className, revealLabel = "value", disabled, ...props }) {
|
|
14
|
+
var SecretInput = React.forwardRef(function SecretInput({ className, revealLabel = "value", disabled, width, ...props }, ref) {
|
|
14
15
|
const [revealed, setRevealed] = React.useState(false);
|
|
15
16
|
return /* @__PURE__ */ jsxs("div", {
|
|
16
17
|
"data-slot": "secret-input",
|
|
17
|
-
className: "relative",
|
|
18
|
+
className: cn("relative", width ? void 0 : "w-full"),
|
|
18
19
|
children: [/* @__PURE__ */ jsx(Input, {
|
|
20
|
+
ref,
|
|
19
21
|
type: revealed && !disabled ? "text" : "password",
|
|
20
22
|
autoComplete: "off",
|
|
21
23
|
spellCheck: false,
|
|
22
24
|
disabled,
|
|
25
|
+
width,
|
|
23
26
|
className: cn("pr-10 font-mono", className),
|
|
24
27
|
...props
|
|
25
28
|
}), !disabled && /* @__PURE__ */ jsx(IconButton, {
|
|
@@ -28,12 +31,12 @@ function SecretInput({ className, revealLabel = "value", disabled, ...props }) {
|
|
|
28
31
|
size: "icon-sm",
|
|
29
32
|
label: revealed ? `Hide ${revealLabel}` : `Show ${revealLabel}`,
|
|
30
33
|
"aria-pressed": revealed,
|
|
31
|
-
className: "absolute top-1/2 right-1 -translate-y-1/2",
|
|
34
|
+
className: "absolute top-1/2 right-1 -translate-y-1/2 pointer-coarse:min-h-8 pointer-coarse:min-w-8",
|
|
32
35
|
onClick: () => setRevealed((r) => !r),
|
|
33
36
|
children: revealed ? /* @__PURE__ */ jsx(EyeOff, { "aria-hidden": true }) : /* @__PURE__ */ jsx(Eye, { "aria-hidden": true })
|
|
34
37
|
})]
|
|
35
38
|
});
|
|
36
|
-
}
|
|
39
|
+
});
|
|
37
40
|
//#endregion
|
|
38
41
|
export { SecretInput };
|
|
39
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-input.js","names":[],"sources":["../../src/components/secret-input.tsx"],"sourcesContent":["import Eye from '@burtson-labs/icons/react/eye';\nimport EyeOff from '@burtson-labs/icons/react/eye-off';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nimport { IconButton } from './icon-button';\nimport { Input } from './input';\n\nexport interface SecretInputProps extends Omit<
|
|
1
|
+
{"version":3,"file":"secret-input.js","names":[],"sources":["../../src/components/secret-input.tsx"],"sourcesContent":["import Eye from '@burtson-labs/icons/react/eye';\nimport EyeOff from '@burtson-labs/icons/react/eye-off';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nimport { IconButton } from './icon-button';\nimport { Input, type InputProps } from './input';\n\nexport interface SecretInputProps extends Omit<InputProps, 'type'> {\n /** What is hidden, for the toggle's name (\"Show API key\"). */\n revealLabel?: string;\n}\n\n/**\n * Password-style input with a show/hide toggle, in monospace so keys and\n * tokens read cleanly. The toggle is hidden while the field is disabled.\n */\nconst SecretInput = React.forwardRef<HTMLInputElement, SecretInputProps>(function SecretInput(\n { className, revealLabel = 'value', disabled, width, ...props },\n ref,\n) {\n const [revealed, setRevealed] = React.useState(false);\n return (\n <div data-slot=\"secret-input\" className={cn('relative', width ? undefined : 'w-full')}>\n <Input\n ref={ref}\n type={revealed && !disabled ? 'text' : 'password'}\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n width={width}\n className={cn('pr-10 font-mono', className)}\n {...props}\n />\n {!disabled && (\n <IconButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n label={revealed ? `Hide ${revealLabel}` : `Show ${revealLabel}`}\n aria-pressed={revealed}\n // Inside the field, so it never grows past it on touch screens.\n className=\"absolute top-1/2 right-1 -translate-y-1/2 pointer-coarse:min-h-8 pointer-coarse:min-w-8\"\n onClick={() => setRevealed((r) => !r)}\n >\n {revealed ? <EyeOff aria-hidden /> : <Eye aria-hidden />}\n </IconButton>\n )}\n </div>\n );\n});\n\nexport { SecretInput };\n"],"mappings":";;;;;;;;;;;;;AAkBA,IAAM,cAAc,MAAM,WAA+C,SAAS,YAChF,EAAE,WAAW,cAAc,SAAS,UAAU,OAAO,GAAG,SACxD,KACA;CACA,MAAM,CAAC,UAAU,eAAe,MAAM,SAAS,KAAK;CACpD,OACE,qBAAC,OAAD;EAAK,aAAU;EAAe,WAAW,GAAG,YAAY,QAAQ,KAAA,IAAY,QAAQ;EAApF,UAAA,CACE,oBAAC,OAAD;GACO;GACL,MAAM,YAAY,CAAC,WAAW,SAAS;GACvC,cAAa;GACb,YAAY;GACF;GACH;GACP,WAAW,GAAG,mBAAmB,SAAS;GAC1C,GAAI;EACL,CAAA,GACA,CAAC,YACA,oBAAC,YAAD;GACE,MAAK;GACL,SAAQ;GACR,MAAK;GACL,OAAO,WAAW,QAAQ,gBAAgB,QAAQ;GAClD,gBAAc;GAEd,WAAU;GACV,eAAe,aAAa,MAAM,CAAC,CAAC;GAEnC,UAAA,WAAW,oBAAC,QAAD,EAAQ,eAAA,KAAa,CAAA,IAAI,oBAAC,KAAD,EAAK,eAAA,KAAa,CAAA;EAC7C,CAAA,CAEX;;AAET,CAAC"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { Select as SelectPrimitive } from 'radix-ui';
|
|
2
1
|
import * as React from 'react';
|
|
2
|
+
import * as SelectPrimitive from '../primitives/vendor/radix/react-select';
|
|
3
|
+
import { type FieldWidth } from './input';
|
|
3
4
|
declare function Select(props: React.ComponentProps<typeof SelectPrimitive.Root>): React.JSX.Element;
|
|
4
5
|
declare function SelectGroup(props: React.ComponentProps<typeof SelectPrimitive.Group>): React.JSX.Element;
|
|
5
6
|
declare function SelectValue(props: React.ComponentProps<typeof SelectPrimitive.Value>): React.JSX.Element;
|
|
6
|
-
|
|
7
|
+
export interface SelectTriggerProps extends React.ComponentProps<typeof SelectPrimitive.Trigger> {
|
|
7
8
|
size?: 'sm' | 'default';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
declare
|
|
12
|
-
declare
|
|
9
|
+
/** How wide the trigger is from 640px up; full width on phones. Fits its content by default. */
|
|
10
|
+
width?: FieldWidth;
|
|
11
|
+
}
|
|
12
|
+
declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
13
|
+
declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
/** A row: 32px (44px on touch screens), 8px radius, a fill when active, a check when chosen. */
|
|
16
|
+
declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
18
|
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, };
|