@bigbinary/neeto-atoms 1.0.36 → 1.0.37
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/Accordion-DVMgPBum.js +45 -0
- package/dist/{Accordion-Ch9S_qd3.js.map → Accordion-DVMgPBum.js.map} +1 -1
- package/dist/Alert-bS5M631u.js +150 -0
- package/dist/{Alert-CayTuRLW.js.map → Alert-bS5M631u.js.map} +1 -1
- package/dist/Avatar-CJq2rlgk.js +71 -0
- package/dist/{Avatar-D5YGlXVF.js.map → Avatar-CJq2rlgk.js.map} +1 -1
- package/dist/Badge-DC6zxOwS.js +131 -0
- package/dist/{Badge-Bj3ajrWB.js.map → Badge-DC6zxOwS.js.map} +1 -1
- package/dist/Button-BCWJgHDy.js +193 -0
- package/dist/Button-BCWJgHDy.js.map +1 -0
- package/dist/{Calendar-gPWbQa_c.js → Calendar-CjOBwDbx.js} +181 -72
- package/dist/{Calendar-gPWbQa_c.js.map → Calendar-CjOBwDbx.js.map} +1 -1
- package/dist/{Callout-CTr3dhBe.js → Callout-ClNFeMbn.js} +36 -22
- package/dist/{Callout-CTr3dhBe.js.map → Callout-ClNFeMbn.js.map} +1 -1
- package/dist/Checkbox-C_Rd2-8Z.js +75 -0
- package/dist/{Checkbox-zCxgcZiC.js.map → Checkbox-C_Rd2-8Z.js.map} +1 -1
- package/dist/ColorPicker-D7Y1gZNn.js +437 -0
- package/dist/ColorPicker-D7Y1gZNn.js.map +1 -0
- package/dist/{DataTable-BpMBsz5i.js → DataTable-CEA8czNL.js} +1024 -641
- package/dist/DataTable-CEA8czNL.js.map +1 -0
- package/dist/{DatePicker-B7SYjsog.js → DatePicker-CCN3b1oz.js} +439 -264
- package/dist/{DatePicker-B7SYjsog.js.map → DatePicker-CCN3b1oz.js.map} +1 -1
- package/dist/Dialog-BOcBeB8v.js +147 -0
- package/dist/{Dialog-BURSzxaP.js.map → Dialog-BOcBeB8v.js.map} +1 -1
- package/dist/{DirectionProvider-DGYDg_He.js → DirectionProvider-weqLz_BJ.js} +2 -2
- package/dist/{DirectionProvider-DGYDg_He.js.map → DirectionProvider-weqLz_BJ.js.map} +1 -1
- package/dist/Empty-fV1Yplri.js +75 -0
- package/dist/{Empty-zyL2ZsHX.js.map → Empty-fV1Yplri.js.map} +1 -1
- package/dist/Input-xjYQfsaz.js +222 -0
- package/dist/{Input-C1gcv9o2.js.map → Input-xjYQfsaz.js.map} +1 -1
- package/dist/Kbd-CJOM9x4C.js +41 -0
- package/dist/{Kbd-EqbC0bua.js.map → Kbd-CJOM9x4C.js.map} +1 -1
- package/dist/Label-CrCRic4I.js +87 -0
- package/dist/{Label-DAFESZOG.js.map → Label-CrCRic4I.js.map} +1 -1
- package/dist/MultiEmailInput-L-QJg0hh.js +262 -0
- package/dist/MultiEmailInput-L-QJg0hh.js.map +1 -0
- package/dist/Pagination-C_X9kgc8.js +103 -0
- package/dist/{Pagination-DSc9yXPy.js.map → Pagination-C_X9kgc8.js.map} +1 -1
- package/dist/Popover-Cco_6txS.js +131 -0
- package/dist/{Popover-Dmq-xK_a.js.map → Popover-Cco_6txS.js.map} +1 -1
- package/dist/Progress-DURemsl_.js +18 -0
- package/dist/{Progress-B9NlUm6e.js.map → Progress-DURemsl_.js.map} +1 -1
- package/dist/RadioGroup-BTemSonO.js +106 -0
- package/dist/{RadioGroup-BNeYQAoT.js.map → RadioGroup-BTemSonO.js.map} +1 -1
- package/dist/Select-o0yJaN0P.js +1059 -0
- package/dist/Select-o0yJaN0P.js.map +1 -0
- package/dist/SelectFieldWrapper-CiBARDsn.js +74 -0
- package/dist/{SelectFieldWrapper-BJzq9aCY.js.map → SelectFieldWrapper-CiBARDsn.js.map} +1 -1
- package/dist/Sheet-DVoy6if3.js +158 -0
- package/dist/{Sheet-B99vGwLH.js.map → Sheet-DVoy6if3.js.map} +1 -1
- package/dist/Slider-DNcH5X7b.js +65 -0
- package/dist/{Slider-BCQXhs0Q.js.map → Slider-DNcH5X7b.js.map} +1 -1
- package/dist/Spinner-DgV3mILN.js +26 -0
- package/dist/{Spinner-C8HSac-2.js.map → Spinner-DgV3mILN.js.map} +1 -1
- package/dist/Stepper-7OpfOfas.js +109 -0
- package/dist/{Stepper-BoGkmkY0.js.map → Stepper-7OpfOfas.js.map} +1 -1
- package/dist/Switch-OAB7pfNn.js +82 -0
- package/dist/{Switch-B83TGxJ_.js.map → Switch-OAB7pfNn.js.map} +1 -1
- package/dist/Tabs-DTbbJITd.js +64 -0
- package/dist/{Tabs-DWfKnl3S.js.map → Tabs-DTbbJITd.js.map} +1 -1
- package/dist/Textarea-B2Uhx-Yy.js +181 -0
- package/dist/{Textarea-C0z50h0N.js.map → Textarea-B2Uhx-Yy.js.map} +1 -1
- package/dist/TimePicker-wPi2k6Z8.js +264 -0
- package/dist/TimePicker-wPi2k6Z8.js.map +1 -0
- package/dist/TimePickerPanel-DAhz3B2d.js +227 -0
- package/dist/{TimePickerPanel-CiF0RExY.js.map → TimePickerPanel-DAhz3B2d.js.map} +1 -1
- package/dist/Toastr-BimwuEnS.js +95 -0
- package/dist/{Toastr-DYqpSaMd.js.map → Toastr-BimwuEnS.js.map} +1 -1
- package/dist/Tooltip-CA3irJ2q.js +88 -0
- package/dist/{Tooltip-3ZzQyaDV.js.map → Tooltip-CA3irJ2q.js.map} +1 -1
- package/dist/{TranslationProvider-Ba9rn47H.js → TranslationProvider-BvRvUsPS.js} +20 -17
- package/dist/{TranslationProvider-Ba9rn47H.js.map → TranslationProvider-BvRvUsPS.js.map} +1 -1
- package/dist/{Tree-C7r10UY5.js → Tree-BlzjThRi.js} +515 -322
- package/dist/Tree-BlzjThRi.js.map +1 -0
- package/dist/TreeSelect-Dk299XMv.js +335 -0
- package/dist/TreeSelect-Dk299XMv.js.map +1 -0
- package/dist/Typography-CiQzW5Fy.js +97 -0
- package/dist/{Typography-ClPJbLjP.js.map → Typography-CiQzW5Fy.js.map} +1 -1
- package/dist/button-CrEMzWKw.js +67 -0
- package/dist/{button-D6uWDFCs.js.map → button-CrEMzWKw.js.map} +1 -1
- package/dist/cjs/Accordion-D75SDnkY.js +51 -0
- package/dist/cjs/Accordion-D75SDnkY.js.map +1 -0
- package/dist/cjs/Alert-_TPuVqa5.js +152 -0
- package/dist/cjs/Alert-_TPuVqa5.js.map +1 -0
- package/dist/cjs/Avatar-nG7vhAUS.js +73 -0
- package/dist/cjs/Avatar-nG7vhAUS.js.map +1 -0
- package/dist/cjs/Badge-Dz_Kb49L.js +133 -0
- package/dist/cjs/Badge-Dz_Kb49L.js.map +1 -0
- package/dist/cjs/Button-BlNtYr1w.js +195 -0
- package/dist/cjs/Button-BlNtYr1w.js.map +1 -0
- package/dist/cjs/{Calendar-jVF8fRaS.js → Calendar-02KiUZTT.js} +181 -72
- package/dist/cjs/Calendar-02KiUZTT.js.map +1 -0
- package/dist/cjs/{Callout-CVNpjTde.js → Callout-_XBx1JHL.js} +36 -22
- package/dist/cjs/Callout-_XBx1JHL.js.map +1 -0
- package/dist/cjs/Checkbox-CxqWOvFN.js +77 -0
- package/dist/cjs/Checkbox-CxqWOvFN.js.map +1 -0
- package/dist/cjs/ColorPicker-Co1Gffsu.js +439 -0
- package/dist/cjs/ColorPicker-Co1Gffsu.js.map +1 -0
- package/dist/cjs/{DataTable-BynOh4Bs.js → DataTable-DRGW8JVP.js} +1024 -641
- package/dist/cjs/DataTable-DRGW8JVP.js.map +1 -0
- package/dist/cjs/{DatePicker-C0BwxIh8.js → DatePicker-DRQubO2h.js} +439 -264
- package/dist/cjs/DatePicker-DRQubO2h.js.map +1 -0
- package/dist/cjs/Dialog-CBSuKeu_.js +149 -0
- package/dist/cjs/Dialog-CBSuKeu_.js.map +1 -0
- package/dist/cjs/{DirectionProvider-Bec-6U8p.js → DirectionProvider-BTtE4FcN.js} +2 -2
- package/dist/cjs/DirectionProvider-BTtE4FcN.js.map +1 -0
- package/dist/cjs/Empty-DqmmPlPJ.js +77 -0
- package/dist/cjs/Empty-DqmmPlPJ.js.map +1 -0
- package/dist/cjs/Input-CpuJXazH.js +224 -0
- package/dist/cjs/Input-CpuJXazH.js.map +1 -0
- package/dist/cjs/Kbd-D2nELu5m.js +43 -0
- package/dist/cjs/Kbd-D2nELu5m.js.map +1 -0
- package/dist/cjs/Label-DFkiC2Jk.js +89 -0
- package/dist/cjs/Label-DFkiC2Jk.js.map +1 -0
- package/dist/cjs/MultiEmailInput-CPXODFvs.js +264 -0
- package/dist/cjs/MultiEmailInput-CPXODFvs.js.map +1 -0
- package/dist/cjs/Pagination-DeWfLAq5.js +105 -0
- package/dist/cjs/Pagination-DeWfLAq5.js.map +1 -0
- package/dist/cjs/Popover-Br9hkU5i.js +137 -0
- package/dist/cjs/Popover-Br9hkU5i.js.map +1 -0
- package/dist/cjs/Progress-yBpMAzIU.js +20 -0
- package/dist/cjs/Progress-yBpMAzIU.js.map +1 -0
- package/dist/cjs/RadioGroup-CkKlLHnR.js +108 -0
- package/dist/cjs/RadioGroup-CkKlLHnR.js.map +1 -0
- package/dist/cjs/Select-DbfPhEu0.js +1065 -0
- package/dist/cjs/Select-DbfPhEu0.js.map +1 -0
- package/dist/cjs/SelectFieldWrapper-DKkizQNM.js +76 -0
- package/dist/cjs/SelectFieldWrapper-DKkizQNM.js.map +1 -0
- package/dist/cjs/Sheet-mJ7pJHrn.js +160 -0
- package/dist/cjs/Sheet-mJ7pJHrn.js.map +1 -0
- package/dist/cjs/Slider-ICf2eQ6p.js +67 -0
- package/dist/cjs/Slider-ICf2eQ6p.js.map +1 -0
- package/dist/cjs/Spinner-DzNBz8al.js +28 -0
- package/dist/cjs/Spinner-DzNBz8al.js.map +1 -0
- package/dist/cjs/Stepper-DZb25oBH.js +115 -0
- package/dist/cjs/Stepper-DZb25oBH.js.map +1 -0
- package/dist/cjs/Switch-BTkncHw2.js +84 -0
- package/dist/cjs/Switch-BTkncHw2.js.map +1 -0
- package/dist/cjs/Tabs-YPRmLtUM.js +66 -0
- package/dist/cjs/Tabs-YPRmLtUM.js.map +1 -0
- package/dist/cjs/Textarea-yWv-66yX.js +183 -0
- package/dist/cjs/Textarea-yWv-66yX.js.map +1 -0
- package/dist/cjs/TimePicker-BG_vYH3r.js +266 -0
- package/dist/cjs/TimePicker-BG_vYH3r.js.map +1 -0
- package/dist/cjs/TimePickerPanel-6xA-hjhm.js +233 -0
- package/dist/cjs/TimePickerPanel-6xA-hjhm.js.map +1 -0
- package/dist/cjs/Toastr-DYWd66L7.js +97 -0
- package/dist/cjs/Toastr-DYWd66L7.js.map +1 -0
- package/dist/cjs/Tooltip-Dph_R3Ct.js +94 -0
- package/dist/cjs/Tooltip-Dph_R3Ct.js.map +1 -0
- package/dist/cjs/{TranslationProvider-DBZHXmzX.js → TranslationProvider-Dh5_Fzzk.js} +20 -17
- package/dist/cjs/TranslationProvider-Dh5_Fzzk.js.map +1 -0
- package/dist/cjs/{Tree-BPd0DuLh.js → Tree-DAyVPLnJ.js} +515 -322
- package/dist/cjs/Tree-DAyVPLnJ.js.map +1 -0
- package/dist/cjs/TreeSelect-Cmm5yYq3.js +337 -0
- package/dist/cjs/TreeSelect-Cmm5yYq3.js.map +1 -0
- package/dist/cjs/Typography-UyaYuppP.js +100 -0
- package/dist/cjs/Typography-UyaYuppP.js.map +1 -0
- package/dist/cjs/button-CMl9rLXi.js +90 -0
- package/dist/cjs/button-CMl9rLXi.js.map +1 -0
- package/dist/cjs/components/Accordion.js +2 -2
- package/dist/cjs/components/Alert.js +10 -10
- package/dist/cjs/components/Avatar.js +3 -3
- package/dist/cjs/components/Badge.js +4 -4
- package/dist/cjs/components/Button.js +6 -6
- package/dist/cjs/components/Callout.js +4 -4
- package/dist/cjs/components/Checkbox.js +5 -5
- package/dist/cjs/components/ColorPicker.js +5 -5
- package/dist/cjs/components/DataTable.js +15 -15
- package/dist/cjs/components/DatePicker.js +9 -9
- package/dist/cjs/components/Dialog.js +7 -7
- package/dist/cjs/components/DirectionProvider.js +1 -1
- package/dist/cjs/components/DropdownMenu.js +320 -92
- package/dist/cjs/components/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/Empty.js +16 -16
- package/dist/cjs/components/Input.js +9 -9
- package/dist/cjs/components/Kbd.js +3 -3
- package/dist/cjs/components/Label.js +12 -12
- package/dist/cjs/components/MultiEmailInput.js +5 -5
- package/dist/cjs/components/Pagination.js +4 -4
- package/dist/cjs/components/Popover.js +6 -6
- package/dist/cjs/components/Progress.js +2 -2
- package/dist/cjs/components/RadioGroup.js +5 -5
- package/dist/cjs/components/Select.js +10 -10
- package/dist/cjs/components/Sheet.js +7 -7
- package/dist/cjs/components/Slider.js +5 -5
- package/dist/cjs/components/Spinner.js +2 -2
- package/dist/cjs/components/Stepper.js +2 -2
- package/dist/cjs/components/Switch.js +3 -3
- package/dist/cjs/components/Tabs.js +4 -4
- package/dist/cjs/components/Textarea.js +6 -6
- package/dist/cjs/components/TimePicker.js +8 -8
- package/dist/cjs/components/Toastr.js +1 -1
- package/dist/cjs/components/Tooltip.js +3 -3
- package/dist/cjs/components/TranslationProvider.js +1 -1
- package/dist/cjs/components/Tree.js +3 -3
- package/dist/cjs/components/TreeSelect.js +8 -8
- package/dist/cjs/components/Typography.js +3 -3
- package/dist/cjs/components/index.js +80 -80
- package/dist/cjs/dialog-Cs1qH5xA.js +161 -0
- package/dist/cjs/dialog-Cs1qH5xA.js.map +1 -0
- package/dist/cjs/formik/ActionBlock.js +56 -12
- package/dist/cjs/formik/ActionBlock.js.map +1 -1
- package/dist/cjs/formik/BlockNavigation.js +150 -79
- package/dist/cjs/formik/BlockNavigation.js.map +1 -1
- package/dist/cjs/formik/Button.js +20 -9
- package/dist/cjs/formik/Button.js.map +1 -1
- package/dist/cjs/formik/Checkbox.js +33 -15
- package/dist/cjs/formik/Checkbox.js.map +1 -1
- package/dist/cjs/formik/Form.js +105 -74
- package/dist/cjs/formik/Form.js.map +1 -1
- package/dist/cjs/formik/Input.js +32 -22
- package/dist/cjs/formik/Input.js.map +1 -1
- package/dist/cjs/formik/MultiEmailInput.js +23 -13
- package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
- package/dist/cjs/formik/RadioGroup.js +33 -15
- package/dist/cjs/formik/RadioGroup.js.map +1 -1
- package/dist/cjs/formik/Select.js +29 -28
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/Slider.js +31 -13
- package/dist/cjs/formik/Slider.js.map +1 -1
- package/dist/cjs/formik/Switch.js +28 -13
- package/dist/cjs/formik/Switch.js.map +1 -1
- package/dist/cjs/formik/Textarea.js +29 -19
- package/dist/cjs/formik/Textarea.js.map +1 -1
- package/dist/cjs/formik/TreeSelect.js +26 -15
- package/dist/cjs/formik/TreeSelect.js.map +1 -1
- package/dist/cjs/formik/index.js +26 -26
- package/dist/cjs/{index-BLGrl3PF.js → index-BTsnrFFc.js} +2 -2
- package/dist/cjs/{index-BLGrl3PF.js.map → index-BTsnrFFc.js.map} +1 -1
- package/dist/cjs/{index-ChSOMM8b.js → index-CS_WSHYi.js} +54 -54
- package/dist/cjs/index-CS_WSHYi.js.map +1 -0
- package/dist/cjs/{index-D1SiRLYs.js → index-DbA93GP3.js} +2 -2
- package/dist/cjs/{index-D1SiRLYs.js.map → index-DbA93GP3.js.map} +1 -1
- package/dist/cjs/{index-BZhTddX0.js → index-vioSzJOw.js} +2 -2
- package/dist/cjs/{index-BZhTddX0.js.map → index-vioSzJOw.js.map} +1 -1
- package/dist/cjs/index.js +306 -300
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/input-BlyvDsZ5.js +22 -0
- package/dist/cjs/input-BlyvDsZ5.js.map +1 -0
- package/dist/cjs/input-group-8TZFHzVl.js +147 -0
- package/dist/cjs/input-group-8TZFHzVl.js.map +1 -0
- package/dist/cjs/{label-Bdc9ytTI.js → label-DJ7KkKYy.js} +17 -4
- package/dist/cjs/label-DJ7KkKYy.js.map +1 -0
- package/dist/cjs/primitives/Accordion.js +76 -13
- package/dist/cjs/primitives/Accordion.js.map +1 -1
- package/dist/cjs/primitives/Alert.js +65 -20
- package/dist/cjs/primitives/Alert.js.map +1 -1
- package/dist/cjs/primitives/AlertDialog.js +176 -41
- package/dist/cjs/primitives/AlertDialog.js.map +1 -1
- package/dist/cjs/primitives/AspectRatio.js +5 -3
- package/dist/cjs/primitives/AspectRatio.js.map +1 -1
- package/dist/cjs/primitives/Avatar.js +94 -17
- package/dist/cjs/primitives/Avatar.js.map +1 -1
- package/dist/cjs/primitives/Badge.js +99 -69
- package/dist/cjs/primitives/Badge.js.map +1 -1
- package/dist/cjs/primitives/Breadcrumb.js +103 -21
- package/dist/cjs/primitives/Breadcrumb.js.map +1 -1
- package/dist/cjs/primitives/Button.js +4 -4
- package/dist/cjs/primitives/Button.js.map +1 -1
- package/dist/cjs/primitives/ButtonGroup.js +65 -21
- package/dist/cjs/primitives/ButtonGroup.js.map +1 -1
- package/dist/cjs/primitives/Calendar.js +4 -4
- package/dist/cjs/primitives/Card.js +88 -16
- package/dist/cjs/primitives/Card.js.map +1 -1
- package/dist/cjs/primitives/Carousel.js +187 -85
- package/dist/cjs/primitives/Carousel.js.map +1 -1
- package/dist/cjs/primitives/Chart.js +427 -189
- package/dist/cjs/primitives/Chart.js.map +1 -1
- package/dist/cjs/primitives/Checkbox.js +28 -4
- package/dist/cjs/primitives/Checkbox.js.map +1 -1
- package/dist/cjs/primitives/Collapsible.js +27 -9
- package/dist/cjs/primitives/Collapsible.js.map +1 -1
- package/dist/cjs/primitives/Combobox.js +279 -51
- package/dist/cjs/primitives/Combobox.js.map +1 -1
- package/dist/cjs/primitives/Command.js +168 -39
- package/dist/cjs/primitives/Command.js.map +1 -1
- package/dist/cjs/primitives/ContextMenu.js +217 -48
- package/dist/cjs/primitives/ContextMenu.js.map +1 -1
- package/dist/cjs/primitives/Dialog.js +62 -20
- package/dist/cjs/primitives/Dialog.js.map +1 -1
- package/dist/cjs/primitives/Drawer.js +116 -31
- package/dist/cjs/primitives/Drawer.js.map +1 -1
- package/dist/cjs/primitives/DropdownMenu.js +233 -48
- package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
- package/dist/cjs/primitives/Empty.js +85 -23
- package/dist/cjs/primitives/Empty.js.map +1 -1
- package/dist/cjs/primitives/Field.js +194 -55
- package/dist/cjs/primitives/Field.js.map +1 -1
- package/dist/cjs/primitives/HoverCard.js +31 -10
- package/dist/cjs/primitives/HoverCard.js.map +1 -1
- package/dist/cjs/primitives/Input.js +3 -3
- package/dist/cjs/primitives/Input.js.map +1 -1
- package/dist/cjs/primitives/InputGroup.js +12 -12
- package/dist/cjs/primitives/InputGroup.js.map +1 -1
- package/dist/cjs/primitives/InputOTP.js +70 -13
- package/dist/cjs/primitives/InputOTP.js.map +1 -1
- package/dist/cjs/primitives/Item.js +163 -51
- package/dist/cjs/primitives/Item.js.map +1 -1
- package/dist/cjs/primitives/Kbd.js +22 -5
- package/dist/cjs/primitives/Kbd.js.map +1 -1
- package/dist/cjs/primitives/Label.js +3 -3
- package/dist/cjs/primitives/Label.js.map +1 -1
- package/dist/cjs/primitives/Menubar.js +236 -51
- package/dist/cjs/primitives/Menubar.js.map +1 -1
- package/dist/cjs/primitives/NativeSelect.js +45 -9
- package/dist/cjs/primitives/NativeSelect.js.map +1 -1
- package/dist/cjs/primitives/NavigationMenu.js +149 -27
- package/dist/cjs/primitives/NavigationMenu.js.map +1 -1
- package/dist/cjs/primitives/Pagination.js +121 -27
- package/dist/cjs/primitives/Pagination.js.map +1 -1
- package/dist/cjs/primitives/Popover.js +68 -21
- package/dist/cjs/primitives/Popover.js.map +1 -1
- package/dist/cjs/primitives/Progress.js +26 -4
- package/dist/cjs/primitives/Progress.js.map +1 -1
- package/dist/cjs/primitives/RadioGroup.js +36 -9
- package/dist/cjs/primitives/RadioGroup.js.map +1 -1
- package/dist/cjs/primitives/Resizable.js +37 -9
- package/dist/cjs/primitives/Resizable.js.map +1 -1
- package/dist/cjs/primitives/ScrollArea.js +53 -7
- package/dist/cjs/primitives/ScrollArea.js.map +1 -1
- package/dist/cjs/primitives/Select.js +169 -32
- package/dist/cjs/primitives/Select.js.map +1 -1
- package/dist/cjs/primitives/Separator.js +3 -3
- package/dist/cjs/primitives/Separator.js.map +1 -1
- package/dist/cjs/primitives/Sheet.js +79 -18
- package/dist/cjs/primitives/Sheet.js.map +1 -1
- package/dist/cjs/primitives/Sidebar.js +575 -181
- package/dist/cjs/primitives/Sidebar.js.map +1 -1
- package/dist/cjs/primitives/Skeleton.js +3 -3
- package/dist/cjs/primitives/Skeleton.js.map +1 -1
- package/dist/cjs/primitives/Slider.js +53 -9
- package/dist/cjs/primitives/Slider.js.map +1 -1
- package/dist/cjs/primitives/Sonner.js +42 -26
- package/dist/cjs/primitives/Sonner.js.map +1 -1
- package/dist/cjs/primitives/Spinner.js +4 -4
- package/dist/cjs/primitives/Spinner.js.map +1 -1
- package/dist/cjs/primitives/Switch.js +32 -2
- package/dist/cjs/primitives/Switch.js.map +1 -1
- package/dist/cjs/primitives/Table.js +109 -17
- package/dist/cjs/primitives/Table.js.map +1 -1
- package/dist/cjs/primitives/Tabs.js +78 -22
- package/dist/cjs/primitives/Tabs.js.map +1 -1
- package/dist/cjs/primitives/Textarea.js +3 -3
- package/dist/cjs/primitives/Textarea.js.map +1 -1
- package/dist/cjs/primitives/Toggle.js +4 -4
- package/dist/cjs/primitives/Toggle.js.map +1 -1
- package/dist/cjs/primitives/ToggleGroup.js +68 -17
- package/dist/cjs/primitives/ToggleGroup.js.map +1 -1
- package/dist/cjs/primitives/Tooltip.js +6 -6
- package/dist/cjs/primitives/Tooltip.js.map +1 -1
- package/dist/cjs/primitives/index.js +18 -18
- package/dist/cjs/renderIcon-BRrpZu9a.js +32 -0
- package/dist/cjs/renderIcon-BRrpZu9a.js.map +1 -0
- package/dist/cjs/search-DVHH0ihN.js +33 -0
- package/dist/cjs/search-DVHH0ihN.js.map +1 -0
- package/dist/cjs/{separator-CPy2gyg1.js → separator-DSL-aG1J.js} +21 -4
- package/dist/cjs/separator-DSL-aG1J.js.map +1 -0
- package/dist/cjs/sheet-G6ismmAK.js +147 -0
- package/dist/cjs/sheet-G6ismmAK.js.map +1 -0
- package/dist/cjs/skeleton-CL0H_mC4.js +18 -0
- package/dist/cjs/skeleton-CL0H_mC4.js.map +1 -0
- package/dist/cjs/textarea-Br-J3v7z.js +21 -0
- package/dist/cjs/textarea-Br-J3v7z.js.map +1 -0
- package/dist/cjs/{toggle-CaqzT8dI.js → toggle-Cq38rmIj.js} +34 -19
- package/dist/cjs/toggle-Cq38rmIj.js.map +1 -0
- package/dist/cjs/{tooltip-C-568jEL.js → tooltip-BYCcUMZn.js} +44 -10
- package/dist/cjs/tooltip-BYCcUMZn.js.map +1 -0
- package/dist/cjs/use-mobile-Be9CI6km.js +41 -0
- package/dist/cjs/use-mobile-Be9CI6km.js.map +1 -0
- package/dist/cjs/{utils-CTr7wn5d.js → utils-BhM0B89p.js} +2 -2
- package/dist/cjs/utils-BhM0B89p.js.map +1 -0
- package/dist/components/Accordion.js +2 -2
- package/dist/components/Alert.js +10 -10
- package/dist/components/Avatar.js +3 -3
- package/dist/components/Badge.js +4 -4
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button.js +6 -6
- package/dist/components/Callout.js +4 -4
- package/dist/components/Checkbox.js +5 -5
- package/dist/components/ColorPicker.js +5 -5
- package/dist/components/DataTable.js +15 -15
- package/dist/components/DatePicker.js +9 -9
- package/dist/components/Dialog.js +7 -7
- package/dist/components/DirectionProvider.js +1 -1
- package/dist/components/DropdownMenu.js +320 -92
- package/dist/components/DropdownMenu.js.map +1 -1
- package/dist/components/Empty.js +16 -16
- package/dist/components/Input.js +9 -9
- package/dist/components/Kbd.js +3 -3
- package/dist/components/Label.js +12 -12
- package/dist/components/MultiEmailInput.js +5 -5
- package/dist/components/Pagination.js +4 -4
- package/dist/components/Popover.js +6 -6
- package/dist/components/Progress.js +2 -2
- package/dist/components/RadioGroup.js +5 -5
- package/dist/components/Select.js +10 -10
- package/dist/components/Sheet.js +7 -7
- package/dist/components/Slider.js +5 -5
- package/dist/components/Spinner.js +2 -2
- package/dist/components/Stepper.js +2 -2
- package/dist/components/Switch.js +3 -3
- package/dist/components/Tabs.js +4 -4
- package/dist/components/Textarea.js +6 -6
- package/dist/components/TimePicker.js +8 -8
- package/dist/components/Toastr.js +1 -1
- package/dist/components/Tooltip.js +3 -3
- package/dist/components/TranslationProvider.js +1 -1
- package/dist/components/Tree.js +3 -3
- package/dist/components/TreeSelect/hooks/useTreeSelectState.d.ts +1 -1
- package/dist/components/TreeSelect/hooks/useTreeSelectValue.d.ts +1 -2
- package/dist/components/TreeSelect/utils/resolveFieldNames.d.ts +4 -2
- package/dist/components/TreeSelect.js +8 -8
- package/dist/components/Typography.js +3 -3
- package/dist/components/index.js +76 -76
- package/dist/dialog--Qm4MZDo.js +150 -0
- package/dist/{dialog-DK71SlsS.js.map → dialog--Qm4MZDo.js.map} +1 -1
- package/dist/formik/ActionBlock.js +56 -12
- package/dist/formik/ActionBlock.js.map +1 -1
- package/dist/formik/BlockNavigation.js +150 -79
- package/dist/formik/BlockNavigation.js.map +1 -1
- package/dist/formik/Button.js +20 -9
- package/dist/formik/Button.js.map +1 -1
- package/dist/formik/Checkbox.js +33 -15
- package/dist/formik/Checkbox.js.map +1 -1
- package/dist/formik/Form.js +105 -74
- package/dist/formik/Form.js.map +1 -1
- package/dist/formik/Input.js +32 -22
- package/dist/formik/Input.js.map +1 -1
- package/dist/formik/MultiEmailInput.js +23 -13
- package/dist/formik/MultiEmailInput.js.map +1 -1
- package/dist/formik/RadioGroup.d.ts +1 -1
- package/dist/formik/RadioGroup.js +33 -15
- package/dist/formik/RadioGroup.js.map +1 -1
- package/dist/formik/Select.js +29 -28
- package/dist/formik/Select.js.map +1 -1
- package/dist/formik/Slider.d.ts +1 -1
- package/dist/formik/Slider.js +31 -13
- package/dist/formik/Slider.js.map +1 -1
- package/dist/formik/Switch.js +28 -13
- package/dist/formik/Switch.js.map +1 -1
- package/dist/formik/Textarea.js +29 -19
- package/dist/formik/Textarea.js.map +1 -1
- package/dist/formik/TreeSelect.js +26 -15
- package/dist/formik/TreeSelect.js.map +1 -1
- package/dist/formik/index.js +26 -26
- package/dist/{index-9HvIbmnI.js → index-B7SdntLB.js} +2 -2
- package/dist/{index-9HvIbmnI.js.map → index-B7SdntLB.js.map} +1 -1
- package/dist/{index-D7Zy7P05.js → index-Bo3AAQJp.js} +2 -2
- package/dist/{index-D7Zy7P05.js.map → index-Bo3AAQJp.js.map} +1 -1
- package/dist/{index-OI_tWuLx.js → index-DnD7-4_R.js} +2 -2
- package/dist/{index-OI_tWuLx.js.map → index-DnD7-4_R.js.map} +1 -1
- package/dist/{index-B4_fVWDx.js → index-Jr4soqx3.js} +54 -54
- package/dist/index-Jr4soqx3.js.map +1 -0
- package/dist/index.js +286 -280
- package/dist/index.js.map +1 -1
- package/dist/input-1J5oQa1u.js +20 -0
- package/dist/{input-GLCCE2kT.js.map → input-1J5oQa1u.js.map} +1 -1
- package/dist/input-group-BKkj65Uq.js +140 -0
- package/dist/{input-group-C_qKMibX.js.map → input-group-BKkj65Uq.js.map} +1 -1
- package/dist/{label-B4qDF3W1.js → label-BgLSVt4u.js} +17 -4
- package/dist/{label-B4qDF3W1.js.map → label-BgLSVt4u.js.map} +1 -1
- package/dist/primitives/Accordion.js +76 -13
- package/dist/primitives/Accordion.js.map +1 -1
- package/dist/primitives/Alert.js +65 -20
- package/dist/primitives/Alert.js.map +1 -1
- package/dist/primitives/AlertDialog.js +176 -41
- package/dist/primitives/AlertDialog.js.map +1 -1
- package/dist/primitives/AspectRatio.js +5 -3
- package/dist/primitives/AspectRatio.js.map +1 -1
- package/dist/primitives/Avatar.js +94 -17
- package/dist/primitives/Avatar.js.map +1 -1
- package/dist/primitives/Badge.js +99 -69
- package/dist/primitives/Badge.js.map +1 -1
- package/dist/primitives/Breadcrumb.js +103 -21
- package/dist/primitives/Breadcrumb.js.map +1 -1
- package/dist/primitives/Button.js +5 -5
- package/dist/primitives/Button.js.map +1 -1
- package/dist/primitives/ButtonGroup.js +65 -21
- package/dist/primitives/ButtonGroup.js.map +1 -1
- package/dist/primitives/Calendar.js +4 -4
- package/dist/primitives/Card.js +88 -16
- package/dist/primitives/Card.js.map +1 -1
- package/dist/primitives/Carousel.js +187 -85
- package/dist/primitives/Carousel.js.map +1 -1
- package/dist/primitives/Chart.js +427 -189
- package/dist/primitives/Chart.js.map +1 -1
- package/dist/primitives/Checkbox.js +28 -4
- package/dist/primitives/Checkbox.js.map +1 -1
- package/dist/primitives/Collapsible.js +27 -9
- package/dist/primitives/Collapsible.js.map +1 -1
- package/dist/primitives/Combobox.js +279 -51
- package/dist/primitives/Combobox.js.map +1 -1
- package/dist/primitives/Command.js +168 -39
- package/dist/primitives/Command.js.map +1 -1
- package/dist/primitives/ContextMenu.js +217 -48
- package/dist/primitives/ContextMenu.js.map +1 -1
- package/dist/primitives/Dialog.js +62 -20
- package/dist/primitives/Dialog.js.map +1 -1
- package/dist/primitives/Drawer.js +116 -31
- package/dist/primitives/Drawer.js.map +1 -1
- package/dist/primitives/DropdownMenu.js +233 -48
- package/dist/primitives/DropdownMenu.js.map +1 -1
- package/dist/primitives/Empty.js +85 -23
- package/dist/primitives/Empty.js.map +1 -1
- package/dist/primitives/Field.js +194 -55
- package/dist/primitives/Field.js.map +1 -1
- package/dist/primitives/HoverCard.js +31 -10
- package/dist/primitives/HoverCard.js.map +1 -1
- package/dist/primitives/Input.js +3 -3
- package/dist/primitives/Input.js.map +1 -1
- package/dist/primitives/InputGroup.js +12 -12
- package/dist/primitives/InputGroup.js.map +1 -1
- package/dist/primitives/InputOTP.js +70 -13
- package/dist/primitives/InputOTP.js.map +1 -1
- package/dist/primitives/Item.js +163 -51
- package/dist/primitives/Item.js.map +1 -1
- package/dist/primitives/Kbd.js +22 -5
- package/dist/primitives/Kbd.js.map +1 -1
- package/dist/primitives/Label.js +3 -3
- package/dist/primitives/Label.js.map +1 -1
- package/dist/primitives/Menubar.js +236 -51
- package/dist/primitives/Menubar.js.map +1 -1
- package/dist/primitives/NativeSelect.js +45 -9
- package/dist/primitives/NativeSelect.js.map +1 -1
- package/dist/primitives/NavigationMenu.js +149 -27
- package/dist/primitives/NavigationMenu.js.map +1 -1
- package/dist/primitives/Pagination.js +121 -27
- package/dist/primitives/Pagination.js.map +1 -1
- package/dist/primitives/Popover.js +68 -21
- package/dist/primitives/Popover.js.map +1 -1
- package/dist/primitives/Progress.js +26 -4
- package/dist/primitives/Progress.js.map +1 -1
- package/dist/primitives/RadioGroup.js +36 -9
- package/dist/primitives/RadioGroup.js.map +1 -1
- package/dist/primitives/Resizable.js +38 -10
- package/dist/primitives/Resizable.js.map +1 -1
- package/dist/primitives/ScrollArea.js +53 -7
- package/dist/primitives/ScrollArea.js.map +1 -1
- package/dist/primitives/Select.js +169 -32
- package/dist/primitives/Select.js.map +1 -1
- package/dist/primitives/Separator.js +3 -3
- package/dist/primitives/Separator.js.map +1 -1
- package/dist/primitives/Sheet.js +79 -18
- package/dist/primitives/Sheet.js.map +1 -1
- package/dist/primitives/Sidebar.js +575 -181
- package/dist/primitives/Sidebar.js.map +1 -1
- package/dist/primitives/Skeleton.js +3 -3
- package/dist/primitives/Skeleton.js.map +1 -1
- package/dist/primitives/Slider.js +53 -9
- package/dist/primitives/Slider.js.map +1 -1
- package/dist/primitives/Sonner.js +42 -26
- package/dist/primitives/Sonner.js.map +1 -1
- package/dist/primitives/Spinner.js +4 -4
- package/dist/primitives/Spinner.js.map +1 -1
- package/dist/primitives/Switch.js +32 -2
- package/dist/primitives/Switch.js.map +1 -1
- package/dist/primitives/Table.js +109 -17
- package/dist/primitives/Table.js.map +1 -1
- package/dist/primitives/Tabs.js +78 -22
- package/dist/primitives/Tabs.js.map +1 -1
- package/dist/primitives/Textarea.js +3 -3
- package/dist/primitives/Textarea.js.map +1 -1
- package/dist/primitives/Toggle.js +5 -5
- package/dist/primitives/Toggle.js.map +1 -1
- package/dist/primitives/ToggleGroup.js +68 -17
- package/dist/primitives/ToggleGroup.js.map +1 -1
- package/dist/primitives/Tooltip.js +6 -6
- package/dist/primitives/Tooltip.js.map +1 -1
- package/dist/primitives/index.js +18 -18
- package/dist/renderIcon-C6twJSqH.js +26 -0
- package/dist/{renderIcon-tlvMyboj.js.map → renderIcon-C6twJSqH.js.map} +1 -1
- package/dist/search-B5K8FsJs.js +29 -0
- package/dist/search-B5K8FsJs.js.map +1 -0
- package/dist/{separator-BbhgePmX.js → separator-ByRsc-y-.js} +21 -4
- package/dist/{separator-BbhgePmX.js.map → separator-ByRsc-y-.js.map} +1 -1
- package/dist/sheet-BIqq9HBB.js +138 -0
- package/dist/{sheet-DVTG6X82.js.map → sheet-BIqq9HBB.js.map} +1 -1
- package/dist/skeleton-D9P1ZyiS.js +16 -0
- package/dist/skeleton-D9P1ZyiS.js.map +1 -0
- package/dist/textarea-B0vzA497.js +19 -0
- package/dist/{textarea-BSZwxzjQ.js.map → textarea-B0vzA497.js.map} +1 -1
- package/dist/toggle-bESUdU4A.js +75 -0
- package/dist/{toggle-2k9K8a5c.js.map → toggle-bESUdU4A.js.map} +1 -1
- package/dist/{tooltip-XkHLgxlU.js → tooltip-ChQ9xD1j.js} +44 -10
- package/dist/{tooltip-XkHLgxlU.js.map → tooltip-ChQ9xD1j.js.map} +1 -1
- package/dist/use-mobile-QbHL72cX.js +19 -0
- package/dist/use-mobile-QbHL72cX.js.map +1 -0
- package/dist/{utils-DdHUxIdC.js → utils-BJnb9o5c.js} +2 -2
- package/dist/{utils-DdHUxIdC.js.map → utils-BJnb9o5c.js.map} +1 -1
- package/package.json +4 -2
- package/dist/Accordion-Ch9S_qd3.js +0 -22
- package/dist/Alert-CayTuRLW.js +0 -65
- package/dist/Avatar-D5YGlXVF.js +0 -50
- package/dist/Badge-Bj3ajrWB.js +0 -59
- package/dist/Button-DSvnInaL.js +0 -93
- package/dist/Button-DSvnInaL.js.map +0 -1
- package/dist/Checkbox-zCxgcZiC.js +0 -24
- package/dist/ColorPicker-DtOvy0Gy.js +0 -278
- package/dist/ColorPicker-DtOvy0Gy.js.map +0 -1
- package/dist/DataTable-BpMBsz5i.js.map +0 -1
- package/dist/Dialog-BURSzxaP.js +0 -61
- package/dist/Empty-zyL2ZsHX.js +0 -27
- package/dist/Input-C1gcv9o2.js +0 -147
- package/dist/Kbd-EqbC0bua.js +0 -36
- package/dist/Label-DAFESZOG.js +0 -58
- package/dist/MultiEmailInput-SCTYovtX.js +0 -139
- package/dist/MultiEmailInput-SCTYovtX.js.map +0 -1
- package/dist/Pagination-DSc9yXPy.js +0 -61
- package/dist/Popover-Dmq-xK_a.js +0 -84
- package/dist/Progress-B9NlUm6e.js +0 -13
- package/dist/RadioGroup-BNeYQAoT.js +0 -34
- package/dist/Select-BgSz0fve.js +0 -563
- package/dist/Select-BgSz0fve.js.map +0 -1
- package/dist/SelectFieldWrapper-BJzq9aCY.js +0 -23
- package/dist/Sheet-B99vGwLH.js +0 -63
- package/dist/Slider-BCQXhs0Q.js +0 -25
- package/dist/Spinner-C8HSac-2.js +0 -17
- package/dist/Stepper-BoGkmkY0.js +0 -29
- package/dist/Switch-B83TGxJ_.js +0 -20
- package/dist/Tabs-DWfKnl3S.js +0 -38
- package/dist/Textarea-C0z50h0N.js +0 -73
- package/dist/TimePicker-2vhf5yYK.js +0 -146
- package/dist/TimePicker-2vhf5yYK.js.map +0 -1
- package/dist/TimePickerPanel-CiF0RExY.js +0 -126
- package/dist/Toastr-DYqpSaMd.js +0 -115
- package/dist/Tooltip-3ZzQyaDV.js +0 -59
- package/dist/Tree-C7r10UY5.js.map +0 -1
- package/dist/TreeSelect-BxsQrdjf.js +0 -168
- package/dist/TreeSelect-BxsQrdjf.js.map +0 -1
- package/dist/Typography-ClPJbLjP.js +0 -76
- package/dist/button-D6uWDFCs.js +0 -48
- package/dist/cjs/Accordion-BoTckTBI.js +0 -28
- package/dist/cjs/Accordion-BoTckTBI.js.map +0 -1
- package/dist/cjs/Alert-DnIUdIE3.js +0 -67
- package/dist/cjs/Alert-DnIUdIE3.js.map +0 -1
- package/dist/cjs/Avatar-CNao5gvP.js +0 -52
- package/dist/cjs/Avatar-CNao5gvP.js.map +0 -1
- package/dist/cjs/Badge-_-PRf6aq.js +0 -61
- package/dist/cjs/Badge-_-PRf6aq.js.map +0 -1
- package/dist/cjs/Button-BniJ4TT_.js +0 -95
- package/dist/cjs/Button-BniJ4TT_.js.map +0 -1
- package/dist/cjs/Calendar-jVF8fRaS.js.map +0 -1
- package/dist/cjs/Callout-CVNpjTde.js.map +0 -1
- package/dist/cjs/Checkbox-DOlS2oCD.js +0 -26
- package/dist/cjs/Checkbox-DOlS2oCD.js.map +0 -1
- package/dist/cjs/ColorPicker-Uxgn8U0h.js +0 -280
- package/dist/cjs/ColorPicker-Uxgn8U0h.js.map +0 -1
- package/dist/cjs/DataTable-BynOh4Bs.js.map +0 -1
- package/dist/cjs/DatePicker-C0BwxIh8.js.map +0 -1
- package/dist/cjs/Dialog-CtI_yWsJ.js +0 -63
- package/dist/cjs/Dialog-CtI_yWsJ.js.map +0 -1
- package/dist/cjs/DirectionProvider-Bec-6U8p.js.map +0 -1
- package/dist/cjs/Empty-CfPLWsLK.js +0 -29
- package/dist/cjs/Empty-CfPLWsLK.js.map +0 -1
- package/dist/cjs/Input-pkugjUb0.js +0 -149
- package/dist/cjs/Input-pkugjUb0.js.map +0 -1
- package/dist/cjs/Kbd-DHirsI--.js +0 -38
- package/dist/cjs/Kbd-DHirsI--.js.map +0 -1
- package/dist/cjs/Label-B7FbeB5i.js +0 -60
- package/dist/cjs/Label-B7FbeB5i.js.map +0 -1
- package/dist/cjs/MultiEmailInput-l0_YVjbp.js +0 -141
- package/dist/cjs/MultiEmailInput-l0_YVjbp.js.map +0 -1
- package/dist/cjs/Pagination-Byzt9Kmj.js +0 -63
- package/dist/cjs/Pagination-Byzt9Kmj.js.map +0 -1
- package/dist/cjs/Popover-DRT0YYzK.js +0 -90
- package/dist/cjs/Popover-DRT0YYzK.js.map +0 -1
- package/dist/cjs/Progress-DoCxZ_ZH.js +0 -15
- package/dist/cjs/Progress-DoCxZ_ZH.js.map +0 -1
- package/dist/cjs/RadioGroup-1RAoe38m.js +0 -36
- package/dist/cjs/RadioGroup-1RAoe38m.js.map +0 -1
- package/dist/cjs/Select-nifsTqzo.js +0 -569
- package/dist/cjs/Select-nifsTqzo.js.map +0 -1
- package/dist/cjs/SelectFieldWrapper-DEA--2wj.js +0 -25
- package/dist/cjs/SelectFieldWrapper-DEA--2wj.js.map +0 -1
- package/dist/cjs/Sheet-BTZe2VQk.js +0 -65
- package/dist/cjs/Sheet-BTZe2VQk.js.map +0 -1
- package/dist/cjs/Slider-jNUS9vt8.js +0 -27
- package/dist/cjs/Slider-jNUS9vt8.js.map +0 -1
- package/dist/cjs/Spinner-DQutDMQq.js +0 -19
- package/dist/cjs/Spinner-DQutDMQq.js.map +0 -1
- package/dist/cjs/Stepper-DCoLl2ZS.js +0 -35
- package/dist/cjs/Stepper-DCoLl2ZS.js.map +0 -1
- package/dist/cjs/Switch-CFf8DtB_.js +0 -22
- package/dist/cjs/Switch-CFf8DtB_.js.map +0 -1
- package/dist/cjs/Tabs-D2247rd7.js +0 -40
- package/dist/cjs/Tabs-D2247rd7.js.map +0 -1
- package/dist/cjs/Textarea-BfdlAJ59.js +0 -75
- package/dist/cjs/Textarea-BfdlAJ59.js.map +0 -1
- package/dist/cjs/TimePicker-DReL0GSv.js +0 -148
- package/dist/cjs/TimePicker-DReL0GSv.js.map +0 -1
- package/dist/cjs/TimePickerPanel-DGNr97cj.js +0 -132
- package/dist/cjs/TimePickerPanel-DGNr97cj.js.map +0 -1
- package/dist/cjs/Toastr-BGp7-kmf.js +0 -117
- package/dist/cjs/Toastr-BGp7-kmf.js.map +0 -1
- package/dist/cjs/Tooltip-criVUtIg.js +0 -65
- package/dist/cjs/Tooltip-criVUtIg.js.map +0 -1
- package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +0 -1
- package/dist/cjs/Tree-BPd0DuLh.js.map +0 -1
- package/dist/cjs/TreeSelect-BoffO6qD.js +0 -170
- package/dist/cjs/TreeSelect-BoffO6qD.js.map +0 -1
- package/dist/cjs/Typography-DaZ0HTha.js +0 -79
- package/dist/cjs/Typography-DaZ0HTha.js.map +0 -1
- package/dist/cjs/button--P7-oIJb.js +0 -71
- package/dist/cjs/button--P7-oIJb.js.map +0 -1
- package/dist/cjs/dialog-CWSpiRjk.js +0 -52
- package/dist/cjs/dialog-CWSpiRjk.js.map +0 -1
- package/dist/cjs/index-ChSOMM8b.js.map +0 -1
- package/dist/cjs/input-CgKPISj_.js +0 -11
- package/dist/cjs/input-CgKPISj_.js.map +0 -1
- package/dist/cjs/input-group-CFZl_aQS.js +0 -66
- package/dist/cjs/input-group-CFZl_aQS.js.map +0 -1
- package/dist/cjs/label-Bdc9ytTI.js.map +0 -1
- package/dist/cjs/renderIcon-fLF3odqg.js +0 -26
- package/dist/cjs/renderIcon-fLF3odqg.js.map +0 -1
- package/dist/cjs/search-CfYUGi4v.js +0 -37
- package/dist/cjs/search-CfYUGi4v.js.map +0 -1
- package/dist/cjs/separator-CPy2gyg1.js.map +0 -1
- package/dist/cjs/sheet-BZt84aab.js +0 -50
- package/dist/cjs/sheet-BZt84aab.js.map +0 -1
- package/dist/cjs/skeleton-DffZ8bV7.js +0 -11
- package/dist/cjs/skeleton-DffZ8bV7.js.map +0 -1
- package/dist/cjs/textarea-CZSSY75H.js +0 -11
- package/dist/cjs/textarea-CZSSY75H.js.map +0 -1
- package/dist/cjs/toggle-CaqzT8dI.js.map +0 -1
- package/dist/cjs/tooltip-C-568jEL.js.map +0 -1
- package/dist/cjs/use-mobile-B-UYxtqX.js +0 -41
- package/dist/cjs/use-mobile-B-UYxtqX.js.map +0 -1
- package/dist/cjs/utils-CTr7wn5d.js.map +0 -1
- package/dist/dialog-DK71SlsS.js +0 -41
- package/dist/index-B4_fVWDx.js.map +0 -1
- package/dist/input-GLCCE2kT.js +0 -9
- package/dist/input-group-C_qKMibX.js +0 -59
- package/dist/renderIcon-tlvMyboj.js +0 -20
- package/dist/search-BK7Ozh5_.js +0 -33
- package/dist/search-BK7Ozh5_.js.map +0 -1
- package/dist/sheet-DVTG6X82.js +0 -41
- package/dist/skeleton-AR83txPr.js +0 -9
- package/dist/skeleton-AR83txPr.js.map +0 -1
- package/dist/textarea-BSZwxzjQ.js +0 -9
- package/dist/toggle-2k9K8a5c.js +0 -60
- package/dist/use-mobile-IRjN_mlT.js +0 -19
- package/dist/use-mobile-IRjN_mlT.js.map +0 -1
|
@@ -1,75 +0,0 @@
|
|
|
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
|
-
|
|
9
|
-
const SIZE_ROWS = {
|
|
10
|
-
small: 1,
|
|
11
|
-
medium: 3,
|
|
12
|
-
large: 4,
|
|
13
|
-
};
|
|
14
|
-
const SIZE_MIN_HEIGHT = {
|
|
15
|
-
small: "min-h-8",
|
|
16
|
-
medium: "min-h-20",
|
|
17
|
-
large: "min-h-28",
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
function getTrimmedValue(value, disableTrimOnBlur) {
|
|
21
|
-
if (disableTrimOnBlur || typeof value !== "string")
|
|
22
|
-
return value;
|
|
23
|
-
return value.trim();
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
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) => {
|
|
27
|
-
const generatedId = React.useId();
|
|
28
|
-
const id = otherProps.id ?? generatedId;
|
|
29
|
-
const errorId = `error_${id}`;
|
|
30
|
-
const helpTextId = `helpText_${id}`;
|
|
31
|
-
// Controlled / uncontrolled value tracking
|
|
32
|
-
const [valueInternal, setValueInternal] = React.useState(controlledValue ?? "");
|
|
33
|
-
const isControlled = controlledValue !== undefined;
|
|
34
|
-
const value = isControlled ? controlledValue : valueInternal;
|
|
35
|
-
const valueLength = value?.toString().length || 0;
|
|
36
|
-
const isMaxLengthPresent = !!maxLength || maxLength === 0;
|
|
37
|
-
const isCharacterLimitVisible = isMaxLengthPresent && valueLength >= maxLength * 0.85;
|
|
38
|
-
const maxLengthError = unlimitedChars && valueLength > maxLength;
|
|
39
|
-
const rows = rowsProp ?? SIZE_ROWS[size];
|
|
40
|
-
// --- Handlers ---
|
|
41
|
-
const handleChange = (e) => {
|
|
42
|
-
if (!isControlled) {
|
|
43
|
-
setValueInternal(e.target.value);
|
|
44
|
-
}
|
|
45
|
-
onChange?.(e);
|
|
46
|
-
};
|
|
47
|
-
const handleBlur = (e) => {
|
|
48
|
-
const trimmedValue = getTrimmedValue(value ?? "", disableTrimOnBlur);
|
|
49
|
-
if (trimmedValue !== value) {
|
|
50
|
-
e.target.value = trimmedValue.toString();
|
|
51
|
-
handleChange(e);
|
|
52
|
-
}
|
|
53
|
-
onBlur?.(e);
|
|
54
|
-
};
|
|
55
|
-
// --- aria-describedby ---
|
|
56
|
-
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
57
|
-
.filter(Boolean)
|
|
58
|
-
.join(" ") || undefined;
|
|
59
|
-
// --- Textarea element ---
|
|
60
|
-
const hasField = !!(label || error || helpText);
|
|
61
|
-
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(
|
|
62
|
-
// Override shadcn's field-sizing-content and min-h-16 so rows works
|
|
63
|
-
"!field-sizing-normal", SIZE_MIN_HEIGHT[size], resize === "none" && "resize-none", resize === "vertical" && "resize-y", nakedTextarea &&
|
|
64
|
-
"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 }));
|
|
65
|
-
const hasPrefixSuffix = !!(prefix || suffix);
|
|
66
|
-
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);
|
|
67
|
-
if (!hasField) {
|
|
68
|
-
return jsxRuntime.jsx("div", { className: utils.cn(className), children: textareaWithAffixes });
|
|
69
|
-
}
|
|
70
|
-
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 }))] })] }));
|
|
71
|
-
});
|
|
72
|
-
Textarea.displayName = "Textarea";
|
|
73
|
-
|
|
74
|
-
exports.Textarea = Textarea;
|
|
75
|
-
//# sourceMappingURL=Textarea-BfdlAJ59.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea-BfdlAJ59.js","sources":["../../../src/components/Textarea/constants.ts","../../../src/components/Textarea/utils.ts","../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["type TextareaSize = \"small\" | \"medium\" | \"large\";\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\nexport { SIZE_ROWS, SIZE_MIN_HEIGHT };\nexport type { TextareaSize };\n","function 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\nexport { getTrimmedValue };\n","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\nimport { SIZE_ROWS, SIZE_MIN_HEIGHT } from \"./constants\";\nimport { getTrimmedValue } from \"./utils\";\n\nimport type { TextareaSize } from \"./constants\";\n\ntype TextareaResize = \"vertical\" | \"none\";\n\ntype PrimitiveTextareaProps = React.ComponentProps<typeof PrimitiveTextarea>;\n\nexport interface TextareaProps extends Omit<\n PrimitiveTextareaProps,\n \"size\" | \"children\" | \"prefix\" | \"value\"\n> {\n /** Controlled value. */\n value?: string | number;\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\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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"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var primitives_Popover = require('./primitives/Popover.js');
|
|
6
|
-
var primitives_Field = require('./primitives/Field.js');
|
|
7
|
-
var utils = require('./utils-CTr7wn5d.js');
|
|
8
|
-
var TimePickerPanel = require('./TimePickerPanel-DGNr97cj.js');
|
|
9
|
-
var createLucideIcon = require('./createLucideIcon-D0tRgV6l.js');
|
|
10
|
-
var x = require('./x-Brw3FJst.js');
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @license lucide-react v0.577.0 - ISC
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the ISC license.
|
|
16
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const __iconNode = [
|
|
21
|
-
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
22
|
-
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
|
|
23
|
-
];
|
|
24
|
-
const Clock = createLucideIcon.createLucideIcon("clock", __iconNode);
|
|
25
|
-
|
|
26
|
-
const SIZE_CONFIG = {
|
|
27
|
-
small: { trigger: "h-7 text-xs", icon: "size-3.5" },
|
|
28
|
-
medium: { trigger: "h-8 text-sm", icon: "size-4" },
|
|
29
|
-
large: { trigger: "h-10 text-sm", icon: "size-4" },
|
|
30
|
-
};
|
|
31
|
-
const TimePicker = React.forwardRef(({ value, onChange, format = "24", showSeconds = false, minuteStep = 1, secondStep = 1, disabled = false, placeholder, label, error, helpText, size = "medium", required = false, timezone, labelProps, className, }, ref) => {
|
|
32
|
-
const generatedId = React.useId();
|
|
33
|
-
const errorId = `error_${generatedId}`;
|
|
34
|
-
const helpTextId = `helpText_${generatedId}`;
|
|
35
|
-
const containerRef = React.useRef(null);
|
|
36
|
-
const popoverContentId = React.useRef(`timepicker-popover-${generatedId}`).current;
|
|
37
|
-
const [open, setOpen] = React.useState(false);
|
|
38
|
-
const getInitialTime = React.useCallback(() => {
|
|
39
|
-
if (!value)
|
|
40
|
-
return null;
|
|
41
|
-
if (value instanceof Date)
|
|
42
|
-
return TimePickerPanel.dateToTimeValue(value);
|
|
43
|
-
if (typeof value.toDate ===
|
|
44
|
-
"function") {
|
|
45
|
-
return TimePickerPanel.dateToTimeValue(value.toDate());
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
hours: value.hours,
|
|
49
|
-
minutes: value.minutes,
|
|
50
|
-
seconds: value.seconds ?? 0,
|
|
51
|
-
};
|
|
52
|
-
}, [value]);
|
|
53
|
-
const [internalTime, setInternalTime] = React.useState(getInitialTime);
|
|
54
|
-
const [inputText, setInputText] = React.useState("");
|
|
55
|
-
const formatTimeDisplay = React.useCallback((time) => {
|
|
56
|
-
if (!time)
|
|
57
|
-
return "";
|
|
58
|
-
if (format === "12") {
|
|
59
|
-
const { hour12, period } = TimePickerPanel.to12Hour(time.hours);
|
|
60
|
-
const parts = [TimePickerPanel.padNumber(hour12), TimePickerPanel.padNumber(time.minutes)];
|
|
61
|
-
if (showSeconds)
|
|
62
|
-
parts.push(TimePickerPanel.padNumber(time.seconds ?? 0));
|
|
63
|
-
return `${parts.join(":")} ${period}`;
|
|
64
|
-
}
|
|
65
|
-
const parts = [TimePickerPanel.padNumber(time.hours), TimePickerPanel.padNumber(time.minutes)];
|
|
66
|
-
if (showSeconds)
|
|
67
|
-
parts.push(TimePickerPanel.padNumber(time.seconds ?? 0));
|
|
68
|
-
return parts.join(":");
|
|
69
|
-
}, [format, showSeconds]);
|
|
70
|
-
React.useEffect(() => {
|
|
71
|
-
const newTime = getInitialTime();
|
|
72
|
-
setInternalTime(newTime);
|
|
73
|
-
setInputText(formatTimeDisplay(newTime));
|
|
74
|
-
}, [getInitialTime, formatTimeDisplay]);
|
|
75
|
-
// Close on outside click
|
|
76
|
-
React.useEffect(() => {
|
|
77
|
-
if (!open)
|
|
78
|
-
return;
|
|
79
|
-
const handlePointerDown = (e) => {
|
|
80
|
-
const target = e.target;
|
|
81
|
-
if (containerRef.current?.contains(target))
|
|
82
|
-
return;
|
|
83
|
-
const popoverEl = document.getElementById(popoverContentId);
|
|
84
|
-
if (popoverEl?.contains(target))
|
|
85
|
-
return;
|
|
86
|
-
setOpen(false);
|
|
87
|
-
setInputText(formatTimeDisplay(internalTime));
|
|
88
|
-
};
|
|
89
|
-
document.addEventListener("pointerdown", handlePointerDown);
|
|
90
|
-
return () => document.removeEventListener("pointerdown", handlePointerDown);
|
|
91
|
-
}, [open, internalTime, formatTimeDisplay]);
|
|
92
|
-
const defaultPlaceholder = showSeconds
|
|
93
|
-
? format === "12"
|
|
94
|
-
? "hh:mm:ss AA"
|
|
95
|
-
: "HH:mm:ss"
|
|
96
|
-
: format === "12"
|
|
97
|
-
? "hh:mm AA"
|
|
98
|
-
: "HH:mm";
|
|
99
|
-
const handlePanelChange = (time) => {
|
|
100
|
-
setInternalTime(time);
|
|
101
|
-
setInputText(formatTimeDisplay(time));
|
|
102
|
-
onChange?.(time);
|
|
103
|
-
};
|
|
104
|
-
const handleInputChange = (e) => {
|
|
105
|
-
const text = e.target.value;
|
|
106
|
-
setInputText(text);
|
|
107
|
-
const parsed = TimePickerPanel.parseTimeString(text, format);
|
|
108
|
-
if (parsed) {
|
|
109
|
-
setInternalTime(parsed);
|
|
110
|
-
onChange?.(parsed);
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
const handleInputKeyDown = (e) => {
|
|
114
|
-
if (e.key === "Enter") {
|
|
115
|
-
setInputText(formatTimeDisplay(internalTime));
|
|
116
|
-
setOpen(false);
|
|
117
|
-
}
|
|
118
|
-
else if (e.key === "Escape") {
|
|
119
|
-
setInputText(formatTimeDisplay(internalTime));
|
|
120
|
-
setOpen(false);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
const handleInputFocus = () => {
|
|
124
|
-
if (!open)
|
|
125
|
-
setOpen(true);
|
|
126
|
-
};
|
|
127
|
-
const handleClear = (e) => {
|
|
128
|
-
e.stopPropagation();
|
|
129
|
-
e.preventDefault();
|
|
130
|
-
setInternalTime(null);
|
|
131
|
-
setInputText("");
|
|
132
|
-
onChange?.({ hours: 0, minutes: 0, seconds: 0 });
|
|
133
|
-
};
|
|
134
|
-
const hasField = !!(label || error || helpText);
|
|
135
|
-
const sizeConfig = SIZE_CONFIG[size];
|
|
136
|
-
const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
|
|
137
|
-
.filter(Boolean)
|
|
138
|
-
.join(" ") || undefined;
|
|
139
|
-
const triggerContent = (jsxRuntime.jsxs(primitives_Popover.Popover, { open: open, children: [jsxRuntime.jsx(primitives_Popover.PopoverAnchor, { asChild: true, children: jsxRuntime.jsxs("div", { ref: containerRef, className: utils.cn("relative flex w-full items-center gap-2 rounded-md border border-input bg-background pe-8 ps-3", "focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2", disabled && "cursor-not-allowed opacity-50", !!error && "border-destructive ring-destructive/20 ring-3", sizeConfig.trigger, !hasField && className), children: [timezone ? (jsxRuntime.jsx("span", { className: "shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground", children: timezone.toUpperCase() })) : (jsxRuntime.jsx(Clock, { className: utils.cn("shrink-0 text-muted-foreground", sizeConfig.icon) })), jsxRuntime.jsx("input", { type: "text", disabled: disabled, "aria-label": label || "Pick a time", "aria-describedby": ariaDescribedBy, "aria-invalid": !!error || undefined, placeholder: placeholder ?? defaultPlaceholder, value: inputText, onChange: handleInputChange, onKeyDown: handleInputKeyDown, onFocus: handleInputFocus, className: utils.cn("min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground", "disabled:cursor-not-allowed", sizeConfig.trigger.split(" ").find(c => c.startsWith("text-"))) }), jsxRuntime.jsx("button", { type: "button", onPointerDown: e => e.preventDefault(), onClick: handleClear, className: utils.cn("absolute inset-y-0 end-2 flex items-center text-muted-foreground hover:text-foreground focus:outline-none", !(inputText && !disabled) && "invisible"), "aria-label": "Clear time", tabIndex: -1, children: jsxRuntime.jsx(x.X, { className: sizeConfig.icon }) })] }) }), open && (jsxRuntime.jsx(primitives_Popover.PopoverContent, { id: popoverContentId, className: "w-auto p-0", align: "start", onOpenAutoFocus: e => e.preventDefault(), onCloseAutoFocus: e => e.preventDefault(), onPointerDownOutside: e => e.preventDefault(), onInteractOutside: e => e.preventDefault(), children: jsxRuntime.jsx(TimePickerPanel.TimePickerPanel, { value: internalTime ?? undefined, onChange: handlePanelChange, format: format, showSeconds: showSeconds, minuteStep: minuteStep, secondStep: secondStep, disabled: disabled }) }))] }));
|
|
140
|
-
if (!hasField) {
|
|
141
|
-
return (jsxRuntime.jsx("div", { ref: ref, className: className, children: triggerContent }));
|
|
142
|
-
}
|
|
143
|
-
return (jsxRuntime.jsxs(primitives_Field.Field, { ref: ref, "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { ...labelProps, children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [triggerContent, !!error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error }), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })] }));
|
|
144
|
-
});
|
|
145
|
-
TimePicker.displayName = "TimePicker";
|
|
146
|
-
|
|
147
|
-
exports.TimePicker = TimePicker;
|
|
148
|
-
//# sourceMappingURL=TimePicker-DReL0GSv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker-DReL0GSv.js","sources":["../../node_modules/lucide-react/dist/esm/icons/clock.js","../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.js.map\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from \"react\";\n\nimport { Clock, X } from \"lucide-react\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"src/primitives/Popover\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { TimePickerPanel } from \"./TimePickerPanel\";\nimport type { TimePickerProps, TimeValue } from \"./types\";\nimport { dateToTimeValue, padNumber, parseTimeString, to12Hour } from \"./utils\";\n\nconst SIZE_CONFIG = {\n small: { trigger: \"h-7 text-xs\", icon: \"size-3.5\" },\n medium: { trigger: \"h-8 text-sm\", icon: \"size-4\" },\n large: { trigger: \"h-10 text-sm\", icon: \"size-4\" },\n} as const;\n\nconst TimePicker = forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n value,\n onChange,\n format = \"24\",\n showSeconds = false,\n minuteStep = 1,\n secondStep = 1,\n disabled = false,\n placeholder,\n label,\n error,\n helpText,\n size = \"medium\",\n required = false,\n timezone,\n labelProps,\n className,\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n const containerRef = useRef<HTMLDivElement>(null);\n const popoverContentId = useRef(\n `timepicker-popover-${generatedId}`\n ).current;\n\n const [open, setOpen] = useState(false);\n\n const getInitialTime = useCallback((): TimeValue | null => {\n if (!value) return null;\n if (value instanceof Date) return dateToTimeValue(value);\n if (\n typeof (value as unknown as { toDate?: () => Date }).toDate ===\n \"function\"\n ) {\n return dateToTimeValue(\n (value as unknown as { toDate: () => Date }).toDate()\n );\n }\n\n return {\n hours: (value as TimeValue).hours,\n minutes: (value as TimeValue).minutes,\n seconds: (value as TimeValue).seconds ?? 0,\n };\n }, [value]);\n\n const [internalTime, setInternalTime] = useState<TimeValue | null>(\n getInitialTime\n );\n const [inputText, setInputText] = useState(\"\");\n\n const formatTimeDisplay = useCallback(\n (time: TimeValue | null): string => {\n if (!time) return \"\";\n\n if (format === \"12\") {\n const { hour12, period } = to12Hour(time.hours);\n const parts = [padNumber(hour12), padNumber(time.minutes)];\n if (showSeconds) parts.push(padNumber(time.seconds ?? 0));\n\n return `${parts.join(\":\")} ${period}`;\n }\n\n const parts = [padNumber(time.hours), padNumber(time.minutes)];\n if (showSeconds) parts.push(padNumber(time.seconds ?? 0));\n\n return parts.join(\":\");\n },\n [format, showSeconds]\n );\n\n useEffect(() => {\n const newTime = getInitialTime();\n setInternalTime(newTime);\n setInputText(formatTimeDisplay(newTime));\n }, [getInitialTime, formatTimeDisplay]);\n\n // Close on outside click\n useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (e: PointerEvent) => {\n const target = e.target as HTMLElement;\n if (containerRef.current?.contains(target)) return;\n\n const popoverEl = document.getElementById(popoverContentId);\n if (popoverEl?.contains(target)) return;\n\n setOpen(false);\n setInputText(formatTimeDisplay(internalTime));\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n\n return () =>\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open, internalTime, formatTimeDisplay]);\n\n const defaultPlaceholder = showSeconds\n ? format === \"12\"\n ? \"hh:mm:ss AA\"\n : \"HH:mm:ss\"\n : format === \"12\"\n ? \"hh:mm AA\"\n : \"HH:mm\";\n\n const handlePanelChange = (time: TimeValue) => {\n setInternalTime(time);\n setInputText(formatTimeDisplay(time));\n onChange?.(time);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const text = e.target.value;\n setInputText(text);\n\n const parsed = parseTimeString(text, format);\n if (parsed) {\n setInternalTime(parsed);\n onChange?.(parsed);\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n } else if (e.key === \"Escape\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n }\n };\n\n const handleInputFocus = () => {\n if (!open) setOpen(true);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n setInternalTime(null);\n setInputText(\"\");\n onChange?.({ hours: 0, minutes: 0, seconds: 0 });\n };\n\n const hasField = !!(label || error || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const triggerContent = (\n <Popover open={open}>\n <PopoverAnchor asChild>\n <div\n ref={containerRef}\n className={cn(\n \"relative flex w-full items-center gap-2 rounded-md border border-input bg-background pe-8 ps-3\",\n \"focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n disabled && \"cursor-not-allowed opacity-50\",\n !!error && \"border-destructive ring-destructive/20 ring-3\",\n sizeConfig.trigger,\n !hasField && className\n )}\n >\n {timezone ? (\n <span className=\"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground\">\n {timezone.toUpperCase()}\n </span>\n ) : (\n <Clock\n className={cn(\n \"shrink-0 text-muted-foreground\",\n sizeConfig.icon\n )}\n />\n )}\n <input\n type=\"text\"\n disabled={disabled}\n aria-label={label || \"Pick a time\"}\n aria-describedby={ariaDescribedBy}\n aria-invalid={!!error || undefined}\n placeholder={placeholder ?? defaultPlaceholder}\n value={inputText}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n onFocus={handleInputFocus}\n className={cn(\n \"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n sizeConfig.trigger.split(\" \").find(c => c.startsWith(\"text-\"))\n )}\n />\n <button\n type=\"button\"\n onPointerDown={e => e.preventDefault()}\n onClick={handleClear}\n className={cn(\n \"absolute inset-y-0 end-2 flex items-center text-muted-foreground hover:text-foreground focus:outline-none\",\n !(inputText && !disabled) && \"invisible\"\n )}\n aria-label=\"Clear time\"\n tabIndex={-1}\n >\n <X className={sizeConfig.icon} />\n </button>\n </div>\n </PopoverAnchor>\n {open && (\n <PopoverContent\n id={popoverContentId}\n className=\"w-auto p-0\"\n align=\"start\"\n onOpenAutoFocus={e => e.preventDefault()}\n onCloseAutoFocus={e => e.preventDefault()}\n onPointerDownOutside={e => e.preventDefault()}\n onInteractOutside={e => e.preventDefault()}\n >\n <TimePickerPanel\n value={internalTime ?? undefined}\n onChange={handlePanelChange}\n format={format}\n showSeconds={showSeconds}\n minuteStep={minuteStep}\n secondStep={secondStep}\n disabled={disabled}\n />\n </PopoverContent>\n )}\n </Popover>\n );\n\n if (!hasField) {\n return (\n <div ref={ref} className={className}>\n {triggerContent}\n </div>\n );\n }\n\n return (\n <Field\n ref={ref}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel\n {...(labelProps as React.ComponentProps<typeof FieldLabel>)}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {triggerContent}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nexport { TimePicker };\n"],"names":["createLucideIcon","forwardRef","useId","useRef","useState","useCallback","dateToTimeValue","to12Hour","padNumber","useEffect","parseTimeString","_jsxs","Popover","_jsx","PopoverAnchor","cn","X","PopoverContent","TimePickerPanel","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,132 +0,0 @@
|
|
|
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_Button = require('./primitives/Button.js');
|
|
7
|
-
var primitives_ScrollArea = require('./primitives/ScrollArea.js');
|
|
8
|
-
|
|
9
|
-
const COLUMN_HEIGHT = 224;
|
|
10
|
-
const ITEM_HEIGHT = 32;
|
|
11
|
-
const PERIODS = ["AM", "PM"];
|
|
12
|
-
|
|
13
|
-
const generateRange = (start, end, step = 1) => {
|
|
14
|
-
const result = [];
|
|
15
|
-
for (let i = start; i <= end; i += step) {
|
|
16
|
-
result.push(i);
|
|
17
|
-
}
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
|
-
const to12Hour = (hour24) => {
|
|
21
|
-
const period = hour24 >= 12 ? "PM" : "AM";
|
|
22
|
-
const hour12 = hour24 % 12 || 12;
|
|
23
|
-
return { hour12, period };
|
|
24
|
-
};
|
|
25
|
-
const to24Hour = (hour12, period) => {
|
|
26
|
-
if (period === "AM") {
|
|
27
|
-
return hour12 === 12 ? 0 : hour12;
|
|
28
|
-
}
|
|
29
|
-
return hour12 === 12 ? 12 : hour12 + 12;
|
|
30
|
-
};
|
|
31
|
-
const dateToTimeValue = (date) => ({
|
|
32
|
-
hours: date.getHours(),
|
|
33
|
-
minutes: date.getMinutes(),
|
|
34
|
-
seconds: date.getSeconds(),
|
|
35
|
-
});
|
|
36
|
-
const padNumber = (num, length = 2) => String(num).padStart(length, "0");
|
|
37
|
-
const parseTimeString = (input, format) => {
|
|
38
|
-
const trimmed = input.trim();
|
|
39
|
-
if (!trimmed)
|
|
40
|
-
return null;
|
|
41
|
-
if (format === "12") {
|
|
42
|
-
// Accept: "2:30 PM", "02:30 PM", "2:3 PM", "2:30:15 PM"
|
|
43
|
-
const match = trimmed.match(/^(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?\s*(AM|PM)$/i);
|
|
44
|
-
if (!match)
|
|
45
|
-
return null;
|
|
46
|
-
const hour12 = parseInt(match[1], 10);
|
|
47
|
-
const minutes = parseInt(match[2], 10);
|
|
48
|
-
const seconds = match[3] ? parseInt(match[3], 10) : 0;
|
|
49
|
-
const period = match[4].toUpperCase();
|
|
50
|
-
if (hour12 < 1 || hour12 > 12 || minutes > 59 || seconds > 59)
|
|
51
|
-
return null;
|
|
52
|
-
return { hours: to24Hour(hour12, period), minutes, seconds };
|
|
53
|
-
}
|
|
54
|
-
// Accept: "14:3", "14:30", "2:5", "14:30:05"
|
|
55
|
-
const match = trimmed.match(/^(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/);
|
|
56
|
-
if (!match)
|
|
57
|
-
return null;
|
|
58
|
-
const hours = parseInt(match[1], 10);
|
|
59
|
-
const minutes = parseInt(match[2], 10);
|
|
60
|
-
const seconds = match[3] ? parseInt(match[3], 10) : 0;
|
|
61
|
-
if (hours > 23 || minutes > 59 || seconds > 59)
|
|
62
|
-
return null;
|
|
63
|
-
return { hours, minutes, seconds };
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
const TimeColumn = ({ items, selected, onSelect, disabled = false, className, padStart = 2, }) => {
|
|
67
|
-
const selectedRef = React.useRef(null);
|
|
68
|
-
React.useEffect(() => {
|
|
69
|
-
if (selectedRef.current) {
|
|
70
|
-
selectedRef.current.scrollIntoView({
|
|
71
|
-
block: "center",
|
|
72
|
-
behavior: "smooth",
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}, [selected]);
|
|
76
|
-
return (jsxRuntime.jsx(primitives_ScrollArea.ScrollArea, { className: utils.cn("w-16", className), style: { height: COLUMN_HEIGHT }, children: jsxRuntime.jsx("div", { className: "flex flex-col items-center py-2", role: "listbox", "aria-label": "Time selection", children: items.map(item => {
|
|
77
|
-
const isSelected = item === selected;
|
|
78
|
-
const displayValue = typeof item === "number" ? padNumber(item, padStart) : item;
|
|
79
|
-
return (jsxRuntime.jsx(primitives_Button.Button, { ref: isSelected ? selectedRef : undefined, variant: isSelected ? "default" : "ghost", size: "sm", role: "option", "aria-selected": isSelected, disabled: disabled, className: utils.cn("w-12 justify-center font-mono text-sm", !isSelected && "text-muted-foreground"), style: { height: ITEM_HEIGHT }, onClick: () => onSelect(item), children: displayValue }, item));
|
|
80
|
-
}) }) }));
|
|
81
|
-
};
|
|
82
|
-
TimeColumn.displayName = "TimeColumn";
|
|
83
|
-
|
|
84
|
-
const TimePickerPanel = React.forwardRef(({ value, onChange, format = "24", showSeconds = false, minuteStep = 1, secondStep = 1, disabled = false, className, }, ref) => {
|
|
85
|
-
const getInitialTime = React.useCallback(() => ({
|
|
86
|
-
hours: value?.hours ?? 0,
|
|
87
|
-
minutes: value?.minutes ?? 0,
|
|
88
|
-
seconds: value?.seconds ?? 0,
|
|
89
|
-
}), [value]);
|
|
90
|
-
const [internalTime, setInternalTime] = React.useState(getInitialTime);
|
|
91
|
-
React.useEffect(() => {
|
|
92
|
-
setInternalTime(getInitialTime());
|
|
93
|
-
}, [getInitialTime]);
|
|
94
|
-
const hours = format === "12" ? generateRange(1, 12) : generateRange(0, 23);
|
|
95
|
-
const minutes = generateRange(0, 59, minuteStep);
|
|
96
|
-
const seconds = generateRange(0, 59, secondStep);
|
|
97
|
-
const { hour12, period } = format === "12"
|
|
98
|
-
? to12Hour(internalTime.hours)
|
|
99
|
-
: { hour12: internalTime.hours, period: "AM" };
|
|
100
|
-
const handleHourSelect = (hourValue) => {
|
|
101
|
-
const hour = Number(hourValue);
|
|
102
|
-
const newHours = format === "12" ? to24Hour(hour, period) : hour;
|
|
103
|
-
const newTime = { ...internalTime, hours: newHours };
|
|
104
|
-
setInternalTime(newTime);
|
|
105
|
-
onChange?.(newTime);
|
|
106
|
-
};
|
|
107
|
-
const handleMinuteSelect = (minuteValue) => {
|
|
108
|
-
const newTime = { ...internalTime, minutes: Number(minuteValue) };
|
|
109
|
-
setInternalTime(newTime);
|
|
110
|
-
onChange?.(newTime);
|
|
111
|
-
};
|
|
112
|
-
const handleSecondSelect = (secondValue) => {
|
|
113
|
-
const newTime = { ...internalTime, seconds: Number(secondValue) };
|
|
114
|
-
setInternalTime(newTime);
|
|
115
|
-
onChange?.(newTime);
|
|
116
|
-
};
|
|
117
|
-
const handlePeriodSelect = (newPeriod) => {
|
|
118
|
-
const newHours = to24Hour(hour12, newPeriod);
|
|
119
|
-
const newTime = { ...internalTime, hours: newHours };
|
|
120
|
-
setInternalTime(newTime);
|
|
121
|
-
onChange?.(newTime);
|
|
122
|
-
};
|
|
123
|
-
return (jsxRuntime.jsxs("div", { ref: ref, className: utils.cn("flex", className), role: "group", "aria-label": "Time picker", children: [jsxRuntime.jsx(TimeColumn, { items: hours, selected: format === "12" ? hour12 : internalTime.hours, onSelect: handleHourSelect, disabled: disabled }), jsxRuntime.jsx("div", { className: "border-inline-end border-border" }), jsxRuntime.jsx(TimeColumn, { items: minutes, selected: internalTime.minutes, onSelect: handleMinuteSelect, disabled: disabled }), showSeconds && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: "border-inline-end border-border" }), jsxRuntime.jsx(TimeColumn, { items: seconds, selected: internalTime.seconds ?? 0, onSelect: handleSecondSelect, disabled: disabled })] })), format === "12" && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: "border-inline-end border-border" }), jsxRuntime.jsx(TimeColumn, { items: [...PERIODS], selected: period, onSelect: handlePeriodSelect, disabled: disabled, padStart: 0 })] }))] }));
|
|
124
|
-
});
|
|
125
|
-
TimePickerPanel.displayName = "TimePickerPanel";
|
|
126
|
-
|
|
127
|
-
exports.TimePickerPanel = TimePickerPanel;
|
|
128
|
-
exports.dateToTimeValue = dateToTimeValue;
|
|
129
|
-
exports.padNumber = padNumber;
|
|
130
|
-
exports.parseTimeString = parseTimeString;
|
|
131
|
-
exports.to12Hour = to12Hour;
|
|
132
|
-
//# sourceMappingURL=TimePickerPanel-DGNr97cj.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TimePickerPanel-DGNr97cj.js","sources":["../../../src/components/TimePicker/constants.ts","../../../src/components/TimePicker/utils.ts","../../../src/components/TimePicker/TimeColumn.tsx","../../../src/components/TimePicker/TimePickerPanel.tsx"],"sourcesContent":["export const COLUMN_HEIGHT = 224;\nexport const ITEM_HEIGHT = 32;\nexport const PERIODS = [\"AM\", \"PM\"] as const;\n","import type { TimeValue } from \"./types\";\n\nexport const generateRange = (\n start: number,\n end: number,\n step = 1\n): number[] => {\n const result: number[] = [];\n for (let i = start; i <= end; i += step) {\n result.push(i);\n }\n\n return result;\n};\n\nexport const to12Hour = (\n hour24: number\n): { hour12: number; period: \"AM\" | \"PM\" } => {\n const period = hour24 >= 12 ? \"PM\" : \"AM\";\n const hour12 = hour24 % 12 || 12;\n\n return { hour12, period };\n};\n\nexport const to24Hour = (hour12: number, period: \"AM\" | \"PM\"): number => {\n if (period === \"AM\") {\n return hour12 === 12 ? 0 : hour12;\n }\n\n return hour12 === 12 ? 12 : hour12 + 12;\n};\n\nexport const dateToTimeValue = (date: Date): TimeValue => ({\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n});\n\nexport const timeValueToDate = (date: Date, time: TimeValue): Date => {\n const result = new Date(date);\n result.setHours(time.hours, time.minutes, time.seconds ?? 0, 0);\n\n return result;\n};\n\nexport const padNumber = (num: number, length = 2): string =>\n String(num).padStart(length, \"0\");\n\nexport const parseTimeString = (\n input: string,\n format: \"12\" | \"24\"\n): TimeValue | null => {\n const trimmed = input.trim();\n if (!trimmed) return null;\n\n if (format === \"12\") {\n // Accept: \"2:30 PM\", \"02:30 PM\", \"2:3 PM\", \"2:30:15 PM\"\n const match = trimmed.match(\n /^(\\d{1,2}):(\\d{1,2})(?::(\\d{1,2}))?\\s*(AM|PM)$/i\n );\n if (!match) return null;\n\n const hour12 = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n const period = match[4].toUpperCase() as \"AM\" | \"PM\";\n\n if (hour12 < 1 || hour12 > 12 || minutes > 59 || seconds > 59) return null;\n\n return { hours: to24Hour(hour12, period), minutes, seconds };\n }\n\n // Accept: \"14:3\", \"14:30\", \"2:5\", \"14:30:05\"\n const match = trimmed.match(/^(\\d{1,2}):(\\d{1,2})(?::(\\d{1,2}))?$/);\n if (!match) return null;\n\n const hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n\n if (hours > 23 || minutes > 59 || seconds > 59) return null;\n\n return { hours, minutes, seconds };\n};\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Button } from \"src/primitives/Button\";\nimport { ScrollArea } from \"src/primitives/ScrollArea\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { COLUMN_HEIGHT, ITEM_HEIGHT } from \"./constants\";\nimport { padNumber } from \"./utils\";\n\ninterface TimeColumnProps {\n items: (number | string)[];\n selected: number | string;\n onSelect: (value: number | string) => void;\n disabled?: boolean;\n className?: string;\n padStart?: number;\n}\n\nconst TimeColumn: React.FC<TimeColumnProps> = ({\n items,\n selected,\n onSelect,\n disabled = false,\n className,\n padStart = 2,\n}) => {\n const selectedRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (selectedRef.current) {\n selectedRef.current.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\",\n });\n }\n }, [selected]);\n\n return (\n <ScrollArea\n className={cn(\"w-16\", className)}\n style={{ height: COLUMN_HEIGHT }}\n >\n <div\n className=\"flex flex-col items-center py-2\"\n role=\"listbox\"\n aria-label=\"Time selection\"\n >\n {items.map(item => {\n const isSelected = item === selected;\n const displayValue =\n typeof item === \"number\" ? padNumber(item, padStart) : item;\n\n return (\n <Button\n key={item}\n ref={isSelected ? selectedRef : undefined}\n variant={isSelected ? \"default\" : \"ghost\"}\n size=\"sm\"\n role=\"option\"\n aria-selected={isSelected}\n disabled={disabled}\n className={cn(\n \"w-12 justify-center font-mono text-sm\",\n !isSelected && \"text-muted-foreground\"\n )}\n style={{ height: ITEM_HEIGHT }}\n onClick={() => onSelect(item)}\n >\n {displayValue}\n </Button>\n );\n })}\n </div>\n </ScrollArea>\n );\n};\n\nTimeColumn.displayName = \"TimeColumn\";\n\nexport { TimeColumn };\n","import { forwardRef, useCallback, useEffect, useState } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { PERIODS } from \"./constants\";\nimport { TimeColumn } from \"./TimeColumn\";\nimport type { TimePickerPanelProps, TimeValue } from \"./types\";\nimport { generateRange, to12Hour, to24Hour } from \"./utils\";\n\nconst TimePickerPanel = forwardRef<HTMLDivElement, TimePickerPanelProps>(\n (\n {\n value,\n onChange,\n format = \"24\",\n showSeconds = false,\n minuteStep = 1,\n secondStep = 1,\n disabled = false,\n className,\n },\n ref\n ) => {\n const getInitialTime = useCallback(\n (): TimeValue => ({\n hours: value?.hours ?? 0,\n minutes: value?.minutes ?? 0,\n seconds: value?.seconds ?? 0,\n }),\n [value]\n );\n\n const [internalTime, setInternalTime] = useState<TimeValue>(getInitialTime);\n\n useEffect(() => {\n setInternalTime(getInitialTime());\n }, [getInitialTime]);\n\n const hours = format === \"12\" ? generateRange(1, 12) : generateRange(0, 23);\n const minutes = generateRange(0, 59, minuteStep);\n const seconds = generateRange(0, 59, secondStep);\n\n const { hour12, period } =\n format === \"12\"\n ? to12Hour(internalTime.hours)\n : { hour12: internalTime.hours, period: \"AM\" as const };\n\n const handleHourSelect = (hourValue: number | string) => {\n const hour = Number(hourValue);\n const newHours = format === \"12\" ? to24Hour(hour, period) : hour;\n const newTime = { ...internalTime, hours: newHours };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n const handleMinuteSelect = (minuteValue: number | string) => {\n const newTime = { ...internalTime, minutes: Number(minuteValue) };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n const handleSecondSelect = (secondValue: number | string) => {\n const newTime = { ...internalTime, seconds: Number(secondValue) };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n const handlePeriodSelect = (newPeriod: number | string) => {\n const newHours = to24Hour(hour12, newPeriod as \"AM\" | \"PM\");\n const newTime = { ...internalTime, hours: newHours };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"flex\", className)}\n role=\"group\"\n aria-label=\"Time picker\"\n >\n <TimeColumn\n items={hours}\n selected={format === \"12\" ? hour12 : internalTime.hours}\n onSelect={handleHourSelect}\n disabled={disabled}\n />\n <div className=\"border-inline-end border-border\" />\n <TimeColumn\n items={minutes}\n selected={internalTime.minutes}\n onSelect={handleMinuteSelect}\n disabled={disabled}\n />\n {showSeconds && (\n <>\n <div className=\"border-inline-end border-border\" />\n <TimeColumn\n items={seconds}\n selected={internalTime.seconds ?? 0}\n onSelect={handleSecondSelect}\n disabled={disabled}\n />\n </>\n )}\n {format === \"12\" && (\n <>\n <div className=\"border-inline-end border-border\" />\n <TimeColumn\n items={[...PERIODS]}\n selected={period}\n onSelect={handlePeriodSelect}\n disabled={disabled}\n padStart={0}\n />\n </>\n )}\n </div>\n );\n }\n);\n\nTimePickerPanel.displayName = \"TimePickerPanel\";\n\nexport { TimePickerPanel };\n"],"names":["useRef","useEffect","_jsx","ScrollArea","cn","Button","forwardRef","useCallback","useState","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var index = require('./index-Vlwnyfvs.js');
|
|
4
|
-
|
|
5
|
-
const activeToasts = new Set();
|
|
6
|
-
function toastKey(type, message, buttonLabel) {
|
|
7
|
-
return `${type}::${message}::${buttonLabel ?? ""}`;
|
|
8
|
-
}
|
|
9
|
-
function getContentDir() {
|
|
10
|
-
if (typeof document === "undefined")
|
|
11
|
-
return "ltr";
|
|
12
|
-
return (document.documentElement.getAttribute("dir") ??
|
|
13
|
-
document.body.getAttribute("dir") ??
|
|
14
|
-
"ltr");
|
|
15
|
-
}
|
|
16
|
-
function resolveMessage(message) {
|
|
17
|
-
if (typeof message === "string")
|
|
18
|
-
return message;
|
|
19
|
-
if (message && typeof message === "object") {
|
|
20
|
-
if (message.customMessage)
|
|
21
|
-
return message.customMessage;
|
|
22
|
-
if (message.notice)
|
|
23
|
-
return message.notice;
|
|
24
|
-
if (message.noticeCode)
|
|
25
|
-
return message.noticeCode;
|
|
26
|
-
}
|
|
27
|
-
return String(message);
|
|
28
|
-
}
|
|
29
|
-
function resolveErrorMessage(errorObject) {
|
|
30
|
-
if (typeof errorObject === "string")
|
|
31
|
-
return errorObject;
|
|
32
|
-
if (errorObject && typeof errorObject === "object") {
|
|
33
|
-
// Axios-style error
|
|
34
|
-
const axiosLike = errorObject;
|
|
35
|
-
if (axiosLike.response?.data) {
|
|
36
|
-
const data = axiosLike.response.data;
|
|
37
|
-
if (data.customMessage)
|
|
38
|
-
return String(data.customMessage);
|
|
39
|
-
if (data.error)
|
|
40
|
-
return String(data.error);
|
|
41
|
-
if (Array.isArray(data.errors))
|
|
42
|
-
return data.errors.join("\n");
|
|
43
|
-
if (data.noticeCode)
|
|
44
|
-
return String(data.noticeCode);
|
|
45
|
-
}
|
|
46
|
-
if (axiosLike.isAxiosError && axiosLike.message)
|
|
47
|
-
return axiosLike.message;
|
|
48
|
-
// Native Error
|
|
49
|
-
if (errorObject instanceof Error)
|
|
50
|
-
return errorObject.message;
|
|
51
|
-
// ToastrMessage object
|
|
52
|
-
return resolveMessage(errorObject);
|
|
53
|
-
}
|
|
54
|
-
return "Something went wrong.";
|
|
55
|
-
}
|
|
56
|
-
function showToast(type, message, config) {
|
|
57
|
-
const { buttonLabel, onClick, showIcon, ...restConfig } = config ?? {};
|
|
58
|
-
const key = toastKey(type, message, buttonLabel);
|
|
59
|
-
if (activeToasts.has(key))
|
|
60
|
-
return undefined;
|
|
61
|
-
activeToasts.add(key);
|
|
62
|
-
const options = {
|
|
63
|
-
onDismiss: () => activeToasts.delete(key),
|
|
64
|
-
onAutoClose: () => activeToasts.delete(key),
|
|
65
|
-
position: getContentDir() === "rtl" ? "bottom-right" : "bottom-left",
|
|
66
|
-
...restConfig,
|
|
67
|
-
};
|
|
68
|
-
if (buttonLabel) {
|
|
69
|
-
options.action = {
|
|
70
|
-
label: buttonLabel,
|
|
71
|
-
onClick: onClick ?? (() => { }),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
// When showIcon is explicitly false, hide the type icon
|
|
75
|
-
if (showIcon === false) {
|
|
76
|
-
options.icon = null;
|
|
77
|
-
}
|
|
78
|
-
return index.toast[type](message, options);
|
|
79
|
-
}
|
|
80
|
-
function parseConfig(args) {
|
|
81
|
-
if (args.length === 0)
|
|
82
|
-
return {};
|
|
83
|
-
const first = args[0];
|
|
84
|
-
if (typeof first === "object" && first !== null && !Array.isArray(first)) {
|
|
85
|
-
return first;
|
|
86
|
-
}
|
|
87
|
-
// Legacy positional args: buttonLabel, onClick, customConfig, showIcon
|
|
88
|
-
const [buttonLabel, onClick, customConfig, showIcon] = args;
|
|
89
|
-
return {
|
|
90
|
-
...(buttonLabel ? { buttonLabel } : {}),
|
|
91
|
-
...(onClick ? { onClick } : {}),
|
|
92
|
-
...(showIcon !== undefined ? { showIcon } : {}),
|
|
93
|
-
...(customConfig ?? {}),
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const Toastr = {
|
|
98
|
-
success(message, ...args) {
|
|
99
|
-
return showToast("success", resolveMessage(message), parseConfig(args));
|
|
100
|
-
},
|
|
101
|
-
info(message, ...args) {
|
|
102
|
-
return showToast("info", resolveMessage(message), parseConfig(args));
|
|
103
|
-
},
|
|
104
|
-
show(message, ...args) {
|
|
105
|
-
return showToast("info", resolveMessage(message), parseConfig(args));
|
|
106
|
-
},
|
|
107
|
-
warning(message, ...args) {
|
|
108
|
-
return showToast("warning", resolveMessage(message), parseConfig(args));
|
|
109
|
-
},
|
|
110
|
-
error(errorObject, ...args) {
|
|
111
|
-
const msg = resolveErrorMessage(errorObject);
|
|
112
|
-
return showToast("error", msg, parseConfig(args));
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
exports.Toastr = Toastr;
|
|
117
|
-
//# sourceMappingURL=Toastr-BGp7-kmf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toastr-BGp7-kmf.js","sources":["../../../src/components/Toastr/utils.ts","../../../src/components/Toastr/Toastr.tsx"],"sourcesContent":["import { toast } from \"sonner\";\n\nimport type { ToastrConfig, ToastrErrorInput, ToastrMessage } from \"./Toastr\";\n\ntype SonnerType = \"success\" | \"info\" | \"warning\" | \"error\";\n\nconst activeToasts = new Set<string>();\n\nfunction toastKey(type: string, message: string, buttonLabel?: string): string {\n return `${type}::${message}::${buttonLabel ?? \"\"}`;\n}\n\nfunction getContentDir(): \"ltr\" | \"rtl\" {\n if (typeof document === \"undefined\") return \"ltr\";\n return (\n (document.documentElement.getAttribute(\"dir\") as \"ltr\" | \"rtl\") ??\n (document.body.getAttribute(\"dir\") as \"ltr\" | \"rtl\") ??\n \"ltr\"\n );\n}\n\nfunction resolveMessage(message: ToastrMessage): string {\n if (typeof message === \"string\") return message;\n if (message && typeof message === \"object\") {\n if (message.customMessage) return message.customMessage;\n if (message.notice) return message.notice;\n if (message.noticeCode) return message.noticeCode;\n }\n return String(message);\n}\n\nfunction resolveErrorMessage(errorObject: ToastrErrorInput): string {\n if (typeof errorObject === \"string\") return errorObject;\n\n if (errorObject && typeof errorObject === \"object\") {\n // Axios-style error\n const axiosLike = errorObject as {\n response?: { data?: Record<string, unknown> };\n message?: string;\n isAxiosError?: boolean;\n };\n\n if (axiosLike.response?.data) {\n const data = axiosLike.response.data;\n if (data.customMessage) return String(data.customMessage);\n if (data.error) return String(data.error);\n if (Array.isArray(data.errors)) return data.errors.join(\"\\n\");\n if (data.noticeCode) return String(data.noticeCode);\n }\n\n if (axiosLike.isAxiosError && axiosLike.message) return axiosLike.message;\n\n // Native Error\n if (errorObject instanceof Error) return errorObject.message;\n\n // ToastrMessage object\n return resolveMessage(errorObject as ToastrMessage);\n }\n\n return \"Something went wrong.\";\n}\n\nfunction showToast(\n type: SonnerType,\n message: string,\n config?: ToastrConfig\n): string | number | undefined {\n const { buttonLabel, onClick, showIcon, ...restConfig } = config ?? {};\n\n const key = toastKey(type, message, buttonLabel);\n\n if (activeToasts.has(key)) return undefined;\n activeToasts.add(key);\n\n const options: Record<string, unknown> = {\n onDismiss: () => activeToasts.delete(key),\n onAutoClose: () => activeToasts.delete(key),\n position: getContentDir() === \"rtl\" ? \"bottom-right\" : \"bottom-left\",\n ...restConfig,\n };\n\n if (buttonLabel) {\n options.action = {\n label: buttonLabel,\n onClick: onClick ?? (() => {}),\n };\n }\n\n // When showIcon is explicitly false, hide the type icon\n if (showIcon === false) {\n options.icon = null;\n }\n\n return toast[type](message, options);\n}\n\nfunction parseConfig(args: unknown[]): ToastrConfig {\n if (args.length === 0) return {};\n\n const first = args[0];\n if (typeof first === \"object\" && first !== null && !Array.isArray(first)) {\n return first as ToastrConfig;\n }\n\n // Legacy positional args: buttonLabel, onClick, customConfig, showIcon\n const [buttonLabel, onClick, customConfig, showIcon] = args as [\n string?,\n (() => void)?,\n Record<string, unknown>?,\n boolean?,\n ];\n\n return {\n ...(buttonLabel ? { buttonLabel } : {}),\n ...(onClick ? { onClick } : {}),\n ...(showIcon !== undefined ? { showIcon } : {}),\n ...(customConfig ?? {}),\n };\n}\n\nexport {\n activeToasts,\n getContentDir,\n parseConfig,\n resolveErrorMessage,\n resolveMessage,\n showToast,\n toastKey,\n};\n","import {\n parseConfig,\n resolveErrorMessage,\n resolveMessage,\n showToast,\n} from \"./utils\";\n\nexport interface ToastrConfig {\n /** Label for an action button inside the toast. */\n buttonLabel?: string;\n /** Callback when the action button is clicked. */\n onClick?: () => void;\n /** Whether to show the type icon in the toast. */\n showIcon?: boolean;\n /** Additional sonner toast options (duration, position, dismissible, etc.). */\n [key: string]: unknown;\n}\n\nexport type ToastrMessage =\n | string\n | { noticeCode?: string; customMessage?: string; notice?: string };\n\nexport type ToastrErrorInput =\n | string\n | Error\n | {\n response?: { data?: Record<string, unknown> };\n message?: string;\n isAxiosError?: boolean;\n }\n | ToastrMessage;\n\nconst Toastr = {\n success(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"success\", resolveMessage(message), parseConfig(args));\n },\n\n info(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"info\", resolveMessage(message), parseConfig(args));\n },\n\n show(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"info\", resolveMessage(message), parseConfig(args));\n },\n\n warning(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"warning\", resolveMessage(message), parseConfig(args));\n },\n\n error(errorObject: ToastrErrorInput, ...args: unknown[]) {\n const msg = resolveErrorMessage(errorObject);\n return showToast(\"error\", msg, parseConfig(args));\n },\n};\n\nexport { Toastr };\n"],"names":["toast"],"mappings":"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"}
|