@work-rjkashyap/unified-ui 0.3.4 → 0.3.6
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/CHANGELOG.md +105 -0
- package/LICENSE +21 -0
- package/dist/components/accordion.cjs +225 -0
- package/dist/components/accordion.d.cts +157 -0
- package/dist/components/accordion.d.ts +157 -0
- package/dist/components/accordion.mjs +199 -0
- package/dist/components/alert-dialog.cjs +246 -0
- package/dist/components/alert-dialog.d.cts +61 -0
- package/dist/components/alert-dialog.d.ts +61 -0
- package/dist/components/alert-dialog.mjs +218 -0
- package/dist/components/alert.cjs +401 -0
- package/dist/components/alert.d.cts +217 -0
- package/dist/components/alert.d.ts +217 -0
- package/dist/components/alert.mjs +374 -0
- package/dist/components/aspect-ratio.cjs +45 -0
- package/dist/components/aspect-ratio.d.cts +10 -0
- package/dist/components/aspect-ratio.d.ts +10 -0
- package/dist/components/aspect-ratio.mjs +23 -0
- package/dist/components/avatar.cjs +348 -0
- package/dist/components/avatar.d.cts +198 -0
- package/dist/components/avatar.d.ts +198 -0
- package/dist/components/avatar.mjs +329 -0
- package/dist/components/badge.cjs +325 -0
- package/dist/components/badge.d.cts +259 -0
- package/dist/components/badge.d.ts +259 -0
- package/dist/components/badge.mjs +298 -0
- package/dist/components/banner.cjs +147 -0
- package/dist/components/banner.d.cts +31 -0
- package/dist/components/banner.d.ts +31 -0
- package/dist/components/banner.mjs +122 -0
- package/dist/components/breadcrumb.cjs +266 -0
- package/dist/components/breadcrumb.d.cts +159 -0
- package/dist/components/breadcrumb.d.ts +159 -0
- package/dist/components/breadcrumb.mjs +235 -0
- package/dist/components/button.cjs +254 -0
- package/dist/components/button.d.cts +126 -0
- package/dist/components/button.d.ts +126 -0
- package/dist/components/button.mjs +229 -0
- package/dist/components/calendar.cjs +511 -0
- package/dist/components/calendar.d.cts +94 -0
- package/dist/components/calendar.d.ts +94 -0
- package/dist/components/calendar.mjs +492 -0
- package/dist/components/card.cjs +234 -0
- package/dist/components/card.d.cts +190 -0
- package/dist/components/card.d.ts +190 -0
- package/dist/components/card.mjs +210 -0
- package/dist/components/carousel.cjs +234 -0
- package/dist/components/carousel.d.cts +30 -0
- package/dist/components/carousel.d.ts +30 -0
- package/dist/components/carousel.mjs +217 -0
- package/dist/components/chart.cjs +122 -0
- package/dist/components/chart.d.cts +103 -0
- package/dist/components/chart.d.ts +103 -0
- package/dist/components/chart.mjs +96 -0
- package/dist/components/checkbox.cjs +318 -0
- package/dist/components/checkbox.d.cts +182 -0
- package/dist/components/checkbox.d.ts +182 -0
- package/dist/components/checkbox.mjs +296 -0
- package/dist/components/code-highlight.cjs +335 -0
- package/dist/components/code-highlight.d.cts +18 -0
- package/dist/components/code-highlight.d.ts +18 -0
- package/dist/components/code-highlight.mjs +308 -0
- package/dist/components/code.cjs +265 -0
- package/dist/components/code.d.cts +40 -0
- package/dist/components/code.d.ts +40 -0
- package/dist/components/code.mjs +243 -0
- package/dist/components/collapsible.cjs +143 -0
- package/dist/components/collapsible.d.cts +159 -0
- package/dist/components/collapsible.d.ts +159 -0
- package/dist/components/collapsible.mjs +123 -0
- package/dist/components/color-picker.cjs +348 -0
- package/dist/components/color-picker.d.cts +35 -0
- package/dist/components/color-picker.d.ts +35 -0
- package/dist/components/color-picker.mjs +331 -0
- package/dist/components/combobox.cjs +584 -0
- package/dist/components/combobox.d.cts +183 -0
- package/dist/components/combobox.d.ts +183 -0
- package/dist/components/combobox.mjs +571 -0
- package/dist/components/command.cjs +329 -0
- package/dist/components/command.d.cts +97 -0
- package/dist/components/command.d.ts +97 -0
- package/dist/components/command.mjs +311 -0
- package/dist/components/confirm-dialog.cjs +100 -0
- package/dist/components/confirm-dialog.d.cts +25 -0
- package/dist/components/confirm-dialog.d.ts +25 -0
- package/dist/components/confirm-dialog.mjs +86 -0
- package/dist/components/context-menu.cjs +325 -0
- package/dist/components/context-menu.d.cts +259 -0
- package/dist/components/context-menu.d.ts +259 -0
- package/dist/components/context-menu.mjs +290 -0
- package/dist/components/copy-button.cjs +203 -0
- package/dist/components/copy-button.d.cts +22 -0
- package/dist/components/copy-button.d.ts +22 -0
- package/dist/components/copy-button.mjs +178 -0
- package/dist/components/data-list.cjs +140 -0
- package/dist/components/data-list.d.cts +36 -0
- package/dist/components/data-list.d.ts +36 -0
- package/dist/components/data-list.mjs +113 -0
- package/dist/components/data-table-toolbar.cjs +338 -0
- package/dist/components/data-table-toolbar.d.cts +84 -0
- package/dist/components/data-table-toolbar.d.ts +84 -0
- package/dist/components/data-table-toolbar.mjs +320 -0
- package/dist/components/data-table.cjs +1324 -0
- package/dist/components/data-table.d.cts +349 -0
- package/dist/components/data-table.d.ts +349 -0
- package/dist/components/data-table.mjs +1323 -0
- package/dist/components/date-picker.cjs +282 -0
- package/dist/components/date-picker.d.cts +97 -0
- package/dist/components/date-picker.d.ts +97 -0
- package/dist/components/date-picker.mjs +258 -0
- package/dist/components/dialog.cjs +319 -0
- package/dist/components/dialog.d.cts +74 -0
- package/dist/components/dialog.d.ts +74 -0
- package/dist/components/dialog.mjs +292 -0
- package/dist/components/drawer.cjs +262 -0
- package/dist/components/drawer.d.cts +113 -0
- package/dist/components/drawer.d.ts +113 -0
- package/dist/components/drawer.mjs +230 -0
- package/dist/components/dropdown-menu.cjs +328 -0
- package/dist/components/dropdown-menu.d.cts +95 -0
- package/dist/components/dropdown-menu.d.ts +95 -0
- package/dist/components/dropdown-menu.mjs +293 -0
- package/dist/components/empty-state.cjs +123 -0
- package/dist/components/empty-state.d.cts +15 -0
- package/dist/components/empty-state.d.ts +15 -0
- package/dist/components/empty-state.mjs +99 -0
- package/dist/components/file-upload.cjs +442 -0
- package/dist/components/file-upload.d.cts +35 -0
- package/dist/components/file-upload.d.ts +35 -0
- package/dist/components/file-upload.mjs +423 -0
- package/dist/components/form-field.cjs +191 -0
- package/dist/components/form-field.d.cts +163 -0
- package/dist/components/form-field.d.ts +163 -0
- package/dist/components/form-field.mjs +167 -0
- package/dist/components/hover-card.cjs +99 -0
- package/dist/components/hover-card.d.cts +28 -0
- package/dist/components/hover-card.d.ts +28 -0
- package/dist/components/hover-card.mjs +75 -0
- package/dist/components/image-gallery.cjs +359 -0
- package/dist/components/image-gallery.d.cts +46 -0
- package/dist/components/image-gallery.d.ts +46 -0
- package/dist/components/image-gallery.mjs +340 -0
- package/dist/components/index.cjs +719 -0
- package/dist/components/index.d.cts +84 -0
- package/dist/components/index.d.ts +84 -0
- package/dist/components/index.mjs +771 -0
- package/dist/components/infinite-scroll.cjs +95 -0
- package/dist/components/infinite-scroll.d.cts +54 -0
- package/dist/components/infinite-scroll.d.ts +54 -0
- package/dist/components/infinite-scroll.mjs +71 -0
- package/dist/components/input-group.cjs +202 -0
- package/dist/components/input-group.d.cts +22 -0
- package/dist/components/input-group.d.ts +22 -0
- package/dist/components/input-group.mjs +178 -0
- package/dist/components/input.cjs +318 -0
- package/dist/components/input.d.cts +99 -0
- package/dist/components/input.d.ts +99 -0
- package/dist/components/input.mjs +296 -0
- package/dist/components/kbd.cjs +69 -0
- package/dist/components/kbd.d.cts +25 -0
- package/dist/components/kbd.d.ts +25 -0
- package/dist/components/kbd.mjs +44 -0
- package/dist/components/label.cjs +138 -0
- package/dist/components/label.d.cts +91 -0
- package/dist/components/label.d.ts +91 -0
- package/dist/components/label.mjs +113 -0
- package/dist/components/markdown.cjs +179 -0
- package/dist/components/markdown.d.cts +41 -0
- package/dist/components/markdown.d.ts +41 -0
- package/dist/components/markdown.mjs +155 -0
- package/dist/components/menubar.cjs +365 -0
- package/dist/components/menubar.d.cts +88 -0
- package/dist/components/menubar.d.ts +88 -0
- package/dist/components/menubar.mjs +329 -0
- package/dist/components/navigation-menu.cjs +280 -0
- package/dist/components/navigation-menu.d.cts +123 -0
- package/dist/components/navigation-menu.d.ts +123 -0
- package/dist/components/navigation-menu.mjs +250 -0
- package/dist/components/number-input.cjs +419 -0
- package/dist/components/number-input.d.cts +111 -0
- package/dist/components/number-input.d.ts +111 -0
- package/dist/components/number-input.mjs +400 -0
- package/dist/components/pagination.cjs +322 -0
- package/dist/components/pagination.d.cts +119 -0
- package/dist/components/pagination.d.ts +119 -0
- package/dist/components/pagination.mjs +297 -0
- package/dist/components/pin-input.cjs +321 -0
- package/dist/components/pin-input.d.cts +112 -0
- package/dist/components/pin-input.d.ts +112 -0
- package/dist/components/pin-input.mjs +303 -0
- package/dist/components/popover.cjs +194 -0
- package/dist/components/popover.d.cts +108 -0
- package/dist/components/popover.d.ts +108 -0
- package/dist/components/popover.mjs +168 -0
- package/dist/components/progress.cjs +237 -0
- package/dist/components/progress.d.cts +137 -0
- package/dist/components/progress.d.ts +137 -0
- package/dist/components/progress.mjs +211 -0
- package/dist/components/radio.cjs +344 -0
- package/dist/components/radio.d.cts +145 -0
- package/dist/components/radio.d.ts +145 -0
- package/dist/components/radio.mjs +320 -0
- package/dist/components/resizable.cjs +121 -0
- package/dist/components/resizable.d.cts +23 -0
- package/dist/components/resizable.d.ts +23 -0
- package/dist/components/resizable.mjs +99 -0
- package/dist/components/scroll-area.cjs +168 -0
- package/dist/components/scroll-area.d.cts +131 -0
- package/dist/components/scroll-area.d.ts +131 -0
- package/dist/components/scroll-area.mjs +143 -0
- package/dist/components/search-input.cjs +261 -0
- package/dist/components/search-input.d.cts +26 -0
- package/dist/components/search-input.d.ts +26 -0
- package/dist/components/search-input.mjs +243 -0
- package/dist/components/select.cjs +320 -0
- package/dist/components/select.d.cts +55 -0
- package/dist/components/select.d.ts +55 -0
- package/dist/components/select.mjs +288 -0
- package/dist/components/separator.cjs +193 -0
- package/dist/components/separator.d.cts +92 -0
- package/dist/components/separator.d.ts +92 -0
- package/dist/components/separator.mjs +170 -0
- package/dist/components/sheet.cjs +399 -0
- package/dist/components/sheet.d.cts +219 -0
- package/dist/components/sheet.d.ts +219 -0
- package/dist/components/sheet.mjs +379 -0
- package/dist/components/sidebar.cjs +1077 -0
- package/dist/components/sidebar.d.cts +733 -0
- package/dist/components/sidebar.d.ts +733 -0
- package/dist/components/sidebar.mjs +1033 -0
- package/dist/components/skeleton.cjs +210 -0
- package/dist/components/skeleton.d.cts +202 -0
- package/dist/components/skeleton.d.ts +202 -0
- package/dist/components/skeleton.mjs +182 -0
- package/dist/components/slider.cjs +319 -0
- package/dist/components/slider.d.cts +82 -0
- package/dist/components/slider.d.ts +82 -0
- package/dist/components/slider.mjs +296 -0
- package/dist/components/sonner.cjs +119 -0
- package/dist/components/sonner.d.cts +60 -0
- package/dist/components/sonner.d.ts +60 -0
- package/dist/components/sonner.mjs +94 -0
- package/dist/components/spinner.cjs +238 -0
- package/dist/components/spinner.d.cts +101 -0
- package/dist/components/spinner.d.ts +101 -0
- package/dist/components/spinner.mjs +213 -0
- package/dist/components/stat.cjs +180 -0
- package/dist/components/stat.d.cts +21 -0
- package/dist/components/stat.d.ts +21 -0
- package/dist/components/stat.mjs +161 -0
- package/dist/components/steps.cjs +228 -0
- package/dist/components/steps.d.cts +76 -0
- package/dist/components/steps.d.ts +76 -0
- package/dist/components/steps.mjs +207 -0
- package/dist/components/switch.cjs +243 -0
- package/dist/components/switch.d.cts +90 -0
- package/dist/components/switch.d.ts +90 -0
- package/dist/components/switch.mjs +228 -0
- package/dist/components/table.cjs +381 -0
- package/dist/components/table.d.cts +181 -0
- package/dist/components/table.d.ts +181 -0
- package/dist/components/table.mjs +349 -0
- package/dist/components/tabs.cjs +326 -0
- package/dist/components/tabs.d.cts +154 -0
- package/dist/components/tabs.d.ts +154 -0
- package/dist/components/tabs.mjs +304 -0
- package/dist/components/textarea.cjs +258 -0
- package/dist/components/textarea.d.cts +112 -0
- package/dist/components/textarea.d.ts +112 -0
- package/dist/components/textarea.mjs +233 -0
- package/dist/components/theme-toggle.cjs +282 -0
- package/dist/components/theme-toggle.d.cts +58 -0
- package/dist/components/theme-toggle.d.ts +58 -0
- package/dist/components/theme-toggle.mjs +258 -0
- package/dist/components/timeline.cjs +178 -0
- package/dist/components/timeline.d.cts +41 -0
- package/dist/components/timeline.d.ts +41 -0
- package/dist/components/timeline.mjs +157 -0
- package/dist/components/toast.cjs +546 -0
- package/dist/components/toast.d.cts +169 -0
- package/dist/components/toast.d.ts +169 -0
- package/dist/components/toast.mjs +528 -0
- package/dist/components/toggle-group.cjs +204 -0
- package/dist/components/toggle-group.d.cts +215 -0
- package/dist/components/toggle-group.d.ts +215 -0
- package/dist/components/toggle-group.mjs +180 -0
- package/dist/components/toggle.cjs +155 -0
- package/dist/components/toggle.d.cts +100 -0
- package/dist/components/toggle.d.ts +100 -0
- package/dist/components/toggle.mjs +130 -0
- package/dist/components/tooltip.cjs +155 -0
- package/dist/components/tooltip.d.cts +129 -0
- package/dist/components/tooltip.d.ts +129 -0
- package/dist/components/tooltip.mjs +132 -0
- package/dist/components/tree-view.cjs +450 -0
- package/dist/components/tree-view.d.cts +67 -0
- package/dist/components/tree-view.d.ts +67 -0
- package/dist/components/tree-view.mjs +433 -0
- package/dist/components/video-player.cjs +344 -0
- package/dist/components/video-player.d.cts +34 -0
- package/dist/components/video-player.d.ts +34 -0
- package/dist/components/video-player.mjs +320 -0
- package/dist/components/virtual-list.cjs +153 -0
- package/dist/components/virtual-list.d.cts +53 -0
- package/dist/components/virtual-list.d.ts +53 -0
- package/dist/components/virtual-list.mjs +136 -0
- package/dist/components/visually-hidden.cjs +43 -0
- package/dist/components/visually-hidden.d.cts +9 -0
- package/dist/components/visually-hidden.d.ts +9 -0
- package/dist/components/visually-hidden.mjs +21 -0
- package/dist/index.cjs +1081 -1957
- package/dist/index.d.cts +99 -11
- package/dist/index.d.ts +99 -11
- package/dist/index.mjs +1138 -16
- package/dist/motion/hooks.cjs +98 -0
- package/dist/motion/hooks.d.cts +32 -0
- package/dist/motion/hooks.d.ts +32 -0
- package/dist/motion/hooks.mjs +70 -0
- package/dist/motion/index.cjs +157 -0
- package/dist/motion/index.d.cts +5 -0
- package/dist/motion/index.d.ts +5 -0
- package/dist/motion/index.mjs +137 -0
- package/dist/motion/presets.cjs +609 -0
- package/dist/{motion.d.ts → motion/presets.d.cts} +1 -30
- package/dist/{motion.d.cts → motion/presets.d.ts} +1 -30
- package/dist/{chunk-PLRSH37T.mjs → motion/presets.mjs} +119 -126
- package/dist/primitives/container.cjs +88 -0
- package/dist/primitives/container.d.cts +82 -0
- package/dist/primitives/container.d.ts +82 -0
- package/dist/primitives/container.mjs +64 -0
- package/dist/primitives/divider.cjs +74 -0
- package/dist/primitives/divider.d.cts +30 -0
- package/dist/primitives/divider.d.ts +30 -0
- package/dist/primitives/divider.mjs +50 -0
- package/dist/primitives/index.cjs +54 -0
- package/dist/primitives/index.d.cts +6 -0
- package/dist/primitives/index.d.ts +6 -0
- package/dist/primitives/index.mjs +33 -0
- package/dist/primitives/stack.cjs +167 -0
- package/dist/primitives/stack.d.cts +132 -0
- package/dist/primitives/stack.d.ts +132 -0
- package/dist/primitives/stack.mjs +142 -0
- package/dist/primitives/typography.cjs +260 -0
- package/dist/primitives/typography.d.cts +157 -0
- package/dist/primitives/typography.d.ts +157 -0
- package/dist/primitives/typography.mjs +229 -0
- package/dist/theme/contract.cjs +246 -0
- package/dist/theme/contract.d.cts +76 -0
- package/dist/theme/contract.d.ts +76 -0
- package/dist/theme/contract.mjs +221 -0
- package/dist/theme/customizer-store.cjs +266 -0
- package/dist/theme/customizer-store.d.cts +76 -0
- package/dist/theme/customizer-store.d.ts +76 -0
- package/dist/theme/customizer-store.mjs +261 -0
- package/dist/theme/customizer.cjs +812 -0
- package/dist/theme/customizer.d.cts +13 -0
- package/dist/theme/customizer.d.ts +13 -0
- package/dist/theme/customizer.mjs +803 -0
- package/dist/theme/index.cjs +105 -0
- package/dist/theme/index.d.cts +13 -0
- package/dist/theme/index.d.ts +13 -0
- package/dist/theme/index.mjs +87 -0
- package/dist/theme/presets.cjs +1205 -0
- package/dist/theme/presets.d.cts +232 -0
- package/dist/theme/presets.d.ts +232 -0
- package/dist/theme/presets.mjs +1175 -0
- package/dist/theme/provider.cjs +122 -0
- package/dist/theme/provider.d.cts +57 -0
- package/dist/theme/provider.d.ts +57 -0
- package/dist/theme/provider.mjs +104 -0
- package/dist/{chunk-AAEWG5VR.mjs → tokens/colors.cjs} +94 -94
- package/dist/{z-index-DmLl6FUD.d.ts → tokens/colors.d.cts} +118 -72
- package/dist/{z-index-DmLl6FUD.d.cts → tokens/colors.d.ts} +118 -72
- package/dist/{chunk-6ZZZBOCH.cjs → tokens/colors.mjs} +47 -121
- package/dist/tokens/index.cjs +96 -0
- package/dist/tokens/index.d.cts +7 -0
- package/dist/tokens/index.d.ts +7 -0
- package/dist/tokens/index.mjs +71 -0
- package/dist/{chunk-XCKK6P46.cjs → tokens/motion.cjs} +46 -18
- package/dist/{motion-D9wQbcKL.d.cts → tokens/motion.d.cts} +1 -1
- package/dist/{motion-D9wQbcKL.d.ts → tokens/motion.d.ts} +1 -1
- package/dist/{chunk-EZ2L3XPS.mjs → tokens/motion.mjs} +16 -10
- package/dist/tokens/radius.cjs +41 -0
- package/dist/tokens/radius.d.cts +18 -0
- package/dist/tokens/radius.d.ts +18 -0
- package/dist/tokens/radius.mjs +17 -0
- package/dist/tokens/shadows.cjs +57 -0
- package/dist/tokens/shadows.d.cts +32 -0
- package/dist/tokens/shadows.d.ts +32 -0
- package/dist/tokens/shadows.mjs +32 -0
- package/dist/tokens/spacing.cjs +51 -0
- package/dist/tokens/spacing.d.cts +26 -0
- package/dist/tokens/spacing.d.ts +26 -0
- package/dist/{chunk-NMPHV6ZD.mjs → tokens/spacing.mjs} +4 -4
- package/dist/{chunk-ECIGDEAH.cjs → tokens/typography.cjs} +43 -16
- package/dist/{typography-DlvVjEdE.d.ts → tokens/typography.d.cts} +1 -1
- package/dist/{typography-DlvVjEdE.d.cts → tokens/typography.d.ts} +1 -1
- package/dist/{chunk-ITBG42M5.mjs → tokens/typography.mjs} +14 -9
- package/dist/tokens/z-index.cjs +47 -0
- package/dist/tokens/z-index.d.cts +24 -0
- package/dist/tokens/z-index.d.ts +24 -0
- package/dist/tokens/z-index.mjs +23 -0
- package/dist/utils/cn.cjs +102 -0
- package/dist/utils/cn.d.cts +84 -0
- package/dist/utils/cn.d.ts +84 -0
- package/dist/{chunk-ZT3PCXDF.mjs → utils/cn.mjs} +14 -7
- package/dist/{chunk-33QEKXRQ.cjs → utils/contrast.cjs} +68 -38
- package/dist/utils/contrast.d.cts +209 -0
- package/dist/utils/contrast.d.ts +209 -0
- package/dist/{chunk-5NZDQWRV.mjs → utils/contrast.mjs} +27 -18
- package/dist/utils/focus-ring.cjs +81 -0
- package/dist/utils/focus-ring.d.cts +80 -0
- package/dist/utils/focus-ring.d.ts +80 -0
- package/dist/utils/focus-ring.mjs +47 -0
- package/dist/utils/index.cjs +107 -0
- package/dist/utils/index.d.cts +6 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.mjs +88 -0
- package/dist/utils/types.cjs +38 -0
- package/dist/utils/types.d.cts +187 -0
- package/dist/utils/types.d.ts +187 -0
- package/dist/utils/types.mjs +13 -0
- package/package.json +191 -191
- package/dist/chunk-2JFREULQ.cjs +0 -29
- package/dist/chunk-3EHT6IOA.cjs +0 -49
- package/dist/chunk-4ON3M3OM.cjs +0 -73
- package/dist/chunk-A2DGHQL2.cjs +0 -21808
- package/dist/chunk-BJ55D5IK.mjs +0 -2433
- package/dist/chunk-F4JJFWWU.cjs +0 -604
- package/dist/chunk-FUWXGHWQ.cjs +0 -468
- package/dist/chunk-MBYCK2JJ.mjs +0 -37
- package/dist/chunk-OHEH57BV.mjs +0 -455
- package/dist/chunk-RUG3BW2B.cjs +0 -2471
- package/dist/chunk-XAIUX2YS.mjs +0 -21477
- package/dist/components.cjs +0 -1247
- package/dist/components.d.cts +0 -7881
- package/dist/components.d.ts +0 -7881
- package/dist/components.mjs +0 -6
- package/dist/motion.cjs +0 -264
- package/dist/motion.mjs +0 -3
- package/dist/primitives.cjs +0 -57
- package/dist/primitives.d.cts +0 -390
- package/dist/primitives.d.ts +0 -390
- package/dist/primitives.mjs +0 -4
- package/dist/theme.cjs +0 -159
- package/dist/theme.d.cts +0 -440
- package/dist/theme.d.ts +0 -440
- package/dist/theme.mjs +0 -6
- package/dist/tokens.cjs +0 -137
- package/dist/tokens.d.cts +0 -30
- package/dist/tokens.d.ts +0 -30
- package/dist/tokens.mjs +0 -4
- package/dist/utils.cjs +0 -164
- package/dist/utils.d.cts +0 -525
- package/dist/utils.d.ts +0 -525
- package/dist/utils.mjs +0 -3
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../utils/cn.mjs";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
|
+
const containerVariants = cva(
|
|
7
|
+
[
|
|
8
|
+
"flex w-full items-stretch overflow-hidden",
|
|
9
|
+
"rounded-md border bg-background",
|
|
10
|
+
"transition-[border-color,box-shadow] duration-fast",
|
|
11
|
+
"focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/20",
|
|
12
|
+
"has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50"
|
|
13
|
+
],
|
|
14
|
+
{
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: "border-input",
|
|
18
|
+
filled: "border-transparent bg-muted"
|
|
19
|
+
},
|
|
20
|
+
size: {
|
|
21
|
+
sm: "h-8 text-xs",
|
|
22
|
+
md: "h-9 text-sm",
|
|
23
|
+
lg: "h-10 text-sm"
|
|
24
|
+
},
|
|
25
|
+
error: {
|
|
26
|
+
true: "border-danger focus-within:border-danger focus-within:ring-danger/20",
|
|
27
|
+
false: ""
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: { variant: "default", size: "md", error: false }
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
const addonVariants = cva(
|
|
34
|
+
[
|
|
35
|
+
"inline-flex items-center justify-center shrink-0",
|
|
36
|
+
"bg-muted text-muted-foreground font-medium",
|
|
37
|
+
"select-none",
|
|
38
|
+
"border-border"
|
|
39
|
+
],
|
|
40
|
+
{
|
|
41
|
+
variants: {
|
|
42
|
+
position: {
|
|
43
|
+
left: "border-r",
|
|
44
|
+
right: "border-l"
|
|
45
|
+
},
|
|
46
|
+
size: {
|
|
47
|
+
sm: "text-xs px-2",
|
|
48
|
+
md: "text-sm px-3",
|
|
49
|
+
lg: "text-sm px-3"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
defaultVariants: { position: "left", size: "md" }
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
const iconSizeMap = {
|
|
56
|
+
sm: "[&>svg]:size-3.5",
|
|
57
|
+
md: "[&>svg]:size-4",
|
|
58
|
+
lg: "[&>svg]:size-4"
|
|
59
|
+
};
|
|
60
|
+
const prefixPaddingMap = {
|
|
61
|
+
sm: "pl-2",
|
|
62
|
+
md: "pl-3",
|
|
63
|
+
lg: "pl-3"
|
|
64
|
+
};
|
|
65
|
+
const suffixPaddingMap = {
|
|
66
|
+
sm: "pr-2",
|
|
67
|
+
md: "pr-3",
|
|
68
|
+
lg: "pr-3"
|
|
69
|
+
};
|
|
70
|
+
const inputLeftPaddingWithPrefix = {
|
|
71
|
+
sm: "pl-1.5",
|
|
72
|
+
md: "pl-2",
|
|
73
|
+
lg: "pl-2"
|
|
74
|
+
};
|
|
75
|
+
const inputLeftPaddingWithAddon = {
|
|
76
|
+
sm: "pl-2",
|
|
77
|
+
md: "pl-3",
|
|
78
|
+
lg: "pl-3"
|
|
79
|
+
};
|
|
80
|
+
const inputLeftPaddingWithoutPrefix = {
|
|
81
|
+
sm: "pl-2",
|
|
82
|
+
md: "pl-3",
|
|
83
|
+
lg: "pl-3"
|
|
84
|
+
};
|
|
85
|
+
const inputRightPaddingWithSuffix = {
|
|
86
|
+
sm: "pr-1.5",
|
|
87
|
+
md: "pr-2",
|
|
88
|
+
lg: "pr-2"
|
|
89
|
+
};
|
|
90
|
+
const inputRightPaddingWithAddon = {
|
|
91
|
+
sm: "pr-2",
|
|
92
|
+
md: "pr-3",
|
|
93
|
+
lg: "pr-3"
|
|
94
|
+
};
|
|
95
|
+
const inputRightPaddingWithoutSuffix = {
|
|
96
|
+
sm: "pr-2",
|
|
97
|
+
md: "pr-3",
|
|
98
|
+
lg: "pr-3"
|
|
99
|
+
};
|
|
100
|
+
const InputGroup = forwardRef(
|
|
101
|
+
function InputGroup2({
|
|
102
|
+
size = "md",
|
|
103
|
+
variant = "default",
|
|
104
|
+
prefix,
|
|
105
|
+
suffix,
|
|
106
|
+
addonLeft,
|
|
107
|
+
addonRight,
|
|
108
|
+
disabled = false,
|
|
109
|
+
error = false,
|
|
110
|
+
className,
|
|
111
|
+
inputClassName,
|
|
112
|
+
inputProps,
|
|
113
|
+
children
|
|
114
|
+
}, ref) {
|
|
115
|
+
const hasPrefix = !!prefix;
|
|
116
|
+
const hasSuffix = !!suffix;
|
|
117
|
+
const hasAddonRight = !!addonRight;
|
|
118
|
+
const inputPaddingLeft = hasPrefix ? inputLeftPaddingWithPrefix[size] : addonLeft ? inputLeftPaddingWithAddon[size] : inputLeftPaddingWithoutPrefix[size];
|
|
119
|
+
const inputPaddingRight = hasSuffix ? inputRightPaddingWithSuffix[size] : hasAddonRight ? inputRightPaddingWithAddon[size] : inputRightPaddingWithoutSuffix[size];
|
|
120
|
+
return /* @__PURE__ */ jsxs(
|
|
121
|
+
"div",
|
|
122
|
+
{
|
|
123
|
+
ref,
|
|
124
|
+
className: cn(containerVariants({ variant, size, error }), className),
|
|
125
|
+
"data-ds": "",
|
|
126
|
+
"data-ds-component": "input-group",
|
|
127
|
+
"data-ds-size": size,
|
|
128
|
+
"data-ds-error": error ? "" : void 0,
|
|
129
|
+
children: [
|
|
130
|
+
addonLeft && /* @__PURE__ */ jsx("div", { className: cn(addonVariants({ position: "left", size })), children: addonLeft }),
|
|
131
|
+
prefix && /* @__PURE__ */ jsx(
|
|
132
|
+
"span",
|
|
133
|
+
{
|
|
134
|
+
className: cn(
|
|
135
|
+
"inline-flex items-center justify-center shrink-0",
|
|
136
|
+
"text-muted-foreground pointer-events-none",
|
|
137
|
+
prefixPaddingMap[size],
|
|
138
|
+
iconSizeMap[size]
|
|
139
|
+
),
|
|
140
|
+
children: prefix
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
children ? /* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center min-w-0", children }) : /* @__PURE__ */ jsx(
|
|
144
|
+
"input",
|
|
145
|
+
{
|
|
146
|
+
disabled,
|
|
147
|
+
className: cn(
|
|
148
|
+
"flex-1 h-full bg-transparent outline-none text-foreground min-w-0",
|
|
149
|
+
"placeholder:text-muted-foreground",
|
|
150
|
+
inputPaddingLeft,
|
|
151
|
+
inputPaddingRight,
|
|
152
|
+
inputClassName
|
|
153
|
+
),
|
|
154
|
+
...inputProps
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
suffix && /* @__PURE__ */ jsx(
|
|
158
|
+
"span",
|
|
159
|
+
{
|
|
160
|
+
className: cn(
|
|
161
|
+
"inline-flex items-center justify-center shrink-0",
|
|
162
|
+
"text-muted-foreground pointer-events-none",
|
|
163
|
+
suffixPaddingMap[size],
|
|
164
|
+
iconSizeMap[size]
|
|
165
|
+
),
|
|
166
|
+
children: suffix
|
|
167
|
+
}
|
|
168
|
+
),
|
|
169
|
+
addonRight && /* @__PURE__ */ jsx("div", { className: cn(addonVariants({ position: "right", size })), children: addonRight })
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
InputGroup.displayName = "InputGroup";
|
|
176
|
+
export {
|
|
177
|
+
InputGroup
|
|
178
|
+
};
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var input_exports = {};
|
|
21
|
+
__export(input_exports, {
|
|
22
|
+
Input: () => Input,
|
|
23
|
+
inputVariants: () => inputVariants
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(input_exports);
|
|
26
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
27
|
+
var import_cn = require("../utils/cn.cjs");
|
|
28
|
+
var import_focus_ring = require("../utils/focus-ring.cjs");
|
|
29
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
30
|
+
var import_react = require("react");
|
|
31
|
+
const inputVariants = (0, import_class_variance_authority.cva)(
|
|
32
|
+
// Base styles — shared across all variants and sizes
|
|
33
|
+
[
|
|
34
|
+
// Layout
|
|
35
|
+
"flex w-full",
|
|
36
|
+
// Typography
|
|
37
|
+
"text-sm leading-5",
|
|
38
|
+
// Shape
|
|
39
|
+
"rounded-md",
|
|
40
|
+
// Border
|
|
41
|
+
"border",
|
|
42
|
+
// Colors
|
|
43
|
+
"bg-background text-input-foreground",
|
|
44
|
+
"placeholder:text-input-placeholder",
|
|
45
|
+
// Transition
|
|
46
|
+
"transition-[color,background-color,border-color,box-shadow,opacity]",
|
|
47
|
+
"duration-fast ease-standard",
|
|
48
|
+
// Focus ring — WCAG AA compliant, visible on keyboard navigation only
|
|
49
|
+
import_focus_ring.focusRingClasses,
|
|
50
|
+
// Disabled
|
|
51
|
+
"disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-disabled disabled:text-disabled-foreground",
|
|
52
|
+
// Read-only
|
|
53
|
+
"read-only:bg-muted read-only:cursor-default",
|
|
54
|
+
// File input styling
|
|
55
|
+
"file:border-0 file:bg-transparent file:text-sm file:font-medium"
|
|
56
|
+
],
|
|
57
|
+
{
|
|
58
|
+
variants: {
|
|
59
|
+
// -----------------------------------------------------------------
|
|
60
|
+
// Visual Variants
|
|
61
|
+
// -----------------------------------------------------------------
|
|
62
|
+
variant: {
|
|
63
|
+
/**
|
|
64
|
+
* Default — standard input with muted border.
|
|
65
|
+
*/
|
|
66
|
+
default: [
|
|
67
|
+
"border-input",
|
|
68
|
+
"hover:border-border-strong",
|
|
69
|
+
"focus-visible:border-border-strong"
|
|
70
|
+
],
|
|
71
|
+
/**
|
|
72
|
+
* Error — validation failed. Uses danger color.
|
|
73
|
+
*/
|
|
74
|
+
error: [
|
|
75
|
+
"border-danger",
|
|
76
|
+
"text-foreground",
|
|
77
|
+
"focus-visible:border-danger",
|
|
78
|
+
"placeholder:text-input-placeholder"
|
|
79
|
+
],
|
|
80
|
+
/**
|
|
81
|
+
* Success — validation passed. Uses success color.
|
|
82
|
+
*/
|
|
83
|
+
success: [
|
|
84
|
+
"border-success",
|
|
85
|
+
"text-foreground",
|
|
86
|
+
"focus-visible:border-success",
|
|
87
|
+
"placeholder:text-input-placeholder"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
// -----------------------------------------------------------------
|
|
91
|
+
// Size Variants
|
|
92
|
+
// -----------------------------------------------------------------
|
|
93
|
+
size: {
|
|
94
|
+
/**
|
|
95
|
+
* Small — compact for dense UIs, tables, toolbars.
|
|
96
|
+
* Height: 32px (h-8)
|
|
97
|
+
*/
|
|
98
|
+
sm: "h-8 px-2.5 text-xs",
|
|
99
|
+
/**
|
|
100
|
+
* Medium — default size for most inputs.
|
|
101
|
+
* Height: var(--ds-control-height)
|
|
102
|
+
*/
|
|
103
|
+
md: "h-(--ds-control-height) px-3 text-sm",
|
|
104
|
+
/**
|
|
105
|
+
* Large — prominent inputs for hero sections, forms.
|
|
106
|
+
* Height: 40px (h-10)
|
|
107
|
+
*/
|
|
108
|
+
lg: "h-10 px-3.5 text-sm"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
defaultVariants: {
|
|
112
|
+
variant: "default",
|
|
113
|
+
size: "md"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
const inputWrapperVariants = (0, import_class_variance_authority.cva)(["relative flex items-center w-full"], {
|
|
118
|
+
variants: {
|
|
119
|
+
size: {
|
|
120
|
+
sm: "",
|
|
121
|
+
md: "",
|
|
122
|
+
lg: ""
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
defaultVariants: {
|
|
126
|
+
size: "md"
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
const iconSizeMap = {
|
|
130
|
+
sm: "[&>svg]:size-3.5",
|
|
131
|
+
md: "[&>svg]:size-4",
|
|
132
|
+
lg: "[&>svg]:size-4"
|
|
133
|
+
};
|
|
134
|
+
const iconPaddingLeftMap = {
|
|
135
|
+
sm: "pl-7",
|
|
136
|
+
md: "pl-9",
|
|
137
|
+
lg: "pl-10"
|
|
138
|
+
};
|
|
139
|
+
const iconPaddingRightMap = {
|
|
140
|
+
sm: "pr-7",
|
|
141
|
+
md: "pr-9",
|
|
142
|
+
lg: "pr-10"
|
|
143
|
+
};
|
|
144
|
+
const iconLeftPositionMap = {
|
|
145
|
+
sm: "left-2",
|
|
146
|
+
md: "left-3",
|
|
147
|
+
lg: "left-3.5"
|
|
148
|
+
};
|
|
149
|
+
const iconRightPositionMap = {
|
|
150
|
+
sm: "right-2",
|
|
151
|
+
md: "right-3",
|
|
152
|
+
lg: "right-3.5"
|
|
153
|
+
};
|
|
154
|
+
function ClearButton({
|
|
155
|
+
size,
|
|
156
|
+
onClick
|
|
157
|
+
}) {
|
|
158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
159
|
+
"button",
|
|
160
|
+
{
|
|
161
|
+
type: "button",
|
|
162
|
+
onClick,
|
|
163
|
+
className: (0, import_cn.cn)(
|
|
164
|
+
"absolute flex items-center justify-center",
|
|
165
|
+
"text-muted-foreground hover:text-foreground",
|
|
166
|
+
"transition-colors duration-fast",
|
|
167
|
+
import_focus_ring.focusRingInsetClasses,
|
|
168
|
+
"rounded-sm",
|
|
169
|
+
iconRightPositionMap[size],
|
|
170
|
+
iconSizeMap[size]
|
|
171
|
+
),
|
|
172
|
+
"aria-label": "Clear input",
|
|
173
|
+
tabIndex: -1,
|
|
174
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
175
|
+
"svg",
|
|
176
|
+
{
|
|
177
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
178
|
+
viewBox: "0 0 24 24",
|
|
179
|
+
fill: "none",
|
|
180
|
+
stroke: "currentColor",
|
|
181
|
+
strokeWidth: "2",
|
|
182
|
+
strokeLinecap: "round",
|
|
183
|
+
strokeLinejoin: "round",
|
|
184
|
+
className: size === "sm" ? "size-3.5" : "size-4",
|
|
185
|
+
"aria-hidden": "true",
|
|
186
|
+
children: [
|
|
187
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M18 6 6 18" }),
|
|
188
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m6 6 12 12" })
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
)
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
const Input = (0, import_react.forwardRef)(function Input2({
|
|
196
|
+
variant = "default",
|
|
197
|
+
size = "md",
|
|
198
|
+
iconLeft,
|
|
199
|
+
iconRight,
|
|
200
|
+
clearable = false,
|
|
201
|
+
onClear,
|
|
202
|
+
wrapperClassName,
|
|
203
|
+
className,
|
|
204
|
+
disabled,
|
|
205
|
+
readOnly,
|
|
206
|
+
value,
|
|
207
|
+
defaultValue,
|
|
208
|
+
"aria-invalid": ariaInvalid,
|
|
209
|
+
...rest
|
|
210
|
+
}, ref) {
|
|
211
|
+
const internalRef = (0, import_react.useRef)(null);
|
|
212
|
+
const hasIcons = !!iconLeft || !!iconRight || clearable;
|
|
213
|
+
const showClear = clearable && !disabled && !readOnly && (value !== void 0 ? String(value).length > 0 : false);
|
|
214
|
+
const handleClear = (0, import_react.useCallback)(() => {
|
|
215
|
+
if (onClear) {
|
|
216
|
+
onClear();
|
|
217
|
+
} else if (internalRef.current) {
|
|
218
|
+
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
|
|
219
|
+
window.HTMLInputElement.prototype,
|
|
220
|
+
"value"
|
|
221
|
+
)?.set;
|
|
222
|
+
if (nativeInputValueSetter) {
|
|
223
|
+
nativeInputValueSetter.call(internalRef.current, "");
|
|
224
|
+
internalRef.current.dispatchEvent(
|
|
225
|
+
new Event("input", { bubbles: true })
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
internalRef.current?.focus();
|
|
230
|
+
}, [onClear]);
|
|
231
|
+
const resolvedAriaInvalid = ariaInvalid !== void 0 ? ariaInvalid : variant === "error" ? true : void 0;
|
|
232
|
+
const inputClasses = (0, import_cn.cn)(
|
|
233
|
+
inputVariants({ variant, size }),
|
|
234
|
+
iconLeft && iconPaddingLeftMap[size],
|
|
235
|
+
(iconRight || showClear) && iconPaddingRightMap[size],
|
|
236
|
+
className
|
|
237
|
+
);
|
|
238
|
+
if (!hasIcons) {
|
|
239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
240
|
+
"input",
|
|
241
|
+
{
|
|
242
|
+
ref: (0, import_cn.composeRefs)(internalRef, ref),
|
|
243
|
+
disabled,
|
|
244
|
+
readOnly,
|
|
245
|
+
value,
|
|
246
|
+
defaultValue,
|
|
247
|
+
"aria-invalid": resolvedAriaInvalid,
|
|
248
|
+
"aria-disabled": disabled || void 0,
|
|
249
|
+
className: inputClasses,
|
|
250
|
+
"data-ds": "",
|
|
251
|
+
"data-ds-component": "input",
|
|
252
|
+
"data-ds-variant": variant,
|
|
253
|
+
"data-ds-size": size,
|
|
254
|
+
...rest
|
|
255
|
+
}
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
259
|
+
"div",
|
|
260
|
+
{
|
|
261
|
+
className: (0, import_cn.cn)(inputWrapperVariants({ size }), wrapperClassName),
|
|
262
|
+
"data-ds": "",
|
|
263
|
+
"data-ds-component": "input-wrapper",
|
|
264
|
+
children: [
|
|
265
|
+
iconLeft && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
266
|
+
"span",
|
|
267
|
+
{
|
|
268
|
+
className: (0, import_cn.cn)(
|
|
269
|
+
"pointer-events-none absolute flex items-center justify-center",
|
|
270
|
+
"text-muted-foreground",
|
|
271
|
+
iconLeftPositionMap[size],
|
|
272
|
+
iconSizeMap[size]
|
|
273
|
+
),
|
|
274
|
+
"aria-hidden": "true",
|
|
275
|
+
children: iconLeft
|
|
276
|
+
}
|
|
277
|
+
),
|
|
278
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
279
|
+
"input",
|
|
280
|
+
{
|
|
281
|
+
ref: (0, import_cn.composeRefs)(internalRef, ref),
|
|
282
|
+
disabled,
|
|
283
|
+
readOnly,
|
|
284
|
+
value,
|
|
285
|
+
defaultValue,
|
|
286
|
+
"aria-invalid": resolvedAriaInvalid,
|
|
287
|
+
"aria-disabled": disabled || void 0,
|
|
288
|
+
className: inputClasses,
|
|
289
|
+
"data-ds": "",
|
|
290
|
+
"data-ds-component": "input",
|
|
291
|
+
"data-ds-variant": variant,
|
|
292
|
+
"data-ds-size": size,
|
|
293
|
+
...rest
|
|
294
|
+
}
|
|
295
|
+
),
|
|
296
|
+
showClear ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ClearButton, { size, onClick: handleClear }) : iconRight && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
297
|
+
"span",
|
|
298
|
+
{
|
|
299
|
+
className: (0, import_cn.cn)(
|
|
300
|
+
"pointer-events-none absolute flex items-center justify-center",
|
|
301
|
+
"text-muted-foreground",
|
|
302
|
+
iconRightPositionMap[size],
|
|
303
|
+
iconSizeMap[size]
|
|
304
|
+
),
|
|
305
|
+
"aria-hidden": "true",
|
|
306
|
+
children: iconRight
|
|
307
|
+
}
|
|
308
|
+
)
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
);
|
|
312
|
+
});
|
|
313
|
+
Input.displayName = "Input";
|
|
314
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
315
|
+
0 && (module.exports = {
|
|
316
|
+
Input,
|
|
317
|
+
inputVariants
|
|
318
|
+
});
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const inputVariants: (props?: ({
|
|
7
|
+
variant?: "success" | "default" | "error" | null | undefined;
|
|
8
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
type InputVariant = "default" | "error" | "success";
|
|
11
|
+
type InputSize = "sm" | "md" | "lg";
|
|
12
|
+
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
13
|
+
/**
|
|
14
|
+
* Visual variant of the input.
|
|
15
|
+
* @default "default"
|
|
16
|
+
*/
|
|
17
|
+
variant?: InputVariant;
|
|
18
|
+
/**
|
|
19
|
+
* Size of the input.
|
|
20
|
+
* @default "md"
|
|
21
|
+
*/
|
|
22
|
+
size?: InputSize;
|
|
23
|
+
/**
|
|
24
|
+
* Icon to display on the left side of the input.
|
|
25
|
+
* Typically a Lucide icon component rendered at the appropriate size.
|
|
26
|
+
*/
|
|
27
|
+
iconLeft?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Icon to display on the right side of the input.
|
|
30
|
+
* If `clearable` is true and there is a value, the clear button
|
|
31
|
+
* takes precedence over `iconRight`.
|
|
32
|
+
*/
|
|
33
|
+
iconRight?: ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to show a clear button when the input has a value.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
clearable?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Callback fired when the clear button is clicked.
|
|
41
|
+
* If not provided, the input will dispatch a native change event
|
|
42
|
+
* with an empty string value.
|
|
43
|
+
*/
|
|
44
|
+
onClear?: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Additional CSS classes for the outer wrapper element.
|
|
47
|
+
* Use this when you need to control the width/margin of the input group.
|
|
48
|
+
*/
|
|
49
|
+
wrapperClassName?: string;
|
|
50
|
+
/** Additional CSS classes to merge on the input element. */
|
|
51
|
+
className?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Input — a text input for capturing user data.
|
|
55
|
+
*
|
|
56
|
+
* Built on the design system's token layer with CVA for variant composition.
|
|
57
|
+
* All colors, radii, spacing, and transitions come from CSS custom properties
|
|
58
|
+
* defined in design-system.css.
|
|
59
|
+
*
|
|
60
|
+
* Accessibility:
|
|
61
|
+
* - Focus ring visible on keyboard navigation (focus-visible)
|
|
62
|
+
* - Disabled state uses both `disabled` attribute and `aria-disabled`
|
|
63
|
+
* - Error variant sets `aria-invalid="true"` automatically
|
|
64
|
+
* - Supports `aria-describedby` for linking to error/helper messages
|
|
65
|
+
* - Clear button has `aria-label` and is excluded from tab order
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* // Basic usage
|
|
70
|
+
* <Input placeholder="Enter your name" />
|
|
71
|
+
*
|
|
72
|
+
* // With variant
|
|
73
|
+
* <Input variant="error" aria-describedby="email-error" />
|
|
74
|
+
*
|
|
75
|
+
* // With icons
|
|
76
|
+
* <Input iconLeft={<SearchIcon />} placeholder="Search..." />
|
|
77
|
+
* <Input iconRight={<MailIcon />} placeholder="Email" />
|
|
78
|
+
*
|
|
79
|
+
* // Clearable
|
|
80
|
+
* <Input
|
|
81
|
+
* clearable
|
|
82
|
+
* value={value}
|
|
83
|
+
* onChange={(e) => setValue(e.target.value)}
|
|
84
|
+
* onClear={() => setValue("")}
|
|
85
|
+
* />
|
|
86
|
+
*
|
|
87
|
+
* // Sizes
|
|
88
|
+
* <Input size="sm" placeholder="Small" />
|
|
89
|
+
* <Input size="md" placeholder="Medium" />
|
|
90
|
+
* <Input size="lg" placeholder="Large" />
|
|
91
|
+
*
|
|
92
|
+
* // Disabled / Read-only
|
|
93
|
+
* <Input disabled placeholder="Disabled" />
|
|
94
|
+
* <Input readOnly value="Read-only value" />
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
98
|
+
|
|
99
|
+
export { Input, type InputProps, type InputSize, type InputVariant, inputVariants };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const inputVariants: (props?: ({
|
|
7
|
+
variant?: "success" | "default" | "error" | null | undefined;
|
|
8
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
type InputVariant = "default" | "error" | "success";
|
|
11
|
+
type InputSize = "sm" | "md" | "lg";
|
|
12
|
+
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
13
|
+
/**
|
|
14
|
+
* Visual variant of the input.
|
|
15
|
+
* @default "default"
|
|
16
|
+
*/
|
|
17
|
+
variant?: InputVariant;
|
|
18
|
+
/**
|
|
19
|
+
* Size of the input.
|
|
20
|
+
* @default "md"
|
|
21
|
+
*/
|
|
22
|
+
size?: InputSize;
|
|
23
|
+
/**
|
|
24
|
+
* Icon to display on the left side of the input.
|
|
25
|
+
* Typically a Lucide icon component rendered at the appropriate size.
|
|
26
|
+
*/
|
|
27
|
+
iconLeft?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Icon to display on the right side of the input.
|
|
30
|
+
* If `clearable` is true and there is a value, the clear button
|
|
31
|
+
* takes precedence over `iconRight`.
|
|
32
|
+
*/
|
|
33
|
+
iconRight?: ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to show a clear button when the input has a value.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
clearable?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Callback fired when the clear button is clicked.
|
|
41
|
+
* If not provided, the input will dispatch a native change event
|
|
42
|
+
* with an empty string value.
|
|
43
|
+
*/
|
|
44
|
+
onClear?: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Additional CSS classes for the outer wrapper element.
|
|
47
|
+
* Use this when you need to control the width/margin of the input group.
|
|
48
|
+
*/
|
|
49
|
+
wrapperClassName?: string;
|
|
50
|
+
/** Additional CSS classes to merge on the input element. */
|
|
51
|
+
className?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Input — a text input for capturing user data.
|
|
55
|
+
*
|
|
56
|
+
* Built on the design system's token layer with CVA for variant composition.
|
|
57
|
+
* All colors, radii, spacing, and transitions come from CSS custom properties
|
|
58
|
+
* defined in design-system.css.
|
|
59
|
+
*
|
|
60
|
+
* Accessibility:
|
|
61
|
+
* - Focus ring visible on keyboard navigation (focus-visible)
|
|
62
|
+
* - Disabled state uses both `disabled` attribute and `aria-disabled`
|
|
63
|
+
* - Error variant sets `aria-invalid="true"` automatically
|
|
64
|
+
* - Supports `aria-describedby` for linking to error/helper messages
|
|
65
|
+
* - Clear button has `aria-label` and is excluded from tab order
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* // Basic usage
|
|
70
|
+
* <Input placeholder="Enter your name" />
|
|
71
|
+
*
|
|
72
|
+
* // With variant
|
|
73
|
+
* <Input variant="error" aria-describedby="email-error" />
|
|
74
|
+
*
|
|
75
|
+
* // With icons
|
|
76
|
+
* <Input iconLeft={<SearchIcon />} placeholder="Search..." />
|
|
77
|
+
* <Input iconRight={<MailIcon />} placeholder="Email" />
|
|
78
|
+
*
|
|
79
|
+
* // Clearable
|
|
80
|
+
* <Input
|
|
81
|
+
* clearable
|
|
82
|
+
* value={value}
|
|
83
|
+
* onChange={(e) => setValue(e.target.value)}
|
|
84
|
+
* onClear={() => setValue("")}
|
|
85
|
+
* />
|
|
86
|
+
*
|
|
87
|
+
* // Sizes
|
|
88
|
+
* <Input size="sm" placeholder="Small" />
|
|
89
|
+
* <Input size="md" placeholder="Medium" />
|
|
90
|
+
* <Input size="lg" placeholder="Large" />
|
|
91
|
+
*
|
|
92
|
+
* // Disabled / Read-only
|
|
93
|
+
* <Input disabled placeholder="Disabled" />
|
|
94
|
+
* <Input readOnly value="Read-only value" />
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
98
|
+
|
|
99
|
+
export { Input, type InputProps, type InputSize, type InputVariant, inputVariants };
|