@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,211 @@
|
|
|
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, useEffect } from "react";
|
|
6
|
+
const progressTrackVariants = cva(
|
|
7
|
+
// Base styles — shared across all variants and sizes
|
|
8
|
+
[
|
|
9
|
+
// Layout
|
|
10
|
+
"relative w-full overflow-hidden",
|
|
11
|
+
// Shape
|
|
12
|
+
"rounded-full",
|
|
13
|
+
// Background
|
|
14
|
+
"bg-muted"
|
|
15
|
+
],
|
|
16
|
+
{
|
|
17
|
+
variants: {
|
|
18
|
+
// -----------------------------------------------------------------
|
|
19
|
+
// Size Variants
|
|
20
|
+
// -----------------------------------------------------------------
|
|
21
|
+
size: {
|
|
22
|
+
/**
|
|
23
|
+
* Small — thin bar for subtle progress indicators.
|
|
24
|
+
* Height: 6px
|
|
25
|
+
*/
|
|
26
|
+
sm: "h-1.5",
|
|
27
|
+
/**
|
|
28
|
+
* Medium — default size for most progress bars.
|
|
29
|
+
* Height: 8px
|
|
30
|
+
*/
|
|
31
|
+
md: "h-2",
|
|
32
|
+
/**
|
|
33
|
+
* Large — prominent bar for hero progress, file uploads.
|
|
34
|
+
* Height: 12px
|
|
35
|
+
*/
|
|
36
|
+
lg: "h-3"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
defaultVariants: {
|
|
40
|
+
size: "md"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
const progressIndicatorVariants = cva(
|
|
45
|
+
// Base styles — shared across all variants
|
|
46
|
+
[
|
|
47
|
+
// Layout
|
|
48
|
+
"h-full",
|
|
49
|
+
// Shape — match track rounding
|
|
50
|
+
"rounded-full",
|
|
51
|
+
// Transition for value changes
|
|
52
|
+
"transition-[width] duration-standard ease-standard"
|
|
53
|
+
],
|
|
54
|
+
{
|
|
55
|
+
variants: {
|
|
56
|
+
// -----------------------------------------------------------------
|
|
57
|
+
// Visual Variants
|
|
58
|
+
// -----------------------------------------------------------------
|
|
59
|
+
variant: {
|
|
60
|
+
/**
|
|
61
|
+
* Default — uses primary brand color.
|
|
62
|
+
*/
|
|
63
|
+
default: "bg-primary",
|
|
64
|
+
/**
|
|
65
|
+
* Primary — explicit primary brand color.
|
|
66
|
+
*/
|
|
67
|
+
primary: "bg-primary",
|
|
68
|
+
/**
|
|
69
|
+
* Success — positive/complete progress.
|
|
70
|
+
*/
|
|
71
|
+
success: "bg-success",
|
|
72
|
+
/**
|
|
73
|
+
* Danger — error/critical progress (e.g., storage almost full).
|
|
74
|
+
*/
|
|
75
|
+
danger: "bg-danger",
|
|
76
|
+
/**
|
|
77
|
+
* Warning — caution progress (e.g., approaching limit).
|
|
78
|
+
*/
|
|
79
|
+
warning: "bg-warning",
|
|
80
|
+
/**
|
|
81
|
+
* Info — informational progress.
|
|
82
|
+
*/
|
|
83
|
+
info: "bg-info"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
defaultVariants: {
|
|
87
|
+
variant: "default"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
const stripedStyle = {
|
|
92
|
+
backgroundImage: "linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)",
|
|
93
|
+
backgroundSize: "1rem 1rem"
|
|
94
|
+
};
|
|
95
|
+
const PROGRESS_STYLE_ID = "unified-ui-progress-keyframes";
|
|
96
|
+
const PROGRESS_KEYFRAMES_CSS = `
|
|
97
|
+
@keyframes unified-ui-progress-indeterminate {
|
|
98
|
+
0% { transform: translateX(-100%); width: 50%; }
|
|
99
|
+
50% { transform: translateX(50%); width: 30%; }
|
|
100
|
+
100% { transform: translateX(200%); width: 50%; }
|
|
101
|
+
}
|
|
102
|
+
@keyframes unified-ui-progress-stripe-slide {
|
|
103
|
+
0% { background-position: 1rem 0; }
|
|
104
|
+
100% { background-position: 0 0; }
|
|
105
|
+
}
|
|
106
|
+
`;
|
|
107
|
+
function useProgressKeyframes() {
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
if (document.getElementById(PROGRESS_STYLE_ID)) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const style = document.createElement("style");
|
|
113
|
+
style.id = PROGRESS_STYLE_ID;
|
|
114
|
+
style.textContent = PROGRESS_KEYFRAMES_CSS;
|
|
115
|
+
document.head.appendChild(style);
|
|
116
|
+
}, []);
|
|
117
|
+
}
|
|
118
|
+
const Progress = forwardRef(
|
|
119
|
+
function Progress2({
|
|
120
|
+
value = 0,
|
|
121
|
+
max = 100,
|
|
122
|
+
min = 0,
|
|
123
|
+
variant = "default",
|
|
124
|
+
size = "md",
|
|
125
|
+
indeterminate = false,
|
|
126
|
+
striped = false,
|
|
127
|
+
animated = false,
|
|
128
|
+
showLabel = false,
|
|
129
|
+
label,
|
|
130
|
+
formatLabel,
|
|
131
|
+
"aria-label": ariaLabel,
|
|
132
|
+
"aria-labelledby": ariaLabelledBy,
|
|
133
|
+
className,
|
|
134
|
+
indicatorClassName,
|
|
135
|
+
...rest
|
|
136
|
+
}, ref) {
|
|
137
|
+
useProgressKeyframes();
|
|
138
|
+
const clampedValue = Math.max(min, Math.min(value, max));
|
|
139
|
+
const range = max - min;
|
|
140
|
+
const percentage = range > 0 ? (clampedValue - min) / range * 100 : 0;
|
|
141
|
+
const defaultFormatLabel = (v, m) => {
|
|
142
|
+
const pct = m - min > 0 ? (v - min) / (m - min) * 100 : 0;
|
|
143
|
+
return `${Math.round(pct)}%`;
|
|
144
|
+
};
|
|
145
|
+
const labelFormatter = formatLabel ?? defaultFormatLabel;
|
|
146
|
+
const _labelText = label ?? labelFormatter(clampedValue, max);
|
|
147
|
+
const indicatorStyle = {
|
|
148
|
+
...indeterminate ? {
|
|
149
|
+
animation: "unified-ui-progress-indeterminate 1.5s ease-in-out infinite"
|
|
150
|
+
} : {
|
|
151
|
+
width: `${percentage}%`
|
|
152
|
+
},
|
|
153
|
+
...striped ? stripedStyle : {},
|
|
154
|
+
...striped && animated ? {
|
|
155
|
+
animation: indeterminate ? "unified-ui-progress-indeterminate 1.5s ease-in-out infinite" : "unified-ui-progress-stripe-slide 0.6s linear infinite"
|
|
156
|
+
} : {}
|
|
157
|
+
};
|
|
158
|
+
const ariaAttrs = {
|
|
159
|
+
role: "progressbar",
|
|
160
|
+
"aria-valuemin": min,
|
|
161
|
+
"aria-valuemax": max,
|
|
162
|
+
...ariaLabel ? { "aria-label": ariaLabel } : {},
|
|
163
|
+
...ariaLabelledBy ? { "aria-labelledby": ariaLabelledBy } : {}
|
|
164
|
+
};
|
|
165
|
+
if (!indeterminate) {
|
|
166
|
+
ariaAttrs["aria-valuenow"] = clampedValue;
|
|
167
|
+
}
|
|
168
|
+
return /* @__PURE__ */ jsxs(
|
|
169
|
+
"div",
|
|
170
|
+
{
|
|
171
|
+
"data-ds": "",
|
|
172
|
+
"data-ds-component": "progress",
|
|
173
|
+
"data-ds-variant": variant,
|
|
174
|
+
"data-ds-size": size,
|
|
175
|
+
...indeterminate ? { "data-ds-indeterminate": "" } : {},
|
|
176
|
+
children: [
|
|
177
|
+
showLabel && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
178
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium leading-4 text-foreground", children: label ?? "" }),
|
|
179
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium leading-4 text-muted-foreground tabular-nums", children: typeof label === "string" || !label ? labelFormatter(clampedValue, max) : "" })
|
|
180
|
+
] }),
|
|
181
|
+
/* @__PURE__ */ jsx(
|
|
182
|
+
"div",
|
|
183
|
+
{
|
|
184
|
+
ref,
|
|
185
|
+
className: cn(progressTrackVariants({ size }), className),
|
|
186
|
+
...ariaAttrs,
|
|
187
|
+
...rest,
|
|
188
|
+
children: /* @__PURE__ */ jsx(
|
|
189
|
+
"div",
|
|
190
|
+
{
|
|
191
|
+
className: cn(
|
|
192
|
+
progressIndicatorVariants({ variant }),
|
|
193
|
+
indeterminate && "absolute",
|
|
194
|
+
indicatorClassName
|
|
195
|
+
),
|
|
196
|
+
style: indicatorStyle
|
|
197
|
+
}
|
|
198
|
+
)
|
|
199
|
+
}
|
|
200
|
+
)
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
Progress.displayName = "Progress";
|
|
207
|
+
export {
|
|
208
|
+
Progress,
|
|
209
|
+
progressIndicatorVariants,
|
|
210
|
+
progressTrackVariants
|
|
211
|
+
};
|
|
@@ -0,0 +1,344 @@
|
|
|
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 radio_exports = {};
|
|
21
|
+
__export(radio_exports, {
|
|
22
|
+
RadioCard: () => RadioCard,
|
|
23
|
+
RadioGroup: () => RadioGroup,
|
|
24
|
+
RadioGroupItem: () => RadioGroupItem,
|
|
25
|
+
radioCardVariants: () => radioCardVariants,
|
|
26
|
+
radioGroupVariants: () => radioGroupVariants,
|
|
27
|
+
radioIndicatorVariants: () => radioIndicatorVariants
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(radio_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var import_cn = require("../utils/cn.cjs");
|
|
32
|
+
var import_focus_ring = require("../utils/focus-ring.cjs");
|
|
33
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
34
|
+
var import_radix_ui = require("radix-ui");
|
|
35
|
+
var import_react = require("react");
|
|
36
|
+
const RadioGroupContext = (0, import_react.createContext)({
|
|
37
|
+
size: "md"
|
|
38
|
+
});
|
|
39
|
+
function useRadioGroupContext() {
|
|
40
|
+
return (0, import_react.useContext)(RadioGroupContext);
|
|
41
|
+
}
|
|
42
|
+
const radioGroupVariants = (0, import_class_variance_authority.cva)(["flex"], {
|
|
43
|
+
variants: {
|
|
44
|
+
orientation: {
|
|
45
|
+
vertical: "flex-col gap-3",
|
|
46
|
+
horizontal: "flex-row flex-wrap gap-4"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
defaultVariants: {
|
|
50
|
+
orientation: "vertical"
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const radioIndicatorVariants = (0, import_class_variance_authority.cva)(
|
|
54
|
+
[
|
|
55
|
+
// Layout
|
|
56
|
+
"relative shrink-0",
|
|
57
|
+
// Shape
|
|
58
|
+
"rounded-full",
|
|
59
|
+
// Border
|
|
60
|
+
"border",
|
|
61
|
+
// Colors
|
|
62
|
+
"border-input bg-background",
|
|
63
|
+
// Transition
|
|
64
|
+
"transition-[color,background-color,border-color,box-shadow,opacity]",
|
|
65
|
+
"duration-fast ease-standard",
|
|
66
|
+
// Focus ring — WCAG AA compliant
|
|
67
|
+
import_focus_ring.focusRingClasses,
|
|
68
|
+
// Hover
|
|
69
|
+
"hover:border-border-strong",
|
|
70
|
+
// Checked state
|
|
71
|
+
"data-[state=checked]:border-primary data-[state=checked]:bg-primary",
|
|
72
|
+
// Disabled
|
|
73
|
+
"disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-disabled"
|
|
74
|
+
],
|
|
75
|
+
{
|
|
76
|
+
variants: {
|
|
77
|
+
size: {
|
|
78
|
+
/**
|
|
79
|
+
* Small — compact for dense UIs, tables, toolbars.
|
|
80
|
+
* Diameter: 16px
|
|
81
|
+
*/
|
|
82
|
+
sm: "size-4",
|
|
83
|
+
/**
|
|
84
|
+
* Medium — default size for most radio buttons.
|
|
85
|
+
* Diameter: 20px
|
|
86
|
+
*/
|
|
87
|
+
md: "size-5"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
defaultVariants: {
|
|
91
|
+
size: "md"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
const radioInnerDotVariants = (0, import_class_variance_authority.cva)(
|
|
96
|
+
[
|
|
97
|
+
"absolute inset-0 flex items-center justify-center",
|
|
98
|
+
"after:block after:rounded-full after:bg-primary-foreground"
|
|
99
|
+
],
|
|
100
|
+
{
|
|
101
|
+
variants: {
|
|
102
|
+
size: {
|
|
103
|
+
sm: "after:size-1.5",
|
|
104
|
+
md: "after:size-2"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
defaultVariants: {
|
|
108
|
+
size: "md"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
);
|
|
112
|
+
const radioCardVariants = (0, import_class_variance_authority.cva)(
|
|
113
|
+
[
|
|
114
|
+
// Layout
|
|
115
|
+
"relative flex items-start gap-3",
|
|
116
|
+
// Shape
|
|
117
|
+
"rounded-md",
|
|
118
|
+
// Border
|
|
119
|
+
"border border-input",
|
|
120
|
+
// Colors
|
|
121
|
+
"bg-background",
|
|
122
|
+
// Transition
|
|
123
|
+
"transition-[color,background-color,border-color,box-shadow,opacity]",
|
|
124
|
+
"duration-fast ease-standard",
|
|
125
|
+
// Hover
|
|
126
|
+
"hover:border-border-strong hover:bg-surface",
|
|
127
|
+
// Cursor
|
|
128
|
+
"cursor-pointer",
|
|
129
|
+
// Checked state
|
|
130
|
+
"has-[[data-state=checked]]:border-primary has-[[data-state=checked]]:bg-primary-muted",
|
|
131
|
+
// Disabled
|
|
132
|
+
"has-[[data-disabled]]:pointer-events-none has-[[data-disabled]]:opacity-50 has-[[data-disabled]]:cursor-not-allowed",
|
|
133
|
+
// Focus within
|
|
134
|
+
"has-[:focus-visible]:border-border-strong"
|
|
135
|
+
],
|
|
136
|
+
{
|
|
137
|
+
variants: {
|
|
138
|
+
size: {
|
|
139
|
+
sm: "p-3",
|
|
140
|
+
md: "p-4"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
defaultVariants: {
|
|
144
|
+
size: "md"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
const labelSizeMap = {
|
|
149
|
+
sm: "text-xs",
|
|
150
|
+
md: "text-sm"
|
|
151
|
+
};
|
|
152
|
+
const descriptionSizeMap = {
|
|
153
|
+
sm: "text-xs",
|
|
154
|
+
md: "text-xs"
|
|
155
|
+
};
|
|
156
|
+
const RadioGroup = (0, import_react.forwardRef)(function RadioGroup2({
|
|
157
|
+
orientation = "vertical",
|
|
158
|
+
size = "md",
|
|
159
|
+
disabled,
|
|
160
|
+
className,
|
|
161
|
+
children,
|
|
162
|
+
...rest
|
|
163
|
+
}, ref) {
|
|
164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RadioGroupContext.Provider, { value: { size, disabled }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
165
|
+
import_radix_ui.RadioGroup.Root,
|
|
166
|
+
{
|
|
167
|
+
ref,
|
|
168
|
+
orientation,
|
|
169
|
+
disabled,
|
|
170
|
+
className: (0, import_cn.cn)(radioGroupVariants({ orientation }), className),
|
|
171
|
+
"data-ds": "",
|
|
172
|
+
"data-ds-component": "radio-group",
|
|
173
|
+
"data-ds-orientation": orientation,
|
|
174
|
+
"data-ds-size": size,
|
|
175
|
+
...rest,
|
|
176
|
+
children
|
|
177
|
+
}
|
|
178
|
+
) });
|
|
179
|
+
});
|
|
180
|
+
RadioGroup.displayName = "RadioGroup";
|
|
181
|
+
const RadioGroupItem = (0, import_react.forwardRef)(function RadioGroupItem2({ value, label, description, size: sizeProp, disabled, className, ...rest }, ref) {
|
|
182
|
+
const { size: groupSize, disabled: groupDisabled } = useRadioGroupContext();
|
|
183
|
+
const size = sizeProp ?? groupSize;
|
|
184
|
+
const isDisabled = disabled ?? groupDisabled;
|
|
185
|
+
const generatedId = (0, import_react.useId)();
|
|
186
|
+
const itemId = rest.id ?? `radio-${generatedId}`;
|
|
187
|
+
const labelId = label ? `${itemId}-label` : void 0;
|
|
188
|
+
const descriptionId = description ? `${itemId}-desc` : void 0;
|
|
189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
190
|
+
"div",
|
|
191
|
+
{
|
|
192
|
+
className: (0, import_cn.cn)(
|
|
193
|
+
"flex items-start gap-2",
|
|
194
|
+
isDisabled && "opacity-50 cursor-not-allowed",
|
|
195
|
+
className
|
|
196
|
+
),
|
|
197
|
+
"data-ds": "",
|
|
198
|
+
"data-ds-component": "radio-item-wrapper",
|
|
199
|
+
children: [
|
|
200
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
201
|
+
import_radix_ui.RadioGroup.Item,
|
|
202
|
+
{
|
|
203
|
+
ref,
|
|
204
|
+
id: itemId,
|
|
205
|
+
value,
|
|
206
|
+
disabled: isDisabled,
|
|
207
|
+
"aria-labelledby": labelId,
|
|
208
|
+
"aria-describedby": descriptionId,
|
|
209
|
+
className: (0, import_cn.cn)(radioIndicatorVariants({ size }), "mt-0.5"),
|
|
210
|
+
"data-ds": "",
|
|
211
|
+
"data-ds-component": "radio-item",
|
|
212
|
+
"data-ds-size": size,
|
|
213
|
+
...rest,
|
|
214
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
215
|
+
import_radix_ui.RadioGroup.Indicator,
|
|
216
|
+
{
|
|
217
|
+
className: (0, import_cn.cn)(radioInnerDotVariants({ size }))
|
|
218
|
+
}
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
),
|
|
222
|
+
(label || description) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5 min-w-0 flex-1", children: [
|
|
223
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
224
|
+
"label",
|
|
225
|
+
{
|
|
226
|
+
id: labelId,
|
|
227
|
+
htmlFor: itemId,
|
|
228
|
+
className: (0, import_cn.cn)(
|
|
229
|
+
"font-medium leading-5 text-foreground",
|
|
230
|
+
"cursor-pointer",
|
|
231
|
+
isDisabled && "cursor-not-allowed",
|
|
232
|
+
labelSizeMap[size]
|
|
233
|
+
),
|
|
234
|
+
children: label
|
|
235
|
+
}
|
|
236
|
+
),
|
|
237
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
238
|
+
"span",
|
|
239
|
+
{
|
|
240
|
+
id: descriptionId,
|
|
241
|
+
className: (0, import_cn.cn)(
|
|
242
|
+
"text-muted-foreground leading-4",
|
|
243
|
+
descriptionSizeMap[size]
|
|
244
|
+
),
|
|
245
|
+
children: description
|
|
246
|
+
}
|
|
247
|
+
)
|
|
248
|
+
] })
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
);
|
|
252
|
+
});
|
|
253
|
+
RadioGroupItem.displayName = "RadioGroupItem";
|
|
254
|
+
const RadioCard = (0, import_react.forwardRef)(function RadioCard2({
|
|
255
|
+
value,
|
|
256
|
+
label,
|
|
257
|
+
description,
|
|
258
|
+
size: sizeProp,
|
|
259
|
+
disabled,
|
|
260
|
+
className,
|
|
261
|
+
children,
|
|
262
|
+
...rest
|
|
263
|
+
}, ref) {
|
|
264
|
+
const { size: groupSize, disabled: groupDisabled } = useRadioGroupContext();
|
|
265
|
+
const size = sizeProp ?? groupSize;
|
|
266
|
+
const isDisabled = disabled ?? groupDisabled;
|
|
267
|
+
const generatedId = (0, import_react.useId)();
|
|
268
|
+
const itemId = rest.id ?? `radio-card-${generatedId}`;
|
|
269
|
+
const labelId = label ? `${itemId}-label` : void 0;
|
|
270
|
+
const descriptionId = description ? `${itemId}-desc` : void 0;
|
|
271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
272
|
+
"label",
|
|
273
|
+
{
|
|
274
|
+
htmlFor: itemId,
|
|
275
|
+
className: (0, import_cn.cn)(
|
|
276
|
+
radioCardVariants({ size }),
|
|
277
|
+
isDisabled && "cursor-not-allowed",
|
|
278
|
+
className
|
|
279
|
+
),
|
|
280
|
+
"data-ds": "",
|
|
281
|
+
"data-ds-component": "radio-card",
|
|
282
|
+
"data-ds-size": size,
|
|
283
|
+
children: [
|
|
284
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
285
|
+
import_radix_ui.RadioGroup.Item,
|
|
286
|
+
{
|
|
287
|
+
ref,
|
|
288
|
+
id: itemId,
|
|
289
|
+
value,
|
|
290
|
+
disabled: isDisabled,
|
|
291
|
+
"aria-labelledby": labelId,
|
|
292
|
+
"aria-describedby": descriptionId,
|
|
293
|
+
className: (0, import_cn.cn)(radioIndicatorVariants({ size }), "mt-0.5 shrink-0"),
|
|
294
|
+
"data-ds": "",
|
|
295
|
+
"data-ds-component": "radio-card-item",
|
|
296
|
+
"data-ds-size": size,
|
|
297
|
+
...rest,
|
|
298
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
299
|
+
import_radix_ui.RadioGroup.Indicator,
|
|
300
|
+
{
|
|
301
|
+
className: (0, import_cn.cn)(radioInnerDotVariants({ size }))
|
|
302
|
+
}
|
|
303
|
+
)
|
|
304
|
+
}
|
|
305
|
+
),
|
|
306
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5 min-w-0 flex-1", children: [
|
|
307
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
308
|
+
"span",
|
|
309
|
+
{
|
|
310
|
+
id: labelId,
|
|
311
|
+
className: (0, import_cn.cn)(
|
|
312
|
+
"font-medium leading-5 text-foreground",
|
|
313
|
+
labelSizeMap[size]
|
|
314
|
+
),
|
|
315
|
+
children: label
|
|
316
|
+
}
|
|
317
|
+
),
|
|
318
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
319
|
+
"span",
|
|
320
|
+
{
|
|
321
|
+
id: descriptionId,
|
|
322
|
+
className: (0, import_cn.cn)(
|
|
323
|
+
"text-muted-foreground leading-4",
|
|
324
|
+
descriptionSizeMap[size]
|
|
325
|
+
),
|
|
326
|
+
children: description
|
|
327
|
+
}
|
|
328
|
+
),
|
|
329
|
+
children
|
|
330
|
+
] })
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
);
|
|
334
|
+
});
|
|
335
|
+
RadioCard.displayName = "RadioCard";
|
|
336
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
337
|
+
0 && (module.exports = {
|
|
338
|
+
RadioCard,
|
|
339
|
+
RadioGroup,
|
|
340
|
+
RadioGroupItem,
|
|
341
|
+
radioCardVariants,
|
|
342
|
+
radioGroupVariants,
|
|
343
|
+
radioIndicatorVariants
|
|
344
|
+
});
|
|
@@ -0,0 +1,145 @@
|
|
|
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 { RadioGroup as RadioGroup$1 } from 'radix-ui';
|
|
6
|
+
|
|
7
|
+
declare const radioGroupVariants: (props?: ({
|
|
8
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare const radioIndicatorVariants: (props?: ({
|
|
11
|
+
size?: "sm" | "md" | null | undefined;
|
|
12
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
13
|
+
declare const radioCardVariants: (props?: ({
|
|
14
|
+
size?: "sm" | "md" | null | undefined;
|
|
15
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
16
|
+
type RadioSize = "sm" | "md";
|
|
17
|
+
type RadioOrientation = "vertical" | "horizontal";
|
|
18
|
+
interface RadioGroupProps extends Omit<RadioGroup$1.RadioGroupProps, "orientation" | "asChild">, VariantProps<typeof radioGroupVariants> {
|
|
19
|
+
/**
|
|
20
|
+
* Layout direction of the radio group.
|
|
21
|
+
* @default "vertical"
|
|
22
|
+
*/
|
|
23
|
+
orientation?: RadioOrientation;
|
|
24
|
+
/**
|
|
25
|
+
* Size of all radio items in the group.
|
|
26
|
+
* @default "md"
|
|
27
|
+
*/
|
|
28
|
+
size?: RadioSize;
|
|
29
|
+
/** Additional CSS classes to merge on the root element. */
|
|
30
|
+
className?: string;
|
|
31
|
+
/** The radio group items. */
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
interface RadioGroupItemProps extends Omit<RadioGroup$1.RadioGroupItemProps, "asChild"> {
|
|
35
|
+
/**
|
|
36
|
+
* The value of this radio item.
|
|
37
|
+
*/
|
|
38
|
+
value: string;
|
|
39
|
+
/**
|
|
40
|
+
* Label text displayed next to the radio indicator.
|
|
41
|
+
*/
|
|
42
|
+
label?: ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Optional description displayed below the label.
|
|
45
|
+
*/
|
|
46
|
+
description?: ReactNode;
|
|
47
|
+
/**
|
|
48
|
+
* Override the group-level size for this specific item.
|
|
49
|
+
*/
|
|
50
|
+
size?: RadioSize;
|
|
51
|
+
/** Additional CSS classes to merge on the wrapper element. */
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
interface RadioCardProps extends Omit<RadioGroup$1.RadioGroupItemProps, "asChild"> {
|
|
55
|
+
/**
|
|
56
|
+
* The value of this radio card.
|
|
57
|
+
*/
|
|
58
|
+
value: string;
|
|
59
|
+
/**
|
|
60
|
+
* Label text for the card.
|
|
61
|
+
*/
|
|
62
|
+
label?: ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* Description text displayed below the label.
|
|
65
|
+
*/
|
|
66
|
+
description?: ReactNode;
|
|
67
|
+
/**
|
|
68
|
+
* Override the group-level size for this specific card.
|
|
69
|
+
*/
|
|
70
|
+
size?: RadioSize;
|
|
71
|
+
/** Additional CSS classes to merge on the card wrapper. */
|
|
72
|
+
className?: string;
|
|
73
|
+
/** Additional content to render inside the card. */
|
|
74
|
+
children?: ReactNode;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* RadioGroup — a group of radio buttons for selecting a single value.
|
|
78
|
+
*
|
|
79
|
+
* Built on Radix UI's RadioGroup primitive for full keyboard navigation
|
|
80
|
+
* and ARIA compliance. All colors, radii, and transitions come from CSS
|
|
81
|
+
* custom properties defined in design-system.css.
|
|
82
|
+
*
|
|
83
|
+
* Accessibility:
|
|
84
|
+
* - Radix UI provides `role="radiogroup"` and manages `aria-checked`
|
|
85
|
+
* - Arrow key navigation between items
|
|
86
|
+
* - Supports `aria-label` and `aria-labelledby`
|
|
87
|
+
* - Disabled state propagated to all children
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```tsx
|
|
91
|
+
* <RadioGroup value={value} onValueChange={setValue}>
|
|
92
|
+
* <RadioGroupItem value="option-1" label="Option 1" />
|
|
93
|
+
* <RadioGroupItem value="option-2" label="Option 2" />
|
|
94
|
+
* <RadioGroupItem value="option-3" label="Option 3" disabled />
|
|
95
|
+
* </RadioGroup>
|
|
96
|
+
*
|
|
97
|
+
* // Horizontal layout
|
|
98
|
+
* <RadioGroup orientation="horizontal" size="sm">
|
|
99
|
+
* <RadioGroupItem value="a" label="A" />
|
|
100
|
+
* <RadioGroupItem value="b" label="B" />
|
|
101
|
+
* </RadioGroup>
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
declare const RadioGroup: react.ForwardRefExoticComponent<RadioGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
105
|
+
/**
|
|
106
|
+
* RadioGroupItem — a single radio button with optional label and description.
|
|
107
|
+
*
|
|
108
|
+
* Must be used as a child of `RadioGroup`.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* <RadioGroupItem value="newsletter" label="Subscribe to newsletter" />
|
|
113
|
+
* <RadioGroupItem
|
|
114
|
+
* value="updates"
|
|
115
|
+
* label="Product updates"
|
|
116
|
+
* description="Get notified about new features and improvements"
|
|
117
|
+
* />
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
declare const RadioGroupItem: react.ForwardRefExoticComponent<RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>>;
|
|
121
|
+
/**
|
|
122
|
+
* RadioCard — a card-style radio button where the entire card is clickable.
|
|
123
|
+
*
|
|
124
|
+
* Must be used as a child of `RadioGroup`. Provides a richer visual
|
|
125
|
+
* treatment for radio options, useful for plan selectors, theme pickers, etc.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```tsx
|
|
129
|
+
* <RadioGroup value={plan} onValueChange={setPlan}>
|
|
130
|
+
* <RadioCard
|
|
131
|
+
* value="free"
|
|
132
|
+
* label="Free Plan"
|
|
133
|
+
* description="Basic features, limited storage"
|
|
134
|
+
* />
|
|
135
|
+
* <RadioCard
|
|
136
|
+
* value="pro"
|
|
137
|
+
* label="Pro Plan"
|
|
138
|
+
* description="All features, unlimited storage"
|
|
139
|
+
* />
|
|
140
|
+
* </RadioGroup>
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
declare const RadioCard: react.ForwardRefExoticComponent<RadioCardProps & react.RefAttributes<HTMLButtonElement>>;
|
|
144
|
+
|
|
145
|
+
export { RadioCard, type RadioCardProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioOrientation, type RadioSize, radioCardVariants, radioGroupVariants, radioIndicatorVariants };
|