@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,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var primitives_Sheet = require('../primitives/Sheet.js');
|
|
7
|
+
require('../button-B8XGl69v.js');
|
|
8
|
+
require('../index-BZhTddX0.js');
|
|
9
|
+
require('../index-DuNgWCXZ.js');
|
|
10
|
+
require('../index-D-iDn9RI.js');
|
|
11
|
+
require('../sheet-BZHMKVH1.js');
|
|
12
|
+
require('react-i18next');
|
|
13
|
+
require('../x-Brw3FJst.js');
|
|
14
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
15
|
+
require('../index-BLGrl3PF.js');
|
|
16
|
+
require('../index-COPkC3I5.js');
|
|
17
|
+
require('../index-CGUGhyIp.js');
|
|
18
|
+
require('../index-BwAq9ba8.js');
|
|
19
|
+
require('../index-CCdG4z4E.js');
|
|
20
|
+
require('../index-CyrAgb4H.js');
|
|
21
|
+
require('../index-Bvu9MiFi.js');
|
|
22
|
+
require('../index-DMbj7vXd.js');
|
|
23
|
+
require('react-dom');
|
|
24
|
+
require('../index-lWVw05cs.js');
|
|
25
|
+
require('../index-ChSOMM8b.js');
|
|
26
|
+
require('../index-Df-Ffa3s.js');
|
|
27
|
+
require('../index-DcCSSgb7.js');
|
|
28
|
+
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Size mapping
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Uses data-[side] selector to match primitive specificity so tailwind-merge
|
|
33
|
+
// can override the default sm:max-w-sm from the primitive.
|
|
34
|
+
const SIZE_CLASS_MAP = {
|
|
35
|
+
small: "data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
|
|
36
|
+
large: "data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg",
|
|
37
|
+
extraLarge: "data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl",
|
|
38
|
+
};
|
|
39
|
+
const SheetHeader = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetHeader, { ref: ref, className: utils.cn(className), "data-testid": "sheet-header", ...otherProps, children: children })));
|
|
40
|
+
SheetHeader.displayName = "Sheet.Header";
|
|
41
|
+
const SheetBody = React.forwardRef(({ children, className, hasFooter = true, ...otherProps }, ref) => (jsxRuntime.jsx("div", { ref: ref, "data-slot": "sheet-body", "data-testid": "sheet-body", className: utils.cn("flex flex-1 flex-col items-start justify-start overflow-y-auto px-4", hasFooter && "pb-0", className), ...otherProps, children: children })));
|
|
42
|
+
SheetBody.displayName = "Sheet.Body";
|
|
43
|
+
const SheetFooter = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetFooter, { ref: ref, className: utils.cn("flex flex-row items-center justify-start gap-2 border-t", className), "data-testid": "sheet-footer", ...otherProps, children: children })));
|
|
44
|
+
SheetFooter.displayName = "Sheet.Footer";
|
|
45
|
+
const SheetTitle = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetTitle, { ref: ref, className: utils.cn("text-2xl font-semibold", className), ...otherProps, children: children })));
|
|
46
|
+
SheetTitle.displayName = "Sheet.Title";
|
|
47
|
+
const SheetDescription = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetDescription, { ref: ref, className: utils.cn(className), ...otherProps, children: children })));
|
|
48
|
+
SheetDescription.displayName = "Sheet.Description";
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Component
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
const Sheet = React.forwardRef(({ size = "small", isOpen = false, onClose = () => { }, children, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, initialFocusRef, finalFocusRef, side = "right", modal, defaultOpen,
|
|
53
|
+
// Radix content handlers — intercept and merge
|
|
54
|
+
onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
|
|
55
|
+
const handleOpenChange = (open) => {
|
|
56
|
+
if (!open)
|
|
57
|
+
onClose();
|
|
58
|
+
};
|
|
59
|
+
const handleInteractOutside = (e) => {
|
|
60
|
+
if (!closeOnOutsideClick)
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
};
|
|
63
|
+
const handleEscapeKeyDown = (e) => {
|
|
64
|
+
if (!closeOnEsc)
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
};
|
|
67
|
+
const handleOpenAutoFocus = (e) => {
|
|
68
|
+
if (initialFocusRef?.current) {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
initialFocusRef.current.focus();
|
|
71
|
+
}
|
|
72
|
+
onOpenAutoFocusProp?.(e);
|
|
73
|
+
};
|
|
74
|
+
const handleCloseAutoFocus = (e) => {
|
|
75
|
+
if (finalFocusRef?.current) {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
finalFocusRef.current.focus();
|
|
78
|
+
}
|
|
79
|
+
onCloseAutoFocusProp?.(e);
|
|
80
|
+
};
|
|
81
|
+
return (jsxRuntime.jsx(primitives_Sheet.Sheet, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsxRuntime.jsx(primitives_Sheet.SheetContent, { ref: ref, side: side, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: utils.cn(SIZE_CLASS_MAP[size], className), "data-testid": "sheet-wrapper", ...otherProps, children: children }) }));
|
|
82
|
+
});
|
|
83
|
+
Sheet.displayName = "Sheet";
|
|
84
|
+
Sheet.Header = SheetHeader;
|
|
85
|
+
Sheet.Body = SheetBody;
|
|
86
|
+
Sheet.Footer = SheetFooter;
|
|
87
|
+
Sheet.Title = SheetTitle;
|
|
88
|
+
Sheet.Description = SheetDescription;
|
|
89
|
+
|
|
90
|
+
exports.Sheet = Sheet;
|
|
91
|
+
//# 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":["forwardRef","_jsx","PrimitiveSheetHeader","cn","PrimitiveSheetFooter","PrimitiveSheetTitle","PrimitiveSheetDescription","PrimitiveSheet","PrimitiveSheetContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA;AACA;AACA;AAEA;AACA;AACA,MAAM,cAAc,GAA8B;AAChD,IAAA,KAAK,EAAE,4DAA4D;AACnE,IAAA,KAAK,EAAE,4DAA4D;AACnE,IAAA,UAAU,EAAE,8DAA8D;CAC3E;AAWD,MAAM,WAAW,GAAGA,gBAAU,CAC5B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC1CC,cAAA,CAACC,4BAAoB,EAAA,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAAC,SAAS,CAAC,EAAA,aAAA,EACZ,cAAc,KACtB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACY,CACxB,CACF;AACD,WAAW,CAAC,WAAW,GAAG,cAAc;AAExC,MAAM,SAAS,GAAGH,gBAAU,CAG1B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC9DC,cAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EAAA,WAAA,EACE,YAAY,EAAA,aAAA,EACV,YAAY,EACxB,SAAS,EAAEE,QAAE,CACX,qEAAqE,EACrE,SAAS,IAAI,MAAM,EACnB,SAAS,CACV,EAAA,GACG,UAAU,YAEb,QAAQ,EAAA,CACL,CACP,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,YAAY;AAEpC,MAAM,WAAW,GAAGH,gBAAU,CAC5B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC1CC,cAAA,CAACG,4BAAoB,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAED,QAAE,CACX,yDAAyD,EACzD,SAAS,CACV,EAAA,aAAA,EACW,cAAc,KACtB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACY,CACxB,CACF;AACD,WAAW,CAAC,WAAW,GAAG,cAAc;AAExC,MAAM,UAAU,GAAGH,gBAAU,CAG3B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC5CC,cAAA,CAACI,2BAAmB,EAAA,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEF,QAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAC9C,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACW,CACvB,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,aAAa;AAEtC,MAAM,gBAAgB,GAAGH,gBAAU,CAGjC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC5CC,cAAA,CAACK,iCAAyB,IACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEH,QAAE,CAAC,SAAS,CAAC,KACpB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACiB,CAC7B,CAAC;AACF,gBAAgB,CAAC,WAAW,GAAG,mBAAmB;AAElD;AACA;AACA;AAEA,MAAM,KAAK,GAAGH,gBAAU,CACtB,CACE,EACE,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,MAAK,EAAE,CAAC,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,IAAI,EAClB,iBAAiB,EACjB,mBAAmB,GAAG,IAAI,EAC1B,eAAe,EACf,aAAa,EACb,IAAI,GAAG,OAAO,EACd,KAAK,EACL,WAAW;AACX;AACA,eAAe,EAAE,mBAAmB,EACpC,gBAAgB,EAAE,oBAAoB,EACtC,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAa,KAAI;AACzC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;AACtB,IAAA,CAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,CAAC,CAAQ,KAAI;AACzC,QAAA,IAAI,CAAC,mBAAmB;YAAE,CAAC,CAAC,cAAc,EAAE;AAC9C,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAgB,KAAI;AAC/C,QAAA,IAAI,CAAC,UAAU;YAAE,CAAC,CAAC,cAAc,EAAE;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAQ,KAAI;AACvC,QAAA,IAAI,eAAe,EAAE,OAAO,EAAE;YAC5B,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;QACjC;AACA,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,CAAQ,KAAI;AACxC,QAAA,IAAI,aAAa,EAAE,OAAO,EAAE;YAC1B,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE;QAC/B;AACA,QAAA,oBAAoB,GAAG,CAAC,CAAC;AAC3B,IAAA,CAAC;AAED,IAAA,QACEC,cAAA,CAACM,sBAAc,EAAA,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,YAExBN,cAAA,CAACO,6BAAqB,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,WAAW,EAC5B,gBAAgB,EAAE,iBAAiB,EACnC,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,mBAAmB,EACpC,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAEL,QAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,aAAA,EAClC,eAAe,EAAA,GACvB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACa,EAAA,CACT;AAErB,CAAC;AAWH,KAAK,CAAC,WAAW,GAAG,OAAO;AAC3B,KAAK,CAAC,MAAM,GAAG,WAAW;AAC1B,KAAK,CAAC,IAAI,GAAG,SAAS;AACtB,KAAK,CAAC,MAAM,GAAG,WAAW;AAC1B,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,WAAW,GAAG,gBAAgB;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var primitives_Slider = require('../primitives/Slider.js');
|
|
6
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
7
|
+
var primitives_Field = require('../primitives/Field.js');
|
|
8
|
+
require('../index-EyWRfsCG.js');
|
|
9
|
+
require('../index-COPkC3I5.js');
|
|
10
|
+
require('../index-D-iDn9RI.js');
|
|
11
|
+
require('../index-CGUGhyIp.js');
|
|
12
|
+
require('../index-CyrAgb4H.js');
|
|
13
|
+
require('../index-CCdG4z4E.js');
|
|
14
|
+
require('../index-9jC1advf.js');
|
|
15
|
+
require('../index-CF951Pw9.js');
|
|
16
|
+
require('../index-Bf0WsHta.js');
|
|
17
|
+
require('../index-DMbj7vXd.js');
|
|
18
|
+
require('react-dom');
|
|
19
|
+
require('../index-Ch55j1or.js');
|
|
20
|
+
require('../index-BZhTddX0.js');
|
|
21
|
+
require('../label-Bdc9ytTI.js');
|
|
22
|
+
require('../separator-CPy2gyg1.js');
|
|
23
|
+
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Component
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
const Slider = React.forwardRef(({ label, error, helpText, required = false, className, labelProps, disabled, id: idProp, ...otherProps }, ref) => {
|
|
28
|
+
const generatedId = React.useId();
|
|
29
|
+
const id = idProp ?? generatedId;
|
|
30
|
+
const errorId = `error_${id}`;
|
|
31
|
+
const helpTextId = `helpText_${id}`;
|
|
32
|
+
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
33
|
+
.filter(Boolean)
|
|
34
|
+
.join(" ") || undefined;
|
|
35
|
+
const hasField = !!(label || error || helpText);
|
|
36
|
+
const slider = (jsxRuntime.jsx(primitives_Slider.Slider, { ref: ref, id: id, disabled: disabled, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, "aria-label": !label ? undefined : label, className: utils.cn(!hasField && className), ...otherProps }));
|
|
37
|
+
if (!hasField) {
|
|
38
|
+
return slider;
|
|
39
|
+
}
|
|
40
|
+
return (jsxRuntime.jsxs(primitives_Field.Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [slider, !!error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error }), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })] }));
|
|
41
|
+
});
|
|
42
|
+
Slider.displayName = "Slider";
|
|
43
|
+
|
|
44
|
+
exports.Slider = Slider;
|
|
45
|
+
//# 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":["forwardRef","useId","_jsx","PrimitiveSlider","cn","_jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA;AACA;AACA;AAEA,MAAM,MAAM,GAAGA,gBAAU,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,GAAGC,WAAK,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,IACVC,cAAA,CAACC,wBAAe,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,EAAEC,QAAE,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,eAAA,CAACC,sBAAK,EAAA,EAAA,eAAA,EACW,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAEnB,KAAK,KACJD,gBAACE,2BAAU,EAAA,EAAC,OAAO,EAAE,EAAE,EAAA,GAAM,UAAU,EAAA,QAAA,EAAA,CACpC,KAAK,EACL,QAAQ,KACPL,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDG,eAAA,CAACG,6BAAY,EAAA,EAAA,QAAA,EAAA,CACV,MAAM,EACN,CAAC,CAAC,KAAK,IAAIN,eAACO,2BAAU,EAAA,EAAC,EAAE,EAAE,OAAO,EAAA,QAAA,EAAG,KAAK,GAAc,EACxD,QAAQ,KACPP,cAAA,CAACQ,iCAAgB,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,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var primitives_Spinner = require('../primitives/Spinner.js');
|
|
7
|
+
require('react-i18next');
|
|
8
|
+
require('../loader-circle-Bw7zP2Gn.js');
|
|
9
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
10
|
+
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Size config
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const SIZE_CONFIG = {
|
|
15
|
+
sm: "size-3",
|
|
16
|
+
default: "size-4",
|
|
17
|
+
lg: "size-6",
|
|
18
|
+
xl: "size-8",
|
|
19
|
+
};
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Component
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
const Spinner = React.forwardRef(({ size = "default", className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Spinner.Spinner, { ref: ref, className: utils.cn(SIZE_CONFIG[size], className), ...otherProps })));
|
|
24
|
+
Spinner.displayName = "Spinner";
|
|
25
|
+
|
|
26
|
+
exports.Spinner = Spinner;
|
|
27
|
+
//# 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":["forwardRef","_jsx","PrimitiveSpinner","cn"],"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,GAAGA,gBAAU,CACxB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAClDC,cAAA,CAACC,0BAAgB,EAAA,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,UAAU,EAAA,CACd,CACH;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var check = require('../check-BQgcDXys.js');
|
|
7
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
8
|
+
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
12
|
+
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Component
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
const Stepper = React.forwardRef(({ steps, activeIndex = 0, onStepClick, className, orientation = "horizontal", }, ref) => {
|
|
17
|
+
const isHorizontal = orientation === "horizontal";
|
|
18
|
+
return (jsxRuntime.jsx("div", { ref: ref, role: "list", "aria-label": "Progress", className: utils.cn("flex gap-2", isHorizontal ? "flex-row items-center" : "flex-col items-start", className), children: steps.map((step, index) => {
|
|
19
|
+
const isCompleted = index < activeIndex;
|
|
20
|
+
const isActive = index === activeIndex;
|
|
21
|
+
const isClickable = (isCompleted || isActive) && !!onStepClick;
|
|
22
|
+
const isLast = index === steps.length - 1;
|
|
23
|
+
const indicator = (jsxRuntime.jsx("span", { className: utils.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 &&
|
|
24
|
+
"bg-primary text-primary-foreground ring-2 ring-primary ring-offset-2 ring-offset-background", !isCompleted &&
|
|
25
|
+
!isActive &&
|
|
26
|
+
"bg-muted text-foreground/60 ring-1 ring-border"), children: isCompleted ? (jsxRuntime.jsx(check.Check, { className: "size-3.5", "aria-hidden": "true" })) : (index + 1) }));
|
|
27
|
+
const stepContent = (jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-0", isHorizontal
|
|
28
|
+
? "flex-row items-center gap-2"
|
|
29
|
+
: "flex-row items-center gap-3"), children: [isClickable ? (jsxRuntime.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 })) : (jsxRuntime.jsx("span", { "aria-current": isActive ? "step" : undefined, children: indicator })), jsxRuntime.jsx("span", { className: utils.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 })] }));
|
|
30
|
+
const connector = !isLast && (jsxRuntime.jsx("div", { "aria-hidden": "true", className: utils.cn("transition-colors", isHorizontal
|
|
31
|
+
? "mx-2 min-w-5 flex-1 border-t-2 sm:mx-3 sm:min-w-8"
|
|
32
|
+
: "ms-[13px] min-h-6 self-stretch border-s-2", isCompleted ? "border-primary" : "border-dashed border-border") }));
|
|
33
|
+
return (jsxRuntime.jsxs(React__default.default.Fragment, { children: [jsxRuntime.jsx("div", { role: "listitem", className: utils.cn("flex min-w-0", isHorizontal ? "shrink-0" : "flex-col"), children: stepContent }), connector] }, step.id));
|
|
34
|
+
}) }));
|
|
35
|
+
});
|
|
36
|
+
Stepper.displayName = "Stepper";
|
|
37
|
+
|
|
38
|
+
exports.Stepper = Stepper;
|
|
39
|
+
//# 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":["forwardRef","_jsx","cn","CheckIcon","_jsxs","React"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var primitives_Switch = require('../primitives/Switch.js');
|
|
6
|
+
var primitives_Label = require('../primitives/Label.js');
|
|
7
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
8
|
+
require('../index-COPkC3I5.js');
|
|
9
|
+
require('../index-D-iDn9RI.js');
|
|
10
|
+
require('../index-CGUGhyIp.js');
|
|
11
|
+
require('../index-CyrAgb4H.js');
|
|
12
|
+
require('../index-CCdG4z4E.js');
|
|
13
|
+
require('../index-CF951Pw9.js');
|
|
14
|
+
require('../index-Bf0WsHta.js');
|
|
15
|
+
require('../index-DMbj7vXd.js');
|
|
16
|
+
require('react-dom');
|
|
17
|
+
require('../label-Bdc9ytTI.js');
|
|
18
|
+
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Component
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
const Switch = React.forwardRef(({ label, error, helpText, required = false, className, size = "default", disabled, id: idProp, ...otherProps }, ref) => {
|
|
23
|
+
const generatedId = React.useId();
|
|
24
|
+
const id = idProp ?? generatedId;
|
|
25
|
+
const errorId = `error_${id}`;
|
|
26
|
+
const helpTextId = `helpText_${id}`;
|
|
27
|
+
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
28
|
+
.filter(Boolean)
|
|
29
|
+
.join(" ") || undefined;
|
|
30
|
+
return (jsxRuntime.jsxs("div", { className: utils.cn("inline-flex flex-col gap-1.5", className), "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, children: [jsxRuntime.jsxs("div", { className: utils.cn("inline-flex gap-2", helpText ? "items-start" : "items-center"), children: [jsxRuntime.jsx(primitives_Switch.Switch, { 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) && (jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [label && (jsxRuntime.jsxs(primitives_Label.Label, { htmlFor: id, className: utils.cn("cursor-pointer", disabled && "cursor-not-allowed opacity-50"), children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsxRuntime.jsx("p", { id: helpTextId, className: "text-sm text-muted-foreground", children: helpText }))] }))] }), error && (jsxRuntime.jsx("p", { id: errorId, role: "alert", className: "text-xs text-destructive", children: error }))] }));
|
|
31
|
+
});
|
|
32
|
+
Switch.displayName = "Switch";
|
|
33
|
+
|
|
34
|
+
exports.Switch = Switch;
|
|
35
|
+
//# sourceMappingURL=Switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.js","sources":["../../../../src/components/Switch.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { Switch as PrimitiveSwitch } from \"src/primitives/Switch\";\nimport { Label } from \"src/primitives/Label\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SwitchProps extends Omit<\n React.ComponentProps<typeof PrimitiveSwitch>,\n \"children\"\n> {\n /** Text label displayed next to the switch. */\n label?: string;\n /** Error message displayed below the switch. */\n error?: string;\n /** Helper text displayed below the label. 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 /** Size of the switch. */\n size?: \"sm\" | \"default\" | \"lg\";\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Switch = forwardRef<\n React.ComponentRef<typeof PrimitiveSwitch>,\n SwitchProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n size = \"default\",\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 return (\n <div\n className={cn(\"inline-flex flex-col gap-1.5\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n >\n <div\n className={cn(\n \"inline-flex gap-2\",\n helpText ? \"items-start\" : \"items-center\"\n )}\n >\n <PrimitiveSwitch\n ref={ref}\n id={id}\n size={size}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={helpText ? \"mt-0.5\" : undefined}\n {...otherProps}\n />\n {(label || helpText) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <Label\n htmlFor={id}\n className={cn(\n \"cursor-pointer\",\n disabled && \"cursor-not-allowed opacity-50\"\n )}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </Label>\n )}\n {helpText && (\n <p id={helpTextId} className=\"text-sm text-muted-foreground\">\n {helpText}\n </p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p id={errorId} role=\"alert\" className=\"text-xs text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n\nexport { Switch };\n"],"names":["forwardRef","useId","_jsxs","cn","_jsx","PrimitiveSwitch","Label"],"mappings":";;;;;;;;;;;;;;;;;;AA4BA;AACA;AACA;AAEA,MAAM,MAAM,GAAGA,gBAAU,CAIvB,CACE,EACE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAGC,WAAK,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;AAE3B,IAAA,QACEC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,QAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,EAAA,eAAA,EACzC,QAAQ,IAAI,SAAS,kBACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,QAAA,EAAA,CAElCD,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,QAAE,CACX,mBAAmB,EACnB,QAAQ,GAAG,aAAa,GAAG,cAAc,CAC1C,EAAA,QAAA,EAAA,CAEDC,eAACC,wBAAe,EAAA,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,kBAAA,EAChB,eAAe,EAAA,eAAA,EAClB,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,KACtC,UAAU,EAAA,CACd,EACD,CAAC,KAAK,IAAI,QAAQ,MACjBH,yBAAK,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,CACnC,KAAK,KACJA,gBAACI,sBAAK,EAAA,EACJ,OAAO,EAAE,EAAE,EACX,SAAS,EAAEH,QAAE,CACX,gBAAgB,EAChB,QAAQ,IAAI,+BAA+B,CAC5C,aAEA,KAAK,EACL,QAAQ,KACPC,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACK,CACT,EACA,QAAQ,KACPA,cAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAC,+BAA+B,EAAA,QAAA,EACzD,QAAQ,GACP,CACL,CAAA,EAAA,CACG,CACP,CAAA,EAAA,CACG,EACL,KAAK,KACJA,cAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAC9D,KAAK,GACJ,CACL,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var renderIcon = require('../renderIcon-fLF3odqg.js');
|
|
7
|
+
var primitives_Tabs = require('../primitives/Tabs.js');
|
|
8
|
+
require('../index-BZhTddX0.js');
|
|
9
|
+
require('../index-COPkC3I5.js');
|
|
10
|
+
require('../index-CGUGhyIp.js');
|
|
11
|
+
require('../index-hQmfI1O7.js');
|
|
12
|
+
require('../index-Ch55j1or.js');
|
|
13
|
+
require('../index-D-iDn9RI.js');
|
|
14
|
+
require('../index-BwAq9ba8.js');
|
|
15
|
+
require('../index-CCdG4z4E.js');
|
|
16
|
+
require('../index-DMbj7vXd.js');
|
|
17
|
+
require('react-dom');
|
|
18
|
+
require('../index-lWVw05cs.js');
|
|
19
|
+
require('../index-CyrAgb4H.js');
|
|
20
|
+
require('../index-9jC1advf.js');
|
|
21
|
+
require('../index-DcCSSgb7.js');
|
|
22
|
+
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Size config
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
const SIZE_CLASSES = {
|
|
27
|
+
default: "",
|
|
28
|
+
lg: "text-[15px] px-3 py-1.5",
|
|
29
|
+
};
|
|
30
|
+
const LIST_HEIGHT = {
|
|
31
|
+
default: "",
|
|
32
|
+
lg: "group-data-horizontal/tabs:h-10",
|
|
33
|
+
};
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Context
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
const TabsSizeContext = React.createContext("default");
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Tabs (root)
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
const TabsRoot = React.forwardRef(({ size = "default", children, ...props }, ref) => (jsxRuntime.jsx(TabsSizeContext.Provider, { value: size, children: jsxRuntime.jsx(primitives_Tabs.Tabs, { ref: ref, ...props, children: children }) })));
|
|
42
|
+
TabsRoot.displayName = "Tabs";
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Tabs.List
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
const TabsListComponent = React.forwardRef(({ className, ...props }, ref) => {
|
|
47
|
+
const size = React.useContext(TabsSizeContext);
|
|
48
|
+
return (jsxRuntime.jsx(primitives_Tabs.TabsList, { ref: ref, className: utils.cn(LIST_HEIGHT[size], className), ...props }));
|
|
49
|
+
});
|
|
50
|
+
TabsListComponent.displayName = "Tabs.List";
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Tabs.Item
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
const TabsItemComponent = React.forwardRef(({ icon, className, children, ...otherProps }, ref) => {
|
|
55
|
+
const size = React.useContext(TabsSizeContext);
|
|
56
|
+
return (jsxRuntime.jsxs(primitives_Tabs.TabsTrigger, { ref: ref, className: utils.cn(SIZE_CLASSES[size], icon && "gap-1.5", className), ...otherProps, children: [icon && renderIcon.renderIcon(icon, size === "lg" ? "size-5" : "size-4"), children] }));
|
|
57
|
+
});
|
|
58
|
+
TabsItemComponent.displayName = "Tabs.Item";
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
// Tabs.Content
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
const TabsContentComponent = React.forwardRef((props, ref) => jsxRuntime.jsx(primitives_Tabs.TabsContent, { ref: ref, ...props }));
|
|
63
|
+
TabsContentComponent.displayName = "Tabs.Content";
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// Compound component
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
const Tabs = Object.assign(TabsRoot, {
|
|
68
|
+
List: TabsListComponent,
|
|
69
|
+
Item: TabsItemComponent,
|
|
70
|
+
Content: TabsContentComponent,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
exports.Tabs = Tabs;
|
|
74
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../../src/components/Tabs.tsx"],"sourcesContent":["import React, { forwardRef, createContext, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nconst LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst TabsSizeContext = createContext<TabsSize>(\"default\");\n\n// ---------------------------------------------------------------------------\n// Tabs (root)\n// ---------------------------------------------------------------------------\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\n// ---------------------------------------------------------------------------\n// Tabs.List\n// ---------------------------------------------------------------------------\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\n// ---------------------------------------------------------------------------\n// Tabs.Item\n// ---------------------------------------------------------------------------\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon && renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\n// ---------------------------------------------------------------------------\n// Tabs.Content\n// ---------------------------------------------------------------------------\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\n// ---------------------------------------------------------------------------\n// Compound component\n// ---------------------------------------------------------------------------\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["createContext","forwardRef","_jsx","PrimitiveTabs","useContext","PrimitiveTabsList","cn","_jsxs","PrimitiveTabsTrigger","renderIcon","PrimitiveTabsContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiCA;AACA;AACA;AAEA,MAAM,YAAY,GAA6B;AAC7C,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,yBAAyB;CAC9B;AAED,MAAM,WAAW,GAA6B;AAC5C,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,iCAAiC;CACtC;AAED;AACA;AACA;AAEA,MAAM,eAAe,GAAGA,mBAAa,CAAW,SAAS,CAAC;AAE1D;AACA;AACA;AAEA,MAAM,QAAQ,GAAGC,gBAAU,CACzB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5CC,cAAA,CAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,EAAA,QAAA,EACnCA,cAAA,CAACC,oBAAa,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,QAAA,EAC/B,QAAQ,GACK,EAAA,CACS,CAC5B,CACF;AACD,QAAQ,CAAC,WAAW,GAAG,MAAM;AAE7B;AACA;AACA;AAEA,MAAM,iBAAiB,GAAGF,gBAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC/B,IAAA,MAAM,IAAI,GAAGG,gBAAU,CAAC,eAAe,CAAC;IAExC,QACEF,eAACG,wBAAiB,EAAA,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,KAAK,EAAA,CACT;AAEN,CAAC,CACF;AACD,iBAAiB,CAAC,WAAW,GAAG,WAAW;AAE3C;AACA;AACA;AAEA,MAAM,iBAAiB,GAAGL,gBAAU,CAClC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;AACpD,IAAA,MAAM,IAAI,GAAGG,gBAAU,CAAC,eAAe,CAAC;IAExC,QACEG,gBAACC,2BAAoB,EAAA,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEF,QAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,SAAS,CAAC,EAAA,GAC3D,UAAU,EAAA,QAAA,EAAA,CAEb,IAAI,IAAIG,qBAAU,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAC7D,QAAQ,CAAA,EAAA,CACY;AAE3B,CAAC,CACF;AACD,iBAAiB,CAAC,WAAW,GAAG,WAAW;AAE3C;AACA;AACA;AAEA,MAAM,oBAAoB,GAAGR,gBAAU,CACrC,CAAC,KAAK,EAAE,GAAG,KAAKC,cAAA,CAACQ,2BAAoB,IAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,CAAI,CAC9D;AACD,oBAAoB,CAAC,WAAW,GAAG,cAAc;AAEjD;AACA;AACA;AAEA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AACnC,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,OAAO,EAAE,oBAAoB;AAC9B,CAAA;;;;"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var primitives_Field = require('../primitives/Field.js');
|
|
7
|
+
var primitives_Textarea = require('../primitives/Textarea.js');
|
|
8
|
+
require('../index-BZhTddX0.js');
|
|
9
|
+
require('../label-Bdc9ytTI.js');
|
|
10
|
+
require('../index-DMbj7vXd.js');
|
|
11
|
+
require('react-dom');
|
|
12
|
+
require('../index-D-iDn9RI.js');
|
|
13
|
+
require('../separator-CPy2gyg1.js');
|
|
14
|
+
require('../textarea-CZSSY75H.js');
|
|
15
|
+
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Size config
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const SIZE_ROWS = {
|
|
20
|
+
small: 1,
|
|
21
|
+
medium: 3,
|
|
22
|
+
large: 4,
|
|
23
|
+
};
|
|
24
|
+
const SIZE_MIN_HEIGHT = {
|
|
25
|
+
small: "min-h-8",
|
|
26
|
+
medium: "min-h-20",
|
|
27
|
+
large: "min-h-28",
|
|
28
|
+
};
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Utilities
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
function getTrimmedValue(value, disableTrimOnBlur) {
|
|
33
|
+
if (disableTrimOnBlur || typeof value !== "string")
|
|
34
|
+
return value;
|
|
35
|
+
return value.trim();
|
|
36
|
+
}
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Component
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
const Textarea = React.forwardRef(({ size = "medium", resize = "vertical", label = "", error = "", helpText = "", disabled = false, required = false, maxLength, unlimitedChars = false, disableTrimOnBlur = false, prefix, suffix, nakedTextarea = false, labelProps, className = "", rows: rowsProp, onBlur, onChange, value: controlledValue, ...otherProps }, ref) => {
|
|
41
|
+
const generatedId = React.useId();
|
|
42
|
+
const id = otherProps.id ?? generatedId;
|
|
43
|
+
const errorId = `error_${id}`;
|
|
44
|
+
const helpTextId = `helpText_${id}`;
|
|
45
|
+
// Controlled / uncontrolled value tracking
|
|
46
|
+
const [valueInternal, setValueInternal] = React.useState(controlledValue ?? "");
|
|
47
|
+
const isControlled = controlledValue !== undefined;
|
|
48
|
+
const value = isControlled ? controlledValue : valueInternal;
|
|
49
|
+
const valueLength = value?.toString().length || 0;
|
|
50
|
+
const isMaxLengthPresent = !!maxLength || maxLength === 0;
|
|
51
|
+
const isCharacterLimitVisible = isMaxLengthPresent && valueLength >= maxLength * 0.85;
|
|
52
|
+
const maxLengthError = unlimitedChars && valueLength > maxLength;
|
|
53
|
+
const rows = rowsProp ?? SIZE_ROWS[size];
|
|
54
|
+
// --- Handlers ---
|
|
55
|
+
const handleChange = (e) => {
|
|
56
|
+
if (!isControlled) {
|
|
57
|
+
setValueInternal(e.target.value);
|
|
58
|
+
}
|
|
59
|
+
onChange?.(e);
|
|
60
|
+
};
|
|
61
|
+
const handleBlur = (e) => {
|
|
62
|
+
const trimmedValue = getTrimmedValue(value ?? "", disableTrimOnBlur);
|
|
63
|
+
if (trimmedValue !== value) {
|
|
64
|
+
e.target.value = trimmedValue.toString();
|
|
65
|
+
handleChange(e);
|
|
66
|
+
}
|
|
67
|
+
onBlur?.(e);
|
|
68
|
+
};
|
|
69
|
+
// --- aria-describedby ---
|
|
70
|
+
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
71
|
+
.filter(Boolean)
|
|
72
|
+
.join(" ") || undefined;
|
|
73
|
+
// --- Textarea element ---
|
|
74
|
+
const hasField = !!(label || error || helpText);
|
|
75
|
+
const textareaElement = (jsxRuntime.jsx(primitives_Textarea.Textarea, { ref: ref, id: id, rows: rows, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: utils.cn(
|
|
76
|
+
// Override shadcn's field-sizing-content and min-h-16 so rows works
|
|
77
|
+
"!field-sizing-normal", SIZE_MIN_HEIGHT[size], resize === "none" && "resize-none", resize === "vertical" && "resize-y", nakedTextarea &&
|
|
78
|
+
"border-transparent shadow-none px-0 py-0 focus-visible:border-transparent focus-visible:ring-0", !!error && "border-destructive ring-destructive/20 ring-3"), value: value, onBlur: handleBlur, onChange: handleChange, ...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {}), ...otherProps }));
|
|
79
|
+
const hasPrefixSuffix = !!(prefix || suffix);
|
|
80
|
+
const textareaWithAffixes = hasPrefixSuffix ? (jsxRuntime.jsxs("div", { className: utils.cn("flex items-start gap-2 rounded-lg border border-input px-2.5 py-2 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50", !!error && "border-destructive ring-destructive/20 ring-3", nakedTextarea && "border-transparent shadow-none"), children: [prefix && (jsxRuntime.jsx("div", { className: "shrink-0 pt-0.5 text-muted-foreground", children: prefix })), jsxRuntime.jsx(primitives_Textarea.Textarea, { ref: ref, id: id, rows: rows, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: utils.cn("!field-sizing-normal border-0 p-0 shadow-none focus-visible:border-0 focus-visible:ring-0", SIZE_MIN_HEIGHT[size], resize === "none" && "resize-none", resize === "vertical" && "resize-y"), value: value, onBlur: handleBlur, onChange: handleChange, ...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {}), ...otherProps }), suffix && (jsxRuntime.jsx("div", { className: "shrink-0 pt-0.5 text-muted-foreground", children: suffix }))] })) : (textareaElement);
|
|
81
|
+
if (!hasField) {
|
|
82
|
+
return jsxRuntime.jsx("div", { className: utils.cn(className), children: textareaWithAffixes });
|
|
83
|
+
}
|
|
84
|
+
return (jsxRuntime.jsxs(primitives_Field.Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [(label || isCharacterLimitVisible) && (jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), isCharacterLimitVisible && (jsxRuntime.jsxs("span", { className: utils.cn("text-xs tabular-nums", maxLengthError ? "text-destructive" : "text-muted-foreground"), children: [valueLength, "/", maxLength] }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [textareaWithAffixes, !!error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error }), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })] }));
|
|
85
|
+
});
|
|
86
|
+
Textarea.displayName = "Textarea";
|
|
87
|
+
|
|
88
|
+
exports.Textarea = Textarea;
|
|
89
|
+
//# sourceMappingURL=Textarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.js","sources":["../../../../src/components/Textarea.tsx"],"sourcesContent":["import React, { forwardRef, useId, useState } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\nimport { Textarea as PrimitiveTextarea } from \"src/primitives/Textarea\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype TextareaSize = \"small\" | \"medium\" | \"large\";\ntype TextareaResize = \"vertical\" | \"none\";\n\ntype PrimitiveTextareaProps = React.ComponentProps<typeof PrimitiveTextarea>;\n\nexport interface TextareaProps extends Omit<\n PrimitiveTextareaProps,\n \"size\" | \"children\"\n> {\n /** Size of the textarea. Controls default rows: small=1, medium=3, large=4. */\n size?: TextareaSize;\n /** Resize behavior. */\n resize?: TextareaResize;\n /** Label displayed above the textarea. */\n label?: string;\n /** Error message displayed below the textarea. */\n error?: string;\n /** Help text displayed below the textarea. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Maximum character limit. Counter visible at 85% capacity. */\n maxLength?: number;\n /** Allow typing past maxLength, show error styling on count. */\n unlimitedChars?: boolean;\n /** Prevent trimming whitespace on blur. */\n disableTrimOnBlur?: boolean;\n /** Content to display before the textarea. */\n prefix?: React.ReactNode;\n /** Content to display after the textarea. */\n suffix?: React.ReactNode;\n /** Render the textarea without borders. */\n nakedTextarea?: boolean;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_ROWS: Record<TextareaSize, number> = {\n small: 1,\n medium: 3,\n large: 4,\n};\n\nconst SIZE_MIN_HEIGHT: Record<TextareaSize, string> = {\n small: \"min-h-8\",\n medium: \"min-h-20\",\n large: \"min-h-28\",\n};\n\n// ---------------------------------------------------------------------------\n// Utilities\n// ---------------------------------------------------------------------------\n\nfunction getTrimmedValue(\n value: string | number,\n disableTrimOnBlur: boolean\n): string | number {\n if (disableTrimOnBlur || typeof value !== \"string\") return value;\n return value.trim();\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n {\n size = \"medium\",\n resize = \"vertical\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n disabled = false,\n required = false,\n maxLength,\n unlimitedChars = false,\n disableTrimOnBlur = false,\n prefix,\n suffix,\n nakedTextarea = false,\n labelProps,\n className = \"\",\n rows: rowsProp,\n onBlur,\n onChange,\n value: controlledValue,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = otherProps.id ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n // Controlled / uncontrolled value tracking\n const [valueInternal, setValueInternal] = useState(controlledValue ?? \"\");\n const isControlled = controlledValue !== undefined;\n\n const value = isControlled ? controlledValue : valueInternal;\n const valueLength = value?.toString().length || 0;\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n const isCharacterLimitVisible =\n isMaxLengthPresent && valueLength >= maxLength! * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength!;\n\n const rows = rowsProp ?? SIZE_ROWS[size];\n\n // --- Handlers ---\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) {\n setValueInternal(e.target.value);\n }\n onChange?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLTextAreaElement>) => {\n const trimmedValue = getTrimmedValue(value ?? \"\", disableTrimOnBlur);\n\n if (trimmedValue !== value) {\n e.target.value = trimmedValue.toString();\n handleChange(e as unknown as React.ChangeEvent<HTMLTextAreaElement>);\n }\n\n onBlur?.(e);\n };\n\n // --- aria-describedby ---\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // --- Textarea element ---\n\n const hasField = !!(label || error || helpText);\n\n const textareaElement = (\n <PrimitiveTextarea\n ref={ref}\n id={id}\n rows={rows}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(\n // Override shadcn's field-sizing-content and min-h-16 so rows works\n \"!field-sizing-normal\",\n SIZE_MIN_HEIGHT[size],\n resize === \"none\" && \"resize-none\",\n resize === \"vertical\" && \"resize-y\",\n nakedTextarea &&\n \"border-transparent shadow-none px-0 py-0 focus-visible:border-transparent focus-visible:ring-0\",\n !!error && \"border-destructive ring-destructive/20 ring-3\"\n )}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n {...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {})}\n {...otherProps}\n />\n );\n\n const hasPrefixSuffix = !!(prefix || suffix);\n\n const textareaWithAffixes = hasPrefixSuffix ? (\n <div\n className={cn(\n \"flex items-start gap-2 rounded-lg border border-input px-2.5 py-2 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50\",\n !!error && \"border-destructive ring-destructive/20 ring-3\",\n nakedTextarea && \"border-transparent shadow-none\"\n )}\n >\n {prefix && (\n <div className=\"shrink-0 pt-0.5 text-muted-foreground\">{prefix}</div>\n )}\n <PrimitiveTextarea\n ref={ref}\n id={id}\n rows={rows}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(\n \"!field-sizing-normal border-0 p-0 shadow-none focus-visible:border-0 focus-visible:ring-0\",\n SIZE_MIN_HEIGHT[size],\n resize === \"none\" && \"resize-none\",\n resize === \"vertical\" && \"resize-y\"\n )}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n {...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {})}\n {...otherProps}\n />\n {suffix && (\n <div className=\"shrink-0 pt-0.5 text-muted-foreground\">{suffix}</div>\n )}\n </div>\n ) : (\n textareaElement\n );\n\n if (!hasField) {\n return <div className={cn(className)}>{textareaWithAffixes}</div>;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || isCharacterLimitVisible) && (\n <div className=\"flex items-center justify-between\">\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 {isCharacterLimitVisible && (\n <span\n className={cn(\n \"text-xs tabular-nums\",\n maxLengthError ? \"text-destructive\" : \"text-muted-foreground\"\n )}\n >\n {valueLength}/{maxLength}\n </span>\n )}\n </div>\n )}\n <FieldContent>\n {textareaWithAffixes}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"],"names":["forwardRef","useId","useState","_jsx","PrimitiveTextarea","cn","_jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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"}
|