@docyrus/shadcn 1.0.0 → 1.2.0
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/README.md +12 -3
- package/dist/base-lyra/accordion.js.map +1 -1
- package/dist/base-lyra/alert-dialog.js.map +1 -1
- package/dist/base-lyra/alert.js.map +1 -1
- package/dist/base-lyra/aspect-ratio.js.map +1 -1
- package/dist/base-lyra/avatar.js.map +1 -1
- package/dist/base-lyra/badge.js.map +1 -1
- package/dist/base-lyra/breadcrumb.js.map +1 -1
- package/dist/base-lyra/button-group.js.map +1 -1
- package/dist/base-lyra/button.js.map +1 -1
- package/dist/base-lyra/calendar.js.map +1 -1
- package/dist/base-lyra/card.js.map +1 -1
- package/dist/base-lyra/carousel.js.map +1 -1
- package/dist/base-lyra/chart.js.map +1 -1
- package/dist/base-lyra/checkbox.js.map +1 -1
- package/dist/base-lyra/combobox.js.map +1 -1
- package/dist/base-lyra/command.js.map +1 -1
- package/dist/base-lyra/context-menu.js.map +1 -1
- package/dist/base-lyra/dialog.js.map +1 -1
- package/dist/base-lyra/drawer.js.map +1 -1
- package/dist/base-lyra/dropdown-menu.js.map +1 -1
- package/dist/base-lyra/empty.js.map +1 -1
- package/dist/base-lyra/field.js.map +1 -1
- package/dist/base-lyra/hover-card.js.map +1 -1
- package/dist/base-lyra/index.js +8 -6
- package/dist/base-lyra/index.js.map +1 -1
- package/dist/base-lyra/input-group.js.map +1 -1
- package/dist/base-lyra/input-otp.js.map +1 -1
- package/dist/base-lyra/input.js.map +1 -1
- package/dist/base-lyra/item.js.map +1 -1
- package/dist/base-lyra/kbd.js.map +1 -1
- package/dist/base-lyra/label.js.map +1 -1
- package/dist/base-lyra/menubar.js.map +1 -1
- package/dist/base-lyra/native-select.js.map +1 -1
- package/dist/base-lyra/navigation-menu.js.map +1 -1
- package/dist/base-lyra/pagination.js.map +1 -1
- package/dist/base-lyra/popover.js.map +1 -1
- package/dist/base-lyra/progress.js.map +1 -1
- package/dist/base-lyra/radio-group.js.map +1 -1
- package/dist/base-lyra/resizable.js.map +1 -1
- package/dist/base-lyra/scroll-area.js.map +1 -1
- package/dist/base-lyra/select.js.map +1 -1
- package/dist/base-lyra/separator.js.map +1 -1
- package/dist/base-lyra/sheet.js.map +1 -1
- package/dist/base-lyra/sidebar.js +8 -6
- package/dist/base-lyra/sidebar.js.map +1 -1
- package/dist/base-lyra/skeleton.js.map +1 -1
- package/dist/base-lyra/slider.js.map +1 -1
- package/dist/base-lyra/spinner.js.map +1 -1
- package/dist/base-lyra/switch.js.map +1 -1
- package/dist/base-lyra/table.js.map +1 -1
- package/dist/base-lyra/tabs.js.map +1 -1
- package/dist/base-lyra/textarea.js.map +1 -1
- package/dist/base-lyra/toggle-group.js.map +1 -1
- package/dist/base-lyra/toggle.js.map +1 -1
- package/dist/base-lyra/tooltip.js.map +1 -1
- package/dist/base-maia/accordion.js.map +1 -1
- package/dist/base-maia/alert-dialog.js.map +1 -1
- package/dist/base-maia/alert.js.map +1 -1
- package/dist/base-maia/aspect-ratio.js.map +1 -1
- package/dist/base-maia/avatar.js.map +1 -1
- package/dist/base-maia/badge.js.map +1 -1
- package/dist/base-maia/breadcrumb.js.map +1 -1
- package/dist/base-maia/button-group.js.map +1 -1
- package/dist/base-maia/button.js.map +1 -1
- package/dist/base-maia/calendar.js.map +1 -1
- package/dist/base-maia/card.js.map +1 -1
- package/dist/base-maia/carousel.js.map +1 -1
- package/dist/base-maia/chart.js.map +1 -1
- package/dist/base-maia/checkbox.js.map +1 -1
- package/dist/base-maia/combobox.js.map +1 -1
- package/dist/base-maia/command.js.map +1 -1
- package/dist/base-maia/context-menu.js.map +1 -1
- package/dist/base-maia/dialog.js.map +1 -1
- package/dist/base-maia/drawer.js.map +1 -1
- package/dist/base-maia/dropdown-menu.js.map +1 -1
- package/dist/base-maia/empty.js.map +1 -1
- package/dist/base-maia/field.js.map +1 -1
- package/dist/base-maia/hover-card.js.map +1 -1
- package/dist/base-maia/index.js +8 -6
- package/dist/base-maia/index.js.map +1 -1
- package/dist/base-maia/input-group.js.map +1 -1
- package/dist/base-maia/input-otp.js.map +1 -1
- package/dist/base-maia/input.js.map +1 -1
- package/dist/base-maia/item.js.map +1 -1
- package/dist/base-maia/kbd.js.map +1 -1
- package/dist/base-maia/label.js.map +1 -1
- package/dist/base-maia/menubar.js.map +1 -1
- package/dist/base-maia/native-select.js.map +1 -1
- package/dist/base-maia/navigation-menu.js.map +1 -1
- package/dist/base-maia/pagination.js.map +1 -1
- package/dist/base-maia/popover.js.map +1 -1
- package/dist/base-maia/progress.js.map +1 -1
- package/dist/base-maia/radio-group.js.map +1 -1
- package/dist/base-maia/resizable.js.map +1 -1
- package/dist/base-maia/scroll-area.js.map +1 -1
- package/dist/base-maia/select.js.map +1 -1
- package/dist/base-maia/separator.js.map +1 -1
- package/dist/base-maia/sheet.js.map +1 -1
- package/dist/base-maia/sidebar.js +8 -6
- package/dist/base-maia/sidebar.js.map +1 -1
- package/dist/base-maia/skeleton.js.map +1 -1
- package/dist/base-maia/slider.js.map +1 -1
- package/dist/base-maia/spinner.js.map +1 -1
- package/dist/base-maia/switch.js.map +1 -1
- package/dist/base-maia/table.js.map +1 -1
- package/dist/base-maia/tabs.js.map +1 -1
- package/dist/base-maia/textarea.js.map +1 -1
- package/dist/base-maia/toggle-group.js.map +1 -1
- package/dist/base-maia/toggle.js.map +1 -1
- package/dist/base-maia/tooltip.js.map +1 -1
- package/dist/base-mira/accordion.js.map +1 -1
- package/dist/base-mira/alert-dialog.js.map +1 -1
- package/dist/base-mira/alert.js.map +1 -1
- package/dist/base-mira/aspect-ratio.js.map +1 -1
- package/dist/base-mira/avatar.js.map +1 -1
- package/dist/base-mira/badge.js.map +1 -1
- package/dist/base-mira/breadcrumb.js.map +1 -1
- package/dist/base-mira/button-group.js.map +1 -1
- package/dist/base-mira/button.js.map +1 -1
- package/dist/base-mira/calendar.js.map +1 -1
- package/dist/base-mira/card.js.map +1 -1
- package/dist/base-mira/carousel.js.map +1 -1
- package/dist/base-mira/chart.js.map +1 -1
- package/dist/base-mira/checkbox.js.map +1 -1
- package/dist/base-mira/combobox.js.map +1 -1
- package/dist/base-mira/command.js.map +1 -1
- package/dist/base-mira/context-menu.js.map +1 -1
- package/dist/base-mira/dialog.js.map +1 -1
- package/dist/base-mira/drawer.js.map +1 -1
- package/dist/base-mira/dropdown-menu.js.map +1 -1
- package/dist/base-mira/empty.js.map +1 -1
- package/dist/base-mira/field.js.map +1 -1
- package/dist/base-mira/hover-card.js.map +1 -1
- package/dist/base-mira/index.js +8 -6
- package/dist/base-mira/index.js.map +1 -1
- package/dist/base-mira/input-group.js.map +1 -1
- package/dist/base-mira/input-otp.js.map +1 -1
- package/dist/base-mira/input.js.map +1 -1
- package/dist/base-mira/item.js.map +1 -1
- package/dist/base-mira/kbd.js.map +1 -1
- package/dist/base-mira/label.js.map +1 -1
- package/dist/base-mira/menubar.js.map +1 -1
- package/dist/base-mira/native-select.js.map +1 -1
- package/dist/base-mira/navigation-menu.js.map +1 -1
- package/dist/base-mira/pagination.js.map +1 -1
- package/dist/base-mira/popover.js.map +1 -1
- package/dist/base-mira/progress.js.map +1 -1
- package/dist/base-mira/radio-group.js.map +1 -1
- package/dist/base-mira/resizable.js.map +1 -1
- package/dist/base-mira/scroll-area.js.map +1 -1
- package/dist/base-mira/select.js.map +1 -1
- package/dist/base-mira/separator.js.map +1 -1
- package/dist/base-mira/sheet.js.map +1 -1
- package/dist/base-mira/sidebar.js +8 -6
- package/dist/base-mira/sidebar.js.map +1 -1
- package/dist/base-mira/skeleton.js.map +1 -1
- package/dist/base-mira/slider.js.map +1 -1
- package/dist/base-mira/spinner.js.map +1 -1
- package/dist/base-mira/switch.js.map +1 -1
- package/dist/base-mira/table.js.map +1 -1
- package/dist/base-mira/tabs.js.map +1 -1
- package/dist/base-mira/textarea.js.map +1 -1
- package/dist/base-mira/toggle-group.js.map +1 -1
- package/dist/base-mira/toggle.js.map +1 -1
- package/dist/base-mira/tooltip.js.map +1 -1
- package/dist/base-nova/accordion.js.map +1 -1
- package/dist/base-nova/alert-dialog.js.map +1 -1
- package/dist/base-nova/alert.js.map +1 -1
- package/dist/base-nova/aspect-ratio.js.map +1 -1
- package/dist/base-nova/avatar.js.map +1 -1
- package/dist/base-nova/badge.js.map +1 -1
- package/dist/base-nova/breadcrumb.js.map +1 -1
- package/dist/base-nova/button-group.js.map +1 -1
- package/dist/base-nova/button.js.map +1 -1
- package/dist/base-nova/calendar.js.map +1 -1
- package/dist/base-nova/card.js.map +1 -1
- package/dist/base-nova/carousel.js.map +1 -1
- package/dist/base-nova/chart.js.map +1 -1
- package/dist/base-nova/checkbox.js.map +1 -1
- package/dist/base-nova/combobox.js.map +1 -1
- package/dist/base-nova/command.js.map +1 -1
- package/dist/base-nova/context-menu.js.map +1 -1
- package/dist/base-nova/dialog.js.map +1 -1
- package/dist/base-nova/drawer.js.map +1 -1
- package/dist/base-nova/dropdown-menu.js.map +1 -1
- package/dist/base-nova/empty.js.map +1 -1
- package/dist/base-nova/field.js.map +1 -1
- package/dist/base-nova/hover-card.js.map +1 -1
- package/dist/base-nova/index.js +8 -6
- package/dist/base-nova/index.js.map +1 -1
- package/dist/base-nova/input-group.js.map +1 -1
- package/dist/base-nova/input-otp.js.map +1 -1
- package/dist/base-nova/input.js.map +1 -1
- package/dist/base-nova/item.js.map +1 -1
- package/dist/base-nova/kbd.js.map +1 -1
- package/dist/base-nova/label.js.map +1 -1
- package/dist/base-nova/menubar.js.map +1 -1
- package/dist/base-nova/native-select.js.map +1 -1
- package/dist/base-nova/navigation-menu.js.map +1 -1
- package/dist/base-nova/pagination.js.map +1 -1
- package/dist/base-nova/popover.js.map +1 -1
- package/dist/base-nova/progress.js.map +1 -1
- package/dist/base-nova/radio-group.js.map +1 -1
- package/dist/base-nova/resizable.js.map +1 -1
- package/dist/base-nova/scroll-area.js.map +1 -1
- package/dist/base-nova/select.js.map +1 -1
- package/dist/base-nova/separator.js.map +1 -1
- package/dist/base-nova/sheet.js.map +1 -1
- package/dist/base-nova/sidebar.js +8 -6
- package/dist/base-nova/sidebar.js.map +1 -1
- package/dist/base-nova/skeleton.js.map +1 -1
- package/dist/base-nova/slider.js.map +1 -1
- package/dist/base-nova/spinner.js.map +1 -1
- package/dist/base-nova/switch.js.map +1 -1
- package/dist/base-nova/table.js.map +1 -1
- package/dist/base-nova/tabs.js.map +1 -1
- package/dist/base-nova/textarea.js.map +1 -1
- package/dist/base-nova/toggle-group.js.map +1 -1
- package/dist/base-nova/toggle.js.map +1 -1
- package/dist/base-nova/tooltip.js.map +1 -1
- package/dist/base-vega/accordion.js.map +1 -1
- package/dist/base-vega/alert-dialog.js.map +1 -1
- package/dist/base-vega/alert.js.map +1 -1
- package/dist/base-vega/aspect-ratio.js.map +1 -1
- package/dist/base-vega/avatar.js.map +1 -1
- package/dist/base-vega/badge.js.map +1 -1
- package/dist/base-vega/breadcrumb.js.map +1 -1
- package/dist/base-vega/button-group.js.map +1 -1
- package/dist/base-vega/button.js.map +1 -1
- package/dist/base-vega/calendar.js.map +1 -1
- package/dist/base-vega/card.js.map +1 -1
- package/dist/base-vega/carousel.js.map +1 -1
- package/dist/base-vega/chart.js.map +1 -1
- package/dist/base-vega/checkbox.js.map +1 -1
- package/dist/base-vega/combobox.js.map +1 -1
- package/dist/base-vega/command.js.map +1 -1
- package/dist/base-vega/context-menu.js.map +1 -1
- package/dist/base-vega/dialog.js.map +1 -1
- package/dist/base-vega/drawer.js.map +1 -1
- package/dist/base-vega/dropdown-menu.js.map +1 -1
- package/dist/base-vega/empty.js.map +1 -1
- package/dist/base-vega/field.js.map +1 -1
- package/dist/base-vega/hover-card.js.map +1 -1
- package/dist/base-vega/index.js +8 -6
- package/dist/base-vega/index.js.map +1 -1
- package/dist/base-vega/input-group.js.map +1 -1
- package/dist/base-vega/input-otp.js.map +1 -1
- package/dist/base-vega/input.js.map +1 -1
- package/dist/base-vega/item.js.map +1 -1
- package/dist/base-vega/kbd.js.map +1 -1
- package/dist/base-vega/label.js.map +1 -1
- package/dist/base-vega/menubar.js.map +1 -1
- package/dist/base-vega/native-select.js.map +1 -1
- package/dist/base-vega/navigation-menu.js.map +1 -1
- package/dist/base-vega/pagination.js.map +1 -1
- package/dist/base-vega/popover.js.map +1 -1
- package/dist/base-vega/progress.js.map +1 -1
- package/dist/base-vega/radio-group.js.map +1 -1
- package/dist/base-vega/resizable.js.map +1 -1
- package/dist/base-vega/scroll-area.js.map +1 -1
- package/dist/base-vega/select.js.map +1 -1
- package/dist/base-vega/separator.js.map +1 -1
- package/dist/base-vega/sheet.js.map +1 -1
- package/dist/base-vega/sidebar.js +8 -6
- package/dist/base-vega/sidebar.js.map +1 -1
- package/dist/base-vega/skeleton.js.map +1 -1
- package/dist/base-vega/slider.js.map +1 -1
- package/dist/base-vega/spinner.js.map +1 -1
- package/dist/base-vega/switch.js.map +1 -1
- package/dist/base-vega/table.js.map +1 -1
- package/dist/base-vega/tabs.js.map +1 -1
- package/dist/base-vega/textarea.js.map +1 -1
- package/dist/base-vega/toggle-group.js.map +1 -1
- package/dist/base-vega/toggle.js.map +1 -1
- package/dist/base-vega/tooltip.js.map +1 -1
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.js +181 -10
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-as-ref.d.ts +5 -0
- package/dist/hooks/use-as-ref.js +17 -0
- package/dist/hooks/use-as-ref.js.map +1 -0
- package/dist/hooks/use-badge-overflow.d.ts +24 -0
- package/dist/hooks/use-badge-overflow.js +130 -0
- package/dist/hooks/use-badge-overflow.js.map +1 -0
- package/dist/hooks/use-callback-ref.d.ts +10 -0
- package/dist/hooks/use-callback-ref.js +17 -0
- package/dist/hooks/use-callback-ref.js.map +1 -0
- package/dist/hooks/use-debounced-callback.d.ts +3 -0
- package/dist/hooks/use-debounced-callback.js +38 -0
- package/dist/hooks/use-debounced-callback.js.map +1 -0
- package/dist/hooks/use-file-upload.d.ts +48 -0
- package/dist/hooks/use-file-upload.js +279 -0
- package/dist/hooks/use-file-upload.js.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +5 -0
- package/dist/hooks/use-isomorphic-layout-effect.js +8 -0
- package/dist/hooks/use-isomorphic-layout-effect.js.map +1 -0
- package/dist/hooks/use-lazy-ref.d.ts +5 -0
- package/dist/hooks/use-lazy-ref.js +14 -0
- package/dist/hooks/use-lazy-ref.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +1 -1
- package/dist/hooks/use-mobile.js +8 -6
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/index.d.ts +1622 -106
- package/dist/index.js +23260 -2932
- package/dist/index.js.map +1 -1
- package/dist/lib/compose-refs.d.ts +15 -0
- package/dist/lib/compose-refs.js +42 -0
- package/dist/lib/compose-refs.js.map +1 -0
- package/dist/lib/format.d.ts +3 -0
- package/dist/lib/format.js +18 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.js +53 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/utils.d.ts +6 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/new-york/accordion.js.map +1 -1
- package/dist/new-york/alert-dialog.js.map +1 -1
- package/dist/new-york/alert.js.map +1 -1
- package/dist/new-york/avatar.js.map +1 -1
- package/dist/new-york/badge.js.map +1 -1
- package/dist/new-york/breadcrumb.js.map +1 -1
- package/dist/new-york/button-group.js.map +1 -1
- package/dist/new-york/button.js.map +1 -1
- package/dist/new-york/calendar.js.map +1 -1
- package/dist/new-york/card.js.map +1 -1
- package/dist/new-york/carousel.js.map +1 -1
- package/dist/new-york/chart.js.map +1 -1
- package/dist/new-york/checkbox.js.map +1 -1
- package/dist/new-york/combobox.js.map +1 -1
- package/dist/new-york/command.js.map +1 -1
- package/dist/new-york/context-menu.js.map +1 -1
- package/dist/new-york/dialog.js.map +1 -1
- package/dist/new-york/drawer.js.map +1 -1
- package/dist/new-york/dropdown-menu.js.map +1 -1
- package/dist/new-york/empty.js.map +1 -1
- package/dist/new-york/field.js.map +1 -1
- package/dist/new-york/form.js.map +1 -1
- package/dist/new-york/hover-card.js.map +1 -1
- package/dist/new-york/index.js +8 -6
- package/dist/new-york/index.js.map +1 -1
- package/dist/new-york/input-group.js.map +1 -1
- package/dist/new-york/input-otp.js.map +1 -1
- package/dist/new-york/input.js.map +1 -1
- package/dist/new-york/item.js.map +1 -1
- package/dist/new-york/kbd.js.map +1 -1
- package/dist/new-york/label.js.map +1 -1
- package/dist/new-york/menubar.js.map +1 -1
- package/dist/new-york/native-select.js.map +1 -1
- package/dist/new-york/navigation-menu.js.map +1 -1
- package/dist/new-york/pagination.js.map +1 -1
- package/dist/new-york/popover.js.map +1 -1
- package/dist/new-york/progress.js.map +1 -1
- package/dist/new-york/radio-group.js.map +1 -1
- package/dist/new-york/resizable.js.map +1 -1
- package/dist/new-york/scroll-area.js.map +1 -1
- package/dist/new-york/select.js.map +1 -1
- package/dist/new-york/separator.js.map +1 -1
- package/dist/new-york/sheet.js.map +1 -1
- package/dist/new-york/sidebar.js +8 -6
- package/dist/new-york/sidebar.js.map +1 -1
- package/dist/new-york/skeleton.js.map +1 -1
- package/dist/new-york/slider.js.map +1 -1
- package/dist/new-york/spinner.js.map +1 -1
- package/dist/new-york/switch.js.map +1 -1
- package/dist/new-york/table.js.map +1 -1
- package/dist/new-york/tabs.js.map +1 -1
- package/dist/new-york/textarea.js.map +1 -1
- package/dist/new-york/toggle-group.js.map +1 -1
- package/dist/new-york/toggle.js.map +1 -1
- package/dist/new-york/tooltip.js.map +1 -1
- package/dist/radix-lyra/accordion.js.map +1 -1
- package/dist/radix-lyra/alert-dialog.js.map +1 -1
- package/dist/radix-lyra/alert.js.map +1 -1
- package/dist/radix-lyra/avatar.js.map +1 -1
- package/dist/radix-lyra/badge.js.map +1 -1
- package/dist/radix-lyra/breadcrumb.js.map +1 -1
- package/dist/radix-lyra/button-group.js.map +1 -1
- package/dist/radix-lyra/button.js.map +1 -1
- package/dist/radix-lyra/calendar.js.map +1 -1
- package/dist/radix-lyra/card.js.map +1 -1
- package/dist/radix-lyra/carousel.js.map +1 -1
- package/dist/radix-lyra/chart.js.map +1 -1
- package/dist/radix-lyra/checkbox.js.map +1 -1
- package/dist/radix-lyra/combobox.js.map +1 -1
- package/dist/radix-lyra/command.js.map +1 -1
- package/dist/radix-lyra/context-menu.js.map +1 -1
- package/dist/radix-lyra/dialog.js.map +1 -1
- package/dist/radix-lyra/drawer.js.map +1 -1
- package/dist/radix-lyra/dropdown-menu.js.map +1 -1
- package/dist/radix-lyra/empty.js.map +1 -1
- package/dist/radix-lyra/field.js.map +1 -1
- package/dist/radix-lyra/hover-card.js.map +1 -1
- package/dist/radix-lyra/index.js +8 -6
- package/dist/radix-lyra/index.js.map +1 -1
- package/dist/radix-lyra/input-group.js.map +1 -1
- package/dist/radix-lyra/input-otp.js.map +1 -1
- package/dist/radix-lyra/input.js.map +1 -1
- package/dist/radix-lyra/item.js.map +1 -1
- package/dist/radix-lyra/kbd.js.map +1 -1
- package/dist/radix-lyra/label.js.map +1 -1
- package/dist/radix-lyra/menubar.js.map +1 -1
- package/dist/radix-lyra/native-select.js.map +1 -1
- package/dist/radix-lyra/navigation-menu.js.map +1 -1
- package/dist/radix-lyra/pagination.js.map +1 -1
- package/dist/radix-lyra/popover.js.map +1 -1
- package/dist/radix-lyra/progress.js.map +1 -1
- package/dist/radix-lyra/radio-group.js.map +1 -1
- package/dist/radix-lyra/resizable.js.map +1 -1
- package/dist/radix-lyra/scroll-area.js.map +1 -1
- package/dist/radix-lyra/select.js.map +1 -1
- package/dist/radix-lyra/separator.js.map +1 -1
- package/dist/radix-lyra/sheet.js.map +1 -1
- package/dist/radix-lyra/sidebar.js +8 -6
- package/dist/radix-lyra/sidebar.js.map +1 -1
- package/dist/radix-lyra/skeleton.js.map +1 -1
- package/dist/radix-lyra/slider.js.map +1 -1
- package/dist/radix-lyra/spinner.js.map +1 -1
- package/dist/radix-lyra/switch.js.map +1 -1
- package/dist/radix-lyra/table.js.map +1 -1
- package/dist/radix-lyra/tabs.js.map +1 -1
- package/dist/radix-lyra/textarea.js.map +1 -1
- package/dist/radix-lyra/toggle-group.js.map +1 -1
- package/dist/radix-lyra/toggle.js.map +1 -1
- package/dist/radix-lyra/tooltip.js.map +1 -1
- package/dist/radix-maia/accordion.js.map +1 -1
- package/dist/radix-maia/alert-dialog.js.map +1 -1
- package/dist/radix-maia/alert.js.map +1 -1
- package/dist/radix-maia/avatar.js.map +1 -1
- package/dist/radix-maia/badge.js.map +1 -1
- package/dist/radix-maia/breadcrumb.js.map +1 -1
- package/dist/radix-maia/button-group.js.map +1 -1
- package/dist/radix-maia/button.js.map +1 -1
- package/dist/radix-maia/calendar.js.map +1 -1
- package/dist/radix-maia/card.js.map +1 -1
- package/dist/radix-maia/carousel.js.map +1 -1
- package/dist/radix-maia/chart.js.map +1 -1
- package/dist/radix-maia/checkbox.js.map +1 -1
- package/dist/radix-maia/combobox.js.map +1 -1
- package/dist/radix-maia/command.js.map +1 -1
- package/dist/radix-maia/context-menu.js.map +1 -1
- package/dist/radix-maia/dialog.js.map +1 -1
- package/dist/radix-maia/drawer.js.map +1 -1
- package/dist/radix-maia/dropdown-menu.js.map +1 -1
- package/dist/radix-maia/empty.js.map +1 -1
- package/dist/radix-maia/field.js.map +1 -1
- package/dist/radix-maia/hover-card.js.map +1 -1
- package/dist/radix-maia/index.js +8 -6
- package/dist/radix-maia/index.js.map +1 -1
- package/dist/radix-maia/input-group.js.map +1 -1
- package/dist/radix-maia/input-otp.js.map +1 -1
- package/dist/radix-maia/input.js.map +1 -1
- package/dist/radix-maia/item.js.map +1 -1
- package/dist/radix-maia/kbd.js.map +1 -1
- package/dist/radix-maia/label.js.map +1 -1
- package/dist/radix-maia/menubar.js.map +1 -1
- package/dist/radix-maia/native-select.js.map +1 -1
- package/dist/radix-maia/navigation-menu.js.map +1 -1
- package/dist/radix-maia/pagination.js.map +1 -1
- package/dist/radix-maia/popover.js.map +1 -1
- package/dist/radix-maia/progress.js.map +1 -1
- package/dist/radix-maia/radio-group.js.map +1 -1
- package/dist/radix-maia/resizable.js.map +1 -1
- package/dist/radix-maia/scroll-area.js.map +1 -1
- package/dist/radix-maia/select.js.map +1 -1
- package/dist/radix-maia/separator.js.map +1 -1
- package/dist/radix-maia/sheet.js.map +1 -1
- package/dist/radix-maia/sidebar.js +8 -6
- package/dist/radix-maia/sidebar.js.map +1 -1
- package/dist/radix-maia/skeleton.js.map +1 -1
- package/dist/radix-maia/slider.js.map +1 -1
- package/dist/radix-maia/spinner.js.map +1 -1
- package/dist/radix-maia/switch.js.map +1 -1
- package/dist/radix-maia/table.js.map +1 -1
- package/dist/radix-maia/tabs.js.map +1 -1
- package/dist/radix-maia/textarea.js.map +1 -1
- package/dist/radix-maia/toggle-group.js.map +1 -1
- package/dist/radix-maia/toggle.js.map +1 -1
- package/dist/radix-maia/tooltip.js.map +1 -1
- package/dist/radix-mira/accordion.js.map +1 -1
- package/dist/radix-mira/alert-dialog.js.map +1 -1
- package/dist/radix-mira/alert.js.map +1 -1
- package/dist/radix-mira/avatar.js.map +1 -1
- package/dist/radix-mira/badge.js.map +1 -1
- package/dist/radix-mira/breadcrumb.js.map +1 -1
- package/dist/radix-mira/button-group.js.map +1 -1
- package/dist/radix-mira/button.js.map +1 -1
- package/dist/radix-mira/calendar.js.map +1 -1
- package/dist/radix-mira/card.js.map +1 -1
- package/dist/radix-mira/carousel.js.map +1 -1
- package/dist/radix-mira/chart.js.map +1 -1
- package/dist/radix-mira/checkbox.js.map +1 -1
- package/dist/radix-mira/combobox.js.map +1 -1
- package/dist/radix-mira/command.js.map +1 -1
- package/dist/radix-mira/context-menu.js.map +1 -1
- package/dist/radix-mira/dialog.js.map +1 -1
- package/dist/radix-mira/drawer.js.map +1 -1
- package/dist/radix-mira/dropdown-menu.js.map +1 -1
- package/dist/radix-mira/empty.js.map +1 -1
- package/dist/radix-mira/field.js.map +1 -1
- package/dist/radix-mira/hover-card.js.map +1 -1
- package/dist/radix-mira/index.js +8 -6
- package/dist/radix-mira/index.js.map +1 -1
- package/dist/radix-mira/input-group.js.map +1 -1
- package/dist/radix-mira/input-otp.js.map +1 -1
- package/dist/radix-mira/input.js.map +1 -1
- package/dist/radix-mira/item.js.map +1 -1
- package/dist/radix-mira/kbd.js.map +1 -1
- package/dist/radix-mira/label.js.map +1 -1
- package/dist/radix-mira/menubar.js.map +1 -1
- package/dist/radix-mira/native-select.js.map +1 -1
- package/dist/radix-mira/navigation-menu.js.map +1 -1
- package/dist/radix-mira/pagination.js.map +1 -1
- package/dist/radix-mira/popover.js.map +1 -1
- package/dist/radix-mira/progress.js.map +1 -1
- package/dist/radix-mira/radio-group.js.map +1 -1
- package/dist/radix-mira/resizable.js.map +1 -1
- package/dist/radix-mira/scroll-area.js.map +1 -1
- package/dist/radix-mira/select.js.map +1 -1
- package/dist/radix-mira/separator.js.map +1 -1
- package/dist/radix-mira/sheet.js.map +1 -1
- package/dist/radix-mira/sidebar.js +8 -6
- package/dist/radix-mira/sidebar.js.map +1 -1
- package/dist/radix-mira/skeleton.js.map +1 -1
- package/dist/radix-mira/slider.js.map +1 -1
- package/dist/radix-mira/spinner.js.map +1 -1
- package/dist/radix-mira/switch.js.map +1 -1
- package/dist/radix-mira/table.js.map +1 -1
- package/dist/radix-mira/tabs.js.map +1 -1
- package/dist/radix-mira/textarea.js.map +1 -1
- package/dist/radix-mira/toggle-group.js.map +1 -1
- package/dist/radix-mira/toggle.js.map +1 -1
- package/dist/radix-mira/tooltip.js.map +1 -1
- package/dist/radix-nova/accordion.js.map +1 -1
- package/dist/radix-nova/alert-dialog.js.map +1 -1
- package/dist/radix-nova/alert.js.map +1 -1
- package/dist/radix-nova/avatar.js.map +1 -1
- package/dist/radix-nova/badge.js.map +1 -1
- package/dist/radix-nova/breadcrumb.js.map +1 -1
- package/dist/radix-nova/button-group.js.map +1 -1
- package/dist/radix-nova/button.js.map +1 -1
- package/dist/radix-nova/calendar.js.map +1 -1
- package/dist/radix-nova/card.js.map +1 -1
- package/dist/radix-nova/carousel.js.map +1 -1
- package/dist/radix-nova/chart.js.map +1 -1
- package/dist/radix-nova/checkbox.js.map +1 -1
- package/dist/radix-nova/combobox.js.map +1 -1
- package/dist/radix-nova/command.js.map +1 -1
- package/dist/radix-nova/context-menu.js.map +1 -1
- package/dist/radix-nova/dialog.js.map +1 -1
- package/dist/radix-nova/drawer.js.map +1 -1
- package/dist/radix-nova/dropdown-menu.js.map +1 -1
- package/dist/radix-nova/empty.js.map +1 -1
- package/dist/radix-nova/field.js.map +1 -1
- package/dist/radix-nova/hover-card.js.map +1 -1
- package/dist/radix-nova/index.js +8 -6
- package/dist/radix-nova/index.js.map +1 -1
- package/dist/radix-nova/input-group.js.map +1 -1
- package/dist/radix-nova/input-otp.js.map +1 -1
- package/dist/radix-nova/input.js.map +1 -1
- package/dist/radix-nova/item.js.map +1 -1
- package/dist/radix-nova/kbd.js.map +1 -1
- package/dist/radix-nova/label.js.map +1 -1
- package/dist/radix-nova/menubar.js.map +1 -1
- package/dist/radix-nova/native-select.js.map +1 -1
- package/dist/radix-nova/navigation-menu.js.map +1 -1
- package/dist/radix-nova/pagination.js.map +1 -1
- package/dist/radix-nova/popover.js.map +1 -1
- package/dist/radix-nova/progress.js.map +1 -1
- package/dist/radix-nova/radio-group.js.map +1 -1
- package/dist/radix-nova/resizable.js.map +1 -1
- package/dist/radix-nova/scroll-area.js.map +1 -1
- package/dist/radix-nova/select.js.map +1 -1
- package/dist/radix-nova/separator.js.map +1 -1
- package/dist/radix-nova/sheet.js.map +1 -1
- package/dist/radix-nova/sidebar.js +8 -6
- package/dist/radix-nova/sidebar.js.map +1 -1
- package/dist/radix-nova/skeleton.js.map +1 -1
- package/dist/radix-nova/slider.js.map +1 -1
- package/dist/radix-nova/spinner.js.map +1 -1
- package/dist/radix-nova/switch.js.map +1 -1
- package/dist/radix-nova/table.js.map +1 -1
- package/dist/radix-nova/tabs.js.map +1 -1
- package/dist/radix-nova/textarea.js.map +1 -1
- package/dist/radix-nova/toggle-group.js.map +1 -1
- package/dist/radix-nova/toggle.js.map +1 -1
- package/dist/radix-nova/tooltip.js.map +1 -1
- package/dist/radix-vega/accordion.js.map +1 -1
- package/dist/radix-vega/action-bar.d.ts +41 -0
- package/dist/radix-vega/action-bar.js +589 -0
- package/dist/radix-vega/action-bar.js.map +1 -0
- package/dist/radix-vega/alert-dialog.js.map +1 -1
- package/dist/radix-vega/alert.js.map +1 -1
- package/dist/radix-vega/avatar-group.d.ts +19 -0
- package/dist/radix-vega/avatar-group.js +193 -0
- package/dist/radix-vega/avatar-group.js.map +1 -0
- package/dist/radix-vega/avatar.d.ts +1 -3
- package/dist/radix-vega/avatar.js +1 -27
- package/dist/radix-vega/avatar.js.map +1 -1
- package/dist/radix-vega/badge-overflow.d.ts +21 -0
- package/dist/radix-vega/badge-overflow.js +223 -0
- package/dist/radix-vega/badge-overflow.js.map +1 -0
- package/dist/radix-vega/badge.d.ts +1 -1
- package/dist/radix-vega/badge.js.map +1 -1
- package/dist/radix-vega/breadcrumb.js.map +1 -1
- package/dist/radix-vega/button-group.js.map +1 -1
- package/dist/radix-vega/button.d.ts +2 -2
- package/dist/radix-vega/button.js.map +1 -1
- package/dist/radix-vega/calendar.js.map +1 -1
- package/dist/radix-vega/card.js.map +1 -1
- package/dist/radix-vega/carousel.js.map +1 -1
- package/dist/radix-vega/chart.js.map +1 -1
- package/dist/radix-vega/checkbox-group.d.ts +12 -0
- package/dist/radix-vega/checkbox-group.js +119 -0
- package/dist/radix-vega/checkbox-group.js.map +1 -0
- package/dist/radix-vega/checkbox.js.map +1 -1
- package/dist/radix-vega/circular-progress.d.ts +27 -0
- package/dist/radix-vega/circular-progress.js +252 -0
- package/dist/radix-vega/circular-progress.js.map +1 -0
- package/dist/radix-vega/color-picker.d.ts +85 -0
- package/dist/radix-vega/color-picker.js +1683 -0
- package/dist/radix-vega/color-picker.js.map +1 -0
- package/dist/radix-vega/color-swatch.d.ts +17 -0
- package/dist/radix-vega/color-swatch.js +95 -0
- package/dist/radix-vega/color-swatch.js.map +1 -0
- package/dist/radix-vega/combobox.d.ts +18 -22
- package/dist/radix-vega/combobox.js +118 -276
- package/dist/radix-vega/combobox.js.map +1 -1
- package/dist/radix-vega/command.js.map +1 -1
- package/dist/radix-vega/compare-slider.d.ts +32 -0
- package/dist/radix-vega/compare-slider.js +393 -0
- package/dist/radix-vega/compare-slider.js.map +1 -0
- package/dist/radix-vega/context-menu.js.map +1 -1
- package/dist/radix-vega/cropper.d.ts +89 -0
- package/dist/radix-vega/cropper.js +1396 -0
- package/dist/radix-vega/cropper.js.map +1 -0
- package/dist/radix-vega/dialog.js.map +1 -1
- package/dist/radix-vega/drawer.js.map +1 -1
- package/dist/radix-vega/dropdown-menu.js.map +1 -1
- package/dist/radix-vega/editable.d.ts +100 -0
- package/dist/radix-vega/editable.js +684 -0
- package/dist/radix-vega/editable.js.map +1 -0
- package/dist/radix-vega/empty.js.map +1 -1
- package/dist/radix-vega/field.js.map +1 -1
- package/dist/radix-vega/file-upload.d.ts +89 -0
- package/dist/radix-vega/file-upload.js +1089 -0
- package/dist/radix-vega/file-upload.js.map +1 -0
- package/dist/radix-vega/gauge.d.ts +27 -0
- package/dist/radix-vega/gauge.js +359 -0
- package/dist/radix-vega/gauge.js.map +1 -0
- package/dist/radix-vega/hover-card.js.map +1 -1
- package/dist/radix-vega/index.d.ts +50 -3
- package/dist/radix-vega/index.js +23001 -2667
- package/dist/radix-vega/index.js.map +1 -1
- package/dist/radix-vega/input-group.d.ts +1 -1
- package/dist/radix-vega/input-group.js.map +1 -1
- package/dist/radix-vega/input-otp.js.map +1 -1
- package/dist/radix-vega/input.js.map +1 -1
- package/dist/radix-vega/item.d.ts +2 -2
- package/dist/radix-vega/item.js.map +1 -1
- package/dist/radix-vega/kanban.d.ts +62 -0
- package/dist/radix-vega/kanban.js +831 -0
- package/dist/radix-vega/kanban.js.map +1 -0
- package/dist/radix-vega/kbd.js.map +1 -1
- package/dist/radix-vega/key-value.d.ts +82 -0
- package/dist/radix-vega/key-value.js +765 -0
- package/dist/radix-vega/key-value.js.map +1 -0
- package/dist/radix-vega/label.js.map +1 -1
- package/dist/radix-vega/listbox.d.ts +11 -0
- package/dist/radix-vega/listbox.js +90 -0
- package/dist/radix-vega/listbox.js.map +1 -0
- package/dist/radix-vega/mask-input.d.ts +64 -0
- package/dist/radix-vega/mask-input.js +1186 -0
- package/dist/radix-vega/mask-input.js.map +1 -0
- package/dist/radix-vega/media-player.d.ts +127 -0
- package/dist/radix-vega/media-player.js +2696 -0
- package/dist/radix-vega/media-player.js.map +1 -0
- package/dist/radix-vega/mention.d.ts +11 -0
- package/dist/radix-vega/mention.js +94 -0
- package/dist/radix-vega/mention.js.map +1 -0
- package/dist/radix-vega/menubar.js.map +1 -1
- package/dist/radix-vega/native-select.js.map +1 -1
- package/dist/radix-vega/navigation-menu.js.map +1 -1
- package/dist/radix-vega/pagination.js.map +1 -1
- package/dist/radix-vega/phone-input.d.ts +48 -0
- package/dist/radix-vega/phone-input.js +957 -0
- package/dist/radix-vega/phone-input.js.map +1 -0
- package/dist/radix-vega/popover.js.map +1 -1
- package/dist/radix-vega/progress.js.map +1 -1
- package/dist/radix-vega/qr-code.d.ts +53 -0
- package/dist/radix-vega/qr-code.js +396 -0
- package/dist/radix-vega/qr-code.js.map +1 -0
- package/dist/radix-vega/radio-group.js.map +1 -1
- package/dist/radix-vega/rating.d.ts +47 -0
- package/dist/radix-vega/rating.js +749 -0
- package/dist/radix-vega/rating.js.map +1 -0
- package/dist/radix-vega/relative-time-card.d.ts +22 -0
- package/dist/radix-vega/relative-time-card.js +236 -0
- package/dist/radix-vega/relative-time-card.js.map +1 -0
- package/dist/radix-vega/resizable.js.map +1 -1
- package/dist/radix-vega/responsive-dialog.d.ts +20 -0
- package/dist/radix-vega/responsive-dialog.js +483 -0
- package/dist/radix-vega/responsive-dialog.js.map +1 -0
- package/dist/radix-vega/scroll-area.js.map +1 -1
- package/dist/radix-vega/scroll-spy.d.ts +39 -0
- package/dist/radix-vega/scroll-spy.js +372 -0
- package/dist/radix-vega/scroll-spy.js.map +1 -0
- package/dist/radix-vega/scroller.d.ts +20 -0
- package/dist/radix-vega/scroller.js +352 -0
- package/dist/radix-vega/scroller.js.map +1 -0
- package/dist/radix-vega/segmented-input.d.ts +29 -0
- package/dist/radix-vega/segmented-input.js +178 -0
- package/dist/radix-vega/segmented-input.js.map +1 -0
- package/dist/radix-vega/select.js.map +1 -1
- package/dist/radix-vega/separator.js.map +1 -1
- package/dist/radix-vega/sheet.js.map +1 -1
- package/dist/radix-vega/sidebar.js +8 -6
- package/dist/radix-vega/sidebar.js.map +1 -1
- package/dist/radix-vega/skeleton.js.map +1 -1
- package/dist/radix-vega/slider.js.map +1 -1
- package/dist/radix-vega/sortable.d.ts +51 -0
- package/dist/radix-vega/sortable.js +444 -0
- package/dist/radix-vega/sortable.js.map +1 -0
- package/dist/radix-vega/speed-dial.d.ts +46 -0
- package/dist/radix-vega/speed-dial.js +898 -0
- package/dist/radix-vega/speed-dial.js.map +1 -0
- package/dist/radix-vega/spinner.js.map +1 -1
- package/dist/radix-vega/stack.d.ts +21 -0
- package/dist/radix-vega/stack.js +268 -0
- package/dist/radix-vega/stack.js.map +1 -0
- package/dist/radix-vega/stat.d.ts +24 -0
- package/dist/radix-vega/stat.js +147 -0
- package/dist/radix-vega/stat.js.map +1 -0
- package/dist/radix-vega/status.d.ts +18 -0
- package/dist/radix-vega/status.js +71 -0
- package/dist/radix-vega/status.js.map +1 -0
- package/dist/radix-vega/stepper.d.ts +73 -0
- package/dist/radix-vega/stepper.js +973 -0
- package/dist/radix-vega/stepper.js.map +1 -0
- package/dist/radix-vega/swap.d.ts +29 -0
- package/dist/radix-vega/swap.js +214 -0
- package/dist/radix-vega/swap.js.map +1 -0
- package/dist/radix-vega/switch.js.map +1 -1
- package/dist/radix-vega/table.js.map +1 -1
- package/dist/radix-vega/tabs.d.ts +1 -1
- package/dist/radix-vega/tabs.js.map +1 -1
- package/dist/radix-vega/tags-input.d.ts +12 -0
- package/dist/radix-vega/tags-input.js +98 -0
- package/dist/radix-vega/tags-input.js.map +1 -0
- package/dist/radix-vega/textarea.js.map +1 -1
- package/dist/radix-vega/time-picker.d.ts +88 -0
- package/dist/radix-vega/time-picker.js +1750 -0
- package/dist/radix-vega/time-picker.js.map +1 -0
- package/dist/radix-vega/timeline.d.ts +32 -0
- package/dist/radix-vega/timeline.js +611 -0
- package/dist/radix-vega/timeline.js.map +1 -0
- package/dist/radix-vega/toggle-group.js.map +1 -1
- package/dist/radix-vega/toggle.js.map +1 -1
- package/dist/radix-vega/tooltip.js.map +1 -1
- package/dist/radix-vega/tour.d.ts +109 -0
- package/dist/radix-vega/tour.js +1314 -0
- package/dist/radix-vega/tour.js.map +1 -0
- package/dist/radix-vega/visually-hidden-input.d.ts +8 -0
- package/dist/radix-vega/visually-hidden-input.js +33 -0
- package/dist/radix-vega/visually-hidden-input.js.map +1 -0
- package/package.json +53 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/button.tsx","../../src/radix-vega/input.tsx","../../src/radix-vega/textarea.tsx","../../src/lib/compose-refs.ts","../../src/radix-vega/visually-hidden-input.tsx","../../src/hooks/use-isomorphic-layout-effect.ts","../../src/hooks/use-as-ref.ts","../../src/hooks/use-lazy-ref.ts","../../src/radix-vega/key-value.tsx"],"names":["Slot","jsx","React","React2","React3","React4","React5","errors"],"mappings":"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","file":"key-value.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline: \"border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost: \"hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground\",\n destructive: \"bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n lg: \"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n\n if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // biome-ignore lint/correctness/useExhaustiveDependencies: we want to memoize by all values\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n control?: HTMLElement | null;\n}\n\nconst VisuallyHiddenInput = React.forwardRef<\n HTMLInputElement,\n VisuallyHiddenInputProps\n>(({ className, control, ...props }, ref) => {\n const input = (\n <input\n ref={ref}\n className={cn(\n \"absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0\",\n \"[clip:rect(0,0,0,0)]\",\n className\n )}\n {...props}\n />\n );\n\n // If control is provided, render input inside control via portal\n if (control) {\n return ReactDOM.createPortal(input, control);\n }\n\n return input;\n});\n\nVisuallyHiddenInput.displayName = \"VisuallyHiddenInput\";\n\nexport { VisuallyHiddenInput };\n","import * as React from \"react\";\n\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import * as React from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"@/hooks/use-isomorphic-layout-effect\";\n\nfunction useAsRef<T>(props: T) {\n const ref = React.useRef<T>(props);\n\n useIsomorphicLayoutEffect(() => {\n ref.current = props;\n });\n\n return ref;\n}\n\nexport { useAsRef };\n","import * as React from \"react\";\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | null>(null);\n\n if (ref.current === null) {\n ref.current = fn();\n }\n\n return ref as React.RefObject<T>;\n}\n\nexport { useLazyRef };\n","\"use client\";\n\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PlusIcon, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"@/radix-vega/button\";\nimport { Input } from \"@/radix-vega/input\";\nimport { Textarea } from \"@/radix-vega/textarea\";\nimport { useComposedRefs } from \"@/lib/compose-refs\";\nimport { cn } from \"@/lib/utils\";\nimport { VisuallyHiddenInput } from \"@/radix-vega/visually-hidden-input\";\nimport { useAsRef } from \"@/hooks/use-as-ref\";\nimport { useIsomorphicLayoutEffect } from \"@/hooks/use-isomorphic-layout-effect\";\nimport { useLazyRef } from \"@/hooks/use-lazy-ref\";\n\nconst ROOT_NAME = \"KeyValue\";\nconst LIST_NAME = \"KeyValueList\";\nconst ITEM_NAME = \"KeyValueItem\";\nconst KEY_INPUT_NAME = \"KeyValueKeyInput\";\nconst VALUE_INPUT_NAME = \"KeyValueValueInput\";\nconst REMOVE_NAME = \"KeyValueRemove\";\nconst ADD_NAME = \"KeyValueAdd\";\nconst ERROR_NAME = \"KeyValueError\";\n\ntype Orientation = \"vertical\" | \"horizontal\";\ntype Field = \"key\" | \"value\";\n\ninterface DivProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\ntype RootElement = React.ComponentRef<typeof KeyValue>;\ntype KeyInputElement = React.ComponentRef<typeof KeyValueKeyInput>;\ntype RemoveElement = React.ComponentRef<typeof KeyValueRemove>;\ntype AddElement = React.ComponentRef<typeof KeyValueAdd>;\n\nfunction getErrorId(rootId: string, itemId: string, field: Field) {\n return `${rootId}-${itemId}-${field}-error`;\n}\n\nfunction removeQuotes(string: string, shouldStrip: boolean): string {\n if (!shouldStrip) return string;\n\n const trimmed = string.trim();\n if (\n (trimmed.startsWith('\"') && trimmed.endsWith('\"')) ||\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\"))\n ) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n\ninterface Store {\n subscribe: (callback: () => void) => () => void;\n getState: () => KeyValueState;\n setState: <K extends keyof KeyValueState>(\n key: K,\n value: KeyValueState[K],\n ) => void;\n notify: () => void;\n}\n\nfunction useStore<T>(\n selector: (state: KeyValueState) => T,\n ogStore?: Store | null,\n): T {\n const contextStore = React.useContext(StoreContext);\n\n const store = ogStore ?? contextStore;\n\n if (!store) {\n throw new Error(`\\`useStore\\` must be used within \\`${ROOT_NAME}\\``);\n }\n\n const getSnapshot = React.useCallback(\n () => selector(store.getState()),\n [store, selector],\n );\n\n return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);\n}\n\ninterface ItemData {\n id: string;\n key: string;\n value: string;\n}\n\ninterface KeyValueState {\n value: ItemData[];\n focusedId: string | null;\n errors: Record<string, { key?: string; value?: string }>;\n}\n\nconst StoreContext = React.createContext<Store | null>(null);\n\nfunction useStoreContext(consumerName: string) {\n const context = React.useContext(StoreContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface KeyValueContextValue {\n onPaste?: (event: ClipboardEvent, items: ItemData[]) => void;\n onAdd?: (value: ItemData) => void;\n onRemove?: (value: ItemData) => void;\n onKeyValidate?: (key: string, value: ItemData[]) => string | undefined;\n onValueValidate?: (\n value: string,\n key: string,\n items: ItemData[],\n ) => string | undefined;\n rootId: string;\n maxItems?: number;\n minItems: number;\n keyPlaceholder: string;\n valuePlaceholder: string;\n allowDuplicateKeys: boolean;\n enablePaste: boolean;\n trim: boolean;\n stripQuotes: boolean;\n disabled: boolean;\n readOnly: boolean;\n required: boolean;\n}\n\nconst KeyValueContext = React.createContext<KeyValueContextValue | null>(null);\n\nfunction useKeyValueContext(consumerName: string) {\n const context = React.useContext(KeyValueContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface KeyValueProps extends Omit<DivProps, \"onPaste\" | \"defaultValue\"> {\n id?: string;\n defaultValue?: ItemData[];\n value?: ItemData[];\n onValueChange?: (value: ItemData[]) => void;\n maxItems?: number;\n minItems?: number;\n keyPlaceholder?: string;\n valuePlaceholder?: string;\n name?: string;\n allowDuplicateKeys?: boolean;\n enablePaste?: boolean;\n trim?: boolean;\n stripQuotes?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n onPaste?: (event: ClipboardEvent, items: ItemData[]) => void;\n onAdd?: (value: ItemData) => void;\n onRemove?: (value: ItemData) => void;\n onKeyValidate?: (key: string, value: ItemData[]) => string | undefined;\n onValueValidate?: (\n value: string,\n key: string,\n items: ItemData[],\n ) => string | undefined;\n}\n\nfunction KeyValue(props: KeyValueProps) {\n const {\n value: valueProp,\n defaultValue,\n onValueChange,\n onPaste,\n onAdd,\n onRemove,\n onKeyValidate,\n onValueValidate,\n maxItems,\n minItems = 0,\n keyPlaceholder = \"Key\",\n valuePlaceholder = \"Value\",\n allowDuplicateKeys = false,\n asChild,\n enablePaste = true,\n trim = true,\n stripQuotes = true,\n disabled = false,\n readOnly = false,\n required = false,\n className,\n id,\n name,\n ref,\n ...rootProps\n } = props;\n\n const instanceId = React.useId();\n const rootId = id ?? instanceId;\n\n const [formTrigger, setFormTrigger] = React.useState<RootElement | null>(\n null,\n );\n const composedRef = useComposedRefs(ref, (node) => setFormTrigger(node));\n const isFormControl = formTrigger ? !!formTrigger.closest(\"form\") : true;\n\n const listenersRef = useLazyRef(() => new Set<() => void>());\n const stateRef = useLazyRef<KeyValueState>(() => ({\n value: valueProp ??\n defaultValue ?? [{ id: crypto.randomUUID(), key: \"\", value: \"\" }],\n focusedId: null,\n errors: {},\n }));\n const propsRef = useAsRef({ onValueChange });\n\n const store = React.useMemo<Store>(() => {\n return {\n subscribe: (cb) => {\n listenersRef.current.add(cb);\n return () => listenersRef.current.delete(cb);\n },\n getState: () => stateRef.current,\n setState: (key, val) => {\n if (Object.is(stateRef.current[key], val)) return;\n\n if (key === \"value\" && Array.isArray(val)) {\n stateRef.current.value = val as ItemData[];\n propsRef.current.onValueChange?.(val as ItemData[]);\n } else {\n stateRef.current[key] = val;\n }\n\n store.notify();\n },\n notify: () => {\n for (const cb of listenersRef.current) {\n cb();\n }\n },\n };\n }, [listenersRef, stateRef, propsRef]);\n\n const value = useStore((state) => state.value, store);\n const errors = useStore((state) => state.errors, store);\n const isInvalid = Object.keys(errors).length > 0;\n\n useIsomorphicLayoutEffect(() => {\n if (valueProp !== undefined) {\n store.setState(\"value\", valueProp);\n }\n }, [valueProp]);\n\n const contextValue = React.useMemo<KeyValueContextValue>(\n () => ({\n onPaste,\n onAdd,\n onRemove,\n onKeyValidate,\n onValueValidate,\n rootId,\n maxItems,\n minItems,\n keyPlaceholder,\n valuePlaceholder,\n allowDuplicateKeys,\n enablePaste,\n trim,\n stripQuotes,\n disabled,\n readOnly,\n required,\n }),\n [\n onPaste,\n onAdd,\n onRemove,\n onKeyValidate,\n onValueValidate,\n rootId,\n disabled,\n readOnly,\n required,\n maxItems,\n minItems,\n keyPlaceholder,\n valuePlaceholder,\n allowDuplicateKeys,\n enablePaste,\n trim,\n stripQuotes,\n ],\n );\n\n const RootPrimitive = asChild ? Slot : \"div\";\n\n return (\n <StoreContext.Provider value={store}>\n <KeyValueContext.Provider value={contextValue}>\n <RootPrimitive\n id={id}\n data-slot=\"key-value\"\n data-disabled={disabled ? \"\" : undefined}\n data-invalid={isInvalid ? \"\" : undefined}\n data-readonly={readOnly ? \"\" : undefined}\n {...rootProps}\n ref={composedRef}\n className={cn(\"flex flex-col gap-2\", className)}\n />\n {isFormControl && (\n <VisuallyHiddenInput\n type=\"hidden\"\n control={formTrigger}\n name={name}\n value={JSON.stringify(value)}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n />\n )}\n </KeyValueContext.Provider>\n </StoreContext.Provider>\n );\n}\n\ninterface KeyValueListProps extends DivProps {\n orientation?: Orientation;\n}\n\nfunction KeyValueList(props: KeyValueListProps) {\n const { orientation = \"vertical\", asChild, className, ...listProps } = props;\n\n const value = useStore((state) => state.value);\n\n const ListPrimitive = asChild ? Slot : \"div\";\n\n return (\n <ListPrimitive\n role=\"list\"\n aria-orientation={orientation}\n data-slot=\"key-value-list\"\n data-orientation={orientation}\n {...listProps}\n className={cn(\n \"flex\",\n orientation === \"vertical\" ? \"flex-col gap-2\" : \"flex-row gap-2\",\n className,\n )}\n >\n {value.map((item) => {\n const children = React.Children.toArray(props.children);\n\n return (\n <KeyValueItemContext.Provider key={item.id} value={item}>\n {children}\n </KeyValueItemContext.Provider>\n );\n })}\n </ListPrimitive>\n );\n}\n\nconst KeyValueItemContext = React.createContext<ItemData | null>(null);\n\nfunction useKeyValueItemContext(consumerName: string) {\n const context = React.useContext(KeyValueItemContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${LIST_NAME}\\``);\n }\n return context;\n}\n\ninterface KeyValueItemProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction KeyValueItem(props: KeyValueItemProps) {\n const { asChild, className, ...itemProps } = props;\n const itemData = useKeyValueItemContext(ITEM_NAME);\n\n const focusedId = useStore((state) => state.focusedId);\n\n const ItemPrimitive = asChild ? Slot : \"div\";\n\n return (\n <ItemPrimitive\n role=\"listitem\"\n data-slot=\"key-value-item\"\n data-highlighted={focusedId === itemData.id ? \"\" : undefined}\n {...itemProps}\n className={cn(\"flex items-start gap-2\", className)}\n />\n );\n}\n\ninterface KeyValueKeyInputProps extends React.ComponentProps<\"input\"> {\n asChild?: boolean;\n}\n\nfunction KeyValueKeyInput(props: KeyValueKeyInputProps) {\n const {\n onChange: onChangeProp,\n onPaste: onPasteProp,\n asChild,\n disabled,\n readOnly,\n required,\n ...keyInputProps\n } = props;\n\n const context = useKeyValueContext(KEY_INPUT_NAME);\n const itemData = useKeyValueItemContext(KEY_INPUT_NAME);\n const store = useStoreContext(KEY_INPUT_NAME);\n const errors = useStore((state) => state.errors);\n\n const propsRef = useAsRef({\n onChange: onChangeProp,\n onPaste: onPasteProp,\n });\n\n const isDisabled = disabled || context.disabled;\n const isReadOnly = readOnly || context.readOnly;\n const isRequired = required || context.required;\n const isInvalid = errors[itemData.id]?.key !== undefined;\n\n const onChange = React.useCallback(\n (event: React.ChangeEvent<KeyInputElement>) => {\n const state = store.getState();\n const newValue = state.value.map((item) => {\n if (item.id !== itemData.id) return item;\n const updated = { ...item, key: event.target.value };\n if (context.trim) updated.key = updated.key.trim();\n return updated;\n });\n\n store.setState(\"value\", newValue);\n\n const updatedItemData = newValue.find((item) => item.id === itemData.id);\n if (updatedItemData) {\n const errors: { key?: string; value?: string } = {};\n\n if (context.onKeyValidate) {\n const keyError = context.onKeyValidate(updatedItemData.key, newValue);\n if (keyError) errors.key = keyError;\n }\n\n if (!context.allowDuplicateKeys) {\n const duplicateKey = newValue.find(\n (item) =>\n item.id !== updatedItemData.id &&\n item.key === updatedItemData.key &&\n updatedItemData.key !== \"\",\n );\n if (duplicateKey) {\n errors.key = \"Duplicate key\";\n }\n }\n\n if (context.onValueValidate) {\n const valueError = context.onValueValidate(\n updatedItemData.value,\n updatedItemData.key,\n newValue,\n );\n if (valueError) errors.value = valueError;\n }\n\n const newErrorsState = { ...state.errors };\n if (Object.keys(errors).length > 0) {\n newErrorsState[itemData.id] = errors;\n } else {\n delete newErrorsState[itemData.id];\n }\n store.setState(\"errors\", newErrorsState);\n }\n\n propsRef.current.onChange?.(event);\n },\n [store, itemData.id, context, propsRef],\n );\n\n const onPaste = React.useCallback(\n (event: React.ClipboardEvent<KeyInputElement>) => {\n if (!context.enablePaste) return;\n\n propsRef.current.onPaste?.(event);\n if (event.defaultPrevented) return;\n\n const content = event.clipboardData.getData(\"text\");\n const lines = content.split(/\\r?\\n/).filter((line) => line.trim());\n\n if (lines.length > 1) {\n event.preventDefault();\n\n const parsed: ItemData[] = [];\n\n for (const line of lines) {\n let key = \"\";\n let value = \"\";\n\n if (line.includes(\"=\")) {\n const parts = line.split(\"=\");\n key = parts[0]?.trim() ?? \"\";\n value = removeQuotes(\n parts.slice(1).join(\"=\").trim(),\n context.stripQuotes,\n );\n } else if (line.includes(\":\")) {\n const parts = line.split(\":\");\n key = parts[0]?.trim() ?? \"\";\n value = removeQuotes(\n parts.slice(1).join(\":\").trim(),\n context.stripQuotes,\n );\n } else if (/\\s{2,}|\\t/.test(line)) {\n const parts = line.split(/\\s{2,}|\\t/);\n key = parts[0]?.trim() ?? \"\";\n value = removeQuotes(\n parts.slice(1).join(\" \").trim(),\n context.stripQuotes,\n );\n }\n\n if (key) {\n parsed.push({ id: crypto.randomUUID(), key, value });\n }\n }\n\n if (parsed.length > 0) {\n const state = store.getState();\n const currentIndex = state.value.findIndex(\n (item) => item.id === itemData.id,\n );\n\n let newValue: ItemData[];\n if (itemData.key === \"\" && itemData.value === \"\") {\n newValue = [\n ...state.value.slice(0, currentIndex),\n ...parsed,\n ...state.value.slice(currentIndex + 1),\n ];\n } else {\n newValue = [\n ...state.value.slice(0, currentIndex + 1),\n ...parsed,\n ...state.value.slice(currentIndex + 1),\n ];\n }\n\n if (context.maxItems !== undefined) {\n newValue = newValue.slice(0, context.maxItems);\n }\n\n store.setState(\"value\", newValue);\n\n if (context.onPaste) {\n context.onPaste(\n event.nativeEvent as unknown as ClipboardEvent,\n parsed,\n );\n }\n }\n }\n },\n [context, store, itemData, propsRef],\n );\n\n const KeyInputPrimitive = asChild ? Slot : Input;\n\n return (\n <KeyInputPrimitive\n aria-invalid={isInvalid}\n aria-describedby={\n isInvalid ? getErrorId(context.rootId, itemData.id, \"key\") : undefined\n }\n data-slot=\"key-value-key-input\"\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n disabled={isDisabled}\n readOnly={isReadOnly}\n required={isRequired}\n placeholder={context.keyPlaceholder}\n {...keyInputProps}\n value={itemData.key}\n onChange={onChange}\n onPaste={onPaste}\n />\n );\n}\n\ninterface KeyValueValueInputProps\n extends Omit<React.ComponentProps<\"textarea\">, \"rows\"> {\n maxRows?: number;\n asChild?: boolean;\n}\n\nfunction KeyValueValueInput(props: KeyValueValueInputProps) {\n const {\n onChange: onChangeProp,\n asChild,\n disabled,\n readOnly,\n required,\n className,\n maxRows,\n style,\n ...valueInputProps\n } = props;\n\n const context = useKeyValueContext(VALUE_INPUT_NAME);\n const itemData = useKeyValueItemContext(VALUE_INPUT_NAME);\n const store = useStoreContext(VALUE_INPUT_NAME);\n const errors = useStore((state) => state.errors);\n\n const propsRef = useAsRef({\n onChange: onChangeProp,\n });\n\n const isDisabled = disabled || context.disabled;\n const isReadOnly = readOnly || context.readOnly;\n const isRequired = required || context.required;\n const isInvalid = errors[itemData.id]?.value !== undefined;\n const maxHeight = maxRows ? `calc(${maxRows} * 1.5em + 1rem)` : undefined;\n\n const onChange = React.useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n propsRef.current.onChange?.(event);\n\n const state = store.getState();\n const newValue = state.value.map((item) => {\n if (item.id !== itemData.id) return item;\n const updated = { ...item, value: event.target.value };\n if (context.trim) updated.value = updated.value.trim();\n return updated;\n });\n\n store.setState(\"value\", newValue);\n\n const updatedItemData = newValue.find((item) => item.id === itemData.id);\n if (updatedItemData) {\n const errors: { key?: string; value?: string } = {};\n\n if (context.onKeyValidate) {\n const keyError = context.onKeyValidate(updatedItemData.key, newValue);\n if (keyError) errors.key = keyError;\n }\n\n if (!context.allowDuplicateKeys) {\n const duplicateKey = newValue.find(\n (item) =>\n item.id !== updatedItemData.id &&\n item.key === updatedItemData.key &&\n updatedItemData.key !== \"\",\n );\n if (duplicateKey) {\n errors.key = \"Duplicate key\";\n }\n }\n\n if (context.onValueValidate) {\n const valueError = context.onValueValidate(\n updatedItemData.value,\n updatedItemData.key,\n newValue,\n );\n if (valueError) errors.value = valueError;\n }\n\n const newErrorsState = { ...state.errors };\n if (Object.keys(errors).length > 0) {\n newErrorsState[itemData.id] = errors;\n } else {\n delete newErrorsState[itemData.id];\n }\n store.setState(\"errors\", newErrorsState);\n }\n },\n [store, itemData.id, context, propsRef],\n );\n\n const ValueInputPrimitive = asChild ? Slot : Textarea;\n\n return (\n <ValueInputPrimitive\n aria-invalid={isInvalid}\n aria-describedby={\n isInvalid ? getErrorId(context.rootId, itemData.id, \"value\") : undefined\n }\n data-slot=\"key-value-value-input\"\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n disabled={isDisabled}\n readOnly={isReadOnly}\n required={isRequired}\n placeholder={context.valuePlaceholder}\n {...valueInputProps}\n className={cn(\n \"field-sizing-content min-h-9 resize-none\",\n maxRows && \"overflow-y-auto\",\n className,\n )}\n style={{\n ...style,\n ...(maxHeight && { maxHeight }),\n }}\n value={itemData.value}\n onChange={onChange}\n />\n );\n}\n\ninterface KeyValueRemoveProps extends React.ComponentProps<typeof Button> {}\n\nfunction KeyValueRemove(props: KeyValueRemoveProps) {\n const { onClick: onClickProp, children, ...removeProps } = props;\n\n const context = useKeyValueContext(REMOVE_NAME);\n const itemData = useKeyValueItemContext(REMOVE_NAME);\n const store = useStoreContext(REMOVE_NAME);\n\n const propsRef = useAsRef({\n onClick: onClickProp,\n });\n const value = useStore((state) => state.value);\n const isDisabled = context.disabled || value.length <= context.minItems;\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<RemoveElement>) => {\n propsRef.current.onClick?.(event);\n\n const state = store.getState();\n if (state.value.length <= context.minItems) return;\n\n const itemToRemove = state.value.find((item) => item.id === itemData.id);\n if (!itemToRemove) return;\n\n const newValue = state.value.filter((item) => item.id !== itemData.id);\n const newErrors = { ...state.errors };\n delete newErrors[itemData.id];\n\n store.setState(\"value\", newValue);\n store.setState(\"errors\", newErrors);\n\n context.onRemove?.(itemToRemove);\n },\n [store, context, itemData.id, propsRef],\n );\n\n return (\n <Button\n type=\"button\"\n data-slot=\"key-value-remove\"\n variant=\"outline\"\n size=\"icon\"\n disabled={isDisabled}\n {...removeProps}\n onClick={onClick}\n >\n {children ?? <XIcon />}\n </Button>\n );\n}\n\nfunction KeyValueAdd(props: React.ComponentProps<typeof Button>) {\n const { onClick: onClickProp, children, ...addProps } = props;\n\n const context = useKeyValueContext(ADD_NAME);\n const store = useStoreContext(ADD_NAME);\n\n const propsRef = useAsRef({\n onClick: onClickProp,\n });\n const value = useStore((state) => state.value);\n const isDisabled =\n context.disabled ||\n (context.maxItems !== undefined && value.length >= context.maxItems);\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<AddElement>) => {\n propsRef.current.onClick?.(event);\n\n const state = store.getState();\n if (\n context.maxItems !== undefined &&\n state.value.length >= context.maxItems\n ) {\n return;\n }\n\n const newItem: ItemData = {\n id: crypto.randomUUID(),\n key: \"\",\n value: \"\",\n };\n\n const newValue = [...state.value, newItem];\n store.setState(\"value\", newValue);\n store.setState(\"focusedId\", newItem.id);\n\n context.onAdd?.(newItem);\n },\n [store, context, propsRef],\n );\n\n return (\n <Button\n type=\"button\"\n data-slot=\"key-value-add\"\n variant=\"outline\"\n disabled={isDisabled}\n {...addProps}\n onClick={onClick}\n >\n {children ?? (\n <>\n <PlusIcon />\n Add\n </>\n )}\n </Button>\n );\n}\n\ninterface KeyValueErrorProps extends DivProps {\n field: Field;\n}\n\nfunction KeyValueError(props: KeyValueErrorProps) {\n const { field, asChild, className, ...errorProps } = props;\n\n const context = useKeyValueContext(ERROR_NAME);\n const itemData = useKeyValueItemContext(ERROR_NAME);\n\n const errors = useStore((state) => state.errors);\n const error = errors[itemData.id]?.[field];\n\n if (!error) return null;\n\n const ErrorPrimitive = asChild ? Slot : \"span\";\n\n return (\n <ErrorPrimitive\n id={getErrorId(context.rootId, itemData.id, field)}\n role=\"alert\"\n {...errorProps}\n className={cn(\"font-medium text-destructive text-sm\", className)}\n >\n {error}\n </ErrorPrimitive>\n );\n}\n\nexport {\n KeyValue,\n KeyValueList,\n KeyValueItem,\n KeyValueKeyInput,\n KeyValueValueInput,\n KeyValueRemove,\n KeyValueAdd,\n KeyValueError,\n //\n useStore as useKeyValueStore,\n //\n type KeyValueProps,\n type ItemData as KeyValueItemData,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/label.tsx"],"names":["LabelPrimitive"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/label.tsx"],"names":["LabelPrimitive"],"mappings":";;;;;;AASO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACNA,SAAS,KAAA,CAAM;AAAA,EACb,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqD;AACnD,EAAA,uBACE,GAAA;AAAA,IAACA,OAAA,CAAe,IAAA;AAAA,IAAf;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qNAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"label.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as ListboxPrimitive from '@diceui/listbox';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
|
|
5
|
+
declare const Listbox: ListboxPrimitive.ListboxRootComponentProps;
|
|
6
|
+
declare function ListboxGroup({ className, ...props }: React.ComponentProps<typeof ListboxPrimitive.Group>): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function ListboxGroupLabel({ className, ...props }: React.ComponentProps<typeof ListboxPrimitive.GroupLabel>): react_jsx_runtime.JSX.Element;
|
|
8
|
+
declare function ListboxItem({ className, ...props }: React.ComponentProps<typeof ListboxPrimitive.Item>): react_jsx_runtime.JSX.Element;
|
|
9
|
+
declare function ListboxItemIndicator({ ...props }: React.ComponentProps<typeof ListboxPrimitive.ItemIndicator>): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { Listbox, ListboxGroup, ListboxGroupLabel, ListboxItem, ListboxItemIndicator };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as ListboxPrimitive from '@diceui/listbox';
|
|
2
|
+
import { Check } from 'lucide-react';
|
|
3
|
+
import { clsx } from 'clsx';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
// src/radix-vega/listbox.tsx
|
|
8
|
+
function cn(...inputs) {
|
|
9
|
+
return twMerge(clsx(inputs));
|
|
10
|
+
}
|
|
11
|
+
var Listbox = (({
|
|
12
|
+
className,
|
|
13
|
+
orientation = "vertical",
|
|
14
|
+
...props
|
|
15
|
+
}) => {
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
17
|
+
ListboxPrimitive.Root,
|
|
18
|
+
{
|
|
19
|
+
"data-slot": "listbox",
|
|
20
|
+
orientation,
|
|
21
|
+
className: cn(
|
|
22
|
+
"flex gap-2 focus-visible:outline-none",
|
|
23
|
+
orientation === "vertical" && "flex-col *:data-[slot=listbox-group]:flex-col",
|
|
24
|
+
className
|
|
25
|
+
),
|
|
26
|
+
...props
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
function ListboxGroup({
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
ListboxPrimitive.Group,
|
|
36
|
+
{
|
|
37
|
+
"data-slot": "listbox-group",
|
|
38
|
+
className: cn("flex flex-col gap-2", className),
|
|
39
|
+
...props
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function ListboxGroupLabel({
|
|
44
|
+
className,
|
|
45
|
+
...props
|
|
46
|
+
}) {
|
|
47
|
+
return /* @__PURE__ */ jsx(
|
|
48
|
+
ListboxPrimitive.GroupLabel,
|
|
49
|
+
{
|
|
50
|
+
"data-slot": "listbox-group-label",
|
|
51
|
+
className: cn(
|
|
52
|
+
"px-2 pt-1 font-medium text-muted-foreground text-sm",
|
|
53
|
+
className
|
|
54
|
+
),
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function ListboxItem({
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}) {
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
ListboxPrimitive.Item,
|
|
65
|
+
{
|
|
66
|
+
"data-slot": "listbox-item",
|
|
67
|
+
className: cn(
|
|
68
|
+
"flex w-full cursor-default select-none items-center justify-between gap-2 rounded-md p-4 outline-hidden ring-1 ring-border focus-visible:ring-ring data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-50",
|
|
69
|
+
className
|
|
70
|
+
),
|
|
71
|
+
...props
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
function ListboxItemIndicator({
|
|
76
|
+
...props
|
|
77
|
+
}) {
|
|
78
|
+
return /* @__PURE__ */ jsx(
|
|
79
|
+
ListboxPrimitive.ItemIndicator,
|
|
80
|
+
{
|
|
81
|
+
"data-slot": "listbox-item-indicator",
|
|
82
|
+
...props,
|
|
83
|
+
children: /* @__PURE__ */ jsx(Check, { className: "size-4" })
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { Listbox, ListboxGroup, ListboxGroupLabel, ListboxItem, ListboxItemIndicator };
|
|
89
|
+
//# sourceMappingURL=listbox.js.map
|
|
90
|
+
//# sourceMappingURL=listbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/listbox.tsx"],"names":[],"mappings":";;;;;;;AASO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACNA,IAAM,WAAW,CAAC;AAAA,EAChB,SAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,GAAG;AACL,CAAA,KAA0D;AACxD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,IAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACV,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,uCAAA;AAAA,QACA,gBAAgB,UAAA,IACd,+CAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,KAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6D;AAC3D,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,UAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,IAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,kRAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,oBAAA,CAAqB;AAAA,EAC5B,GAAG;AACL,CAAA,EAAgE;AAC9D,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,aAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,wBAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,GAC5B;AAEJ","file":"listbox.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as ListboxPrimitive from \"@diceui/listbox\";\nimport { Check } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst Listbox = (({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ListboxPrimitive.Root>) => {\n return (\n <ListboxPrimitive.Root\n data-slot=\"listbox\"\n orientation={orientation}\n className={cn(\n \"flex gap-2 focus-visible:outline-none\",\n orientation === \"vertical\" &&\n \"flex-col *:data-[slot=listbox-group]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}) as ListboxPrimitive.ListboxRootComponentProps;\n\nfunction ListboxGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ListboxPrimitive.Group>) {\n return (\n <ListboxPrimitive.Group\n data-slot=\"listbox-group\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction ListboxGroupLabel({\n className,\n ...props\n}: React.ComponentProps<typeof ListboxPrimitive.GroupLabel>) {\n return (\n <ListboxPrimitive.GroupLabel\n data-slot=\"listbox-group-label\"\n className={cn(\n \"px-2 pt-1 font-medium text-muted-foreground text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ListboxItem({\n className,\n ...props\n}: React.ComponentProps<typeof ListboxPrimitive.Item>) {\n return (\n <ListboxPrimitive.Item\n data-slot=\"listbox-item\"\n className={cn(\n \"flex w-full cursor-default select-none items-center justify-between gap-2 rounded-md p-4 outline-hidden ring-1 ring-border focus-visible:ring-ring data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ListboxItemIndicator({\n ...props\n}: React.ComponentProps<typeof ListboxPrimitive.ItemIndicator>) {\n return (\n <ListboxPrimitive.ItemIndicator\n data-slot=\"listbox-item-indicator\"\n {...props}\n >\n <Check className=\"size-4\" />\n </ListboxPrimitive.ItemIndicator>\n );\n}\n\nexport {\n Listbox,\n ListboxGroup,\n ListboxGroupLabel,\n ListboxItem,\n ListboxItemIndicator,\n};\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
interface TransformOptions {
|
|
5
|
+
currency?: string;
|
|
6
|
+
locale?: string;
|
|
7
|
+
}
|
|
8
|
+
interface ValidateOptions {
|
|
9
|
+
min?: number;
|
|
10
|
+
max?: number;
|
|
11
|
+
}
|
|
12
|
+
interface MaskPattern {
|
|
13
|
+
pattern: string;
|
|
14
|
+
transform?: (value: string, opts?: TransformOptions) => string;
|
|
15
|
+
validate?: (value: string, opts?: ValidateOptions) => boolean;
|
|
16
|
+
}
|
|
17
|
+
type MaskPatternKey = "phone" | "ssn" | "date" | "time" | "creditCard" | "creditCardExpiry" | "zipCode" | "zipCodeExtended" | "currency" | "percentage" | "licensePlate" | "ipv4" | "macAddress" | "isbn" | "ein";
|
|
18
|
+
declare const MASK_PATTERNS: Record<MaskPatternKey, MaskPattern>;
|
|
19
|
+
declare function applyMask(opts: {
|
|
20
|
+
value: string;
|
|
21
|
+
pattern: string;
|
|
22
|
+
currency?: string;
|
|
23
|
+
locale?: string;
|
|
24
|
+
mask?: MaskPatternKey | MaskPattern;
|
|
25
|
+
}): string;
|
|
26
|
+
declare function applyCurrencyMask(opts: {
|
|
27
|
+
value: string;
|
|
28
|
+
currency?: string;
|
|
29
|
+
locale?: string;
|
|
30
|
+
}): string;
|
|
31
|
+
declare function applyPercentageMask(value: string): string;
|
|
32
|
+
declare function getUnmaskedValue(opts: {
|
|
33
|
+
value: string;
|
|
34
|
+
currency?: string;
|
|
35
|
+
locale?: string;
|
|
36
|
+
transform?: (value: string, opts?: TransformOptions) => string;
|
|
37
|
+
}): string;
|
|
38
|
+
declare function toUnmaskedIndex(opts: {
|
|
39
|
+
masked: string;
|
|
40
|
+
pattern: string;
|
|
41
|
+
caret: number;
|
|
42
|
+
}): number;
|
|
43
|
+
declare function fromUnmaskedIndex(opts: {
|
|
44
|
+
masked: string;
|
|
45
|
+
pattern: string;
|
|
46
|
+
unmaskedIndex: number;
|
|
47
|
+
}): number;
|
|
48
|
+
interface MaskInputProps extends React.ComponentProps<"input"> {
|
|
49
|
+
value?: string;
|
|
50
|
+
defaultValue?: string;
|
|
51
|
+
onValueChange?: (maskedValue: string, unmaskedValue: string) => void;
|
|
52
|
+
onValidate?: (isValid: boolean, unmaskedValue: string) => void;
|
|
53
|
+
validationMode?: "onChange" | "onBlur" | "onSubmit" | "onTouched" | "all";
|
|
54
|
+
mask?: MaskPatternKey | MaskPattern;
|
|
55
|
+
maskPlaceholder?: string;
|
|
56
|
+
currency?: string;
|
|
57
|
+
locale?: string;
|
|
58
|
+
asChild?: boolean;
|
|
59
|
+
invalid?: boolean;
|
|
60
|
+
withoutMask?: boolean;
|
|
61
|
+
}
|
|
62
|
+
declare function MaskInput(props: MaskInputProps): react_jsx_runtime.JSX.Element;
|
|
63
|
+
|
|
64
|
+
export { MASK_PATTERNS, MaskInput, type MaskInputProps, type MaskPattern, applyCurrencyMask, applyMask, applyPercentageMask, fromUnmaskedIndex, getUnmaskedValue, toUnmaskedIndex };
|