@bigbinary/neeto-atoms 1.0.7 → 1.0.9
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/dist/ColorPicker-D-7QGnf9.js +277 -0
- package/dist/ColorPicker-D-7QGnf9.js.map +1 -0
- package/dist/{DataTable-Y4POx0WN.js → DataTable-DWR9gX9d.js} +146 -138
- package/dist/DataTable-DWR9gX9d.js.map +1 -0
- package/dist/TranslationProvider-Ba9rn47H.js +96 -0
- package/dist/TranslationProvider-Ba9rn47H.js.map +1 -0
- package/dist/cjs/ColorPicker-DEELmqH8.js +279 -0
- package/dist/cjs/ColorPicker-DEELmqH8.js.map +1 -0
- package/dist/cjs/{DataTable-DJw2SZ7b.js → DataTable-CWs96k8n.js} +146 -138
- package/dist/cjs/DataTable-CWs96k8n.js.map +1 -0
- package/dist/cjs/TranslationProvider-DBZHXmzX.js +103 -0
- package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +1 -0
- package/dist/cjs/components/Accordion.js +49 -0
- package/dist/cjs/components/Accordion.js.map +1 -0
- package/dist/cjs/components/Alert.js +105 -0
- package/dist/cjs/components/Alert.js.map +1 -0
- package/dist/cjs/components/Avatar.js +75 -0
- package/dist/cjs/components/Avatar.js.map +1 -0
- package/dist/cjs/components/Badge.js +73 -0
- package/dist/cjs/components/Badge.js.map +1 -0
- package/dist/cjs/components/Button.js +122 -0
- package/dist/cjs/components/Button.js.map +1 -0
- package/dist/cjs/components/Callout.js +73 -0
- package/dist/cjs/components/Callout.js.map +1 -0
- package/dist/cjs/components/Checkbox.js +44 -0
- package/dist/cjs/components/Checkbox.js.map +1 -0
- package/dist/cjs/components/ColorPicker.js +36 -0
- package/dist/cjs/components/ColorPicker.js.map +1 -0
- package/dist/cjs/components/DataTable.js +4 -3
- package/dist/cjs/components/DataTable.js.map +1 -1
- package/dist/cjs/components/Dialog.js +89 -0
- package/dist/cjs/components/Dialog.js.map +1 -0
- package/dist/cjs/components/DropdownMenu.js +182 -0
- package/dist/cjs/components/DropdownMenu.js.map +1 -0
- package/dist/cjs/components/Empty.js +59 -0
- package/dist/cjs/components/Empty.js.map +1 -0
- package/dist/cjs/components/Input.js +167 -0
- package/dist/cjs/components/Input.js.map +1 -0
- package/dist/cjs/components/Kbd.js +63 -0
- package/dist/cjs/components/Kbd.js.map +1 -0
- package/dist/cjs/components/Label.js +91 -0
- package/dist/cjs/components/Label.js.map +1 -0
- package/dist/cjs/components/MultiSelect.js +13 -0
- package/dist/cjs/components/MultiSelect.js.map +1 -0
- package/dist/cjs/components/MultiSelectCombobox.js +3 -0
- package/dist/cjs/components/MultiSelectCombobox.js.map +1 -0
- package/dist/cjs/components/MultiSelectDropdown.js +38 -0
- package/dist/cjs/components/MultiSelectDropdown.js.map +1 -0
- package/dist/cjs/components/OptionItem.js +34 -0
- package/dist/cjs/components/OptionItem.js.map +1 -0
- package/dist/cjs/components/Popover.js +123 -0
- package/dist/cjs/components/Popover.js.map +1 -0
- package/dist/cjs/components/Progress.js +22 -0
- package/dist/cjs/components/Progress.js.map +1 -0
- package/dist/cjs/components/RadioGroup.js +63 -0
- package/dist/cjs/components/RadioGroup.js.map +1 -0
- package/dist/cjs/components/Select.js +3 -0
- package/dist/cjs/components/Select.js.map +1 -0
- package/dist/cjs/components/SelectFieldWrapper.js +33 -0
- package/dist/cjs/components/SelectFieldWrapper.js.map +1 -0
- package/dist/cjs/components/SelectOptions.js +43 -0
- package/dist/cjs/components/SelectOptions.js.map +1 -0
- package/dist/cjs/components/SelectTriggerContent.js +47 -0
- package/dist/cjs/components/SelectTriggerContent.js.map +1 -0
- package/dist/cjs/components/Sheet.js +91 -0
- package/dist/cjs/components/Sheet.js.map +1 -0
- package/dist/cjs/components/Slider.js +45 -0
- package/dist/cjs/components/Slider.js.map +1 -0
- package/dist/cjs/components/Spinner.js +27 -0
- package/dist/cjs/components/Spinner.js.map +1 -0
- package/dist/cjs/components/Stepper.js +39 -0
- package/dist/cjs/components/Stepper.js.map +1 -0
- package/dist/cjs/components/Switch.js +35 -0
- package/dist/cjs/components/Switch.js.map +1 -0
- package/dist/cjs/components/Tabs.js +74 -0
- package/dist/cjs/components/Tabs.js.map +1 -0
- package/dist/cjs/components/Textarea.js +89 -0
- package/dist/cjs/components/Textarea.js.map +1 -0
- package/dist/cjs/components/Toastr.js +133 -0
- package/dist/cjs/components/Toastr.js.map +1 -0
- package/dist/cjs/components/Tooltip.js +109 -0
- package/dist/cjs/components/Tooltip.js.map +1 -0
- package/dist/cjs/components/TranslationProvider.js +12 -0
- package/dist/cjs/components/TranslationProvider.js.map +1 -0
- package/dist/cjs/{primitives → components}/Typography.js +6 -6
- package/dist/cjs/components/Typography.js.map +1 -0
- package/dist/cjs/components/shared.js +8 -0
- package/dist/cjs/components/shared.js.map +1 -0
- package/dist/cjs/{dialog-DzNWLbJ6.js → dialog-Bvyrshz3.js} +5 -3
- package/dist/cjs/dialog-Bvyrshz3.js.map +1 -0
- package/dist/cjs/{index-DAds6mf_.js → index-BLGrl3PF.js} +31 -31
- package/dist/cjs/{index-DAds6mf_.js.map → index-BLGrl3PF.js.map} +1 -1
- package/dist/cjs/{index-BqCr1H3u.js → index-BiGm7NEA.js} +11 -11
- package/dist/cjs/{index-BqCr1H3u.js.map → index-BiGm7NEA.js.map} +1 -1
- package/dist/cjs/{index-CGet1HH4.js → index-PdtYHwPi.js} +66 -66
- package/dist/cjs/{index-CGet1HH4.js.map → index-PdtYHwPi.js.map} +1 -1
- package/dist/cjs/index-Vlwnyfvs.js +1145 -0
- package/dist/cjs/index-Vlwnyfvs.js.map +1 -0
- package/dist/cjs/{index-DR7GJU4J.js → index-hQmfI1O7.js} +17 -17
- package/dist/cjs/{index-DR7GJU4J.js.map → index-hQmfI1O7.js.map} +1 -1
- package/dist/cjs/index.js +497 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/primitives/Accordion.js +16 -16
- package/dist/cjs/primitives/Accordion.js.map +1 -1
- package/dist/cjs/primitives/AlertDialog.js +1 -1
- package/dist/cjs/primitives/Badge.js +58 -6
- package/dist/cjs/primitives/Badge.js.map +1 -1
- package/dist/cjs/primitives/Breadcrumb.js +5 -2
- package/dist/cjs/primitives/Breadcrumb.js.map +1 -1
- package/dist/cjs/primitives/Carousel.js +5 -2
- package/dist/cjs/primitives/Carousel.js.map +1 -1
- package/dist/cjs/primitives/Chart.js +137 -137
- package/dist/cjs/primitives/Chart.js.map +1 -1
- package/dist/cjs/primitives/Collapsible.js +1 -1
- package/dist/cjs/primitives/Combobox.js +4 -4
- package/dist/cjs/primitives/Combobox.js.map +1 -1
- package/dist/cjs/primitives/Command.js +7 -3
- package/dist/cjs/primitives/Command.js.map +1 -1
- package/dist/cjs/primitives/ContextMenu.js +2 -2
- package/dist/cjs/primitives/Dialog.js +11 -6
- package/dist/cjs/primitives/Dialog.js.map +1 -1
- package/dist/cjs/primitives/Drawer.js +1 -1
- package/dist/cjs/primitives/DropdownMenu.js +38 -38
- package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
- package/dist/cjs/primitives/HoverCard.js +16 -16
- package/dist/cjs/primitives/Menubar.js +2 -2
- package/dist/cjs/primitives/Pagination.js +11 -5
- package/dist/cjs/primitives/Pagination.js.map +1 -1
- package/dist/cjs/primitives/Popover.js +13 -13
- package/dist/cjs/primitives/RadioGroup.js +27 -26
- package/dist/cjs/primitives/RadioGroup.js.map +1 -1
- package/dist/cjs/primitives/Select.js +77 -77
- package/dist/cjs/primitives/Sheet.js +11 -6
- package/dist/cjs/primitives/Sheet.js.map +1 -1
- package/dist/cjs/primitives/Sidebar.js +10 -6
- package/dist/cjs/primitives/Sidebar.js.map +1 -1
- package/dist/cjs/primitives/Sonner.js +19 -1180
- package/dist/cjs/primitives/Sonner.js.map +1 -1
- package/dist/cjs/primitives/Spinner.js +3 -1
- package/dist/cjs/primitives/Spinner.js.map +1 -1
- package/dist/cjs/primitives/Switch.js +4 -8
- package/dist/cjs/primitives/Switch.js.map +1 -1
- package/dist/cjs/primitives/Tabs.js +11 -11
- package/dist/cjs/primitives/ToggleGroup.js +1 -1
- package/dist/cjs/primitives/Tooltip.js +1 -1
- package/dist/cjs/primitives/index.js +11 -11
- package/dist/cjs/renderIcon-fLF3odqg.js +26 -0
- package/dist/cjs/renderIcon-fLF3odqg.js.map +1 -0
- package/dist/cjs/{sheet-nHSYZxAA.js → sheet-BZHMKVH1.js} +5 -3
- package/dist/cjs/sheet-BZHMKVH1.js.map +1 -0
- package/dist/cjs/{tooltip-CRkOMh1b.js → tooltip-C-568jEL.js} +17 -17
- package/dist/cjs/{tooltip-CRkOMh1b.js.map → tooltip-C-568jEL.js.map} +1 -1
- package/dist/cjs/triangle-alert-ZUMRpmzW.js +43 -0
- package/dist/cjs/triangle-alert-ZUMRpmzW.js.map +1 -0
- package/dist/cjs/useCreatableItems-BTHtd7uo.js +100 -0
- package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +1 -0
- package/dist/cjs/{reselect-CeyIIDM-.js → with-selector-u4xTSzCv.js} +111 -111
- package/dist/cjs/with-selector-u4xTSzCv.js.map +1 -0
- package/dist/components/Accordion.d.ts +18 -0
- package/dist/components/Accordion.js +43 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/Alert.d.ts +51 -0
- package/dist/components/Alert.js +103 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/Avatar.d.ts +31 -0
- package/dist/components/Avatar.js +73 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.d.ts +29 -0
- package/dist/components/Badge.js +71 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Button.d.ts +47 -0
- package/dist/components/Button.js +120 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Callout.d.ts +17 -0
- package/dist/components/Callout.js +71 -0
- package/dist/components/Callout.js.map +1 -0
- package/dist/components/Checkbox.d.ts +16 -0
- package/dist/components/Checkbox.js +42 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +4 -0
- package/dist/components/ColorPicker/Palette.d.ts +12 -0
- package/dist/components/ColorPicker/Target.d.ts +15 -0
- package/dist/components/ColorPicker/constants.d.ts +10 -0
- package/dist/components/ColorPicker/hooks/useEyeDropper.d.ts +15 -0
- package/dist/components/ColorPicker/hooks/useRecentlyUsedColors.d.ts +11 -0
- package/dist/components/ColorPicker/index.d.ts +2 -0
- package/dist/components/ColorPicker/types.d.ts +42 -0
- package/dist/components/ColorPicker/utils.d.ts +31 -0
- package/dist/components/ColorPicker.js +30 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/DataTable/components/EmptyState.d.ts +1 -1
- package/dist/components/DataTable.js +3 -2
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/Dialog.d.ts +56 -0
- package/dist/components/Dialog.js +87 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DropdownMenu/Divider.d.ts +3 -0
- package/dist/components/DropdownMenu/DropdownBase.d.ts +3 -0
- package/dist/components/DropdownMenu/Label.d.ts +7 -0
- package/dist/components/DropdownMenu/Menu.d.ts +7 -0
- package/dist/components/DropdownMenu/MenuItem.d.ts +10 -0
- package/dist/components/DropdownMenu/MenuItemButton.d.ts +4 -0
- package/dist/components/DropdownMenu/SplitTrigger.d.ts +13 -0
- package/dist/components/DropdownMenu/SubMenu.d.ts +10 -0
- package/dist/components/DropdownMenu/TriggerButton.d.ts +10 -0
- package/dist/components/DropdownMenu/constants.d.ts +7 -0
- package/dist/components/DropdownMenu/index.d.ts +16 -0
- package/dist/components/DropdownMenu/types.d.ts +88 -0
- package/dist/components/DropdownMenu.js +180 -0
- package/dist/components/DropdownMenu.js.map +1 -0
- package/dist/components/Empty.d.ts +27 -0
- package/dist/components/Empty.js +57 -0
- package/dist/components/Empty.js.map +1 -0
- package/dist/components/Input.d.ts +39 -0
- package/dist/components/Input.js +165 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/Kbd.d.ts +15 -0
- package/dist/components/Kbd.js +61 -0
- package/dist/components/Kbd.js.map +1 -0
- package/dist/components/Label.d.ts +40 -0
- package/dist/components/Label.js +89 -0
- package/dist/components/Label.js.map +1 -0
- package/dist/components/MultiSelect.constants.d.ts +5 -0
- package/dist/components/MultiSelect.d.ts +4 -0
- package/dist/components/MultiSelect.js +4 -0
- package/dist/components/MultiSelect.js.map +1 -0
- package/dist/components/MultiSelect.types.d.ts +121 -0
- package/dist/components/MultiSelect.utils.d.ts +18 -0
- package/dist/components/MultiSelectCombobox.d.ts +3 -0
- package/dist/components/MultiSelectCombobox.js +2 -0
- package/dist/components/MultiSelectCombobox.js.map +1 -0
- package/dist/components/MultiSelectCombobox.types.d.ts +52 -0
- package/dist/components/MultiSelectDropdown.d.ts +9 -0
- package/dist/components/MultiSelectDropdown.js +36 -0
- package/dist/components/MultiSelectDropdown.js.map +1 -0
- package/dist/components/OptionItem.d.ts +9 -0
- package/dist/components/OptionItem.js +32 -0
- package/dist/components/OptionItem.js.map +1 -0
- package/dist/components/Popover.d.ts +47 -0
- package/dist/components/Popover.js +117 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.d.ts +12 -0
- package/dist/components/Progress.js +20 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/RadioGroup.d.ts +32 -0
- package/dist/components/RadioGroup.js +61 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/Select.constants.d.ts +5 -0
- package/dist/components/Select.d.ts +4 -0
- package/dist/components/Select.js +2 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Select.types.d.ts +58 -0
- package/dist/components/SelectFieldWrapper.d.ts +18 -0
- package/dist/components/SelectFieldWrapper.js +31 -0
- package/dist/components/SelectFieldWrapper.js.map +1 -0
- package/dist/components/SelectOptions.d.ts +2 -0
- package/dist/components/SelectOptions.js +41 -0
- package/dist/components/SelectOptions.js.map +1 -0
- package/dist/components/SelectTriggerContent.d.ts +18 -0
- package/dist/components/SelectTriggerContent.js +45 -0
- package/dist/components/SelectTriggerContent.js.map +1 -0
- package/dist/components/Sheet.d.ts +54 -0
- package/dist/components/Sheet.js +89 -0
- package/dist/components/Sheet.js.map +1 -0
- package/dist/components/Slider.d.ts +19 -0
- package/dist/components/Slider.js +43 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/Spinner.d.ts +10 -0
- package/dist/components/Spinner.js +25 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Stepper.d.ts +18 -0
- package/dist/components/Stepper.js +33 -0
- package/dist/components/Stepper.js.map +1 -0
- package/dist/components/Switch.d.ts +18 -0
- package/dist/components/Switch.js +33 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Tabs.d.ts +20 -0
- package/dist/components/Tabs.js +72 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Textarea.d.ts +36 -0
- package/dist/components/Textarea.js +87 -0
- package/dist/components/Textarea.js.map +1 -0
- package/dist/components/Toastr.d.ts +30 -0
- package/dist/components/Toastr.js +131 -0
- package/dist/components/Toastr.js.map +1 -0
- package/dist/components/Tooltip.d.ts +29 -0
- package/dist/components/Tooltip.js +103 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/TranslationProvider/TranslationProvider.d.ts +6 -0
- package/dist/components/TranslationProvider/i18n.d.ts +1 -0
- package/dist/components/TranslationProvider/index.d.ts +2 -0
- package/dist/components/TranslationProvider/types.d.ts +7 -0
- package/dist/components/TranslationProvider.js +6 -0
- package/dist/components/TranslationProvider.js.map +1 -0
- package/dist/{primitives → components}/Typography.d.ts +3 -3
- package/dist/{primitives → components}/Typography.js +6 -6
- package/dist/components/Typography.js.map +1 -0
- package/dist/components/shared.js +6 -0
- package/dist/components/shared.js.map +1 -0
- package/dist/components/shared.types.d.ts +16 -0
- package/dist/{dialog-C97DOTvO.js → dialog-CrB6N_2a.js} +6 -4
- package/dist/dialog-CrB6N_2a.js.map +1 -0
- package/dist/hooks/useAsyncOptions.d.ts +13 -0
- package/dist/hooks/useCreatableItems.d.ts +30 -0
- package/dist/hooks/useLazyLoadSentinel.d.ts +6 -0
- package/dist/hooks/useMultiSelectOptions.d.ts +15 -0
- package/dist/hooks/useMultiSelectState.d.ts +37 -0
- package/dist/hooks/useSelectState.d.ts +27 -0
- package/dist/{index-PF0ms7Xn.js → index-9HvIbmnI.js} +3 -3
- package/dist/{index-PF0ms7Xn.js.map → index-9HvIbmnI.js.map} +1 -1
- package/dist/index-D_roZz8G.js +1137 -0
- package/dist/index-D_roZz8G.js.map +1 -0
- package/dist/{index-BwxI_qgh.js → index-KzJfsx-e.js} +3 -3
- package/dist/{index-BwxI_qgh.js.map → index-KzJfsx-e.js.map} +1 -1
- package/dist/index.css +25 -1
- package/dist/index.d.ts +61 -0
- package/dist/index.js +463 -24
- package/dist/index.js.map +1 -1
- package/dist/{input-group-CDBpz6Pb.js → input-group-ytECR3Hw.js} +2 -2
- package/dist/{input-group-CDBpz6Pb.js.map → input-group-ytECR3Hw.js.map} +1 -1
- package/dist/lib/renderIcon.d.ts +5 -0
- package/dist/primitives/Accordion.js +1 -1
- package/dist/primitives/AlertDialog.js +1 -1
- package/dist/primitives/Badge.d.ts +13 -3
- package/dist/primitives/Badge.js +54 -2
- package/dist/primitives/Badge.js.map +1 -1
- package/dist/primitives/Breadcrumb.js +5 -2
- package/dist/primitives/Breadcrumb.js.map +1 -1
- package/dist/primitives/Carousel.js +5 -2
- package/dist/primitives/Carousel.js.map +1 -1
- package/dist/primitives/Chart.js +1 -1
- package/dist/primitives/Combobox.js +3 -3
- package/dist/primitives/Command.js +8 -4
- package/dist/primitives/Command.js.map +1 -1
- package/dist/primitives/ContextMenu.js +1 -1
- package/dist/primitives/Dialog.d.ts +11 -3
- package/dist/primitives/Dialog.js +12 -7
- package/dist/primitives/Dialog.js.map +1 -1
- package/dist/primitives/Drawer.js +1 -1
- package/dist/primitives/DropdownMenu.js +2 -2
- package/dist/primitives/InputGroup.js +1 -1
- package/dist/primitives/Menubar.js +1 -1
- package/dist/primitives/Pagination.js +11 -5
- package/dist/primitives/Pagination.js.map +1 -1
- package/dist/primitives/RadioGroup.d.ts +8 -3
- package/dist/primitives/RadioGroup.js +9 -8
- package/dist/primitives/RadioGroup.js.map +1 -1
- package/dist/primitives/Select.js +3 -3
- package/dist/primitives/Sheet.d.ts +12 -3
- package/dist/primitives/Sheet.js +12 -7
- package/dist/primitives/Sheet.js.map +1 -1
- package/dist/primitives/Sidebar.js +10 -6
- package/dist/primitives/Sidebar.js.map +1 -1
- package/dist/primitives/Sonner.js +16 -1175
- package/dist/primitives/Sonner.js.map +1 -1
- package/dist/primitives/Spinner.js +3 -1
- package/dist/primitives/Spinner.js.map +1 -1
- package/dist/primitives/Switch.d.ts +6 -3
- package/dist/primitives/Switch.js +4 -8
- package/dist/primitives/Switch.js.map +1 -1
- package/dist/primitives/Tooltip.js +1 -1
- package/dist/primitives/index.d.ts +0 -1
- package/dist/primitives/index.js +10 -8
- package/dist/primitives/index.js.map +1 -1
- package/dist/renderIcon-tlvMyboj.js +20 -0
- package/dist/renderIcon-tlvMyboj.js.map +1 -0
- package/dist/shadcn/components/command.d.ts +1 -1
- package/dist/shadcn/components/pagination.d.ts +2 -2
- package/dist/shadcn/components/typography.d.ts +6 -6
- package/dist/{sheet-D1ngftfX.js → sheet-C763FqIh.js} +6 -4
- package/dist/sheet-C763FqIh.js.map +1 -0
- package/dist/{tooltip-D5soNrAP.js → tooltip-DzjIJacP.js} +3 -3
- package/dist/{tooltip-D5soNrAP.js.map → tooltip-DzjIJacP.js.map} +1 -1
- package/dist/translations/index.d.ts +66 -0
- package/dist/triangle-alert-PXnNWQy_.js +40 -0
- package/dist/triangle-alert-PXnNWQy_.js.map +1 -0
- package/dist/useCreatableItems-B0seQA1_.js +89 -0
- package/dist/useCreatableItems-B0seQA1_.js.map +1 -0
- package/dist/utils/fieldIds.d.ts +2 -0
- package/dist/utils/hyphenize.d.ts +1 -0
- package/dist/{reselect-CABQm5hA.js → with-selector--fY1NrB9.js} +111 -111
- package/dist/with-selector--fY1NrB9.js.map +1 -0
- package/package.json +39 -34
- package/dist/DataTable-Y4POx0WN.js.map +0 -1
- package/dist/cjs/DataTable-DJw2SZ7b.js.map +0 -1
- package/dist/cjs/dialog-DzNWLbJ6.js.map +0 -1
- package/dist/cjs/primitives/Typography.js.map +0 -1
- package/dist/cjs/reselect-CeyIIDM-.js.map +0 -1
- package/dist/cjs/sheet-nHSYZxAA.js.map +0 -1
- package/dist/dialog-C97DOTvO.js.map +0 -1
- package/dist/primitives/Typography.js.map +0 -1
- package/dist/reselect-CABQm5hA.js.map +0 -1
- package/dist/sheet-D1ngftfX.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from '../primitives/Field.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import '../index-D7Zy7P05.js';
|
|
5
|
+
import '../utils-DdHUxIdC.js';
|
|
6
|
+
import '../label-B4qDF3W1.js';
|
|
7
|
+
import '../index-DhnfW8wQ.js';
|
|
8
|
+
import 'react-dom';
|
|
9
|
+
import '../index-BtkPdosV.js';
|
|
10
|
+
import '../separator-BbhgePmX.js';
|
|
11
|
+
|
|
12
|
+
function SelectFieldWrapper({ id, label, error, helpText, errorId, helpTextId, isDisabled, required, testIdPrefix, labelProps, className, children, }) {
|
|
13
|
+
const hasField = !!(label || error || helpText);
|
|
14
|
+
if (!hasField) {
|
|
15
|
+
return (jsx("div", { className: className, ...(testIdPrefix
|
|
16
|
+
? { "data-testid": `${testIdPrefix}-select-container-wrapper` }
|
|
17
|
+
: {}), children: children }));
|
|
18
|
+
}
|
|
19
|
+
return (jsxs(Field, { "data-disabled": isDisabled || undefined, "data-invalid": !!error || undefined, className: className, ...(testIdPrefix
|
|
20
|
+
? { "data-testid": `${testIdPrefix}-select-container-wrapper` }
|
|
21
|
+
: {}), children: [label && (jsxs(FieldLabel, { htmlFor: id, ...labelProps, ...(testIdPrefix
|
|
22
|
+
? { "data-testid": `${testIdPrefix}-input-label` }
|
|
23
|
+
: {}), children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxs(FieldContent, { children: [children, !!error && (jsx(FieldError, { id: errorId, ...(testIdPrefix
|
|
24
|
+
? { "data-testid": `${testIdPrefix}-select-error` }
|
|
25
|
+
: {}), children: error })), helpText && (jsx(FieldDescription, { id: helpTextId, ...(testIdPrefix
|
|
26
|
+
? { "data-testid": `${testIdPrefix}-select-help-text` }
|
|
27
|
+
: {}), children: helpText }))] })] }));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { SelectFieldWrapper };
|
|
31
|
+
//# sourceMappingURL=SelectFieldWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectFieldWrapper.js","sources":["../../src/components/SelectFieldWrapper.tsx"],"sourcesContent":["import type React from \"react\";\n\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\ninterface SelectFieldWrapperProps {\n id: string;\n label: string;\n error: string;\n helpText: React.ReactNode;\n errorId: string;\n helpTextId: string;\n isDisabled: boolean;\n required: boolean;\n testIdPrefix?: string;\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function SelectFieldWrapper({\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n testIdPrefix,\n labelProps,\n className,\n children,\n}: SelectFieldWrapperProps) {\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <div\n className={className}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container-wrapper` }\n : {})}\n >\n {children}\n </div>\n );\n }\n\n return (\n <Field\n data-disabled={isDisabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container-wrapper` }\n : {})}\n >\n {label && (\n <FieldLabel\n htmlFor={id}\n {...labelProps}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-input-label` }\n : {})}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {children}\n {!!error && (\n <FieldError\n id={errorId}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-error` }\n : {})}\n >\n {error}\n </FieldError>\n )}\n {helpText && (\n <FieldDescription\n id={helpTextId}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-help-text` }\n : {})}\n >\n {helpText}\n </FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;AA4BM,SAAU,kBAAkB,CAAC,EACjC,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,GACgB,EAAA;IACxB,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,SAAS,EAAA,IACf;AACH,kBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,2BAA2B;AAC7D,kBAAE,EAAE,CAAC,YAEN,QAAQ,EAAA,CACL;IAEV;AAEA,IAAA,QACEC,IAAA,CAAC,KAAK,qBACW,UAAU,IAAI,SAAS,EAAA,cAAA,EACxB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,IACf;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,2BAA2B;AAC7D,cAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,KAAK,KACJA,IAAA,CAAC,UAAU,EAAA,EACT,OAAO,EAAE,EAAE,KACP,UAAU,EAAA,IACT;AACH,sBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,cAAc;AAChD,sBAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,KAAK,EACL,QAAQ,KACPD,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDC,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACV,QAAQ,EACR,CAAC,CAAC,KAAK,KACND,GAAA,CAAC,UAAU,EAAA,EACT,EAAE,EAAE,OAAO,EAAA,IACN;AACH,8BAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,eAAe;AACjD,8BAAE,EAAE,CAAC,YAEN,KAAK,EAAA,CACK,CACd,EACA,QAAQ,KACPA,GAAA,CAAC,gBAAgB,EAAA,EACf,EAAE,EAAE,UAAU,EAAA,IACT;AACH,8BAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,mBAAmB;8BACnD,EAAE,CAAC,EAAA,QAAA,EAEN,QAAQ,GACQ,CACpB,CAAA,EAAA,CACY,CAAA,EAAA,CACT;AAEZ;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { SelectGroup, SelectLabel, SelectItem } from '../primitives/Select.js';
|
|
3
|
+
import { isOptionGroup } from './shared.js';
|
|
4
|
+
import '../utils-DdHUxIdC.js';
|
|
5
|
+
import '../chevron-down-BNi0ntys.js';
|
|
6
|
+
import '../createLucideIcon-C8ycilSN.js';
|
|
7
|
+
import 'react';
|
|
8
|
+
import '../chevron-up-Bf2G3AAU.js';
|
|
9
|
+
import '../check-Cpkv29p1.js';
|
|
10
|
+
import 'react-dom';
|
|
11
|
+
import '../index-BfAAoDv6.js';
|
|
12
|
+
import '../index-DNzunGHb.js';
|
|
13
|
+
import '../index-Dd1i1d2M.js';
|
|
14
|
+
import '../index-CiyxEyB0.js';
|
|
15
|
+
import '../index-BtkPdosV.js';
|
|
16
|
+
import '../index-BA158WEj.js';
|
|
17
|
+
import '../index-BNPynZWM.js';
|
|
18
|
+
import '../index-DhnfW8wQ.js';
|
|
19
|
+
import '../index-CSUSJzOJ.js';
|
|
20
|
+
import '../index-B4_fVWDx.js';
|
|
21
|
+
import '../index-zW4GjM5L.js';
|
|
22
|
+
import '../index-DOzu5J1s.js';
|
|
23
|
+
import '../index-ByEpUy7w.js';
|
|
24
|
+
import '../floating-ui.react-dom-CcGbtPEK.js';
|
|
25
|
+
import '../index-BYZaLNq1.js';
|
|
26
|
+
import '../index-fV_U4ZJM.js';
|
|
27
|
+
import '../index-Cor698lu.js';
|
|
28
|
+
import '../index-30QpKM0j.js';
|
|
29
|
+
import '../index-CSggBaQF.js';
|
|
30
|
+
|
|
31
|
+
function renderOptions(options, testId) {
|
|
32
|
+
return options.map(opt => {
|
|
33
|
+
if (isOptionGroup(opt)) {
|
|
34
|
+
return (jsxs(SelectGroup, { children: [jsx(SelectLabel, { children: opt.label }), opt.options.map(item => (jsx(SelectItem, { value: item.value, disabled: item.disabled, ...(testId ? { "data-testid": `${testId}-select-option` } : {}), children: item.label }, item.value)))] }, opt.label));
|
|
35
|
+
}
|
|
36
|
+
return (jsx(SelectItem, { value: opt.value, disabled: opt.disabled, ...(testId ? { "data-testid": `${testId}-select-option` } : {}), children: opt.label }, opt.value));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { renderOptions };
|
|
41
|
+
//# sourceMappingURL=SelectOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectOptions.js","sources":["../../src/components/SelectOptions.tsx"],"sourcesContent":["import { SelectGroup, SelectItem, SelectLabel } from \"src/primitives/Select\";\nimport { isOptionGroup } from \"./shared.types\";\nimport type { SelectOption } from \"./Select.types\";\n\nexport function renderOptions(options: SelectOption[], testId?: string) {\n return options.map(opt => {\n if (isOptionGroup(opt)) {\n return (\n <SelectGroup key={opt.label}>\n <SelectLabel>{opt.label}</SelectLabel>\n {opt.options.map(item => (\n <SelectItem\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n {...(testId ? { \"data-testid\": `${testId}-select-option` } : {})}\n >\n {item.label}\n </SelectItem>\n ))}\n </SelectGroup>\n );\n }\n\n return (\n <SelectItem\n key={opt.value}\n value={opt.value}\n disabled={opt.disabled}\n {...(testId ? { \"data-testid\": `${testId}-select-option` } : {})}\n >\n {opt.label}\n </SelectItem>\n );\n });\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIM,SAAU,aAAa,CAAC,OAAuB,EAAE,MAAe,EAAA;AACpE,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AACvB,QAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,QACEA,IAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACVC,IAAC,WAAW,EAAA,EAAA,QAAA,EAAE,GAAG,CAAC,KAAK,EAAA,CAAe,EACrC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KACnBA,IAAC,UAAU,EAAA,EAET,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,IAClB,MAAM,GAAG,EAAE,aAAa,EAAE,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB,EAAE,GAAG,EAAE,CAAC,EAAA,QAAA,EAE/D,IAAI,CAAC,KAAK,EAAA,EALN,IAAI,CAAC,KAAK,CAMJ,CACd,CAAC,KAXc,GAAG,CAAC,KAAK,CAYb;QAElB;AAEA,QAAA,QACEA,GAAA,CAAC,UAAU,IAET,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ,MACjB,MAAM,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA,cAAA,CAAgB,EAAE,GAAG,EAAE,CAAC,YAE/D,GAAG,CAAC,KAAK,EAAA,EALL,GAAG,CAAC,KAAK,CAMH;AAEjB,IAAA,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface SelectTriggerContentProps {
|
|
3
|
+
id: string;
|
|
4
|
+
sizeConfig: {
|
|
5
|
+
trigger: string;
|
|
6
|
+
size: "sm" | "default";
|
|
7
|
+
clearBtn: string;
|
|
8
|
+
};
|
|
9
|
+
error: string;
|
|
10
|
+
ariaDescribedBy?: string;
|
|
11
|
+
triggerClassName?: string;
|
|
12
|
+
testIdPrefix?: string;
|
|
13
|
+
placeholder: string;
|
|
14
|
+
showClearButton: boolean;
|
|
15
|
+
handleClear: (e: React.MouseEvent) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare const SelectTriggerContent: React.ForwardRefExoticComponent<SelectTriggerContentProps & React.RefAttributes<HTMLButtonElement>>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { c as cn } from '../utils-DdHUxIdC.js';
|
|
5
|
+
import { SelectTrigger, SelectValue } from '../primitives/Select.js';
|
|
6
|
+
import { X } from '../x-_o2T3n6D.js';
|
|
7
|
+
import '../chevron-down-BNi0ntys.js';
|
|
8
|
+
import '../createLucideIcon-C8ycilSN.js';
|
|
9
|
+
import '../chevron-up-Bf2G3AAU.js';
|
|
10
|
+
import '../check-Cpkv29p1.js';
|
|
11
|
+
import 'react-dom';
|
|
12
|
+
import '../index-BfAAoDv6.js';
|
|
13
|
+
import '../index-DNzunGHb.js';
|
|
14
|
+
import '../index-Dd1i1d2M.js';
|
|
15
|
+
import '../index-CiyxEyB0.js';
|
|
16
|
+
import '../index-BtkPdosV.js';
|
|
17
|
+
import '../index-BA158WEj.js';
|
|
18
|
+
import '../index-BNPynZWM.js';
|
|
19
|
+
import '../index-DhnfW8wQ.js';
|
|
20
|
+
import '../index-CSUSJzOJ.js';
|
|
21
|
+
import '../index-B4_fVWDx.js';
|
|
22
|
+
import '../index-zW4GjM5L.js';
|
|
23
|
+
import '../index-DOzu5J1s.js';
|
|
24
|
+
import '../index-ByEpUy7w.js';
|
|
25
|
+
import '../floating-ui.react-dom-CcGbtPEK.js';
|
|
26
|
+
import '../index-BYZaLNq1.js';
|
|
27
|
+
import '../index-fV_U4ZJM.js';
|
|
28
|
+
import '../index-Cor698lu.js';
|
|
29
|
+
import '../index-30QpKM0j.js';
|
|
30
|
+
import '../index-CSggBaQF.js';
|
|
31
|
+
|
|
32
|
+
const SelectTriggerContent = forwardRef(({ id, sizeConfig, error, ariaDescribedBy, triggerClassName, testIdPrefix, placeholder, showClearButton, handleClear, }, ref) => {
|
|
33
|
+
const { t } = useTranslation();
|
|
34
|
+
return (jsxs(SelectTrigger, { ref: ref, id: id, size: sizeConfig.size, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: cn("w-full", sizeConfig.trigger, triggerClassName), ...(testIdPrefix
|
|
35
|
+
? { "data-testid": `${testIdPrefix}-select-container` }
|
|
36
|
+
: {}), children: [jsx(SelectValue, { placeholder: placeholder, ...(testIdPrefix
|
|
37
|
+
? { "data-testid": `${testIdPrefix}-select-value` }
|
|
38
|
+
: {}) }), showClearButton && (jsx("button", { type: "button", "aria-label": t("neetoatoms.select.clearSelection", "Clear selection"), tabIndex: -1, className: cn("ms-auto shrink-0 rounded-sm opacity-50", "hover:opacity-100 focus-visible:outline-none"), onClick: handleClear, onPointerDown: e => e.preventDefault(), ...(testIdPrefix
|
|
39
|
+
? { "data-testid": `${testIdPrefix}-clear-indicator` }
|
|
40
|
+
: {}), children: jsx(X, { "aria-hidden": "true", className: sizeConfig.clearBtn }) }))] }));
|
|
41
|
+
});
|
|
42
|
+
SelectTriggerContent.displayName = "SelectTriggerContent";
|
|
43
|
+
|
|
44
|
+
export { SelectTriggerContent };
|
|
45
|
+
//# sourceMappingURL=SelectTriggerContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTriggerContent.js","sources":["../../src/components/SelectTriggerContent.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { X } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { SelectTrigger, SelectValue } from \"src/primitives/Select\";\n\ninterface SelectTriggerContentProps {\n id: string;\n sizeConfig: { trigger: string; size: \"sm\" | \"default\"; clearBtn: string };\n error: string;\n ariaDescribedBy?: string;\n triggerClassName?: string;\n testIdPrefix?: string;\n placeholder: string;\n showClearButton: boolean;\n handleClear: (e: React.MouseEvent) => void;\n}\n\nexport const SelectTriggerContent = forwardRef<\n HTMLButtonElement,\n SelectTriggerContentProps\n>(\n (\n {\n id,\n sizeConfig,\n error,\n ariaDescribedBy,\n triggerClassName,\n testIdPrefix,\n placeholder,\n showClearButton,\n handleClear,\n },\n ref\n ) => {\n const { t } = useTranslation();\n\n return (\n <SelectTrigger\n ref={ref}\n id={id}\n size={sizeConfig.size}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(\"w-full\", sizeConfig.trigger, triggerClassName)}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container` }\n : {})}\n >\n <SelectValue\n placeholder={placeholder}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-value` }\n : {})}\n />\n {showClearButton && (\n <button\n type=\"button\"\n aria-label={t(\n \"neetoatoms.select.clearSelection\",\n \"Clear selection\"\n )}\n tabIndex={-1}\n className={cn(\n \"ms-auto shrink-0 rounded-sm opacity-50\",\n \"hover:opacity-100 focus-visible:outline-none\"\n )}\n onClick={handleClear}\n onPointerDown={e => e.preventDefault()}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-clear-indicator` }\n : {})}\n >\n <X aria-hidden=\"true\" className={sizeConfig.clearBtn} />\n </button>\n )}\n </SelectTrigger>\n );\n }\n);\n\nSelectTriggerContent.displayName = \"SelectTriggerContent\";\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,oBAAoB,GAAG,UAAU,CAI5C,CACE,EACE,EAAE,EACF,UAAU,EACV,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,GACZ,EACD,GAAG,KACD;AACF,IAAA,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE;AAE9B,IAAA,QACEA,IAAA,CAAC,aAAa,IACZ,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,UAAU,CAAC,IAAI,kBACP,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,kBAAA,EAChB,eAAe,EACjC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAA,IACxD;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,mBAAmB;AACrD,cAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEPC,GAAA,CAAC,WAAW,EAAA,EACV,WAAW,EAAE,WAAW,EAAA,IACnB;AACH,sBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,eAAe;sBAC/C,EAAE,CAAC,EAAA,CACP,EACD,eAAe,KACdA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EAAA,YAAA,EACD,CAAC,CACX,kCAAkC,EAClC,iBAAiB,CAClB,EACD,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,8CAA8C,CAC/C,EACD,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAA,IACjC;AACH,sBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,kBAAkB;AACpD,sBAAE,EAAE,CAAC,YAEPA,GAAA,CAAC,CAAC,mBAAa,MAAM,EAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAA,CAAI,GACjD,CACV,CAAA,EAAA,CACa;AAEpB,CAAC;AAGH,oBAAoB,CAAC,WAAW,GAAG,sBAAsB;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React, { type ReactNode, type RefObject } from "react";
|
|
2
|
+
import { SheetContent as PrimitiveSheetContent } from "src/primitives/Sheet";
|
|
3
|
+
type SheetSize = "small" | "large" | "extraLarge";
|
|
4
|
+
/** Radix Sheet.Content props we forward via ...otherProps. */
|
|
5
|
+
type SheetContentProps = React.ComponentProps<typeof PrimitiveSheetContent>;
|
|
6
|
+
export interface SheetProps extends Omit<SheetContentProps, "children" | "className" | "side" | "showCloseButton" | "onEscapeKeyDown" | "onInteractOutside"> {
|
|
7
|
+
/** Size of the sheet. */
|
|
8
|
+
size?: SheetSize;
|
|
9
|
+
/** Whether the sheet is open. */
|
|
10
|
+
isOpen?: boolean;
|
|
11
|
+
/** Callback invoked when the sheet is closed. */
|
|
12
|
+
onClose?: () => void;
|
|
13
|
+
/** Content rendered inside the sheet. */
|
|
14
|
+
children?: ReactNode;
|
|
15
|
+
/** Additional CSS class names applied to the sheet content. */
|
|
16
|
+
className?: string;
|
|
17
|
+
/** Close on pressing the Esc key. */
|
|
18
|
+
closeOnEsc?: boolean;
|
|
19
|
+
/** Show the close button. */
|
|
20
|
+
closeButton?: boolean;
|
|
21
|
+
/** Additional CSS class names applied to the backdrop/overlay. */
|
|
22
|
+
backdropClassName?: string;
|
|
23
|
+
/** Close on clicking outside the sheet. */
|
|
24
|
+
closeOnOutsideClick?: boolean;
|
|
25
|
+
/** Ref of the element to receive focus when the sheet opens. */
|
|
26
|
+
initialFocusRef?: RefObject<HTMLElement | null>;
|
|
27
|
+
/** Ref of the element to receive focus when the sheet closes. */
|
|
28
|
+
finalFocusRef?: RefObject<HTMLElement | null>;
|
|
29
|
+
/** Which side the sheet slides in from. */
|
|
30
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
31
|
+
/** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */
|
|
32
|
+
modal?: boolean;
|
|
33
|
+
/** Radix Dialog `defaultOpen` prop. */
|
|
34
|
+
defaultOpen?: boolean;
|
|
35
|
+
}
|
|
36
|
+
interface SheetSubcomponentProps extends React.ComponentProps<"div"> {
|
|
37
|
+
children?: ReactNode;
|
|
38
|
+
className?: string;
|
|
39
|
+
}
|
|
40
|
+
declare const SheetHeader: React.ForwardRefExoticComponent<Omit<SheetSubcomponentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
41
|
+
declare const SheetBody: React.ForwardRefExoticComponent<Omit<SheetSubcomponentProps & {
|
|
42
|
+
hasFooter?: boolean;
|
|
43
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
44
|
+
declare const SheetFooter: React.ForwardRefExoticComponent<Omit<SheetSubcomponentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
declare const SheetTitle: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-dialog").DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
46
|
+
declare const SheetDescription: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-dialog").DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
47
|
+
declare const Sheet: React.ForwardRefExoticComponent<SheetProps & React.RefAttributes<HTMLDivElement>> & {
|
|
48
|
+
Header: typeof SheetHeader;
|
|
49
|
+
Body: typeof SheetBody;
|
|
50
|
+
Footer: typeof SheetFooter;
|
|
51
|
+
Title: typeof SheetTitle;
|
|
52
|
+
Description: typeof SheetDescription;
|
|
53
|
+
};
|
|
54
|
+
export { Sheet };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { c as cn } from '../utils-DdHUxIdC.js';
|
|
4
|
+
import { SheetHeader as SheetHeader$1, SheetFooter as SheetFooter$1, SheetTitle as SheetTitle$1, SheetDescription as SheetDescription$1, Sheet as Sheet$1, SheetContent } from '../primitives/Sheet.js';
|
|
5
|
+
import '../button-COIbN8dg.js';
|
|
6
|
+
import '../index-D7Zy7P05.js';
|
|
7
|
+
import '../index-CfriMyrd.js';
|
|
8
|
+
import '../index-BtkPdosV.js';
|
|
9
|
+
import '../sheet-C763FqIh.js';
|
|
10
|
+
import 'react-i18next';
|
|
11
|
+
import '../x-_o2T3n6D.js';
|
|
12
|
+
import '../createLucideIcon-C8ycilSN.js';
|
|
13
|
+
import '../index-9HvIbmnI.js';
|
|
14
|
+
import '../index-DNzunGHb.js';
|
|
15
|
+
import '../index-CiyxEyB0.js';
|
|
16
|
+
import '../index-zW4GjM5L.js';
|
|
17
|
+
import '../index-DOzu5J1s.js';
|
|
18
|
+
import '../index-Cor698lu.js';
|
|
19
|
+
import '../index-BNPynZWM.js';
|
|
20
|
+
import '../index-DhnfW8wQ.js';
|
|
21
|
+
import 'react-dom';
|
|
22
|
+
import '../index-CSUSJzOJ.js';
|
|
23
|
+
import '../index-B4_fVWDx.js';
|
|
24
|
+
import '../index-fV_U4ZJM.js';
|
|
25
|
+
import '../index-yFgkK_AM.js';
|
|
26
|
+
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// Size mapping
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Uses data-[side] selector to match primitive specificity so tailwind-merge
|
|
31
|
+
// can override the default sm:max-w-sm from the primitive.
|
|
32
|
+
const SIZE_CLASS_MAP = {
|
|
33
|
+
small: "data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
|
|
34
|
+
large: "data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg",
|
|
35
|
+
extraLarge: "data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl",
|
|
36
|
+
};
|
|
37
|
+
const SheetHeader = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetHeader$1, { ref: ref, className: cn(className), "data-testid": "sheet-header", ...otherProps, children: children })));
|
|
38
|
+
SheetHeader.displayName = "Sheet.Header";
|
|
39
|
+
const SheetBody = forwardRef(({ children, className, hasFooter = true, ...otherProps }, ref) => (jsx("div", { ref: ref, "data-slot": "sheet-body", "data-testid": "sheet-body", className: cn("flex flex-1 flex-col items-start justify-start overflow-y-auto px-4", hasFooter && "pb-0", className), ...otherProps, children: children })));
|
|
40
|
+
SheetBody.displayName = "Sheet.Body";
|
|
41
|
+
const SheetFooter = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetFooter$1, { ref: ref, className: cn("flex flex-row items-center justify-start gap-2 border-t", className), "data-testid": "sheet-footer", ...otherProps, children: children })));
|
|
42
|
+
SheetFooter.displayName = "Sheet.Footer";
|
|
43
|
+
const SheetTitle = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetTitle$1, { ref: ref, className: cn("text-2xl font-semibold", className), ...otherProps, children: children })));
|
|
44
|
+
SheetTitle.displayName = "Sheet.Title";
|
|
45
|
+
const SheetDescription = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetDescription$1, { ref: ref, className: cn(className), ...otherProps, children: children })));
|
|
46
|
+
SheetDescription.displayName = "Sheet.Description";
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// Component
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
const Sheet = forwardRef(({ size = "small", isOpen = false, onClose = () => { }, children, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, initialFocusRef, finalFocusRef, side = "right", modal, defaultOpen,
|
|
51
|
+
// Radix content handlers — intercept and merge
|
|
52
|
+
onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
|
|
53
|
+
const handleOpenChange = (open) => {
|
|
54
|
+
if (!open)
|
|
55
|
+
onClose();
|
|
56
|
+
};
|
|
57
|
+
const handleInteractOutside = (e) => {
|
|
58
|
+
if (!closeOnOutsideClick)
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
};
|
|
61
|
+
const handleEscapeKeyDown = (e) => {
|
|
62
|
+
if (!closeOnEsc)
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
};
|
|
65
|
+
const handleOpenAutoFocus = (e) => {
|
|
66
|
+
if (initialFocusRef?.current) {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
initialFocusRef.current.focus();
|
|
69
|
+
}
|
|
70
|
+
onOpenAutoFocusProp?.(e);
|
|
71
|
+
};
|
|
72
|
+
const handleCloseAutoFocus = (e) => {
|
|
73
|
+
if (finalFocusRef?.current) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
finalFocusRef.current.focus();
|
|
76
|
+
}
|
|
77
|
+
onCloseAutoFocusProp?.(e);
|
|
78
|
+
};
|
|
79
|
+
return (jsx(Sheet$1, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsx(SheetContent, { ref: ref, side: side, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: cn(SIZE_CLASS_MAP[size], className), "data-testid": "sheet-wrapper", ...otherProps, children: children }) }));
|
|
80
|
+
});
|
|
81
|
+
Sheet.displayName = "Sheet";
|
|
82
|
+
Sheet.Header = SheetHeader;
|
|
83
|
+
Sheet.Body = SheetBody;
|
|
84
|
+
Sheet.Footer = SheetFooter;
|
|
85
|
+
Sheet.Title = SheetTitle;
|
|
86
|
+
Sheet.Description = SheetDescription;
|
|
87
|
+
|
|
88
|
+
export { Sheet };
|
|
89
|
+
//# sourceMappingURL=Sheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sheet.js","sources":["../../src/components/Sheet.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, type RefObject } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Sheet as PrimitiveSheet,\n SheetContent as PrimitiveSheetContent,\n SheetDescription as PrimitiveSheetDescription,\n SheetFooter as PrimitiveSheetFooter,\n SheetHeader as PrimitiveSheetHeader,\n SheetTitle as PrimitiveSheetTitle,\n} from \"src/primitives/Sheet\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype SheetSize = \"small\" | \"large\" | \"extraLarge\";\n\n/** Radix Sheet.Content props we forward via ...otherProps. */\ntype SheetContentProps = React.ComponentProps<typeof PrimitiveSheetContent>;\n\nexport interface SheetProps extends Omit<\n SheetContentProps,\n | \"children\"\n | \"className\"\n | \"side\"\n | \"showCloseButton\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the sheet. */\n size?: SheetSize;\n /** Whether the sheet is open. */\n isOpen?: boolean;\n /** Callback invoked when the sheet is closed. */\n onClose?: () => void;\n /** Content rendered inside the sheet. */\n children?: ReactNode;\n /** Additional CSS class names applied to the sheet content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the sheet. */\n closeOnOutsideClick?: boolean;\n /** Ref of the element to receive focus when the sheet opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Ref of the element to receive focus when the sheet closes. */\n finalFocusRef?: RefObject<HTMLElement | null>;\n /** Which side the sheet slides in from. */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Size mapping\n// ---------------------------------------------------------------------------\n\n// Uses data-[side] selector to match primitive specificity so tailwind-merge\n// can override the default sm:max-w-sm from the primitive.\nconst SIZE_CLASS_MAP: Record<SheetSize, string> = {\n small: \"data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n large: \"data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg\",\n extraLarge: \"data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl\",\n};\n\n// ---------------------------------------------------------------------------\n// Subcomponents\n// ---------------------------------------------------------------------------\n\ninterface SheetSubcomponentProps extends React.ComponentProps<\"div\"> {\n children?: ReactNode;\n className?: string;\n}\n\nconst SheetHeader = forwardRef<HTMLDivElement, SheetSubcomponentProps>(\n ({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetHeader\n ref={ref}\n className={cn(className)}\n data-testid=\"sheet-header\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetHeader>\n )\n);\nSheetHeader.displayName = \"Sheet.Header\";\n\nconst SheetBody = forwardRef<\n HTMLDivElement,\n SheetSubcomponentProps & { hasFooter?: boolean }\n>(({ children, className, hasFooter = true, ...otherProps }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-body\"\n data-testid=\"sheet-body\"\n className={cn(\n \"flex flex-1 flex-col items-start justify-start overflow-y-auto px-4\",\n hasFooter && \"pb-0\",\n className\n )}\n {...otherProps}\n >\n {children}\n </div>\n));\nSheetBody.displayName = \"Sheet.Body\";\n\nconst SheetFooter = forwardRef<HTMLDivElement, SheetSubcomponentProps>(\n ({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetFooter\n ref={ref}\n className={cn(\n \"flex flex-row items-center justify-start gap-2 border-t\",\n className\n )}\n data-testid=\"sheet-footer\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetFooter>\n )\n);\nSheetFooter.displayName = \"Sheet.Footer\";\n\nconst SheetTitle = forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<typeof PrimitiveSheetTitle>\n>(({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetTitle\n ref={ref}\n className={cn(\"text-2xl font-semibold\", className)}\n {...otherProps}\n >\n {children}\n </PrimitiveSheetTitle>\n));\nSheetTitle.displayName = \"Sheet.Title\";\n\nconst SheetDescription = forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof PrimitiveSheetDescription>\n>(({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetDescription\n ref={ref}\n className={cn(className)}\n {...otherProps}\n >\n {children}\n </PrimitiveSheetDescription>\n));\nSheetDescription.displayName = \"Sheet.Description\";\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Sheet = forwardRef<HTMLDivElement, SheetProps>(\n (\n {\n size = \"small\",\n isOpen = false,\n onClose = () => {},\n children,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n initialFocusRef,\n finalFocusRef,\n side = \"right\",\n modal,\n defaultOpen,\n // Radix content handlers — intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\n ) => {\n const handleOpenChange = (open: boolean) => {\n if (!open) onClose();\n };\n\n const handleInteractOutside = (e: Event) => {\n if (!closeOnOutsideClick) e.preventDefault();\n };\n\n const handleEscapeKeyDown = (e: KeyboardEvent) => {\n if (!closeOnEsc) e.preventDefault();\n };\n\n const handleOpenAutoFocus = (e: Event) => {\n if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n if (finalFocusRef?.current) {\n e.preventDefault();\n finalFocusRef.current.focus();\n }\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <PrimitiveSheet\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <PrimitiveSheetContent\n ref={ref}\n side={side}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"sheet-wrapper\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetContent>\n </PrimitiveSheet>\n );\n }\n) as React.ForwardRefExoticComponent<\n SheetProps & React.RefAttributes<HTMLDivElement>\n> & {\n Header: typeof SheetHeader;\n Body: typeof SheetBody;\n Footer: typeof SheetFooter;\n Title: typeof SheetTitle;\n Description: typeof SheetDescription;\n};\n\nSheet.displayName = \"Sheet\";\nSheet.Header = SheetHeader;\nSheet.Body = SheetBody;\nSheet.Footer = SheetFooter;\nSheet.Title = SheetTitle;\nSheet.Description = SheetDescription;\n\nexport { Sheet };\n"],"names":["_jsx","PrimitiveSheetHeader","PrimitiveSheetFooter","PrimitiveSheetTitle","PrimitiveSheetDescription","PrimitiveSheet","PrimitiveSheetContent"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Slider as PrimitiveSlider } from "src/primitives/Slider";
|
|
3
|
+
import { FieldLabel } from "src/primitives/Field";
|
|
4
|
+
export interface SliderProps extends React.ComponentProps<typeof PrimitiveSlider> {
|
|
5
|
+
/** Label displayed above the slider. */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Error message displayed below the slider. */
|
|
8
|
+
error?: string;
|
|
9
|
+
/** Help text displayed below the slider. Accepts string or ReactNode. */
|
|
10
|
+
helpText?: React.ReactNode;
|
|
11
|
+
/** Shows a required indicator next to the label. */
|
|
12
|
+
required?: boolean;
|
|
13
|
+
/** Additional class name for the outermost wrapper. */
|
|
14
|
+
className?: string;
|
|
15
|
+
/** Props forwarded to the FieldLabel element. */
|
|
16
|
+
labelProps?: React.ComponentProps<typeof FieldLabel>;
|
|
17
|
+
}
|
|
18
|
+
declare const Slider: React.ForwardRefExoticComponent<Omit<SliderProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
19
|
+
export { Slider };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useId } from 'react';
|
|
3
|
+
import { Slider as Slider$1 } from '../primitives/Slider.js';
|
|
4
|
+
import { c as cn } from '../utils-DdHUxIdC.js';
|
|
5
|
+
import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from '../primitives/Field.js';
|
|
6
|
+
import '../index-BfAAoDv6.js';
|
|
7
|
+
import '../index-DNzunGHb.js';
|
|
8
|
+
import '../index-BtkPdosV.js';
|
|
9
|
+
import '../index-CiyxEyB0.js';
|
|
10
|
+
import '../index-Cor698lu.js';
|
|
11
|
+
import '../index-DOzu5J1s.js';
|
|
12
|
+
import '../index-BA158WEj.js';
|
|
13
|
+
import '../index-30QpKM0j.js';
|
|
14
|
+
import '../index-BYZaLNq1.js';
|
|
15
|
+
import '../index-DhnfW8wQ.js';
|
|
16
|
+
import 'react-dom';
|
|
17
|
+
import '../index-Dd1i1d2M.js';
|
|
18
|
+
import '../index-D7Zy7P05.js';
|
|
19
|
+
import '../label-B4qDF3W1.js';
|
|
20
|
+
import '../separator-BbhgePmX.js';
|
|
21
|
+
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Component
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
const Slider = forwardRef(({ label, error, helpText, required = false, className, labelProps, disabled, id: idProp, ...otherProps }, ref) => {
|
|
26
|
+
const generatedId = useId();
|
|
27
|
+
const id = idProp ?? generatedId;
|
|
28
|
+
const errorId = `error_${id}`;
|
|
29
|
+
const helpTextId = `helpText_${id}`;
|
|
30
|
+
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
31
|
+
.filter(Boolean)
|
|
32
|
+
.join(" ") || undefined;
|
|
33
|
+
const hasField = !!(label || error || helpText);
|
|
34
|
+
const slider = (jsx(Slider$1, { ref: ref, id: id, disabled: disabled, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, "aria-label": !label ? undefined : label, className: cn(!hasField && className), ...otherProps }));
|
|
35
|
+
if (!hasField) {
|
|
36
|
+
return slider;
|
|
37
|
+
}
|
|
38
|
+
return (jsxs(Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [label && (jsxs(FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxs(FieldContent, { children: [slider, !!error && jsx(FieldError, { id: errorId, children: error }), helpText && (jsx(FieldDescription, { id: helpTextId, children: helpText }))] })] }));
|
|
39
|
+
});
|
|
40
|
+
Slider.displayName = "Slider";
|
|
41
|
+
|
|
42
|
+
export { Slider };
|
|
43
|
+
//# sourceMappingURL=Slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../src/components/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { Slider as PrimitiveSlider } from \"src/primitives/Slider\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SliderProps extends React.ComponentProps<\n typeof PrimitiveSlider\n> {\n /** Label displayed above the slider. */\n label?: string;\n /** Error message displayed below the slider. */\n error?: string;\n /** Help text displayed below the slider. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the FieldLabel element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Slider = forwardRef<\n React.ComponentRef<typeof PrimitiveSlider>,\n SliderProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n labelProps,\n disabled,\n id: idProp,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n const slider = (\n <PrimitiveSlider\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-label={!label ? undefined : label}\n className={cn(!hasField && className)}\n {...otherProps}\n />\n );\n\n if (!hasField) {\n return slider;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {slider}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport { Slider };\n"],"names":["_jsx","PrimitiveSlider","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA;AACA;AACA;AAEA,MAAM,MAAM,GAAG,UAAU,CAIvB,CACE,EACE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,EAAE,GAAG,MAAM,IAAI,WAAW;AAChC,IAAA,MAAM,OAAO,GAAG,CAAA,MAAA,EAAS,EAAE,EAAE;AAC7B,IAAA,MAAM,UAAU,GAAG,CAAA,SAAA,EAAY,EAAE,EAAE;IAEnC,MAAM,eAAe,GACnB,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;SAClD,MAAM,CAAC,OAAO;AACd,SAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;IAE3B,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC;IAE/C,MAAM,MAAM,IACVA,GAAA,CAACC,QAAe,EAAA,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,kBAAA,EAChB,eAAe,gBACrB,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,EACtC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAA,GACjC,UAAU,EAAA,CACd,CACH;IAED,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,QACEC,IAAA,CAAC,KAAK,EAAA,EAAA,eAAA,EACW,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAEnB,KAAK,KACJA,KAAC,UAAU,EAAA,EAAC,OAAO,EAAE,EAAE,EAAA,GAAM,UAAU,EAAA,QAAA,EAAA,CACpC,KAAK,EACL,QAAQ,KACPF,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDE,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACV,MAAM,EACN,CAAC,CAAC,KAAK,IAAIF,IAAC,UAAU,EAAA,EAAC,EAAE,EAAE,OAAO,EAAA,QAAA,EAAG,KAAK,GAAc,EACxD,QAAQ,KACPA,GAAA,CAAC,gBAAgB,EAAA,EAAC,EAAE,EAAE,UAAU,YAAG,QAAQ,EAAA,CAAoB,CAChE,CAAA,EAAA,CACY,CAAA,EAAA,CACT;AAEZ,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Spinner as PrimitiveSpinner } from "src/primitives/Spinner";
|
|
3
|
+
export interface SpinnerProps extends React.ComponentProps<typeof PrimitiveSpinner> {
|
|
4
|
+
/** Size variant of the spinner. */
|
|
5
|
+
size?: "sm" | "default" | "lg" | "xl";
|
|
6
|
+
/** Additional CSS class names. */
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const Spinner: React.ForwardRefExoticComponent<Omit<SpinnerProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
10
|
+
export { Spinner };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { c as cn } from '../utils-DdHUxIdC.js';
|
|
4
|
+
import { Spinner as Spinner$1 } from '../primitives/Spinner.js';
|
|
5
|
+
import 'react-i18next';
|
|
6
|
+
import '../loader-circle-DycHUAWN.js';
|
|
7
|
+
import '../createLucideIcon-C8ycilSN.js';
|
|
8
|
+
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Size config
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
const SIZE_CONFIG = {
|
|
13
|
+
sm: "size-3",
|
|
14
|
+
default: "size-4",
|
|
15
|
+
lg: "size-6",
|
|
16
|
+
xl: "size-8",
|
|
17
|
+
};
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Component
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
const Spinner = forwardRef(({ size = "default", className, ...otherProps }, ref) => (jsx(Spinner$1, { ref: ref, className: cn(SIZE_CONFIG[size], className), ...otherProps })));
|
|
22
|
+
Spinner.displayName = "Spinner";
|
|
23
|
+
|
|
24
|
+
export { Spinner };
|
|
25
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sources":["../../src/components/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Spinner as PrimitiveSpinner } from \"src/primitives/Spinner\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SpinnerProps extends React.ComponentProps<\n typeof PrimitiveSpinner\n> {\n /** Size variant of the spinner. */\n size?: \"sm\" | \"default\" | \"lg\" | \"xl\";\n /** Additional CSS class names. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_CONFIG: Record<NonNullable<SpinnerProps[\"size\"]>, string> = {\n sm: \"size-3\",\n default: \"size-4\",\n lg: \"size-6\",\n xl: \"size-8\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Spinner = forwardRef<SVGSVGElement, SpinnerProps>(\n ({ size = \"default\", className, ...otherProps }, ref) => (\n <PrimitiveSpinner\n ref={ref}\n className={cn(SIZE_CONFIG[size], className)}\n {...otherProps}\n />\n )\n);\n\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner };\n"],"names":["_jsx","PrimitiveSpinner"],"mappings":";;;;;;;;AAkBA;AACA;AACA;AAEA,MAAM,WAAW,GAAsD;AACrE,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;CACb;AAED;AACA;AACA;AAEA,MAAM,OAAO,GAAG,UAAU,CACxB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAClDA,GAAA,CAACC,SAAgB,EAAA,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,UAAU,EAAA,CACd,CACH;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface StepperProps {
|
|
3
|
+
/** Step definitions. */
|
|
4
|
+
steps: Array<{
|
|
5
|
+
id: string | number;
|
|
6
|
+
label: string;
|
|
7
|
+
}>;
|
|
8
|
+
/** Current active step (0-based). */
|
|
9
|
+
activeIndex?: number;
|
|
10
|
+
/** Callback when a step indicator is clicked. */
|
|
11
|
+
onStepClick?: (index: number) => void;
|
|
12
|
+
/** Additional class name for the outermost wrapper. */
|
|
13
|
+
className?: string;
|
|
14
|
+
/** Layout direction. */
|
|
15
|
+
orientation?: "horizontal" | "vertical";
|
|
16
|
+
}
|
|
17
|
+
declare const Stepper: React.ForwardRefExoticComponent<StepperProps & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export { Stepper };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React__default, { forwardRef } from 'react';
|
|
3
|
+
import { c as cn } from '../utils-DdHUxIdC.js';
|
|
4
|
+
import { C as Check } from '../check-Cpkv29p1.js';
|
|
5
|
+
import '../createLucideIcon-C8ycilSN.js';
|
|
6
|
+
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Component
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
const Stepper = forwardRef(({ steps, activeIndex = 0, onStepClick, className, orientation = "horizontal", }, ref) => {
|
|
11
|
+
const isHorizontal = orientation === "horizontal";
|
|
12
|
+
return (jsx("div", { ref: ref, role: "list", "aria-label": "Progress", className: cn("flex gap-2", isHorizontal ? "flex-row items-center" : "flex-col items-start", className), children: steps.map((step, index) => {
|
|
13
|
+
const isCompleted = index < activeIndex;
|
|
14
|
+
const isActive = index === activeIndex;
|
|
15
|
+
const isClickable = (isCompleted || isActive) && !!onStepClick;
|
|
16
|
+
const isLast = index === steps.length - 1;
|
|
17
|
+
const indicator = (jsx("span", { className: cn("relative flex size-7 shrink-0 items-center justify-center rounded-full text-sm font-semibold transition-colors", isCompleted && "bg-primary text-primary-foreground", isActive &&
|
|
18
|
+
"bg-primary text-primary-foreground ring-2 ring-primary ring-offset-2 ring-offset-background", !isCompleted &&
|
|
19
|
+
!isActive &&
|
|
20
|
+
"bg-muted text-foreground/60 ring-1 ring-border"), children: isCompleted ? (jsx(Check, { className: "size-3.5", "aria-hidden": "true" })) : (index + 1) }));
|
|
21
|
+
const stepContent = (jsxs("div", { className: cn("flex min-w-0", isHorizontal
|
|
22
|
+
? "flex-row items-center gap-2"
|
|
23
|
+
: "flex-row items-center gap-3"), children: [isClickable ? (jsx("button", { type: "button", onClick: () => onStepClick(index), "aria-current": isActive ? "step" : undefined, className: "cursor-pointer rounded-full focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", children: indicator })) : (jsx("span", { "aria-current": isActive ? "step" : undefined, children: indicator })), jsx("span", { className: cn("hidden text-sm truncate max-w-full sm:inline", isActive && "font-medium text-foreground", isCompleted && "text-foreground", !isCompleted && !isActive && "text-muted-foreground"), children: step.label })] }));
|
|
24
|
+
const connector = !isLast && (jsx("div", { "aria-hidden": "true", className: cn("transition-colors", isHorizontal
|
|
25
|
+
? "mx-2 min-w-5 flex-1 border-t-2 sm:mx-3 sm:min-w-8"
|
|
26
|
+
: "ms-[13px] min-h-6 self-stretch border-s-2", isCompleted ? "border-primary" : "border-dashed border-border") }));
|
|
27
|
+
return (jsxs(React__default.Fragment, { children: [jsx("div", { role: "listitem", className: cn("flex min-w-0", isHorizontal ? "shrink-0" : "flex-col"), children: stepContent }), connector] }, step.id));
|
|
28
|
+
}) }));
|
|
29
|
+
});
|
|
30
|
+
Stepper.displayName = "Stepper";
|
|
31
|
+
|
|
32
|
+
export { Stepper };
|
|
33
|
+
//# sourceMappingURL=Stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stepper.js","sources":["../../src/components/Stepper.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface StepperProps {\n /** Step definitions. */\n steps: Array<{ id: string | number; label: string }>;\n /** Current active step (0-based). */\n activeIndex?: number;\n /** Callback when a step indicator is clicked. */\n onStepClick?: (index: number) => void;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Layout direction. */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Stepper = forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n steps,\n activeIndex = 0,\n onStepClick,\n className,\n orientation = \"horizontal\",\n },\n ref\n ) => {\n const isHorizontal = orientation === \"horizontal\";\n\n return (\n <div\n ref={ref}\n role=\"list\"\n aria-label=\"Progress\"\n className={cn(\n \"flex gap-2\",\n isHorizontal ? \"flex-row items-center\" : \"flex-col items-start\",\n className\n )}\n >\n {steps.map((step, index) => {\n const isCompleted = index < activeIndex;\n const isActive = index === activeIndex;\n const isClickable = (isCompleted || isActive) && !!onStepClick;\n const isLast = index === steps.length - 1;\n\n const indicator = (\n <span\n className={cn(\n \"relative flex size-7 shrink-0 items-center justify-center rounded-full text-sm font-semibold transition-colors\",\n isCompleted && \"bg-primary text-primary-foreground\",\n isActive &&\n \"bg-primary text-primary-foreground ring-2 ring-primary ring-offset-2 ring-offset-background\",\n !isCompleted &&\n !isActive &&\n \"bg-muted text-foreground/60 ring-1 ring-border\"\n )}\n >\n {isCompleted ? (\n <CheckIcon className=\"size-3.5\" aria-hidden=\"true\" />\n ) : (\n index + 1\n )}\n </span>\n );\n\n const stepContent = (\n <div\n className={cn(\n \"flex min-w-0\",\n isHorizontal\n ? \"flex-row items-center gap-2\"\n : \"flex-row items-center gap-3\"\n )}\n >\n {isClickable ? (\n <button\n type=\"button\"\n onClick={() => onStepClick(index)}\n aria-current={isActive ? \"step\" : undefined}\n className=\"cursor-pointer rounded-full focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\"\n >\n {indicator}\n </button>\n ) : (\n <span aria-current={isActive ? \"step\" : undefined}>\n {indicator}\n </span>\n )}\n <span\n className={cn(\n \"hidden text-sm truncate max-w-full sm:inline\",\n isActive && \"font-medium text-foreground\",\n isCompleted && \"text-foreground\",\n !isCompleted && !isActive && \"text-muted-foreground\"\n )}\n >\n {step.label}\n </span>\n </div>\n );\n\n const connector = !isLast && (\n <div\n aria-hidden=\"true\"\n className={cn(\n \"transition-colors\",\n isHorizontal\n ? \"mx-2 min-w-5 flex-1 border-t-2 sm:mx-3 sm:min-w-8\"\n : \"ms-[13px] min-h-6 self-stretch border-s-2\",\n isCompleted ? \"border-primary\" : \"border-dashed border-border\"\n )}\n />\n );\n\n return (\n <React.Fragment key={step.id}>\n <div\n role=\"listitem\"\n className={cn(\n \"flex min-w-0\",\n isHorizontal ? \"shrink-0\" : \"flex-col\"\n )}\n >\n {stepContent}\n </div>\n {connector}\n </React.Fragment>\n );\n })}\n </div>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n\nexport { Stepper };\n"],"names":["_jsx","CheckIcon","_jsxs","React"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Switch as PrimitiveSwitch } from "src/primitives/Switch";
|
|
3
|
+
export interface SwitchProps extends Omit<React.ComponentProps<typeof PrimitiveSwitch>, "children"> {
|
|
4
|
+
/** Text label displayed next to the switch. */
|
|
5
|
+
label?: string;
|
|
6
|
+
/** Error message displayed below the switch. */
|
|
7
|
+
error?: string;
|
|
8
|
+
/** Helper text displayed below the label. Accepts string or ReactNode. */
|
|
9
|
+
helpText?: React.ReactNode;
|
|
10
|
+
/** Shows a required indicator next to the label. */
|
|
11
|
+
required?: boolean;
|
|
12
|
+
/** Additional class name for the outermost wrapper. */
|
|
13
|
+
className?: string;
|
|
14
|
+
/** Size of the switch. */
|
|
15
|
+
size?: "sm" | "default" | "lg";
|
|
16
|
+
}
|
|
17
|
+
declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
18
|
+
export { Switch };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useId } from 'react';
|
|
3
|
+
import { Switch as Switch$1 } from '../primitives/Switch.js';
|
|
4
|
+
import { Label } from '../primitives/Label.js';
|
|
5
|
+
import { c as cn } from '../utils-DdHUxIdC.js';
|
|
6
|
+
import '../index-DNzunGHb.js';
|
|
7
|
+
import '../index-BtkPdosV.js';
|
|
8
|
+
import '../index-CiyxEyB0.js';
|
|
9
|
+
import '../index-Cor698lu.js';
|
|
10
|
+
import '../index-DOzu5J1s.js';
|
|
11
|
+
import '../index-30QpKM0j.js';
|
|
12
|
+
import '../index-BYZaLNq1.js';
|
|
13
|
+
import '../index-DhnfW8wQ.js';
|
|
14
|
+
import 'react-dom';
|
|
15
|
+
import '../label-B4qDF3W1.js';
|
|
16
|
+
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Component
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
const Switch = forwardRef(({ label, error, helpText, required = false, className, size = "default", disabled, id: idProp, ...otherProps }, ref) => {
|
|
21
|
+
const generatedId = useId();
|
|
22
|
+
const id = idProp ?? generatedId;
|
|
23
|
+
const errorId = `error_${id}`;
|
|
24
|
+
const helpTextId = `helpText_${id}`;
|
|
25
|
+
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
26
|
+
.filter(Boolean)
|
|
27
|
+
.join(" ") || undefined;
|
|
28
|
+
return (jsxs("div", { className: cn("inline-flex flex-col gap-1.5", className), "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, children: [jsxs("div", { className: cn("inline-flex gap-2", helpText ? "items-start" : "items-center"), children: [jsx(Switch$1, { ref: ref, id: id, size: size, disabled: disabled, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, "aria-required": required || undefined, className: helpText ? "mt-0.5" : undefined, ...otherProps }), (label || helpText) && (jsxs("div", { className: "flex flex-col gap-0.5", children: [label && (jsxs(Label, { htmlFor: id, className: cn("cursor-pointer", disabled && "cursor-not-allowed opacity-50"), children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsx("p", { id: helpTextId, className: "text-sm text-muted-foreground", children: helpText }))] }))] }), error && (jsx("p", { id: errorId, role: "alert", className: "text-xs text-destructive", children: error }))] }));
|
|
29
|
+
});
|
|
30
|
+
Switch.displayName = "Switch";
|
|
31
|
+
|
|
32
|
+
export { Switch };
|
|
33
|
+
//# sourceMappingURL=Switch.js.map
|