@work-rjkashyap/unified-ui 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +105 -0
- package/LICENSE +21 -0
- package/dist/components/accordion.cjs +225 -0
- package/dist/components/accordion.d.cts +157 -0
- package/dist/components/accordion.d.ts +157 -0
- package/dist/components/accordion.mjs +199 -0
- package/dist/components/alert-dialog.cjs +246 -0
- package/dist/components/alert-dialog.d.cts +61 -0
- package/dist/components/alert-dialog.d.ts +61 -0
- package/dist/components/alert-dialog.mjs +218 -0
- package/dist/components/alert.cjs +401 -0
- package/dist/components/alert.d.cts +217 -0
- package/dist/components/alert.d.ts +217 -0
- package/dist/components/alert.mjs +374 -0
- package/dist/components/aspect-ratio.cjs +45 -0
- package/dist/components/aspect-ratio.d.cts +10 -0
- package/dist/components/aspect-ratio.d.ts +10 -0
- package/dist/components/aspect-ratio.mjs +23 -0
- package/dist/components/avatar.cjs +348 -0
- package/dist/components/avatar.d.cts +198 -0
- package/dist/components/avatar.d.ts +198 -0
- package/dist/components/avatar.mjs +329 -0
- package/dist/components/badge.cjs +325 -0
- package/dist/components/badge.d.cts +259 -0
- package/dist/components/badge.d.ts +259 -0
- package/dist/components/badge.mjs +298 -0
- package/dist/components/banner.cjs +147 -0
- package/dist/components/banner.d.cts +31 -0
- package/dist/components/banner.d.ts +31 -0
- package/dist/components/banner.mjs +122 -0
- package/dist/components/breadcrumb.cjs +266 -0
- package/dist/components/breadcrumb.d.cts +159 -0
- package/dist/components/breadcrumb.d.ts +159 -0
- package/dist/components/breadcrumb.mjs +235 -0
- package/dist/components/button.cjs +254 -0
- package/dist/components/button.d.cts +126 -0
- package/dist/components/button.d.ts +126 -0
- package/dist/components/button.mjs +229 -0
- package/dist/components/calendar.cjs +511 -0
- package/dist/components/calendar.d.cts +94 -0
- package/dist/components/calendar.d.ts +94 -0
- package/dist/components/calendar.mjs +492 -0
- package/dist/components/card.cjs +234 -0
- package/dist/components/card.d.cts +190 -0
- package/dist/components/card.d.ts +190 -0
- package/dist/components/card.mjs +210 -0
- package/dist/components/carousel.cjs +234 -0
- package/dist/components/carousel.d.cts +30 -0
- package/dist/components/carousel.d.ts +30 -0
- package/dist/components/carousel.mjs +217 -0
- package/dist/components/chart.cjs +122 -0
- package/dist/components/chart.d.cts +103 -0
- package/dist/components/chart.d.ts +103 -0
- package/dist/components/chart.mjs +96 -0
- package/dist/components/checkbox.cjs +318 -0
- package/dist/components/checkbox.d.cts +182 -0
- package/dist/components/checkbox.d.ts +182 -0
- package/dist/components/checkbox.mjs +296 -0
- package/dist/components/code-highlight.cjs +335 -0
- package/dist/components/code-highlight.d.cts +18 -0
- package/dist/components/code-highlight.d.ts +18 -0
- package/dist/components/code-highlight.mjs +308 -0
- package/dist/components/code.cjs +265 -0
- package/dist/components/code.d.cts +40 -0
- package/dist/components/code.d.ts +40 -0
- package/dist/components/code.mjs +243 -0
- package/dist/components/collapsible.cjs +143 -0
- package/dist/components/collapsible.d.cts +159 -0
- package/dist/components/collapsible.d.ts +159 -0
- package/dist/components/collapsible.mjs +123 -0
- package/dist/components/color-picker.cjs +348 -0
- package/dist/components/color-picker.d.cts +35 -0
- package/dist/components/color-picker.d.ts +35 -0
- package/dist/components/color-picker.mjs +331 -0
- package/dist/components/combobox.cjs +584 -0
- package/dist/components/combobox.d.cts +183 -0
- package/dist/components/combobox.d.ts +183 -0
- package/dist/components/combobox.mjs +571 -0
- package/dist/components/command.cjs +329 -0
- package/dist/components/command.d.cts +97 -0
- package/dist/components/command.d.ts +97 -0
- package/dist/components/command.mjs +311 -0
- package/dist/components/confirm-dialog.cjs +100 -0
- package/dist/components/confirm-dialog.d.cts +25 -0
- package/dist/components/confirm-dialog.d.ts +25 -0
- package/dist/components/confirm-dialog.mjs +86 -0
- package/dist/components/context-menu.cjs +325 -0
- package/dist/components/context-menu.d.cts +259 -0
- package/dist/components/context-menu.d.ts +259 -0
- package/dist/components/context-menu.mjs +290 -0
- package/dist/components/copy-button.cjs +203 -0
- package/dist/components/copy-button.d.cts +22 -0
- package/dist/components/copy-button.d.ts +22 -0
- package/dist/components/copy-button.mjs +178 -0
- package/dist/components/data-list.cjs +140 -0
- package/dist/components/data-list.d.cts +36 -0
- package/dist/components/data-list.d.ts +36 -0
- package/dist/components/data-list.mjs +113 -0
- package/dist/components/data-table-toolbar.cjs +338 -0
- package/dist/components/data-table-toolbar.d.cts +84 -0
- package/dist/components/data-table-toolbar.d.ts +84 -0
- package/dist/components/data-table-toolbar.mjs +320 -0
- package/dist/components/data-table.cjs +1324 -0
- package/dist/components/data-table.d.cts +349 -0
- package/dist/components/data-table.d.ts +349 -0
- package/dist/components/data-table.mjs +1323 -0
- package/dist/components/date-picker.cjs +282 -0
- package/dist/components/date-picker.d.cts +97 -0
- package/dist/components/date-picker.d.ts +97 -0
- package/dist/components/date-picker.mjs +258 -0
- package/dist/components/dialog.cjs +319 -0
- package/dist/components/dialog.d.cts +74 -0
- package/dist/components/dialog.d.ts +74 -0
- package/dist/components/dialog.mjs +292 -0
- package/dist/components/drawer.cjs +262 -0
- package/dist/components/drawer.d.cts +113 -0
- package/dist/components/drawer.d.ts +113 -0
- package/dist/components/drawer.mjs +230 -0
- package/dist/components/dropdown-menu.cjs +328 -0
- package/dist/components/dropdown-menu.d.cts +95 -0
- package/dist/components/dropdown-menu.d.ts +95 -0
- package/dist/components/dropdown-menu.mjs +293 -0
- package/dist/components/empty-state.cjs +123 -0
- package/dist/components/empty-state.d.cts +15 -0
- package/dist/components/empty-state.d.ts +15 -0
- package/dist/components/empty-state.mjs +99 -0
- package/dist/components/file-upload.cjs +442 -0
- package/dist/components/file-upload.d.cts +35 -0
- package/dist/components/file-upload.d.ts +35 -0
- package/dist/components/file-upload.mjs +423 -0
- package/dist/components/form-field.cjs +191 -0
- package/dist/components/form-field.d.cts +163 -0
- package/dist/components/form-field.d.ts +163 -0
- package/dist/components/form-field.mjs +167 -0
- package/dist/components/hover-card.cjs +99 -0
- package/dist/components/hover-card.d.cts +28 -0
- package/dist/components/hover-card.d.ts +28 -0
- package/dist/components/hover-card.mjs +75 -0
- package/dist/components/image-gallery.cjs +359 -0
- package/dist/components/image-gallery.d.cts +46 -0
- package/dist/components/image-gallery.d.ts +46 -0
- package/dist/components/image-gallery.mjs +340 -0
- package/dist/components/index.cjs +719 -0
- package/dist/components/index.d.cts +84 -0
- package/dist/components/index.d.ts +84 -0
- package/dist/components/index.mjs +771 -0
- package/dist/components/infinite-scroll.cjs +95 -0
- package/dist/components/infinite-scroll.d.cts +54 -0
- package/dist/components/infinite-scroll.d.ts +54 -0
- package/dist/components/infinite-scroll.mjs +71 -0
- package/dist/components/input-group.cjs +202 -0
- package/dist/components/input-group.d.cts +22 -0
- package/dist/components/input-group.d.ts +22 -0
- package/dist/components/input-group.mjs +178 -0
- package/dist/components/input.cjs +318 -0
- package/dist/components/input.d.cts +99 -0
- package/dist/components/input.d.ts +99 -0
- package/dist/components/input.mjs +296 -0
- package/dist/components/kbd.cjs +69 -0
- package/dist/components/kbd.d.cts +25 -0
- package/dist/components/kbd.d.ts +25 -0
- package/dist/components/kbd.mjs +44 -0
- package/dist/components/label.cjs +138 -0
- package/dist/components/label.d.cts +91 -0
- package/dist/components/label.d.ts +91 -0
- package/dist/components/label.mjs +113 -0
- package/dist/components/markdown.cjs +179 -0
- package/dist/components/markdown.d.cts +41 -0
- package/dist/components/markdown.d.ts +41 -0
- package/dist/components/markdown.mjs +155 -0
- package/dist/components/menubar.cjs +365 -0
- package/dist/components/menubar.d.cts +88 -0
- package/dist/components/menubar.d.ts +88 -0
- package/dist/components/menubar.mjs +329 -0
- package/dist/components/navigation-menu.cjs +280 -0
- package/dist/components/navigation-menu.d.cts +123 -0
- package/dist/components/navigation-menu.d.ts +123 -0
- package/dist/components/navigation-menu.mjs +250 -0
- package/dist/components/number-input.cjs +419 -0
- package/dist/components/number-input.d.cts +111 -0
- package/dist/components/number-input.d.ts +111 -0
- package/dist/components/number-input.mjs +400 -0
- package/dist/components/pagination.cjs +322 -0
- package/dist/components/pagination.d.cts +119 -0
- package/dist/components/pagination.d.ts +119 -0
- package/dist/components/pagination.mjs +297 -0
- package/dist/components/pin-input.cjs +321 -0
- package/dist/components/pin-input.d.cts +112 -0
- package/dist/components/pin-input.d.ts +112 -0
- package/dist/components/pin-input.mjs +303 -0
- package/dist/components/popover.cjs +194 -0
- package/dist/components/popover.d.cts +108 -0
- package/dist/components/popover.d.ts +108 -0
- package/dist/components/popover.mjs +168 -0
- package/dist/components/progress.cjs +237 -0
- package/dist/components/progress.d.cts +137 -0
- package/dist/components/progress.d.ts +137 -0
- package/dist/components/progress.mjs +211 -0
- package/dist/components/radio.cjs +344 -0
- package/dist/components/radio.d.cts +145 -0
- package/dist/components/radio.d.ts +145 -0
- package/dist/components/radio.mjs +320 -0
- package/dist/components/resizable.cjs +121 -0
- package/dist/components/resizable.d.cts +23 -0
- package/dist/components/resizable.d.ts +23 -0
- package/dist/components/resizable.mjs +99 -0
- package/dist/components/scroll-area.cjs +168 -0
- package/dist/components/scroll-area.d.cts +131 -0
- package/dist/components/scroll-area.d.ts +131 -0
- package/dist/components/scroll-area.mjs +143 -0
- package/dist/components/search-input.cjs +261 -0
- package/dist/components/search-input.d.cts +26 -0
- package/dist/components/search-input.d.ts +26 -0
- package/dist/components/search-input.mjs +243 -0
- package/dist/components/select.cjs +320 -0
- package/dist/components/select.d.cts +55 -0
- package/dist/components/select.d.ts +55 -0
- package/dist/components/select.mjs +288 -0
- package/dist/components/separator.cjs +193 -0
- package/dist/components/separator.d.cts +92 -0
- package/dist/components/separator.d.ts +92 -0
- package/dist/components/separator.mjs +170 -0
- package/dist/components/sheet.cjs +399 -0
- package/dist/components/sheet.d.cts +219 -0
- package/dist/components/sheet.d.ts +219 -0
- package/dist/components/sheet.mjs +379 -0
- package/dist/components/sidebar.cjs +1077 -0
- package/dist/components/sidebar.d.cts +733 -0
- package/dist/components/sidebar.d.ts +733 -0
- package/dist/components/sidebar.mjs +1033 -0
- package/dist/components/skeleton.cjs +210 -0
- package/dist/components/skeleton.d.cts +202 -0
- package/dist/components/skeleton.d.ts +202 -0
- package/dist/components/skeleton.mjs +182 -0
- package/dist/components/slider.cjs +319 -0
- package/dist/components/slider.d.cts +82 -0
- package/dist/components/slider.d.ts +82 -0
- package/dist/components/slider.mjs +296 -0
- package/dist/components/sonner.cjs +119 -0
- package/dist/components/sonner.d.cts +60 -0
- package/dist/components/sonner.d.ts +60 -0
- package/dist/components/sonner.mjs +94 -0
- package/dist/components/spinner.cjs +238 -0
- package/dist/components/spinner.d.cts +101 -0
- package/dist/components/spinner.d.ts +101 -0
- package/dist/components/spinner.mjs +213 -0
- package/dist/components/stat.cjs +180 -0
- package/dist/components/stat.d.cts +21 -0
- package/dist/components/stat.d.ts +21 -0
- package/dist/components/stat.mjs +161 -0
- package/dist/components/steps.cjs +228 -0
- package/dist/components/steps.d.cts +76 -0
- package/dist/components/steps.d.ts +76 -0
- package/dist/components/steps.mjs +207 -0
- package/dist/components/switch.cjs +243 -0
- package/dist/components/switch.d.cts +90 -0
- package/dist/components/switch.d.ts +90 -0
- package/dist/components/switch.mjs +228 -0
- package/dist/components/table.cjs +381 -0
- package/dist/components/table.d.cts +181 -0
- package/dist/components/table.d.ts +181 -0
- package/dist/components/table.mjs +349 -0
- package/dist/components/tabs.cjs +326 -0
- package/dist/components/tabs.d.cts +154 -0
- package/dist/components/tabs.d.ts +154 -0
- package/dist/components/tabs.mjs +304 -0
- package/dist/components/textarea.cjs +258 -0
- package/dist/components/textarea.d.cts +112 -0
- package/dist/components/textarea.d.ts +112 -0
- package/dist/components/textarea.mjs +233 -0
- package/dist/components/theme-toggle.cjs +282 -0
- package/dist/components/theme-toggle.d.cts +58 -0
- package/dist/components/theme-toggle.d.ts +58 -0
- package/dist/components/theme-toggle.mjs +258 -0
- package/dist/components/timeline.cjs +178 -0
- package/dist/components/timeline.d.cts +41 -0
- package/dist/components/timeline.d.ts +41 -0
- package/dist/components/timeline.mjs +157 -0
- package/dist/components/toast.cjs +546 -0
- package/dist/components/toast.d.cts +169 -0
- package/dist/components/toast.d.ts +169 -0
- package/dist/components/toast.mjs +528 -0
- package/dist/components/toggle-group.cjs +204 -0
- package/dist/components/toggle-group.d.cts +215 -0
- package/dist/components/toggle-group.d.ts +215 -0
- package/dist/components/toggle-group.mjs +180 -0
- package/dist/components/toggle.cjs +155 -0
- package/dist/components/toggle.d.cts +100 -0
- package/dist/components/toggle.d.ts +100 -0
- package/dist/components/toggle.mjs +130 -0
- package/dist/components/tooltip.cjs +155 -0
- package/dist/components/tooltip.d.cts +129 -0
- package/dist/components/tooltip.d.ts +129 -0
- package/dist/components/tooltip.mjs +132 -0
- package/dist/components/tree-view.cjs +450 -0
- package/dist/components/tree-view.d.cts +67 -0
- package/dist/components/tree-view.d.ts +67 -0
- package/dist/components/tree-view.mjs +433 -0
- package/dist/components/video-player.cjs +344 -0
- package/dist/components/video-player.d.cts +34 -0
- package/dist/components/video-player.d.ts +34 -0
- package/dist/components/video-player.mjs +320 -0
- package/dist/components/virtual-list.cjs +153 -0
- package/dist/components/virtual-list.d.cts +53 -0
- package/dist/components/virtual-list.d.ts +53 -0
- package/dist/components/virtual-list.mjs +136 -0
- package/dist/components/visually-hidden.cjs +43 -0
- package/dist/components/visually-hidden.d.cts +9 -0
- package/dist/components/visually-hidden.d.ts +9 -0
- package/dist/components/visually-hidden.mjs +21 -0
- package/dist/index.cjs +1081 -1933
- package/dist/index.d.cts +99 -11
- package/dist/index.d.ts +99 -11
- package/dist/index.mjs +1138 -16
- package/dist/motion/hooks.cjs +98 -0
- package/dist/motion/hooks.d.cts +32 -0
- package/dist/motion/hooks.d.ts +32 -0
- package/dist/motion/hooks.mjs +70 -0
- package/dist/motion/index.cjs +157 -0
- package/dist/motion/index.d.cts +5 -0
- package/dist/motion/index.d.ts +5 -0
- package/dist/motion/index.mjs +137 -0
- package/dist/motion/presets.cjs +609 -0
- package/dist/{motion.d.ts → motion/presets.d.cts} +1 -30
- package/dist/{motion.d.cts → motion/presets.d.ts} +1 -30
- package/dist/{chunk-PLRSH37T.mjs → motion/presets.mjs} +119 -126
- package/dist/primitives/container.cjs +88 -0
- package/dist/primitives/container.d.cts +82 -0
- package/dist/primitives/container.d.ts +82 -0
- package/dist/primitives/container.mjs +64 -0
- package/dist/primitives/divider.cjs +74 -0
- package/dist/primitives/divider.d.cts +30 -0
- package/dist/primitives/divider.d.ts +30 -0
- package/dist/primitives/divider.mjs +50 -0
- package/dist/primitives/index.cjs +54 -0
- package/dist/primitives/index.d.cts +6 -0
- package/dist/primitives/index.d.ts +6 -0
- package/dist/primitives/index.mjs +33 -0
- package/dist/primitives/stack.cjs +167 -0
- package/dist/primitives/stack.d.cts +132 -0
- package/dist/primitives/stack.d.ts +132 -0
- package/dist/primitives/stack.mjs +142 -0
- package/dist/primitives/typography.cjs +260 -0
- package/dist/primitives/typography.d.cts +157 -0
- package/dist/primitives/typography.d.ts +157 -0
- package/dist/primitives/typography.mjs +229 -0
- package/dist/theme/contract.cjs +246 -0
- package/dist/theme/contract.d.cts +76 -0
- package/dist/theme/contract.d.ts +76 -0
- package/dist/theme/contract.mjs +221 -0
- package/dist/theme/customizer-store.cjs +266 -0
- package/dist/theme/customizer-store.d.cts +76 -0
- package/dist/theme/customizer-store.d.ts +76 -0
- package/dist/theme/customizer-store.mjs +261 -0
- package/dist/theme/customizer.cjs +812 -0
- package/dist/theme/customizer.d.cts +13 -0
- package/dist/theme/customizer.d.ts +13 -0
- package/dist/theme/customizer.mjs +803 -0
- package/dist/theme/index.cjs +105 -0
- package/dist/theme/index.d.cts +13 -0
- package/dist/theme/index.d.ts +13 -0
- package/dist/theme/index.mjs +87 -0
- package/dist/theme/presets.cjs +1205 -0
- package/dist/theme/presets.d.cts +232 -0
- package/dist/theme/presets.d.ts +232 -0
- package/dist/theme/presets.mjs +1175 -0
- package/dist/theme/provider.cjs +122 -0
- package/dist/theme/provider.d.cts +57 -0
- package/dist/theme/provider.d.ts +57 -0
- package/dist/theme/provider.mjs +104 -0
- package/dist/{chunk-IVZAB7BV.mjs → tokens/colors.cjs} +212 -86
- package/dist/{z-index-Dd8IllRx.d.cts → tokens/colors.d.cts} +235 -72
- package/dist/{z-index-Dd8IllRx.d.ts → tokens/colors.d.ts} +235 -72
- package/dist/{chunk-ZBGR7MUW.cjs → tokens/colors.mjs} +165 -104
- package/dist/tokens/index.cjs +96 -0
- package/dist/tokens/index.d.cts +7 -0
- package/dist/tokens/index.d.ts +7 -0
- package/dist/tokens/index.mjs +71 -0
- package/dist/{chunk-XCKK6P46.cjs → tokens/motion.cjs} +46 -18
- package/dist/{motion-D9wQbcKL.d.cts → tokens/motion.d.cts} +1 -1
- package/dist/{motion-D9wQbcKL.d.ts → tokens/motion.d.ts} +1 -1
- package/dist/{chunk-EZ2L3XPS.mjs → tokens/motion.mjs} +16 -10
- package/dist/tokens/radius.cjs +41 -0
- package/dist/tokens/radius.d.cts +18 -0
- package/dist/tokens/radius.d.ts +18 -0
- package/dist/tokens/radius.mjs +17 -0
- package/dist/tokens/shadows.cjs +57 -0
- package/dist/tokens/shadows.d.cts +32 -0
- package/dist/tokens/shadows.d.ts +32 -0
- package/dist/tokens/shadows.mjs +32 -0
- package/dist/tokens/spacing.cjs +51 -0
- package/dist/tokens/spacing.d.cts +26 -0
- package/dist/tokens/spacing.d.ts +26 -0
- package/dist/{chunk-NMPHV6ZD.mjs → tokens/spacing.mjs} +4 -4
- package/dist/{chunk-ECIGDEAH.cjs → tokens/typography.cjs} +43 -16
- package/dist/{typography-DlvVjEdE.d.ts → tokens/typography.d.cts} +1 -1
- package/dist/{typography-DlvVjEdE.d.cts → tokens/typography.d.ts} +1 -1
- package/dist/{chunk-ITBG42M5.mjs → tokens/typography.mjs} +14 -9
- package/dist/tokens/z-index.cjs +47 -0
- package/dist/tokens/z-index.d.cts +24 -0
- package/dist/tokens/z-index.d.ts +24 -0
- package/dist/tokens/z-index.mjs +23 -0
- package/dist/utils/cn.cjs +102 -0
- package/dist/utils/cn.d.cts +84 -0
- package/dist/utils/cn.d.ts +84 -0
- package/dist/{chunk-ZT3PCXDF.mjs → utils/cn.mjs} +14 -7
- package/dist/{chunk-33QEKXRQ.cjs → utils/contrast.cjs} +68 -38
- package/dist/utils/contrast.d.cts +209 -0
- package/dist/utils/contrast.d.ts +209 -0
- package/dist/{chunk-5NZDQWRV.mjs → utils/contrast.mjs} +27 -18
- package/dist/utils/focus-ring.cjs +81 -0
- package/dist/utils/focus-ring.d.cts +80 -0
- package/dist/utils/focus-ring.d.ts +80 -0
- package/dist/utils/focus-ring.mjs +47 -0
- package/dist/utils/index.cjs +107 -0
- package/dist/utils/index.d.cts +6 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.mjs +88 -0
- package/dist/utils/types.cjs +38 -0
- package/dist/utils/types.d.cts +187 -0
- package/dist/utils/types.d.ts +187 -0
- package/dist/utils/types.mjs +13 -0
- package/package.json +191 -191
- package/dist/chunk-2JFREULQ.cjs +0 -29
- package/dist/chunk-3EHT6IOA.cjs +0 -49
- package/dist/chunk-4ON3M3OM.cjs +0 -73
- package/dist/chunk-5TP7J7T4.cjs +0 -1766
- package/dist/chunk-A2DGHQL2.cjs +0 -21808
- package/dist/chunk-EQWESXRH.mjs +0 -1735
- package/dist/chunk-F4JJFWWU.cjs +0 -604
- package/dist/chunk-FUWXGHWQ.cjs +0 -468
- package/dist/chunk-MBYCK2JJ.mjs +0 -37
- package/dist/chunk-OHEH57BV.mjs +0 -455
- package/dist/chunk-XAIUX2YS.mjs +0 -21477
- package/dist/components.cjs +0 -1247
- package/dist/components.d.cts +0 -7881
- package/dist/components.d.ts +0 -7881
- package/dist/components.mjs +0 -6
- package/dist/motion.cjs +0 -264
- package/dist/motion.mjs +0 -3
- package/dist/primitives.cjs +0 -57
- package/dist/primitives.d.cts +0 -390
- package/dist/primitives.d.ts +0 -390
- package/dist/primitives.mjs +0 -4
- package/dist/theme.cjs +0 -131
- package/dist/theme.d.cts +0 -414
- package/dist/theme.d.ts +0 -414
- package/dist/theme.mjs +0 -6
- package/dist/tokens.cjs +0 -137
- package/dist/tokens.d.cts +0 -30
- package/dist/tokens.d.ts +0 -30
- package/dist/tokens.mjs +0 -4
- package/dist/utils.cjs +0 -164
- package/dist/utils.d.cts +0 -525
- package/dist/utils.d.ts +0 -525
- package/dist/utils.mjs +0 -3
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
type TableDensity = "compact" | "comfortable";
|
|
6
|
+
type TableSortDirection = "asc" | "desc";
|
|
7
|
+
type TableAlign = "left" | "center" | "right";
|
|
8
|
+
declare const tableRootVariants: (props?: ({
|
|
9
|
+
density?: "compact" | "comfortable" | null | undefined;
|
|
10
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
11
|
+
interface TableProps extends React.HTMLAttributes<HTMLTableElement>, VariantProps<typeof tableRootVariants> {
|
|
12
|
+
/**
|
|
13
|
+
* Row height density.
|
|
14
|
+
* @default "comfortable"
|
|
15
|
+
*/
|
|
16
|
+
density?: TableDensity;
|
|
17
|
+
/**
|
|
18
|
+
* Alternate row background color for readability.
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
striped?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Highlight rows on hover.
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
hoverable?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Add borders between cells.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
bordered?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Wrap the table in a horizontally-scrollable container
|
|
34
|
+
* so it doesn't overflow on small screens.
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
responsive?: boolean;
|
|
38
|
+
/** Additional CSS classes for the wrapper (when responsive). */
|
|
39
|
+
wrapperClassName?: string;
|
|
40
|
+
/** Additional CSS classes for the table element. */
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Table — semantic `<table>` element with design-system tokens.
|
|
45
|
+
*
|
|
46
|
+
* Provides context for density, striping, hovering, and borders to all
|
|
47
|
+
* sub-components.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* <Table striped hoverable density="compact" bordered>
|
|
52
|
+
* <TableHeader>
|
|
53
|
+
* <TableRow>
|
|
54
|
+
* <TableHead>Name</TableHead>
|
|
55
|
+
* <TableHead align="right">Amount</TableHead>
|
|
56
|
+
* </TableRow>
|
|
57
|
+
* </TableHeader>
|
|
58
|
+
* <TableBody>
|
|
59
|
+
* <TableRow>
|
|
60
|
+
* <TableCell>Alice</TableCell>
|
|
61
|
+
* <TableCell align="right">$1,200</TableCell>
|
|
62
|
+
* </TableRow>
|
|
63
|
+
* </TableBody>
|
|
64
|
+
* </Table>
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
declare const Table: react.ForwardRefExoticComponent<TableProps & react.RefAttributes<HTMLTableElement>>;
|
|
68
|
+
interface TableHeaderProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
69
|
+
/** Additional CSS classes. */
|
|
70
|
+
className?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* TableHeader — wraps `<thead>` with design-system styles.
|
|
74
|
+
*/
|
|
75
|
+
declare const TableHeader: react.ForwardRefExoticComponent<TableHeaderProps & react.RefAttributes<HTMLTableSectionElement>>;
|
|
76
|
+
interface TableBodyProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
77
|
+
/** Additional CSS classes. */
|
|
78
|
+
className?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* TableBody — wraps `<tbody>` with design-system styles.
|
|
82
|
+
*/
|
|
83
|
+
declare const TableBody: react.ForwardRefExoticComponent<TableBodyProps & react.RefAttributes<HTMLTableSectionElement>>;
|
|
84
|
+
interface TableFooterProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
85
|
+
/** Additional CSS classes. */
|
|
86
|
+
className?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* TableFooter — wraps `<tfoot>` with design-system styles.
|
|
90
|
+
*/
|
|
91
|
+
declare const TableFooter: react.ForwardRefExoticComponent<TableFooterProps & react.RefAttributes<HTMLTableSectionElement>>;
|
|
92
|
+
interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
93
|
+
/**
|
|
94
|
+
* Whether this row is selected / highlighted.
|
|
95
|
+
* @default false
|
|
96
|
+
*/
|
|
97
|
+
selected?: boolean;
|
|
98
|
+
/** Additional CSS classes. */
|
|
99
|
+
className?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* TableRow — wraps `<tr>` with design-system styles.
|
|
103
|
+
*/
|
|
104
|
+
declare const TableRow: react.ForwardRefExoticComponent<TableRowProps & react.RefAttributes<HTMLTableRowElement>>;
|
|
105
|
+
interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
|
|
106
|
+
/**
|
|
107
|
+
* Text alignment within the cell.
|
|
108
|
+
* @default "left"
|
|
109
|
+
*/
|
|
110
|
+
align?: TableAlign;
|
|
111
|
+
/**
|
|
112
|
+
* Whether this column is sortable.
|
|
113
|
+
* When true, renders a sort indicator and makes the header clickable.
|
|
114
|
+
* @default false
|
|
115
|
+
*/
|
|
116
|
+
sortable?: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Current sort direction. Only relevant when `sortable` is true.
|
|
119
|
+
* - `"asc"` — ascending (renders up chevron)
|
|
120
|
+
* - `"desc"` — descending (renders down chevron)
|
|
121
|
+
* - `undefined` — not currently sorted (renders neutral indicator)
|
|
122
|
+
*/
|
|
123
|
+
sorted?: TableSortDirection;
|
|
124
|
+
/**
|
|
125
|
+
* Callback fired when the sortable header is clicked.
|
|
126
|
+
* Only relevant when `sortable` is true.
|
|
127
|
+
*/
|
|
128
|
+
onSort?: () => void;
|
|
129
|
+
/**
|
|
130
|
+
* Whether the header should stick to the top of the scroll container.
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
133
|
+
sticky?: boolean;
|
|
134
|
+
/** Additional CSS classes. */
|
|
135
|
+
className?: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* TableHead — wraps `<th>` with design-system styles.
|
|
139
|
+
*
|
|
140
|
+
* Supports sort indicators for sortable columns. The sort logic is
|
|
141
|
+
* consumer-owned — this component only provides the visual indicator
|
|
142
|
+
* and click handler.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```tsx
|
|
146
|
+
* <TableHead
|
|
147
|
+
* sortable
|
|
148
|
+
* sorted="asc"
|
|
149
|
+
* onSort={() => toggleSort("name")}
|
|
150
|
+
* >
|
|
151
|
+
* Name
|
|
152
|
+
* </TableHead>
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
declare const TableHead: react.ForwardRefExoticComponent<TableHeadProps & react.RefAttributes<HTMLTableCellElement>>;
|
|
156
|
+
interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
|
|
157
|
+
/**
|
|
158
|
+
* Text alignment within the cell.
|
|
159
|
+
* @default "left"
|
|
160
|
+
*/
|
|
161
|
+
align?: TableAlign;
|
|
162
|
+
/** Additional CSS classes. */
|
|
163
|
+
className?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* TableCell — wraps `<td>` with design-system styles.
|
|
167
|
+
*/
|
|
168
|
+
declare const TableCell: react.ForwardRefExoticComponent<TableCellProps & react.RefAttributes<HTMLTableCellElement>>;
|
|
169
|
+
interface TableCaptionProps extends React.HTMLAttributes<HTMLTableCaptionElement> {
|
|
170
|
+
/** Additional CSS classes. */
|
|
171
|
+
className?: string;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* TableCaption — wraps `<caption>` with design-system styles.
|
|
175
|
+
*
|
|
176
|
+
* Renders at the bottom of the table by default (via `caption-bottom`
|
|
177
|
+
* on the root `<table>`).
|
|
178
|
+
*/
|
|
179
|
+
declare const TableCaption: react.ForwardRefExoticComponent<TableCaptionProps & react.RefAttributes<HTMLTableCaptionElement>>;
|
|
180
|
+
|
|
181
|
+
export { Table, type TableAlign, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, type TableDensity, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, type TableSortDirection, tableRootVariants };
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
type TableDensity = "compact" | "comfortable";
|
|
6
|
+
type TableSortDirection = "asc" | "desc";
|
|
7
|
+
type TableAlign = "left" | "center" | "right";
|
|
8
|
+
declare const tableRootVariants: (props?: ({
|
|
9
|
+
density?: "compact" | "comfortable" | null | undefined;
|
|
10
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
11
|
+
interface TableProps extends React.HTMLAttributes<HTMLTableElement>, VariantProps<typeof tableRootVariants> {
|
|
12
|
+
/**
|
|
13
|
+
* Row height density.
|
|
14
|
+
* @default "comfortable"
|
|
15
|
+
*/
|
|
16
|
+
density?: TableDensity;
|
|
17
|
+
/**
|
|
18
|
+
* Alternate row background color for readability.
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
striped?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Highlight rows on hover.
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
hoverable?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Add borders between cells.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
bordered?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Wrap the table in a horizontally-scrollable container
|
|
34
|
+
* so it doesn't overflow on small screens.
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
responsive?: boolean;
|
|
38
|
+
/** Additional CSS classes for the wrapper (when responsive). */
|
|
39
|
+
wrapperClassName?: string;
|
|
40
|
+
/** Additional CSS classes for the table element. */
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Table — semantic `<table>` element with design-system tokens.
|
|
45
|
+
*
|
|
46
|
+
* Provides context for density, striping, hovering, and borders to all
|
|
47
|
+
* sub-components.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* <Table striped hoverable density="compact" bordered>
|
|
52
|
+
* <TableHeader>
|
|
53
|
+
* <TableRow>
|
|
54
|
+
* <TableHead>Name</TableHead>
|
|
55
|
+
* <TableHead align="right">Amount</TableHead>
|
|
56
|
+
* </TableRow>
|
|
57
|
+
* </TableHeader>
|
|
58
|
+
* <TableBody>
|
|
59
|
+
* <TableRow>
|
|
60
|
+
* <TableCell>Alice</TableCell>
|
|
61
|
+
* <TableCell align="right">$1,200</TableCell>
|
|
62
|
+
* </TableRow>
|
|
63
|
+
* </TableBody>
|
|
64
|
+
* </Table>
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
declare const Table: react.ForwardRefExoticComponent<TableProps & react.RefAttributes<HTMLTableElement>>;
|
|
68
|
+
interface TableHeaderProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
69
|
+
/** Additional CSS classes. */
|
|
70
|
+
className?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* TableHeader — wraps `<thead>` with design-system styles.
|
|
74
|
+
*/
|
|
75
|
+
declare const TableHeader: react.ForwardRefExoticComponent<TableHeaderProps & react.RefAttributes<HTMLTableSectionElement>>;
|
|
76
|
+
interface TableBodyProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
77
|
+
/** Additional CSS classes. */
|
|
78
|
+
className?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* TableBody — wraps `<tbody>` with design-system styles.
|
|
82
|
+
*/
|
|
83
|
+
declare const TableBody: react.ForwardRefExoticComponent<TableBodyProps & react.RefAttributes<HTMLTableSectionElement>>;
|
|
84
|
+
interface TableFooterProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
85
|
+
/** Additional CSS classes. */
|
|
86
|
+
className?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* TableFooter — wraps `<tfoot>` with design-system styles.
|
|
90
|
+
*/
|
|
91
|
+
declare const TableFooter: react.ForwardRefExoticComponent<TableFooterProps & react.RefAttributes<HTMLTableSectionElement>>;
|
|
92
|
+
interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
93
|
+
/**
|
|
94
|
+
* Whether this row is selected / highlighted.
|
|
95
|
+
* @default false
|
|
96
|
+
*/
|
|
97
|
+
selected?: boolean;
|
|
98
|
+
/** Additional CSS classes. */
|
|
99
|
+
className?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* TableRow — wraps `<tr>` with design-system styles.
|
|
103
|
+
*/
|
|
104
|
+
declare const TableRow: react.ForwardRefExoticComponent<TableRowProps & react.RefAttributes<HTMLTableRowElement>>;
|
|
105
|
+
interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
|
|
106
|
+
/**
|
|
107
|
+
* Text alignment within the cell.
|
|
108
|
+
* @default "left"
|
|
109
|
+
*/
|
|
110
|
+
align?: TableAlign;
|
|
111
|
+
/**
|
|
112
|
+
* Whether this column is sortable.
|
|
113
|
+
* When true, renders a sort indicator and makes the header clickable.
|
|
114
|
+
* @default false
|
|
115
|
+
*/
|
|
116
|
+
sortable?: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Current sort direction. Only relevant when `sortable` is true.
|
|
119
|
+
* - `"asc"` — ascending (renders up chevron)
|
|
120
|
+
* - `"desc"` — descending (renders down chevron)
|
|
121
|
+
* - `undefined` — not currently sorted (renders neutral indicator)
|
|
122
|
+
*/
|
|
123
|
+
sorted?: TableSortDirection;
|
|
124
|
+
/**
|
|
125
|
+
* Callback fired when the sortable header is clicked.
|
|
126
|
+
* Only relevant when `sortable` is true.
|
|
127
|
+
*/
|
|
128
|
+
onSort?: () => void;
|
|
129
|
+
/**
|
|
130
|
+
* Whether the header should stick to the top of the scroll container.
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
133
|
+
sticky?: boolean;
|
|
134
|
+
/** Additional CSS classes. */
|
|
135
|
+
className?: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* TableHead — wraps `<th>` with design-system styles.
|
|
139
|
+
*
|
|
140
|
+
* Supports sort indicators for sortable columns. The sort logic is
|
|
141
|
+
* consumer-owned — this component only provides the visual indicator
|
|
142
|
+
* and click handler.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```tsx
|
|
146
|
+
* <TableHead
|
|
147
|
+
* sortable
|
|
148
|
+
* sorted="asc"
|
|
149
|
+
* onSort={() => toggleSort("name")}
|
|
150
|
+
* >
|
|
151
|
+
* Name
|
|
152
|
+
* </TableHead>
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
declare const TableHead: react.ForwardRefExoticComponent<TableHeadProps & react.RefAttributes<HTMLTableCellElement>>;
|
|
156
|
+
interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
|
|
157
|
+
/**
|
|
158
|
+
* Text alignment within the cell.
|
|
159
|
+
* @default "left"
|
|
160
|
+
*/
|
|
161
|
+
align?: TableAlign;
|
|
162
|
+
/** Additional CSS classes. */
|
|
163
|
+
className?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* TableCell — wraps `<td>` with design-system styles.
|
|
167
|
+
*/
|
|
168
|
+
declare const TableCell: react.ForwardRefExoticComponent<TableCellProps & react.RefAttributes<HTMLTableCellElement>>;
|
|
169
|
+
interface TableCaptionProps extends React.HTMLAttributes<HTMLTableCaptionElement> {
|
|
170
|
+
/** Additional CSS classes. */
|
|
171
|
+
className?: string;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* TableCaption — wraps `<caption>` with design-system styles.
|
|
175
|
+
*
|
|
176
|
+
* Renders at the bottom of the table by default (via `caption-bottom`
|
|
177
|
+
* on the root `<table>`).
|
|
178
|
+
*/
|
|
179
|
+
declare const TableCaption: react.ForwardRefExoticComponent<TableCaptionProps & react.RefAttributes<HTMLTableCaptionElement>>;
|
|
180
|
+
|
|
181
|
+
export { Table, type TableAlign, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, type TableDensity, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, type TableSortDirection, tableRootVariants };
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../utils/cn";
|
|
4
|
+
import { focusRingCompactClasses } from "../utils/focus-ring";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import { createContext, forwardRef, useContext } from "react";
|
|
7
|
+
const TableContext = createContext({
|
|
8
|
+
density: "comfortable",
|
|
9
|
+
striped: false,
|
|
10
|
+
hoverable: false,
|
|
11
|
+
bordered: false
|
|
12
|
+
});
|
|
13
|
+
function useTableContext() {
|
|
14
|
+
return useContext(TableContext);
|
|
15
|
+
}
|
|
16
|
+
function SortAscIcon({ className }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
"svg",
|
|
19
|
+
{
|
|
20
|
+
className,
|
|
21
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
22
|
+
viewBox: "0 0 24 24",
|
|
23
|
+
fill: "none",
|
|
24
|
+
stroke: "currentColor",
|
|
25
|
+
strokeWidth: "2",
|
|
26
|
+
strokeLinecap: "round",
|
|
27
|
+
strokeLinejoin: "round",
|
|
28
|
+
"aria-hidden": "true",
|
|
29
|
+
children: /* @__PURE__ */ jsx("path", { d: "m5 15 7-7 7 7" })
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
function SortDescIcon({ className }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
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: /* @__PURE__ */ jsx("path", { d: "m19 9-7 7-7-7" })
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function SortNeutralIcon({ className }) {
|
|
51
|
+
return /* @__PURE__ */ jsxs(
|
|
52
|
+
"svg",
|
|
53
|
+
{
|
|
54
|
+
className,
|
|
55
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
56
|
+
viewBox: "0 0 24 24",
|
|
57
|
+
fill: "none",
|
|
58
|
+
stroke: "currentColor",
|
|
59
|
+
strokeWidth: "2",
|
|
60
|
+
strokeLinecap: "round",
|
|
61
|
+
strokeLinejoin: "round",
|
|
62
|
+
"aria-hidden": "true",
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ jsx("path", { d: "m7 15 5 5 5-5" }),
|
|
65
|
+
/* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" })
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
const tableRootVariants = cva(
|
|
71
|
+
["w-full", "caption-bottom", "text-sm", "border-collapse", "m-0"],
|
|
72
|
+
{
|
|
73
|
+
variants: {
|
|
74
|
+
density: {
|
|
75
|
+
compact: "",
|
|
76
|
+
comfortable: ""
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
defaultVariants: {
|
|
80
|
+
density: "comfortable"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
const densityHeadPadding = {
|
|
85
|
+
compact: "px-3 py-1.5",
|
|
86
|
+
comfortable: "px-4 py-2.5"
|
|
87
|
+
};
|
|
88
|
+
const densityCellPadding = {
|
|
89
|
+
compact: "px-3 py-1.5",
|
|
90
|
+
comfortable: "px-4 py-2"
|
|
91
|
+
};
|
|
92
|
+
const alignClassMap = {
|
|
93
|
+
left: "text-left",
|
|
94
|
+
center: "text-center",
|
|
95
|
+
right: "text-right"
|
|
96
|
+
};
|
|
97
|
+
const Table = forwardRef(function Table2({
|
|
98
|
+
density = "comfortable",
|
|
99
|
+
striped = false,
|
|
100
|
+
hoverable = false,
|
|
101
|
+
bordered = false,
|
|
102
|
+
responsive = true,
|
|
103
|
+
wrapperClassName,
|
|
104
|
+
className,
|
|
105
|
+
children,
|
|
106
|
+
...rest
|
|
107
|
+
}, ref) {
|
|
108
|
+
const contextValue = {
|
|
109
|
+
density,
|
|
110
|
+
striped,
|
|
111
|
+
hoverable,
|
|
112
|
+
bordered
|
|
113
|
+
};
|
|
114
|
+
const table = /* @__PURE__ */ jsx(TableContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
115
|
+
"table",
|
|
116
|
+
{
|
|
117
|
+
ref,
|
|
118
|
+
className: cn(
|
|
119
|
+
"not-prose",
|
|
120
|
+
tableRootVariants({ density }),
|
|
121
|
+
bordered && !responsive && "border border-border rounded-md",
|
|
122
|
+
className
|
|
123
|
+
),
|
|
124
|
+
"data-ds": "",
|
|
125
|
+
"data-ds-component": "table",
|
|
126
|
+
"data-ds-density": density,
|
|
127
|
+
...rest,
|
|
128
|
+
children
|
|
129
|
+
}
|
|
130
|
+
) });
|
|
131
|
+
if (responsive) {
|
|
132
|
+
return /* @__PURE__ */ jsx(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
"not-prose",
|
|
137
|
+
"w-full overflow-x-auto overflow-y-hidden",
|
|
138
|
+
"rounded-md border border-border",
|
|
139
|
+
wrapperClassName
|
|
140
|
+
),
|
|
141
|
+
"data-ds": "",
|
|
142
|
+
"data-ds-component": "table-wrapper",
|
|
143
|
+
children: table
|
|
144
|
+
}
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
return table;
|
|
148
|
+
});
|
|
149
|
+
Table.displayName = "Table";
|
|
150
|
+
const TableHeader = forwardRef(function TableHeader2({ className, children, ...rest }, ref) {
|
|
151
|
+
return /* @__PURE__ */ jsx(
|
|
152
|
+
"thead",
|
|
153
|
+
{
|
|
154
|
+
ref,
|
|
155
|
+
className: cn(
|
|
156
|
+
"bg-muted/50",
|
|
157
|
+
"[&_tr]:border-b [&_tr]:border-border",
|
|
158
|
+
className
|
|
159
|
+
),
|
|
160
|
+
"data-ds": "",
|
|
161
|
+
"data-ds-component": "table-header",
|
|
162
|
+
...rest,
|
|
163
|
+
children
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
});
|
|
167
|
+
TableHeader.displayName = "TableHeader";
|
|
168
|
+
const TableBody = forwardRef(
|
|
169
|
+
function TableBody2({ className, children, ...rest }, ref) {
|
|
170
|
+
const { striped, hoverable, bordered } = useTableContext();
|
|
171
|
+
return /* @__PURE__ */ jsx(
|
|
172
|
+
"tbody",
|
|
173
|
+
{
|
|
174
|
+
ref,
|
|
175
|
+
className: cn(
|
|
176
|
+
// Last row: no bottom border (the wrapper/table border handles it)
|
|
177
|
+
"[&_tr:last-child]:border-b-0",
|
|
178
|
+
// Row borders
|
|
179
|
+
"[&_tr]:border-b [&_tr]:border-border-muted",
|
|
180
|
+
// Striped rows
|
|
181
|
+
striped && "**:data-[ds-row-index=odd]:bg-muted/30",
|
|
182
|
+
// Hoverable rows
|
|
183
|
+
hoverable && "[&_tr]:transition-colors [&_tr]:duration-fast [&_tr:hover]:bg-muted/50",
|
|
184
|
+
// Bordered cells
|
|
185
|
+
bordered && "[&_td]:border-r [&_td]:border-border-muted [&_td:last-child]:border-r-0",
|
|
186
|
+
className
|
|
187
|
+
),
|
|
188
|
+
"data-ds": "",
|
|
189
|
+
"data-ds-component": "table-body",
|
|
190
|
+
...rest,
|
|
191
|
+
children
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
TableBody.displayName = "TableBody";
|
|
197
|
+
const TableFooter = forwardRef(function TableFooter2({ className, children, ...rest }, ref) {
|
|
198
|
+
return /* @__PURE__ */ jsx(
|
|
199
|
+
"tfoot",
|
|
200
|
+
{
|
|
201
|
+
ref,
|
|
202
|
+
className: cn(
|
|
203
|
+
"bg-muted/50",
|
|
204
|
+
"border-t border-border",
|
|
205
|
+
"font-medium",
|
|
206
|
+
"[&_tr]:border-b-0",
|
|
207
|
+
className
|
|
208
|
+
),
|
|
209
|
+
"data-ds": "",
|
|
210
|
+
"data-ds-component": "table-footer",
|
|
211
|
+
...rest,
|
|
212
|
+
children
|
|
213
|
+
}
|
|
214
|
+
);
|
|
215
|
+
});
|
|
216
|
+
TableFooter.displayName = "TableFooter";
|
|
217
|
+
const TableRow = forwardRef(
|
|
218
|
+
function TableRow2({ selected = false, className, children, ...rest }, ref) {
|
|
219
|
+
return /* @__PURE__ */ jsx(
|
|
220
|
+
"tr",
|
|
221
|
+
{
|
|
222
|
+
ref,
|
|
223
|
+
className: cn(
|
|
224
|
+
"transition-colors duration-fast",
|
|
225
|
+
selected && "bg-primary-muted",
|
|
226
|
+
className
|
|
227
|
+
),
|
|
228
|
+
"data-ds": "",
|
|
229
|
+
"data-ds-component": "table-row",
|
|
230
|
+
"aria-selected": selected || void 0,
|
|
231
|
+
...rest,
|
|
232
|
+
children
|
|
233
|
+
}
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
);
|
|
237
|
+
TableRow.displayName = "TableRow";
|
|
238
|
+
const TableHead = forwardRef(
|
|
239
|
+
function TableHead2({
|
|
240
|
+
align = "left",
|
|
241
|
+
sortable = false,
|
|
242
|
+
sorted,
|
|
243
|
+
onSort,
|
|
244
|
+
sticky = false,
|
|
245
|
+
className,
|
|
246
|
+
children,
|
|
247
|
+
...rest
|
|
248
|
+
}, ref) {
|
|
249
|
+
const { density, bordered } = useTableContext();
|
|
250
|
+
const content = sortable ? /* @__PURE__ */ jsxs(
|
|
251
|
+
"button",
|
|
252
|
+
{
|
|
253
|
+
type: "button",
|
|
254
|
+
onClick: onSort,
|
|
255
|
+
className: cn(
|
|
256
|
+
"inline-flex items-center gap-1",
|
|
257
|
+
"w-full",
|
|
258
|
+
"cursor-pointer select-none",
|
|
259
|
+
"hover:text-foreground",
|
|
260
|
+
"transition-colors duration-fast",
|
|
261
|
+
focusRingCompactClasses,
|
|
262
|
+
"rounded-sm",
|
|
263
|
+
align === "right" && "justify-end",
|
|
264
|
+
align === "center" && "justify-center"
|
|
265
|
+
),
|
|
266
|
+
"aria-label": sorted === "asc" ? "Sorted ascending. Click to sort descending." : sorted === "desc" ? "Sorted descending. Click to remove sort." : "Click to sort ascending.",
|
|
267
|
+
children: [
|
|
268
|
+
children,
|
|
269
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: sorted === "asc" ? /* @__PURE__ */ jsx(SortAscIcon, { className: "size-3.5" }) : sorted === "desc" ? /* @__PURE__ */ jsx(SortDescIcon, { className: "size-3.5" }) : /* @__PURE__ */ jsx(SortNeutralIcon, { className: "size-3.5 opacity-30" }) })
|
|
270
|
+
]
|
|
271
|
+
}
|
|
272
|
+
) : children;
|
|
273
|
+
return /* @__PURE__ */ jsx(
|
|
274
|
+
"th",
|
|
275
|
+
{
|
|
276
|
+
ref,
|
|
277
|
+
scope: "col",
|
|
278
|
+
className: cn(
|
|
279
|
+
densityHeadPadding[density],
|
|
280
|
+
alignClassMap[align],
|
|
281
|
+
"text-muted-foreground",
|
|
282
|
+
"font-semibold",
|
|
283
|
+
"whitespace-nowrap",
|
|
284
|
+
sticky && "sticky top-0 z-[var(--z-sticky)] bg-muted/95 backdrop-blur-sm",
|
|
285
|
+
bordered && "border-r border-border-muted last:border-r-0",
|
|
286
|
+
className
|
|
287
|
+
),
|
|
288
|
+
"data-ds": "",
|
|
289
|
+
"data-ds-component": "table-head",
|
|
290
|
+
"aria-sort": sorted === "asc" ? "ascending" : sorted === "desc" ? "descending" : sortable ? "none" : void 0,
|
|
291
|
+
...rest,
|
|
292
|
+
children: content
|
|
293
|
+
}
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
);
|
|
297
|
+
TableHead.displayName = "TableHead";
|
|
298
|
+
const TableCell = forwardRef(
|
|
299
|
+
function TableCell2({ align = "left", className, children, ...rest }, ref) {
|
|
300
|
+
const { density } = useTableContext();
|
|
301
|
+
return /* @__PURE__ */ jsx(
|
|
302
|
+
"td",
|
|
303
|
+
{
|
|
304
|
+
ref,
|
|
305
|
+
className: cn(
|
|
306
|
+
densityCellPadding[density],
|
|
307
|
+
alignClassMap[align],
|
|
308
|
+
"text-foreground",
|
|
309
|
+
className
|
|
310
|
+
),
|
|
311
|
+
"data-ds": "",
|
|
312
|
+
"data-ds-component": "table-cell",
|
|
313
|
+
...rest,
|
|
314
|
+
children
|
|
315
|
+
}
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
);
|
|
319
|
+
TableCell.displayName = "TableCell";
|
|
320
|
+
const TableCaption = forwardRef(function TableCaption2({ className, children, ...rest }, ref) {
|
|
321
|
+
return /* @__PURE__ */ jsx(
|
|
322
|
+
"caption",
|
|
323
|
+
{
|
|
324
|
+
ref,
|
|
325
|
+
className: cn(
|
|
326
|
+
"mt-2 px-4 pb-0.5",
|
|
327
|
+
"text-xs leading-5",
|
|
328
|
+
"text-muted-foreground",
|
|
329
|
+
className
|
|
330
|
+
),
|
|
331
|
+
"data-ds": "",
|
|
332
|
+
"data-ds-component": "table-caption",
|
|
333
|
+
...rest,
|
|
334
|
+
children
|
|
335
|
+
}
|
|
336
|
+
);
|
|
337
|
+
});
|
|
338
|
+
TableCaption.displayName = "TableCaption";
|
|
339
|
+
export {
|
|
340
|
+
Table,
|
|
341
|
+
TableBody,
|
|
342
|
+
TableCaption,
|
|
343
|
+
TableCell,
|
|
344
|
+
TableFooter,
|
|
345
|
+
TableHead,
|
|
346
|
+
TableHeader,
|
|
347
|
+
TableRow,
|
|
348
|
+
tableRootVariants
|
|
349
|
+
};
|