@work-rjkashyap/unified-ui 0.3.3 → 0.3.5
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 -1933
- 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-IVZAB7BV.mjs → tokens/colors.cjs} +212 -86
- package/dist/{z-index-Dd8IllRx.d.cts → tokens/colors.d.cts} +235 -72
- package/dist/{z-index-Dd8IllRx.d.ts → tokens/colors.d.ts} +235 -72
- package/dist/{chunk-ZBGR7MUW.cjs → tokens/colors.mjs} +165 -104
- 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-5TP7J7T4.cjs +0 -1766
- package/dist/chunk-A2DGHQL2.cjs +0 -21808
- package/dist/chunk-EQWESXRH.mjs +0 -1735
- 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-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 -131
- package/dist/theme.d.cts +0 -414
- package/dist/theme.d.ts +0 -414
- 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,76 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
type StepsOrientation = "horizontal" | "vertical";
|
|
5
|
+
type StepsVariant = "default" | "outline" | "dots";
|
|
6
|
+
type StepStatus = "complete" | "active" | "upcoming";
|
|
7
|
+
interface StepsProps extends ComponentPropsWithoutRef<"ol"> {
|
|
8
|
+
/** The index of the currently active step (0-based). */
|
|
9
|
+
currentStep: number;
|
|
10
|
+
/** Orientation of the steps. @default "horizontal" */
|
|
11
|
+
orientation?: StepsOrientation;
|
|
12
|
+
/** Visual variant. @default "default" */
|
|
13
|
+
variant?: StepsVariant;
|
|
14
|
+
/** Total number of steps — derived from children if not provided. */
|
|
15
|
+
count?: number;
|
|
16
|
+
/** Callback when a step is clicked (for clickable wizards). */
|
|
17
|
+
onStepClick?: (index: number) => void;
|
|
18
|
+
className?: string;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
interface StepProps extends ComponentPropsWithoutRef<"li"> {
|
|
22
|
+
/** Optional custom icon to override the default number/check. */
|
|
23
|
+
icon?: ReactNode;
|
|
24
|
+
/** Optional title for the step. */
|
|
25
|
+
title?: string;
|
|
26
|
+
/** Optional description beneath the title. */
|
|
27
|
+
description?: string;
|
|
28
|
+
className?: string;
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Steps — a wizard progress indicator.
|
|
33
|
+
*
|
|
34
|
+
* Wrap `Step` components as children. The `currentStep` prop (0-based index)
|
|
35
|
+
* drives the visual state of each step (complete, active, upcoming).
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <Steps currentStep={1}>
|
|
40
|
+
* <Step title="Account" description="Create your account" />
|
|
41
|
+
* <Step title="Profile" description="Fill in your details" />
|
|
42
|
+
* <Step title="Confirm" description="Review and submit" />
|
|
43
|
+
* </Steps>
|
|
44
|
+
*
|
|
45
|
+
* // Vertical orientation
|
|
46
|
+
* <Steps currentStep={0} orientation="vertical">
|
|
47
|
+
* <Step title="Step 1" description="First step" />
|
|
48
|
+
* <Step title="Step 2" description="Second step" />
|
|
49
|
+
* </Steps>
|
|
50
|
+
*
|
|
51
|
+
* // Clickable steps
|
|
52
|
+
* <Steps currentStep={activeStep} onStepClick={setActiveStep}>
|
|
53
|
+
* <Step title="Step 1" />
|
|
54
|
+
* <Step title="Step 2" />
|
|
55
|
+
* <Step title="Step 3" />
|
|
56
|
+
* </Steps>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
declare const Steps: react.ForwardRefExoticComponent<StepsProps & react.RefAttributes<HTMLOListElement>>;
|
|
60
|
+
/**
|
|
61
|
+
* Step — a single step in the Steps wizard.
|
|
62
|
+
*
|
|
63
|
+
* Must be a direct child of `Steps`. Automatically derives its visual state
|
|
64
|
+
* (complete, active, upcoming) from the parent `currentStep` prop.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* <Step title="Account" description="Set up your account" />
|
|
69
|
+
*
|
|
70
|
+
* // With a custom icon
|
|
71
|
+
* <Step title="Upload" icon={<Upload className="size-4" />} />
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
declare const Step: react.ForwardRefExoticComponent<StepProps & react.RefAttributes<HTMLLIElement>>;
|
|
75
|
+
|
|
76
|
+
export { Step, type StepProps, type StepStatus, Steps, type StepsOrientation, type StepsProps, type StepsVariant };
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../utils/cn";
|
|
4
|
+
import {
|
|
5
|
+
createContext,
|
|
6
|
+
forwardRef,
|
|
7
|
+
useContext
|
|
8
|
+
} from "react";
|
|
9
|
+
const StepsContext = createContext({
|
|
10
|
+
currentStep: 0,
|
|
11
|
+
orientation: "horizontal",
|
|
12
|
+
variant: "default",
|
|
13
|
+
totalSteps: 0
|
|
14
|
+
});
|
|
15
|
+
const StepIndexContext = createContext(0);
|
|
16
|
+
function CheckIcon({ className }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
"svg",
|
|
19
|
+
{
|
|
20
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
21
|
+
width: "14",
|
|
22
|
+
height: "14",
|
|
23
|
+
viewBox: "0 0 24 24",
|
|
24
|
+
fill: "none",
|
|
25
|
+
stroke: "currentColor",
|
|
26
|
+
strokeWidth: "2.5",
|
|
27
|
+
strokeLinecap: "round",
|
|
28
|
+
strokeLinejoin: "round",
|
|
29
|
+
className,
|
|
30
|
+
"aria-hidden": "true",
|
|
31
|
+
children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
const Steps = forwardRef(function Steps2({
|
|
36
|
+
currentStep,
|
|
37
|
+
orientation = "horizontal",
|
|
38
|
+
variant = "default",
|
|
39
|
+
onStepClick,
|
|
40
|
+
className,
|
|
41
|
+
children,
|
|
42
|
+
...rest
|
|
43
|
+
}, ref) {
|
|
44
|
+
const childArray = Array.isArray(children) ? children : children ? [children] : [];
|
|
45
|
+
const totalSteps = childArray.length;
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
StepsContext.Provider,
|
|
48
|
+
{
|
|
49
|
+
value: { currentStep, orientation, variant, totalSteps, onStepClick },
|
|
50
|
+
children: /* @__PURE__ */ jsx(
|
|
51
|
+
"ol",
|
|
52
|
+
{
|
|
53
|
+
ref,
|
|
54
|
+
"aria-label": "Steps",
|
|
55
|
+
className: cn(
|
|
56
|
+
"flex",
|
|
57
|
+
orientation === "horizontal" ? "flex-row items-start gap-0" : "flex-col gap-0",
|
|
58
|
+
className
|
|
59
|
+
),
|
|
60
|
+
"data-ds": "",
|
|
61
|
+
"data-ds-component": "steps",
|
|
62
|
+
"data-ds-orientation": orientation,
|
|
63
|
+
...rest,
|
|
64
|
+
children: childArray.map((child, index) => /* @__PURE__ */ jsx(StepIndexContext.Provider, { value: index, children: child }, index))
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
});
|
|
70
|
+
Steps.displayName = "Steps";
|
|
71
|
+
const Step = forwardRef(function Step2({ icon, title, description, className, children, ...rest }, ref) {
|
|
72
|
+
const { currentStep, orientation, variant, totalSteps, onStepClick } = useContext(StepsContext);
|
|
73
|
+
const index = useContext(StepIndexContext);
|
|
74
|
+
const status = index < currentStep ? "complete" : index === currentStep ? "active" : "upcoming";
|
|
75
|
+
const isLast = index === totalSteps - 1;
|
|
76
|
+
const isClickable = !!onStepClick;
|
|
77
|
+
const indicatorContent = variant === "dots" ? null : status === "complete" && variant !== "outline" ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx("span", { children: index + 1 });
|
|
78
|
+
const indicator = /* @__PURE__ */ jsx(
|
|
79
|
+
"div",
|
|
80
|
+
{
|
|
81
|
+
className: cn(
|
|
82
|
+
"flex shrink-0 items-center justify-center",
|
|
83
|
+
"font-medium text-xs leading-none",
|
|
84
|
+
"transition-colors duration-fast ease-standard",
|
|
85
|
+
// Dot variant
|
|
86
|
+
variant === "dots" ? cn(
|
|
87
|
+
"size-2 rounded-full",
|
|
88
|
+
status === "complete" && "bg-primary",
|
|
89
|
+
status === "active" && "bg-primary",
|
|
90
|
+
status === "upcoming" && "bg-border"
|
|
91
|
+
) : cn(
|
|
92
|
+
// Default & outline
|
|
93
|
+
"size-7 rounded-full border-2",
|
|
94
|
+
variant === "default" ? cn(
|
|
95
|
+
status === "complete" && "border-primary bg-primary text-primary-foreground",
|
|
96
|
+
status === "active" && "border-primary bg-background text-primary",
|
|
97
|
+
status === "upcoming" && "border-muted bg-background text-muted-foreground"
|
|
98
|
+
) : cn(
|
|
99
|
+
// outline variant
|
|
100
|
+
status === "complete" && "border-primary bg-primary/10 text-primary",
|
|
101
|
+
status === "active" && "border-primary bg-background text-primary",
|
|
102
|
+
status === "upcoming" && "border-muted bg-background text-muted-foreground"
|
|
103
|
+
)
|
|
104
|
+
)
|
|
105
|
+
),
|
|
106
|
+
"aria-hidden": variant === "dots",
|
|
107
|
+
children: indicatorContent
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
const labelContent = (title || description) && /* @__PURE__ */ jsxs(
|
|
111
|
+
"div",
|
|
112
|
+
{
|
|
113
|
+
className: cn(
|
|
114
|
+
orientation === "horizontal" ? "mt-2 text-center" : "ml-3 text-left"
|
|
115
|
+
),
|
|
116
|
+
children: [
|
|
117
|
+
title && /* @__PURE__ */ jsx(
|
|
118
|
+
"p",
|
|
119
|
+
{
|
|
120
|
+
className: cn(
|
|
121
|
+
"text-sm font-medium leading-5",
|
|
122
|
+
status === "active" && "text-foreground",
|
|
123
|
+
status === "complete" && "text-foreground",
|
|
124
|
+
status === "upcoming" && "text-muted-foreground"
|
|
125
|
+
),
|
|
126
|
+
children: title
|
|
127
|
+
}
|
|
128
|
+
),
|
|
129
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs leading-4 text-muted-foreground mt-0.5", children: description })
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
const connector = !isLast && /* @__PURE__ */ jsx(
|
|
134
|
+
"div",
|
|
135
|
+
{
|
|
136
|
+
"aria-hidden": "true",
|
|
137
|
+
className: cn(
|
|
138
|
+
"flex-1 transition-colors duration-fast ease-standard",
|
|
139
|
+
orientation === "horizontal" ? "mx-2 mt-3.5 h-px" : "ml-3.5 my-1 w-px self-stretch",
|
|
140
|
+
index < currentStep ? "bg-primary" : "bg-border"
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
const stepContent = /* @__PURE__ */ jsx(Fragment, { children: orientation === "horizontal" ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
|
|
145
|
+
indicator,
|
|
146
|
+
labelContent
|
|
147
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "flex items-start", children: [
|
|
148
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
|
|
149
|
+
indicator,
|
|
150
|
+
!isLast && /* @__PURE__ */ jsx(
|
|
151
|
+
"div",
|
|
152
|
+
{
|
|
153
|
+
"aria-hidden": "true",
|
|
154
|
+
className: cn(
|
|
155
|
+
"mt-1 w-px flex-1 self-stretch transition-colors duration-fast ease-standard",
|
|
156
|
+
"min-h-[24px]",
|
|
157
|
+
index < currentStep ? "bg-primary" : "bg-border"
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
)
|
|
161
|
+
] }),
|
|
162
|
+
labelContent
|
|
163
|
+
] }) });
|
|
164
|
+
return /* @__PURE__ */ jsx(
|
|
165
|
+
"li",
|
|
166
|
+
{
|
|
167
|
+
ref,
|
|
168
|
+
"aria-current": status === "active" ? "step" : void 0,
|
|
169
|
+
"data-ds": "",
|
|
170
|
+
"data-ds-component": "step",
|
|
171
|
+
"data-ds-status": status,
|
|
172
|
+
className: cn(
|
|
173
|
+
orientation === "horizontal" ? "flex flex-1 items-start" : "flex flex-col",
|
|
174
|
+
className
|
|
175
|
+
),
|
|
176
|
+
...rest,
|
|
177
|
+
children: orientation === "horizontal" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
178
|
+
isClickable ? /* @__PURE__ */ jsxs(
|
|
179
|
+
"button",
|
|
180
|
+
{
|
|
181
|
+
type: "button",
|
|
182
|
+
onClick: () => onStepClick(index),
|
|
183
|
+
className: cn(
|
|
184
|
+
"flex flex-1 flex-col items-center",
|
|
185
|
+
isClickable && "cursor-pointer",
|
|
186
|
+
status === "upcoming" && !isClickable && "cursor-default"
|
|
187
|
+
),
|
|
188
|
+
"aria-label": title ? `Go to step: ${title}` : `Go to step ${index + 1}`,
|
|
189
|
+
children: [
|
|
190
|
+
indicator,
|
|
191
|
+
labelContent
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
) : /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col items-center", children: [
|
|
195
|
+
indicator,
|
|
196
|
+
labelContent
|
|
197
|
+
] }),
|
|
198
|
+
connector
|
|
199
|
+
] }) : stepContent
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
});
|
|
203
|
+
Step.displayName = "Step";
|
|
204
|
+
export {
|
|
205
|
+
Step,
|
|
206
|
+
Steps
|
|
207
|
+
};
|
|
@@ -0,0 +1,243 @@
|
|
|
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 switch_exports = {};
|
|
21
|
+
__export(switch_exports, {
|
|
22
|
+
Switch: () => Switch,
|
|
23
|
+
switchThumbVariants: () => switchThumbVariants,
|
|
24
|
+
switchTrackVariants: () => switchTrackVariants
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(switch_exports);
|
|
27
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
28
|
+
var import_cn = require("../utils/cn");
|
|
29
|
+
var import_focus_ring = require("../utils/focus-ring");
|
|
30
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
31
|
+
var import_framer_motion = require("framer-motion");
|
|
32
|
+
var import_radix_ui = require("radix-ui");
|
|
33
|
+
var import_react = require("react");
|
|
34
|
+
const switchTrackVariants = (0, import_class_variance_authority.cva)(
|
|
35
|
+
[
|
|
36
|
+
// Layout
|
|
37
|
+
"relative inline-flex shrink-0 cursor-pointer items-center",
|
|
38
|
+
// Shape
|
|
39
|
+
"rounded-full",
|
|
40
|
+
// Border
|
|
41
|
+
"border-2 border-transparent",
|
|
42
|
+
// Transition
|
|
43
|
+
"transition-[background-color,box-shadow] duration-fast ease-standard",
|
|
44
|
+
// Focus ring
|
|
45
|
+
import_focus_ring.focusRingClasses,
|
|
46
|
+
// Disabled
|
|
47
|
+
"disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed",
|
|
48
|
+
// Unchecked state
|
|
49
|
+
"data-[state=unchecked]:bg-input",
|
|
50
|
+
// Checked state
|
|
51
|
+
"data-[state=checked]:bg-primary"
|
|
52
|
+
],
|
|
53
|
+
{
|
|
54
|
+
variants: {
|
|
55
|
+
size: {
|
|
56
|
+
/**
|
|
57
|
+
* Small — compact for dense UIs, settings panels.
|
|
58
|
+
* Track: 36px × 20px
|
|
59
|
+
*/
|
|
60
|
+
sm: "h-5 w-9",
|
|
61
|
+
/**
|
|
62
|
+
* Medium — default size for most switches.
|
|
63
|
+
* Track: 44px × 24px
|
|
64
|
+
*/
|
|
65
|
+
md: "h-6 w-11"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
defaultVariants: {
|
|
69
|
+
size: "md"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
const switchThumbVariants = (0, import_class_variance_authority.cva)(
|
|
74
|
+
[
|
|
75
|
+
// Shape
|
|
76
|
+
"pointer-events-none block rounded-full",
|
|
77
|
+
// Color
|
|
78
|
+
"bg-white",
|
|
79
|
+
// Shadow
|
|
80
|
+
"shadow-sm"
|
|
81
|
+
],
|
|
82
|
+
{
|
|
83
|
+
variants: {
|
|
84
|
+
size: {
|
|
85
|
+
sm: "size-4",
|
|
86
|
+
md: "size-5"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
defaultVariants: {
|
|
90
|
+
size: "md"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
const thumbSpringConfig = {
|
|
95
|
+
stiffness: 500,
|
|
96
|
+
damping: 30,
|
|
97
|
+
mass: 0.5
|
|
98
|
+
};
|
|
99
|
+
const thumbTravel = {
|
|
100
|
+
sm: { off: 0, on: 16 },
|
|
101
|
+
md: { off: 0, on: 20 }
|
|
102
|
+
};
|
|
103
|
+
const MotionThumb = import_framer_motion.motion.create("span");
|
|
104
|
+
const instantSpringConfig = {
|
|
105
|
+
stiffness: 1e4,
|
|
106
|
+
damping: 1e4,
|
|
107
|
+
mass: 0.01
|
|
108
|
+
};
|
|
109
|
+
function AnimatedThumb({
|
|
110
|
+
size = "md",
|
|
111
|
+
checked
|
|
112
|
+
}) {
|
|
113
|
+
const prefersReduced = (0, import_framer_motion.useReducedMotion)();
|
|
114
|
+
const travel = thumbTravel[size];
|
|
115
|
+
const x = (0, import_framer_motion.useMotionValue)(checked ? travel.on : travel.off);
|
|
116
|
+
const springConfig = prefersReduced ? instantSpringConfig : thumbSpringConfig;
|
|
117
|
+
const springX = (0, import_framer_motion.useSpring)(x, springConfig);
|
|
118
|
+
(0, import_react.useEffect)(() => {
|
|
119
|
+
x.set(checked ? travel.on : travel.off);
|
|
120
|
+
}, [checked, travel, x]);
|
|
121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Switch.Thumb, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
122
|
+
MotionThumb,
|
|
123
|
+
{
|
|
124
|
+
className: (0, import_cn.cn)(switchThumbVariants({ size })),
|
|
125
|
+
style: { x: springX },
|
|
126
|
+
"aria-hidden": "true"
|
|
127
|
+
}
|
|
128
|
+
) });
|
|
129
|
+
}
|
|
130
|
+
const Switch = (0, import_react.forwardRef)(function Switch2({
|
|
131
|
+
size = "md",
|
|
132
|
+
label,
|
|
133
|
+
description,
|
|
134
|
+
labelPosition = "right",
|
|
135
|
+
wrapperClassName,
|
|
136
|
+
labelClassName,
|
|
137
|
+
descriptionClassName,
|
|
138
|
+
className,
|
|
139
|
+
id: idProp,
|
|
140
|
+
checked,
|
|
141
|
+
defaultChecked,
|
|
142
|
+
disabled,
|
|
143
|
+
onCheckedChange,
|
|
144
|
+
...rest
|
|
145
|
+
}, ref) {
|
|
146
|
+
const autoId = (0, import_react.useId)();
|
|
147
|
+
const id = idProp ?? autoId;
|
|
148
|
+
const descriptionId = description ? `${id}-description` : void 0;
|
|
149
|
+
const isControlled = checked !== void 0;
|
|
150
|
+
const [internalChecked, setInternalChecked] = (0, import_react.useState)(
|
|
151
|
+
checked ?? defaultChecked ?? false
|
|
152
|
+
);
|
|
153
|
+
const [prevChecked, setPrevChecked] = (0, import_react.useState)(checked);
|
|
154
|
+
if (isControlled && checked !== prevChecked) {
|
|
155
|
+
setPrevChecked(checked);
|
|
156
|
+
setInternalChecked(checked);
|
|
157
|
+
}
|
|
158
|
+
const handleCheckedChange = (0, import_react.useCallback)(
|
|
159
|
+
(value) => {
|
|
160
|
+
if (!isControlled) {
|
|
161
|
+
setInternalChecked(value);
|
|
162
|
+
}
|
|
163
|
+
onCheckedChange?.(value);
|
|
164
|
+
},
|
|
165
|
+
[isControlled, onCheckedChange]
|
|
166
|
+
);
|
|
167
|
+
const isChecked = isControlled ? checked : internalChecked;
|
|
168
|
+
const switchElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
169
|
+
import_radix_ui.Switch.Root,
|
|
170
|
+
{
|
|
171
|
+
ref,
|
|
172
|
+
id,
|
|
173
|
+
checked: isControlled ? checked : void 0,
|
|
174
|
+
defaultChecked: isControlled ? void 0 : defaultChecked,
|
|
175
|
+
disabled,
|
|
176
|
+
onCheckedChange: handleCheckedChange,
|
|
177
|
+
"aria-describedby": descriptionId,
|
|
178
|
+
className: (0, import_cn.cn)(switchTrackVariants({ size }), className),
|
|
179
|
+
"data-ds": "",
|
|
180
|
+
"data-ds-component": "switch",
|
|
181
|
+
"data-ds-size": size,
|
|
182
|
+
...rest,
|
|
183
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AnimatedThumb, { size, checked: isChecked })
|
|
184
|
+
}
|
|
185
|
+
);
|
|
186
|
+
if (!label) {
|
|
187
|
+
return switchElement;
|
|
188
|
+
}
|
|
189
|
+
const labelBlock = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5 flex-1 min-w-0", children: [
|
|
190
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
191
|
+
"label",
|
|
192
|
+
{
|
|
193
|
+
htmlFor: id,
|
|
194
|
+
className: (0, import_cn.cn)(
|
|
195
|
+
"text-sm font-medium leading-5 text-foreground",
|
|
196
|
+
"select-none",
|
|
197
|
+
disabled && "opacity-50 cursor-not-allowed",
|
|
198
|
+
!disabled && "cursor-pointer",
|
|
199
|
+
labelClassName
|
|
200
|
+
),
|
|
201
|
+
children: label
|
|
202
|
+
}
|
|
203
|
+
),
|
|
204
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
205
|
+
"span",
|
|
206
|
+
{
|
|
207
|
+
id: descriptionId,
|
|
208
|
+
className: (0, import_cn.cn)(
|
|
209
|
+
"text-xs leading-4 text-muted-foreground",
|
|
210
|
+
disabled && "opacity-50",
|
|
211
|
+
descriptionClassName
|
|
212
|
+
),
|
|
213
|
+
children: description
|
|
214
|
+
}
|
|
215
|
+
)
|
|
216
|
+
] });
|
|
217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
218
|
+
"div",
|
|
219
|
+
{
|
|
220
|
+
className: (0, import_cn.cn)(
|
|
221
|
+
"flex items-center gap-3",
|
|
222
|
+
// Reverse order when label is on the left
|
|
223
|
+
labelPosition === "left" ? "flex-row" : "flex-row-reverse",
|
|
224
|
+
// Align to start when description is present
|
|
225
|
+
description && "items-start",
|
|
226
|
+
wrapperClassName
|
|
227
|
+
),
|
|
228
|
+
"data-ds": "",
|
|
229
|
+
"data-ds-component": "switch-group",
|
|
230
|
+
children: [
|
|
231
|
+
switchElement,
|
|
232
|
+
labelBlock
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
);
|
|
236
|
+
});
|
|
237
|
+
Switch.displayName = "Switch";
|
|
238
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
239
|
+
0 && (module.exports = {
|
|
240
|
+
Switch,
|
|
241
|
+
switchThumbVariants,
|
|
242
|
+
switchTrackVariants
|
|
243
|
+
});
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
import { Switch as Switch$1 } from 'radix-ui';
|
|
6
|
+
|
|
7
|
+
declare const switchTrackVariants: (props?: ({
|
|
8
|
+
size?: "sm" | "md" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare const switchThumbVariants: (props?: ({
|
|
11
|
+
size?: "sm" | "md" | null | undefined;
|
|
12
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
13
|
+
type SwitchSize = "sm" | "md";
|
|
14
|
+
type SwitchLabelPosition = "left" | "right";
|
|
15
|
+
interface SwitchProps extends Omit<React.ComponentPropsWithoutRef<typeof Switch$1.Root>, "asChild">, VariantProps<typeof switchTrackVariants> {
|
|
16
|
+
/**
|
|
17
|
+
* Size of the switch.
|
|
18
|
+
* @default "md"
|
|
19
|
+
*/
|
|
20
|
+
size?: SwitchSize;
|
|
21
|
+
/**
|
|
22
|
+
* Text label for the switch.
|
|
23
|
+
*/
|
|
24
|
+
label?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Description text displayed below the label.
|
|
27
|
+
*/
|
|
28
|
+
description?: ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Position of the label relative to the switch.
|
|
31
|
+
* @default "right"
|
|
32
|
+
*/
|
|
33
|
+
labelPosition?: SwitchLabelPosition;
|
|
34
|
+
/**
|
|
35
|
+
* Additional CSS classes for the outer wrapper element.
|
|
36
|
+
*/
|
|
37
|
+
wrapperClassName?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Additional CSS classes for the label element.
|
|
40
|
+
*/
|
|
41
|
+
labelClassName?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Additional CSS classes for the description element.
|
|
44
|
+
*/
|
|
45
|
+
descriptionClassName?: string;
|
|
46
|
+
/** Additional CSS classes to merge on the switch track element. */
|
|
47
|
+
className?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Switch — a toggle control for binary on/off states.
|
|
51
|
+
*
|
|
52
|
+
* Built on Radix UI's Switch primitive for accessibility and the design
|
|
53
|
+
* system's token layer for styling. The thumb uses a Framer Motion spring
|
|
54
|
+
* animation for a tactile, snappy feel.
|
|
55
|
+
*
|
|
56
|
+
* Accessibility:
|
|
57
|
+
* - Radix handles `role="switch"`, `aria-checked`, keyboard toggle (Space)
|
|
58
|
+
* - Focus ring visible on keyboard navigation (focus-visible)
|
|
59
|
+
* - Disabled state uses both `disabled` attribute and `aria-disabled`
|
|
60
|
+
* - Label is associated via `htmlFor` / `id` linkage
|
|
61
|
+
* - Description linked via `aria-describedby`
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```tsx
|
|
65
|
+
* // Basic usage
|
|
66
|
+
* <Switch label="Dark mode" />
|
|
67
|
+
*
|
|
68
|
+
* // Controlled
|
|
69
|
+
* <Switch
|
|
70
|
+
* checked={enabled}
|
|
71
|
+
* onCheckedChange={setEnabled}
|
|
72
|
+
* label="Notifications"
|
|
73
|
+
* />
|
|
74
|
+
*
|
|
75
|
+
* // Small with left label
|
|
76
|
+
* <Switch size="sm" label="Auto-save" labelPosition="left" />
|
|
77
|
+
*
|
|
78
|
+
* // With description
|
|
79
|
+
* <Switch
|
|
80
|
+
* label="Marketing emails"
|
|
81
|
+
* description="Receive emails about new features and updates"
|
|
82
|
+
* />
|
|
83
|
+
*
|
|
84
|
+
* // Disabled
|
|
85
|
+
* <Switch disabled label="Feature locked" />
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLButtonElement>>;
|
|
89
|
+
|
|
90
|
+
export { Switch, type SwitchLabelPosition, type SwitchProps, type SwitchSize, switchThumbVariants, switchTrackVariants };
|