@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,99 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../utils/cn.mjs";
|
|
4
|
+
import { motion, useReducedMotion } from "framer-motion";
|
|
5
|
+
import {
|
|
6
|
+
Group,
|
|
7
|
+
Panel,
|
|
8
|
+
Separator
|
|
9
|
+
} from "react-resizable-panels";
|
|
10
|
+
function ResizablePanelGroup({
|
|
11
|
+
direction = "horizontal",
|
|
12
|
+
className,
|
|
13
|
+
...rest
|
|
14
|
+
}) {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
Group,
|
|
17
|
+
{
|
|
18
|
+
orientation: direction,
|
|
19
|
+
className: cn(
|
|
20
|
+
"flex h-full w-full",
|
|
21
|
+
direction === "vertical" && "flex-col",
|
|
22
|
+
className
|
|
23
|
+
),
|
|
24
|
+
"data-ds": "",
|
|
25
|
+
"data-ds-component": "resizable-panel-group",
|
|
26
|
+
"data-ds-direction": direction,
|
|
27
|
+
...rest
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
ResizablePanelGroup.displayName = "ResizablePanelGroup";
|
|
32
|
+
const ResizablePanel = Panel;
|
|
33
|
+
function GripIcon({ className }) {
|
|
34
|
+
return /* @__PURE__ */ jsxs(
|
|
35
|
+
"svg",
|
|
36
|
+
{
|
|
37
|
+
className,
|
|
38
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
39
|
+
viewBox: "0 0 24 24",
|
|
40
|
+
fill: "none",
|
|
41
|
+
stroke: "currentColor",
|
|
42
|
+
strokeWidth: "2",
|
|
43
|
+
strokeLinecap: "round",
|
|
44
|
+
strokeLinejoin: "round",
|
|
45
|
+
"aria-hidden": "true",
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsx("circle", { cx: "9", cy: "12", r: "1" }),
|
|
48
|
+
/* @__PURE__ */ jsx("circle", { cx: "9", cy: "5", r: "1" }),
|
|
49
|
+
/* @__PURE__ */ jsx("circle", { cx: "9", cy: "19", r: "1" }),
|
|
50
|
+
/* @__PURE__ */ jsx("circle", { cx: "15", cy: "12", r: "1" }),
|
|
51
|
+
/* @__PURE__ */ jsx("circle", { cx: "15", cy: "5", r: "1" }),
|
|
52
|
+
/* @__PURE__ */ jsx("circle", { cx: "15", cy: "19", r: "1" })
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function ResizableHandle({
|
|
58
|
+
withHandle = false,
|
|
59
|
+
className,
|
|
60
|
+
...rest
|
|
61
|
+
}) {
|
|
62
|
+
const shouldReduce = useReducedMotion();
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
Separator,
|
|
65
|
+
{
|
|
66
|
+
className: cn(
|
|
67
|
+
"relative flex w-px items-center justify-center bg-border",
|
|
68
|
+
"after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2",
|
|
69
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1",
|
|
70
|
+
"[&[aria-orientation=horizontal]]:h-px [&[aria-orientation=horizontal]]:w-full",
|
|
71
|
+
"[&[aria-orientation=horizontal]]:after:left-0 [&[aria-orientation=horizontal]]:after:h-1",
|
|
72
|
+
"[&[aria-orientation=horizontal]]:after:w-full [&[aria-orientation=horizontal]]:after:-translate-y-1/2",
|
|
73
|
+
"[&[aria-orientation=horizontal]]:after:translate-x-0",
|
|
74
|
+
"[&[aria-orientation=horizontal]>div]:rotate-90",
|
|
75
|
+
className
|
|
76
|
+
),
|
|
77
|
+
"data-ds-component": "resizable-handle",
|
|
78
|
+
...rest,
|
|
79
|
+
children: withHandle && /* @__PURE__ */ jsx(
|
|
80
|
+
motion.div,
|
|
81
|
+
{
|
|
82
|
+
className: cn(
|
|
83
|
+
"z-10 flex h-4 w-3 items-center justify-center rounded-sm border border-border bg-border"
|
|
84
|
+
),
|
|
85
|
+
whileHover: shouldReduce ? void 0 : { opacity: 1, scale: 1.15 },
|
|
86
|
+
initial: { opacity: 0.7 },
|
|
87
|
+
"data-ds-animated": "",
|
|
88
|
+
children: /* @__PURE__ */ jsx(GripIcon, { className: "size-2.5 text-muted-foreground" })
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
ResizableHandle.displayName = "ResizableHandle";
|
|
95
|
+
export {
|
|
96
|
+
ResizableHandle,
|
|
97
|
+
ResizablePanel,
|
|
98
|
+
ResizablePanelGroup
|
|
99
|
+
};
|
|
@@ -0,0 +1,168 @@
|
|
|
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 scroll_area_exports = {};
|
|
21
|
+
__export(scroll_area_exports, {
|
|
22
|
+
ScrollArea: () => ScrollArea,
|
|
23
|
+
ScrollBar: () => ScrollBar,
|
|
24
|
+
scrollbarThumbVariants: () => scrollbarThumbVariants,
|
|
25
|
+
scrollbarVariants: () => scrollbarVariants
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(scroll_area_exports);
|
|
28
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
29
|
+
var import_cn = require("../utils/cn.cjs");
|
|
30
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
31
|
+
var import_radix_ui = require("radix-ui");
|
|
32
|
+
var import_react = require("react");
|
|
33
|
+
const scrollbarThumbVariants = (0, import_class_variance_authority.cva)(
|
|
34
|
+
[
|
|
35
|
+
// Shape
|
|
36
|
+
"relative rounded-full",
|
|
37
|
+
// Color
|
|
38
|
+
"bg-border",
|
|
39
|
+
// Transition
|
|
40
|
+
"transition-[background-color] duration-fast ease-standard",
|
|
41
|
+
// Hover
|
|
42
|
+
"hover:bg-muted-foreground/50"
|
|
43
|
+
],
|
|
44
|
+
{
|
|
45
|
+
variants: {
|
|
46
|
+
size: {
|
|
47
|
+
sm: "",
|
|
48
|
+
md: ""
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
defaultVariants: {
|
|
52
|
+
size: "md"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
const scrollbarVariants = (0, import_class_variance_authority.cva)(
|
|
57
|
+
[
|
|
58
|
+
// Layout
|
|
59
|
+
"flex touch-none select-none",
|
|
60
|
+
// Transition
|
|
61
|
+
"transition-[background-color,opacity] duration-fast ease-standard",
|
|
62
|
+
// Background
|
|
63
|
+
"bg-transparent",
|
|
64
|
+
// Hover — subtle track background
|
|
65
|
+
"hover:bg-muted/50",
|
|
66
|
+
// Border
|
|
67
|
+
"border-transparent"
|
|
68
|
+
],
|
|
69
|
+
{
|
|
70
|
+
variants: {
|
|
71
|
+
orientation: {
|
|
72
|
+
vertical: "h-full border-l border-l-transparent p-px",
|
|
73
|
+
horizontal: "flex-col border-t border-t-transparent p-px"
|
|
74
|
+
},
|
|
75
|
+
size: {
|
|
76
|
+
/**
|
|
77
|
+
* Small — thin scrollbar for compact UIs.
|
|
78
|
+
* Track width/height: 6px
|
|
79
|
+
*/
|
|
80
|
+
sm: "",
|
|
81
|
+
/**
|
|
82
|
+
* Medium — default scrollbar width.
|
|
83
|
+
* Track width/height: 10px
|
|
84
|
+
*/
|
|
85
|
+
md: ""
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
compoundVariants: [
|
|
89
|
+
{ orientation: "vertical", size: "sm", className: "w-1.5" },
|
|
90
|
+
{ orientation: "vertical", size: "md", className: "w-2.5" },
|
|
91
|
+
{ orientation: "horizontal", size: "sm", className: "h-1.5" },
|
|
92
|
+
{ orientation: "horizontal", size: "md", className: "h-2.5" }
|
|
93
|
+
],
|
|
94
|
+
defaultVariants: {
|
|
95
|
+
orientation: "vertical",
|
|
96
|
+
size: "md"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
const ScrollBar = (0, import_react.forwardRef)(function ScrollBar2({ orientation = "vertical", size = "md", className, ...rest }, ref) {
|
|
101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
102
|
+
import_radix_ui.ScrollArea.Scrollbar,
|
|
103
|
+
{
|
|
104
|
+
ref,
|
|
105
|
+
orientation,
|
|
106
|
+
className: (0, import_cn.cn)(scrollbarVariants({ orientation, size }), className),
|
|
107
|
+
"data-ds": "",
|
|
108
|
+
"data-ds-component": "scroll-bar",
|
|
109
|
+
"data-ds-orientation": orientation,
|
|
110
|
+
"data-ds-size": size,
|
|
111
|
+
...rest,
|
|
112
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
113
|
+
import_radix_ui.ScrollArea.Thumb,
|
|
114
|
+
{
|
|
115
|
+
className: (0, import_cn.cn)(scrollbarThumbVariants({ size }))
|
|
116
|
+
}
|
|
117
|
+
)
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
});
|
|
121
|
+
ScrollBar.displayName = "ScrollBar";
|
|
122
|
+
const ScrollArea = (0, import_react.forwardRef)(function ScrollArea2({
|
|
123
|
+
type = "hover",
|
|
124
|
+
scrollbarSize = "md",
|
|
125
|
+
showVertical = true,
|
|
126
|
+
showHorizontal = false,
|
|
127
|
+
viewportClassName,
|
|
128
|
+
className,
|
|
129
|
+
children,
|
|
130
|
+
...rest
|
|
131
|
+
}, ref) {
|
|
132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
133
|
+
import_radix_ui.ScrollArea.Root,
|
|
134
|
+
{
|
|
135
|
+
ref,
|
|
136
|
+
type,
|
|
137
|
+
className: (0, import_cn.cn)("relative overflow-hidden", className),
|
|
138
|
+
"data-ds": "",
|
|
139
|
+
"data-ds-component": "scroll-area",
|
|
140
|
+
...rest,
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
143
|
+
import_radix_ui.ScrollArea.Viewport,
|
|
144
|
+
{
|
|
145
|
+
className: (0, import_cn.cn)(
|
|
146
|
+
"size-full rounded-[inherit]",
|
|
147
|
+
// Ensure the viewport stretches children to full width
|
|
148
|
+
"[&>div]:!block",
|
|
149
|
+
viewportClassName
|
|
150
|
+
),
|
|
151
|
+
children
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
showVertical && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollBar, { orientation: "vertical", size: scrollbarSize }),
|
|
155
|
+
showHorizontal && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollBar, { orientation: "horizontal", size: scrollbarSize }),
|
|
156
|
+
showVertical && showHorizontal && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.ScrollArea.Corner, { className: "bg-muted/50" })
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
});
|
|
161
|
+
ScrollArea.displayName = "ScrollArea";
|
|
162
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
163
|
+
0 && (module.exports = {
|
|
164
|
+
ScrollArea,
|
|
165
|
+
ScrollBar,
|
|
166
|
+
scrollbarThumbVariants,
|
|
167
|
+
scrollbarVariants
|
|
168
|
+
});
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import { ScrollArea as ScrollArea$1 } from 'radix-ui';
|
|
5
|
+
|
|
6
|
+
declare const scrollbarThumbVariants: (props?: ({
|
|
7
|
+
size?: "sm" | "md" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
declare const scrollbarVariants: (props?: ({
|
|
10
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
11
|
+
size?: "sm" | "md" | null | undefined;
|
|
12
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
13
|
+
type ScrollAreaType = "auto" | "always" | "scroll" | "hover";
|
|
14
|
+
type ScrollBarSize = "sm" | "md";
|
|
15
|
+
type ScrollBarOrientation = "vertical" | "horizontal";
|
|
16
|
+
interface ScrollAreaProps extends Omit<ComponentPropsWithoutRef<typeof ScrollArea$1.Root>, "type"> {
|
|
17
|
+
/**
|
|
18
|
+
* The scrollbar visibility behavior.
|
|
19
|
+
* - `"auto"` — scrollbars visible when content overflows
|
|
20
|
+
* - `"always"` — scrollbars always visible
|
|
21
|
+
* - `"scroll"` — scrollbars visible during scrolling only
|
|
22
|
+
* - `"hover"` — scrollbars visible on hover only
|
|
23
|
+
* @default "hover"
|
|
24
|
+
*/
|
|
25
|
+
type?: ScrollAreaType;
|
|
26
|
+
/**
|
|
27
|
+
* Size of the scrollbar track.
|
|
28
|
+
* @default "md"
|
|
29
|
+
*/
|
|
30
|
+
scrollbarSize?: ScrollBarSize;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to show the vertical scrollbar.
|
|
33
|
+
* @default true
|
|
34
|
+
*/
|
|
35
|
+
showVertical?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to show the horizontal scrollbar.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
showHorizontal?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Additional CSS classes for the viewport element.
|
|
43
|
+
*/
|
|
44
|
+
viewportClassName?: string;
|
|
45
|
+
/** Additional CSS classes to merge on the root element. */
|
|
46
|
+
className?: string;
|
|
47
|
+
/** Content to render inside the scrollable area. */
|
|
48
|
+
children?: ReactNode;
|
|
49
|
+
}
|
|
50
|
+
interface ScrollBarProps extends ComponentPropsWithoutRef<typeof ScrollArea$1.Scrollbar> {
|
|
51
|
+
/**
|
|
52
|
+
* Orientation of the scrollbar.
|
|
53
|
+
* @default "vertical"
|
|
54
|
+
*/
|
|
55
|
+
orientation?: ScrollBarOrientation;
|
|
56
|
+
/**
|
|
57
|
+
* Size of the scrollbar.
|
|
58
|
+
* @default "md"
|
|
59
|
+
*/
|
|
60
|
+
size?: ScrollBarSize;
|
|
61
|
+
/** Additional CSS classes to merge. */
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* ScrollBar — a styled scrollbar track and thumb.
|
|
66
|
+
*
|
|
67
|
+
* Used internally by ScrollArea but can also be used standalone when
|
|
68
|
+
* composing custom scroll area layouts.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```tsx
|
|
72
|
+
* <ScrollArea.Root>
|
|
73
|
+
* <ScrollArea.Viewport>{content}</ScrollArea.Viewport>
|
|
74
|
+
* <ScrollBar orientation="vertical" size="sm" />
|
|
75
|
+
* <ScrollBar orientation="horizontal" size="sm" />
|
|
76
|
+
* </ScrollArea.Root>
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare const ScrollBar: react.ForwardRefExoticComponent<ScrollBarProps & react.RefAttributes<HTMLDivElement>>;
|
|
80
|
+
/**
|
|
81
|
+
* ScrollArea — a custom scrollbar container for consistent cross-browser
|
|
82
|
+
* scroll appearance.
|
|
83
|
+
*
|
|
84
|
+
* Built on Radix UI's ScrollArea primitive. Replaces native browser
|
|
85
|
+
* scrollbars with styled, consistent scrollbar tracks and thumbs that
|
|
86
|
+
* match the design system's visual language.
|
|
87
|
+
*
|
|
88
|
+
* Accessibility:
|
|
89
|
+
* - Keyboard scrolling works natively (not intercepted)
|
|
90
|
+
* - Custom scrollbars are decorative — assistive technology uses the
|
|
91
|
+
* native scrollable region
|
|
92
|
+
* - Focus management and tab order are preserved
|
|
93
|
+
* - Scroll position is announced by screen readers naturally
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```tsx
|
|
97
|
+
* // Basic vertical scroll
|
|
98
|
+
* <ScrollArea className="h-72 w-full rounded-md border">
|
|
99
|
+
* <div className="p-4">
|
|
100
|
+
* {longContent}
|
|
101
|
+
* </div>
|
|
102
|
+
* </ScrollArea>
|
|
103
|
+
*
|
|
104
|
+
* // Horizontal scroll
|
|
105
|
+
* <ScrollArea className="w-96" showHorizontal showVertical={false}>
|
|
106
|
+
* <div className="flex gap-4 p-4 w-max">
|
|
107
|
+
* {horizontalItems}
|
|
108
|
+
* </div>
|
|
109
|
+
* </ScrollArea>
|
|
110
|
+
*
|
|
111
|
+
* // Both scrollbars with small size
|
|
112
|
+
* <ScrollArea className="h-64 w-64" showHorizontal scrollbarSize="sm">
|
|
113
|
+
* <div className="w-[800px] h-[800px]">
|
|
114
|
+
* {largeContent}
|
|
115
|
+
* </div>
|
|
116
|
+
* </ScrollArea>
|
|
117
|
+
*
|
|
118
|
+
* // Always visible scrollbars
|
|
119
|
+
* <ScrollArea className="h-48" type="always">
|
|
120
|
+
* {content}
|
|
121
|
+
* </ScrollArea>
|
|
122
|
+
*
|
|
123
|
+
* // Scroll on hover only
|
|
124
|
+
* <ScrollArea className="h-48" type="hover">
|
|
125
|
+
* {content}
|
|
126
|
+
* </ScrollArea>
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
declare const ScrollArea: react.ForwardRefExoticComponent<ScrollAreaProps & react.RefAttributes<HTMLDivElement>>;
|
|
130
|
+
|
|
131
|
+
export { ScrollArea, type ScrollAreaProps, type ScrollAreaType, ScrollBar, type ScrollBarOrientation, type ScrollBarProps, type ScrollBarSize, scrollbarThumbVariants, scrollbarVariants };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import { ScrollArea as ScrollArea$1 } from 'radix-ui';
|
|
5
|
+
|
|
6
|
+
declare const scrollbarThumbVariants: (props?: ({
|
|
7
|
+
size?: "sm" | "md" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
declare const scrollbarVariants: (props?: ({
|
|
10
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
11
|
+
size?: "sm" | "md" | null | undefined;
|
|
12
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
13
|
+
type ScrollAreaType = "auto" | "always" | "scroll" | "hover";
|
|
14
|
+
type ScrollBarSize = "sm" | "md";
|
|
15
|
+
type ScrollBarOrientation = "vertical" | "horizontal";
|
|
16
|
+
interface ScrollAreaProps extends Omit<ComponentPropsWithoutRef<typeof ScrollArea$1.Root>, "type"> {
|
|
17
|
+
/**
|
|
18
|
+
* The scrollbar visibility behavior.
|
|
19
|
+
* - `"auto"` — scrollbars visible when content overflows
|
|
20
|
+
* - `"always"` — scrollbars always visible
|
|
21
|
+
* - `"scroll"` — scrollbars visible during scrolling only
|
|
22
|
+
* - `"hover"` — scrollbars visible on hover only
|
|
23
|
+
* @default "hover"
|
|
24
|
+
*/
|
|
25
|
+
type?: ScrollAreaType;
|
|
26
|
+
/**
|
|
27
|
+
* Size of the scrollbar track.
|
|
28
|
+
* @default "md"
|
|
29
|
+
*/
|
|
30
|
+
scrollbarSize?: ScrollBarSize;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to show the vertical scrollbar.
|
|
33
|
+
* @default true
|
|
34
|
+
*/
|
|
35
|
+
showVertical?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to show the horizontal scrollbar.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
showHorizontal?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Additional CSS classes for the viewport element.
|
|
43
|
+
*/
|
|
44
|
+
viewportClassName?: string;
|
|
45
|
+
/** Additional CSS classes to merge on the root element. */
|
|
46
|
+
className?: string;
|
|
47
|
+
/** Content to render inside the scrollable area. */
|
|
48
|
+
children?: ReactNode;
|
|
49
|
+
}
|
|
50
|
+
interface ScrollBarProps extends ComponentPropsWithoutRef<typeof ScrollArea$1.Scrollbar> {
|
|
51
|
+
/**
|
|
52
|
+
* Orientation of the scrollbar.
|
|
53
|
+
* @default "vertical"
|
|
54
|
+
*/
|
|
55
|
+
orientation?: ScrollBarOrientation;
|
|
56
|
+
/**
|
|
57
|
+
* Size of the scrollbar.
|
|
58
|
+
* @default "md"
|
|
59
|
+
*/
|
|
60
|
+
size?: ScrollBarSize;
|
|
61
|
+
/** Additional CSS classes to merge. */
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* ScrollBar — a styled scrollbar track and thumb.
|
|
66
|
+
*
|
|
67
|
+
* Used internally by ScrollArea but can also be used standalone when
|
|
68
|
+
* composing custom scroll area layouts.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```tsx
|
|
72
|
+
* <ScrollArea.Root>
|
|
73
|
+
* <ScrollArea.Viewport>{content}</ScrollArea.Viewport>
|
|
74
|
+
* <ScrollBar orientation="vertical" size="sm" />
|
|
75
|
+
* <ScrollBar orientation="horizontal" size="sm" />
|
|
76
|
+
* </ScrollArea.Root>
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare const ScrollBar: react.ForwardRefExoticComponent<ScrollBarProps & react.RefAttributes<HTMLDivElement>>;
|
|
80
|
+
/**
|
|
81
|
+
* ScrollArea — a custom scrollbar container for consistent cross-browser
|
|
82
|
+
* scroll appearance.
|
|
83
|
+
*
|
|
84
|
+
* Built on Radix UI's ScrollArea primitive. Replaces native browser
|
|
85
|
+
* scrollbars with styled, consistent scrollbar tracks and thumbs that
|
|
86
|
+
* match the design system's visual language.
|
|
87
|
+
*
|
|
88
|
+
* Accessibility:
|
|
89
|
+
* - Keyboard scrolling works natively (not intercepted)
|
|
90
|
+
* - Custom scrollbars are decorative — assistive technology uses the
|
|
91
|
+
* native scrollable region
|
|
92
|
+
* - Focus management and tab order are preserved
|
|
93
|
+
* - Scroll position is announced by screen readers naturally
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```tsx
|
|
97
|
+
* // Basic vertical scroll
|
|
98
|
+
* <ScrollArea className="h-72 w-full rounded-md border">
|
|
99
|
+
* <div className="p-4">
|
|
100
|
+
* {longContent}
|
|
101
|
+
* </div>
|
|
102
|
+
* </ScrollArea>
|
|
103
|
+
*
|
|
104
|
+
* // Horizontal scroll
|
|
105
|
+
* <ScrollArea className="w-96" showHorizontal showVertical={false}>
|
|
106
|
+
* <div className="flex gap-4 p-4 w-max">
|
|
107
|
+
* {horizontalItems}
|
|
108
|
+
* </div>
|
|
109
|
+
* </ScrollArea>
|
|
110
|
+
*
|
|
111
|
+
* // Both scrollbars with small size
|
|
112
|
+
* <ScrollArea className="h-64 w-64" showHorizontal scrollbarSize="sm">
|
|
113
|
+
* <div className="w-[800px] h-[800px]">
|
|
114
|
+
* {largeContent}
|
|
115
|
+
* </div>
|
|
116
|
+
* </ScrollArea>
|
|
117
|
+
*
|
|
118
|
+
* // Always visible scrollbars
|
|
119
|
+
* <ScrollArea className="h-48" type="always">
|
|
120
|
+
* {content}
|
|
121
|
+
* </ScrollArea>
|
|
122
|
+
*
|
|
123
|
+
* // Scroll on hover only
|
|
124
|
+
* <ScrollArea className="h-48" type="hover">
|
|
125
|
+
* {content}
|
|
126
|
+
* </ScrollArea>
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
declare const ScrollArea: react.ForwardRefExoticComponent<ScrollAreaProps & react.RefAttributes<HTMLDivElement>>;
|
|
130
|
+
|
|
131
|
+
export { ScrollArea, type ScrollAreaProps, type ScrollAreaType, ScrollBar, type ScrollBarOrientation, type ScrollBarProps, type ScrollBarSize, scrollbarThumbVariants, scrollbarVariants };
|
|
@@ -0,0 +1,143 @@
|
|
|
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 { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
6
|
+
import {
|
|
7
|
+
forwardRef
|
|
8
|
+
} from "react";
|
|
9
|
+
const scrollbarThumbVariants = cva(
|
|
10
|
+
[
|
|
11
|
+
// Shape
|
|
12
|
+
"relative rounded-full",
|
|
13
|
+
// Color
|
|
14
|
+
"bg-border",
|
|
15
|
+
// Transition
|
|
16
|
+
"transition-[background-color] duration-fast ease-standard",
|
|
17
|
+
// Hover
|
|
18
|
+
"hover:bg-muted-foreground/50"
|
|
19
|
+
],
|
|
20
|
+
{
|
|
21
|
+
variants: {
|
|
22
|
+
size: {
|
|
23
|
+
sm: "",
|
|
24
|
+
md: ""
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
defaultVariants: {
|
|
28
|
+
size: "md"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
const scrollbarVariants = cva(
|
|
33
|
+
[
|
|
34
|
+
// Layout
|
|
35
|
+
"flex touch-none select-none",
|
|
36
|
+
// Transition
|
|
37
|
+
"transition-[background-color,opacity] duration-fast ease-standard",
|
|
38
|
+
// Background
|
|
39
|
+
"bg-transparent",
|
|
40
|
+
// Hover — subtle track background
|
|
41
|
+
"hover:bg-muted/50",
|
|
42
|
+
// Border
|
|
43
|
+
"border-transparent"
|
|
44
|
+
],
|
|
45
|
+
{
|
|
46
|
+
variants: {
|
|
47
|
+
orientation: {
|
|
48
|
+
vertical: "h-full border-l border-l-transparent p-px",
|
|
49
|
+
horizontal: "flex-col border-t border-t-transparent p-px"
|
|
50
|
+
},
|
|
51
|
+
size: {
|
|
52
|
+
/**
|
|
53
|
+
* Small — thin scrollbar for compact UIs.
|
|
54
|
+
* Track width/height: 6px
|
|
55
|
+
*/
|
|
56
|
+
sm: "",
|
|
57
|
+
/**
|
|
58
|
+
* Medium — default scrollbar width.
|
|
59
|
+
* Track width/height: 10px
|
|
60
|
+
*/
|
|
61
|
+
md: ""
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
compoundVariants: [
|
|
65
|
+
{ orientation: "vertical", size: "sm", className: "w-1.5" },
|
|
66
|
+
{ orientation: "vertical", size: "md", className: "w-2.5" },
|
|
67
|
+
{ orientation: "horizontal", size: "sm", className: "h-1.5" },
|
|
68
|
+
{ orientation: "horizontal", size: "md", className: "h-2.5" }
|
|
69
|
+
],
|
|
70
|
+
defaultVariants: {
|
|
71
|
+
orientation: "vertical",
|
|
72
|
+
size: "md"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
const ScrollBar = forwardRef(function ScrollBar2({ orientation = "vertical", size = "md", className, ...rest }, ref) {
|
|
77
|
+
return /* @__PURE__ */ jsx(
|
|
78
|
+
ScrollAreaPrimitive.Scrollbar,
|
|
79
|
+
{
|
|
80
|
+
ref,
|
|
81
|
+
orientation,
|
|
82
|
+
className: cn(scrollbarVariants({ orientation, size }), className),
|
|
83
|
+
"data-ds": "",
|
|
84
|
+
"data-ds-component": "scroll-bar",
|
|
85
|
+
"data-ds-orientation": orientation,
|
|
86
|
+
"data-ds-size": size,
|
|
87
|
+
...rest,
|
|
88
|
+
children: /* @__PURE__ */ jsx(
|
|
89
|
+
ScrollAreaPrimitive.Thumb,
|
|
90
|
+
{
|
|
91
|
+
className: cn(scrollbarThumbVariants({ size }))
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
});
|
|
97
|
+
ScrollBar.displayName = "ScrollBar";
|
|
98
|
+
const ScrollArea = forwardRef(function ScrollArea2({
|
|
99
|
+
type = "hover",
|
|
100
|
+
scrollbarSize = "md",
|
|
101
|
+
showVertical = true,
|
|
102
|
+
showHorizontal = false,
|
|
103
|
+
viewportClassName,
|
|
104
|
+
className,
|
|
105
|
+
children,
|
|
106
|
+
...rest
|
|
107
|
+
}, ref) {
|
|
108
|
+
return /* @__PURE__ */ jsxs(
|
|
109
|
+
ScrollAreaPrimitive.Root,
|
|
110
|
+
{
|
|
111
|
+
ref,
|
|
112
|
+
type,
|
|
113
|
+
className: cn("relative overflow-hidden", className),
|
|
114
|
+
"data-ds": "",
|
|
115
|
+
"data-ds-component": "scroll-area",
|
|
116
|
+
...rest,
|
|
117
|
+
children: [
|
|
118
|
+
/* @__PURE__ */ jsx(
|
|
119
|
+
ScrollAreaPrimitive.Viewport,
|
|
120
|
+
{
|
|
121
|
+
className: cn(
|
|
122
|
+
"size-full rounded-[inherit]",
|
|
123
|
+
// Ensure the viewport stretches children to full width
|
|
124
|
+
"[&>div]:!block",
|
|
125
|
+
viewportClassName
|
|
126
|
+
),
|
|
127
|
+
children
|
|
128
|
+
}
|
|
129
|
+
),
|
|
130
|
+
showVertical && /* @__PURE__ */ jsx(ScrollBar, { orientation: "vertical", size: scrollbarSize }),
|
|
131
|
+
showHorizontal && /* @__PURE__ */ jsx(ScrollBar, { orientation: "horizontal", size: scrollbarSize }),
|
|
132
|
+
showVertical && showHorizontal && /* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, { className: "bg-muted/50" })
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
);
|
|
136
|
+
});
|
|
137
|
+
ScrollArea.displayName = "ScrollArea";
|
|
138
|
+
export {
|
|
139
|
+
ScrollArea,
|
|
140
|
+
ScrollBar,
|
|
141
|
+
scrollbarThumbVariants,
|
|
142
|
+
scrollbarVariants
|
|
143
|
+
};
|