@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,349 @@
|
|
|
1
|
+
import { ColumnDef, SortingState, OnChangeFn, ColumnFiltersState, PaginationState, RowSelectionState, Row, VisibilityState, ColumnPinningState, Table } from '@tanstack/react-table';
|
|
2
|
+
export { ColumnDef, ColumnFiltersState, PaginationState, Row, RowSelectionState, SortingState, VisibilityState, createColumnHelper } from '@tanstack/react-table';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
import { TableDensity, TableAlign } from './table.cjs';
|
|
5
|
+
import 'class-variance-authority/types';
|
|
6
|
+
import 'class-variance-authority';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Extend TanStack Table's ColumnMeta with Unified UI specific properties.
|
|
10
|
+
* Consumers can use these in their ColumnDef `meta` field.
|
|
11
|
+
*/
|
|
12
|
+
interface DataTableColumnMeta {
|
|
13
|
+
/** Text alignment for the column header and cells. */
|
|
14
|
+
align?: TableAlign;
|
|
15
|
+
/** Whether this column should have a sticky header. */
|
|
16
|
+
sticky?: boolean;
|
|
17
|
+
/** Custom CSS class for header cells. */
|
|
18
|
+
headerClassName?: string;
|
|
19
|
+
/** Custom CSS class for body cells. */
|
|
20
|
+
cellClassName?: string;
|
|
21
|
+
/** Whether to show a filter input for this column. */
|
|
22
|
+
filterable?: boolean;
|
|
23
|
+
/** Placeholder text for the column filter input. */
|
|
24
|
+
filterPlaceholder?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Enable a dropdown header menu (Asc / Desc / Hide) on this column.
|
|
27
|
+
* When `true`, clicking the column header opens a dropdown instead of
|
|
28
|
+
* directly toggling the sort direction.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
enableHeaderMenu?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Configuration for a faceted filter button shown in the toolbar.
|
|
35
|
+
* Each entry creates a pill-style button that opens a popover with
|
|
36
|
+
* checkbox options derived from the column's unique values.
|
|
37
|
+
*/
|
|
38
|
+
interface DataTableFacetedFilter {
|
|
39
|
+
/** The column ID to filter on (must match a `ColumnDef` accessorKey or id). */
|
|
40
|
+
columnId: string;
|
|
41
|
+
/** Display label for the filter button. */
|
|
42
|
+
title: string;
|
|
43
|
+
/**
|
|
44
|
+
* Optional icon rendered before the title.
|
|
45
|
+
* Pass a React element (e.g. a Lucide icon).
|
|
46
|
+
*/
|
|
47
|
+
icon?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Explicit list of filter options. If omitted the component will
|
|
50
|
+
* derive options from the column's unique faceted values.
|
|
51
|
+
*/
|
|
52
|
+
options?: {
|
|
53
|
+
label: string;
|
|
54
|
+
value: string;
|
|
55
|
+
icon?: ReactNode;
|
|
56
|
+
}[];
|
|
57
|
+
}
|
|
58
|
+
interface DataTableProps<TData> {
|
|
59
|
+
/** The data array to render. Each item becomes a row. */
|
|
60
|
+
data: TData[];
|
|
61
|
+
/**
|
|
62
|
+
* TanStack Table column definitions.
|
|
63
|
+
* @see https://tanstack.com/table/latest/docs/guide/column-defs
|
|
64
|
+
*/
|
|
65
|
+
columns: ColumnDef<TData, any>[];
|
|
66
|
+
/**
|
|
67
|
+
* Faceted filter buttons rendered in the toolbar.
|
|
68
|
+
* Each entry creates a pill-style button that opens a checkbox popover
|
|
69
|
+
* filtered by that column's unique values.
|
|
70
|
+
*/
|
|
71
|
+
facetedFilters?: DataTableFacetedFilter[];
|
|
72
|
+
/**
|
|
73
|
+
* Enable client-side sorting.
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
sorting?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Controlled sorting state. When provided, sorting becomes controlled.
|
|
79
|
+
* Use with `onSortingChange`.
|
|
80
|
+
*/
|
|
81
|
+
sortingState?: SortingState;
|
|
82
|
+
/** Callback for controlled sorting state changes. */
|
|
83
|
+
onSortingChange?: OnChangeFn<SortingState>;
|
|
84
|
+
/**
|
|
85
|
+
* Enable multi-column sorting (hold Shift to sort by multiple columns).
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
88
|
+
multiSort?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Enable client-side filtering (global + per-column).
|
|
91
|
+
* @default false
|
|
92
|
+
*/
|
|
93
|
+
filtering?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Controlled global filter value.
|
|
96
|
+
*/
|
|
97
|
+
globalFilter?: string;
|
|
98
|
+
/** Callback for controlled global filter changes. */
|
|
99
|
+
onGlobalFilterChange?: OnChangeFn<string>;
|
|
100
|
+
/**
|
|
101
|
+
* Controlled column filters state.
|
|
102
|
+
*/
|
|
103
|
+
columnFilters?: ColumnFiltersState;
|
|
104
|
+
/** Callback for controlled column filter changes. */
|
|
105
|
+
onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>;
|
|
106
|
+
/**
|
|
107
|
+
* Show a global search input above the table.
|
|
108
|
+
* Requires `filtering` to be enabled.
|
|
109
|
+
* @default false
|
|
110
|
+
*/
|
|
111
|
+
showGlobalFilter?: boolean;
|
|
112
|
+
/** Placeholder for the global search input. */
|
|
113
|
+
globalFilterPlaceholder?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Enable client-side pagination.
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
pagination?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Number of rows per page.
|
|
121
|
+
* @default 10
|
|
122
|
+
*/
|
|
123
|
+
pageSize?: number;
|
|
124
|
+
/**
|
|
125
|
+
* Controlled pagination state.
|
|
126
|
+
*/
|
|
127
|
+
paginationState?: PaginationState;
|
|
128
|
+
/** Callback for controlled pagination changes. */
|
|
129
|
+
onPaginationChange?: OnChangeFn<PaginationState>;
|
|
130
|
+
/**
|
|
131
|
+
* Available page size options for the page-size selector.
|
|
132
|
+
* Set to `false` to hide the selector.
|
|
133
|
+
* @default [10, 20, 30, 50, 100]
|
|
134
|
+
*/
|
|
135
|
+
pageSizeOptions?: number[] | false;
|
|
136
|
+
/**
|
|
137
|
+
* Enable row selection.
|
|
138
|
+
* - `"single"` — only one row at a time
|
|
139
|
+
* - `"multi"` — multiple rows via checkboxes
|
|
140
|
+
* - `false` — disabled
|
|
141
|
+
* @default false
|
|
142
|
+
*/
|
|
143
|
+
rowSelection?: "single" | "multi" | false;
|
|
144
|
+
/**
|
|
145
|
+
* Controlled row selection state.
|
|
146
|
+
* Keys are row IDs (by default the row index).
|
|
147
|
+
*/
|
|
148
|
+
rowSelectionState?: RowSelectionState;
|
|
149
|
+
/** Callback for controlled row selection changes. */
|
|
150
|
+
onRowSelectionChange?: OnChangeFn<RowSelectionState>;
|
|
151
|
+
/**
|
|
152
|
+
* Callback when selected rows change. Receives the full Row objects.
|
|
153
|
+
* Convenience wrapper around `onRowSelectionChange`.
|
|
154
|
+
*/
|
|
155
|
+
onSelectedRowsChange?: (rows: Row<TData>[]) => void;
|
|
156
|
+
/**
|
|
157
|
+
* Function to determine if a row can be selected.
|
|
158
|
+
*/
|
|
159
|
+
enableRowSelection?: boolean | ((row: Row<TData>) => boolean);
|
|
160
|
+
/**
|
|
161
|
+
* Custom row ID accessor. By default, the row index is used.
|
|
162
|
+
*/
|
|
163
|
+
getRowId?: (originalRow: TData, index: number) => string;
|
|
164
|
+
/**
|
|
165
|
+
* Enable column visibility toggling.
|
|
166
|
+
* @default false
|
|
167
|
+
*/
|
|
168
|
+
columnVisibility?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Controlled column visibility state.
|
|
171
|
+
*/
|
|
172
|
+
columnVisibilityState?: VisibilityState;
|
|
173
|
+
/** Callback for controlled column visibility changes. */
|
|
174
|
+
onColumnVisibilityChange?: OnChangeFn<VisibilityState>;
|
|
175
|
+
/**
|
|
176
|
+
* Controlled column pinning state.
|
|
177
|
+
*/
|
|
178
|
+
columnPinning?: ColumnPinningState;
|
|
179
|
+
/** Callback for controlled column pinning changes. */
|
|
180
|
+
onColumnPinningChange?: OnChangeFn<ColumnPinningState>;
|
|
181
|
+
/**
|
|
182
|
+
* Row height density.
|
|
183
|
+
* @default "comfortable"
|
|
184
|
+
*/
|
|
185
|
+
density?: TableDensity;
|
|
186
|
+
/**
|
|
187
|
+
* Alternate row background color for readability.
|
|
188
|
+
* @default false
|
|
189
|
+
*/
|
|
190
|
+
striped?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Highlight rows on hover.
|
|
193
|
+
* @default true
|
|
194
|
+
*/
|
|
195
|
+
hoverable?: boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Add borders between cells.
|
|
198
|
+
* @default false
|
|
199
|
+
*/
|
|
200
|
+
bordered?: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Wrap the table in a horizontally-scrollable container.
|
|
203
|
+
* @default true
|
|
204
|
+
*/
|
|
205
|
+
responsive?: boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Show a loading skeleton overlay.
|
|
208
|
+
* @default false
|
|
209
|
+
*/
|
|
210
|
+
loading?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Custom content to show when data is empty.
|
|
213
|
+
*/
|
|
214
|
+
emptyState?: ReactNode;
|
|
215
|
+
/**
|
|
216
|
+
* Table caption (accessibility).
|
|
217
|
+
*/
|
|
218
|
+
caption?: ReactNode;
|
|
219
|
+
/**
|
|
220
|
+
* Render a footer row. If true, column footers from ColumnDef are rendered.
|
|
221
|
+
* @default false
|
|
222
|
+
*/
|
|
223
|
+
showFooter?: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Content rendered above the table (e.g., filters, actions toolbar).
|
|
226
|
+
* Receives the table instance for advanced usage.
|
|
227
|
+
*/
|
|
228
|
+
toolbar?: ReactNode | ((table: Table<TData>) => ReactNode);
|
|
229
|
+
/**
|
|
230
|
+
* Content rendered below the table (e.g., custom pagination, summary).
|
|
231
|
+
* Receives the table instance for advanced usage.
|
|
232
|
+
*/
|
|
233
|
+
footer?: ReactNode | ((table: Table<TData>) => ReactNode);
|
|
234
|
+
/** Additional CSS classes for the outermost wrapper. */
|
|
235
|
+
className?: string;
|
|
236
|
+
/** Additional CSS classes for the table element. */
|
|
237
|
+
tableClassName?: string;
|
|
238
|
+
/** Additional CSS classes for the responsive wrapper. */
|
|
239
|
+
wrapperClassName?: string;
|
|
240
|
+
/**
|
|
241
|
+
* Callback when a row is clicked.
|
|
242
|
+
*/
|
|
243
|
+
onRowClick?: (row: Row<TData>, event: React.MouseEvent) => void;
|
|
244
|
+
/**
|
|
245
|
+
* Expose the table instance to the parent via ref callback.
|
|
246
|
+
*/
|
|
247
|
+
onTableInstance?: (table: Table<TData>) => void;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* DataTable — a feature-rich data table powered by TanStack Table,
|
|
251
|
+
* rendered with Unified UI's styled Table primitives.
|
|
252
|
+
*
|
|
253
|
+
* Supports sorting, filtering, pagination, row selection, column visibility,
|
|
254
|
+
* loading/empty states, and custom toolbar/footer slots.
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```tsx
|
|
258
|
+
* import { DataTable, type ColumnDef } from "@work-rjkashyap/unified-ui";
|
|
259
|
+
*
|
|
260
|
+
* type Person = { name: string; email: string; age: number };
|
|
261
|
+
*
|
|
262
|
+
* const columns: ColumnDef<Person>[] = [
|
|
263
|
+
* { accessorKey: "name", header: "Name" },
|
|
264
|
+
* { accessorKey: "email", header: "Email" },
|
|
265
|
+
* { accessorKey: "age", header: "Age" },
|
|
266
|
+
* ];
|
|
267
|
+
*
|
|
268
|
+
* <DataTable
|
|
269
|
+
* data={people}
|
|
270
|
+
* columns={columns}
|
|
271
|
+
* sorting
|
|
272
|
+
* pagination
|
|
273
|
+
* pageSize={20}
|
|
274
|
+
* striped
|
|
275
|
+
* hoverable
|
|
276
|
+
* />
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
declare const DataTable: <TData>(props: DataTableProps<TData> & {
|
|
280
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
281
|
+
}) => React.ReactElement;
|
|
282
|
+
interface UseDataTableOptions<TData> {
|
|
283
|
+
data: TData[];
|
|
284
|
+
columns: ColumnDef<TData, any>[];
|
|
285
|
+
initialSorting?: SortingState;
|
|
286
|
+
initialPagination?: Partial<PaginationState>;
|
|
287
|
+
initialColumnFilters?: ColumnFiltersState;
|
|
288
|
+
initialRowSelection?: RowSelectionState;
|
|
289
|
+
initialColumnVisibility?: VisibilityState;
|
|
290
|
+
initialGlobalFilter?: string;
|
|
291
|
+
}
|
|
292
|
+
interface UseDataTableReturn<_TData> {
|
|
293
|
+
sorting: SortingState;
|
|
294
|
+
onSortingChange: OnChangeFn<SortingState>;
|
|
295
|
+
globalFilter: string;
|
|
296
|
+
onGlobalFilterChange: OnChangeFn<string>;
|
|
297
|
+
columnFilters: ColumnFiltersState;
|
|
298
|
+
onColumnFiltersChange: OnChangeFn<ColumnFiltersState>;
|
|
299
|
+
pagination: PaginationState;
|
|
300
|
+
onPaginationChange: OnChangeFn<PaginationState>;
|
|
301
|
+
rowSelection: RowSelectionState;
|
|
302
|
+
onRowSelectionChange: OnChangeFn<RowSelectionState>;
|
|
303
|
+
columnVisibility: VisibilityState;
|
|
304
|
+
onColumnVisibilityChange: OnChangeFn<VisibilityState>;
|
|
305
|
+
/** Spread these into <DataTable /> for full controlled mode. */
|
|
306
|
+
tableProps: {
|
|
307
|
+
sortingState: SortingState;
|
|
308
|
+
onSortingChange: OnChangeFn<SortingState>;
|
|
309
|
+
globalFilter: string;
|
|
310
|
+
onGlobalFilterChange: OnChangeFn<string>;
|
|
311
|
+
columnFilters: ColumnFiltersState;
|
|
312
|
+
onColumnFiltersChange: OnChangeFn<ColumnFiltersState>;
|
|
313
|
+
paginationState: PaginationState;
|
|
314
|
+
onPaginationChange: OnChangeFn<PaginationState>;
|
|
315
|
+
rowSelectionState: RowSelectionState;
|
|
316
|
+
onRowSelectionChange: OnChangeFn<RowSelectionState>;
|
|
317
|
+
columnVisibilityState: VisibilityState;
|
|
318
|
+
onColumnVisibilityChange: OnChangeFn<VisibilityState>;
|
|
319
|
+
};
|
|
320
|
+
/** Reset all state back to initial values. */
|
|
321
|
+
reset: () => void;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* useDataTable — a convenience hook that manages all table state in one place.
|
|
325
|
+
*
|
|
326
|
+
* Spread `tableProps` into `<DataTable />` for fully controlled usage:
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```tsx
|
|
330
|
+
* const { tableProps, sorting, rowSelection, reset } = useDataTable({
|
|
331
|
+
* data,
|
|
332
|
+
* columns,
|
|
333
|
+
* initialSorting: [{ id: "name", desc: false }],
|
|
334
|
+
* initialPagination: { pageSize: 20 },
|
|
335
|
+
* });
|
|
336
|
+
*
|
|
337
|
+
* <DataTable
|
|
338
|
+
* data={data}
|
|
339
|
+
* columns={columns}
|
|
340
|
+
* sorting
|
|
341
|
+
* pagination
|
|
342
|
+
* rowSelection="multi"
|
|
343
|
+
* {...tableProps}
|
|
344
|
+
* />
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
declare function useDataTable<TData>(options: UseDataTableOptions<TData>): UseDataTableReturn<TData>;
|
|
348
|
+
|
|
349
|
+
export { DataTable, type DataTableColumnMeta, type DataTableFacetedFilter, type DataTableProps, type UseDataTableOptions, type UseDataTableReturn, useDataTable };
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { ColumnDef, SortingState, OnChangeFn, ColumnFiltersState, PaginationState, RowSelectionState, Row, VisibilityState, ColumnPinningState, Table } from '@tanstack/react-table';
|
|
2
|
+
export { ColumnDef, ColumnFiltersState, PaginationState, Row, RowSelectionState, SortingState, VisibilityState, createColumnHelper } from '@tanstack/react-table';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
import { TableDensity, TableAlign } from './table.js';
|
|
5
|
+
import 'class-variance-authority/types';
|
|
6
|
+
import 'class-variance-authority';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Extend TanStack Table's ColumnMeta with Unified UI specific properties.
|
|
10
|
+
* Consumers can use these in their ColumnDef `meta` field.
|
|
11
|
+
*/
|
|
12
|
+
interface DataTableColumnMeta {
|
|
13
|
+
/** Text alignment for the column header and cells. */
|
|
14
|
+
align?: TableAlign;
|
|
15
|
+
/** Whether this column should have a sticky header. */
|
|
16
|
+
sticky?: boolean;
|
|
17
|
+
/** Custom CSS class for header cells. */
|
|
18
|
+
headerClassName?: string;
|
|
19
|
+
/** Custom CSS class for body cells. */
|
|
20
|
+
cellClassName?: string;
|
|
21
|
+
/** Whether to show a filter input for this column. */
|
|
22
|
+
filterable?: boolean;
|
|
23
|
+
/** Placeholder text for the column filter input. */
|
|
24
|
+
filterPlaceholder?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Enable a dropdown header menu (Asc / Desc / Hide) on this column.
|
|
27
|
+
* When `true`, clicking the column header opens a dropdown instead of
|
|
28
|
+
* directly toggling the sort direction.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
enableHeaderMenu?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Configuration for a faceted filter button shown in the toolbar.
|
|
35
|
+
* Each entry creates a pill-style button that opens a popover with
|
|
36
|
+
* checkbox options derived from the column's unique values.
|
|
37
|
+
*/
|
|
38
|
+
interface DataTableFacetedFilter {
|
|
39
|
+
/** The column ID to filter on (must match a `ColumnDef` accessorKey or id). */
|
|
40
|
+
columnId: string;
|
|
41
|
+
/** Display label for the filter button. */
|
|
42
|
+
title: string;
|
|
43
|
+
/**
|
|
44
|
+
* Optional icon rendered before the title.
|
|
45
|
+
* Pass a React element (e.g. a Lucide icon).
|
|
46
|
+
*/
|
|
47
|
+
icon?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Explicit list of filter options. If omitted the component will
|
|
50
|
+
* derive options from the column's unique faceted values.
|
|
51
|
+
*/
|
|
52
|
+
options?: {
|
|
53
|
+
label: string;
|
|
54
|
+
value: string;
|
|
55
|
+
icon?: ReactNode;
|
|
56
|
+
}[];
|
|
57
|
+
}
|
|
58
|
+
interface DataTableProps<TData> {
|
|
59
|
+
/** The data array to render. Each item becomes a row. */
|
|
60
|
+
data: TData[];
|
|
61
|
+
/**
|
|
62
|
+
* TanStack Table column definitions.
|
|
63
|
+
* @see https://tanstack.com/table/latest/docs/guide/column-defs
|
|
64
|
+
*/
|
|
65
|
+
columns: ColumnDef<TData, any>[];
|
|
66
|
+
/**
|
|
67
|
+
* Faceted filter buttons rendered in the toolbar.
|
|
68
|
+
* Each entry creates a pill-style button that opens a checkbox popover
|
|
69
|
+
* filtered by that column's unique values.
|
|
70
|
+
*/
|
|
71
|
+
facetedFilters?: DataTableFacetedFilter[];
|
|
72
|
+
/**
|
|
73
|
+
* Enable client-side sorting.
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
sorting?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Controlled sorting state. When provided, sorting becomes controlled.
|
|
79
|
+
* Use with `onSortingChange`.
|
|
80
|
+
*/
|
|
81
|
+
sortingState?: SortingState;
|
|
82
|
+
/** Callback for controlled sorting state changes. */
|
|
83
|
+
onSortingChange?: OnChangeFn<SortingState>;
|
|
84
|
+
/**
|
|
85
|
+
* Enable multi-column sorting (hold Shift to sort by multiple columns).
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
88
|
+
multiSort?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Enable client-side filtering (global + per-column).
|
|
91
|
+
* @default false
|
|
92
|
+
*/
|
|
93
|
+
filtering?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Controlled global filter value.
|
|
96
|
+
*/
|
|
97
|
+
globalFilter?: string;
|
|
98
|
+
/** Callback for controlled global filter changes. */
|
|
99
|
+
onGlobalFilterChange?: OnChangeFn<string>;
|
|
100
|
+
/**
|
|
101
|
+
* Controlled column filters state.
|
|
102
|
+
*/
|
|
103
|
+
columnFilters?: ColumnFiltersState;
|
|
104
|
+
/** Callback for controlled column filter changes. */
|
|
105
|
+
onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>;
|
|
106
|
+
/**
|
|
107
|
+
* Show a global search input above the table.
|
|
108
|
+
* Requires `filtering` to be enabled.
|
|
109
|
+
* @default false
|
|
110
|
+
*/
|
|
111
|
+
showGlobalFilter?: boolean;
|
|
112
|
+
/** Placeholder for the global search input. */
|
|
113
|
+
globalFilterPlaceholder?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Enable client-side pagination.
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
pagination?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Number of rows per page.
|
|
121
|
+
* @default 10
|
|
122
|
+
*/
|
|
123
|
+
pageSize?: number;
|
|
124
|
+
/**
|
|
125
|
+
* Controlled pagination state.
|
|
126
|
+
*/
|
|
127
|
+
paginationState?: PaginationState;
|
|
128
|
+
/** Callback for controlled pagination changes. */
|
|
129
|
+
onPaginationChange?: OnChangeFn<PaginationState>;
|
|
130
|
+
/**
|
|
131
|
+
* Available page size options for the page-size selector.
|
|
132
|
+
* Set to `false` to hide the selector.
|
|
133
|
+
* @default [10, 20, 30, 50, 100]
|
|
134
|
+
*/
|
|
135
|
+
pageSizeOptions?: number[] | false;
|
|
136
|
+
/**
|
|
137
|
+
* Enable row selection.
|
|
138
|
+
* - `"single"` — only one row at a time
|
|
139
|
+
* - `"multi"` — multiple rows via checkboxes
|
|
140
|
+
* - `false` — disabled
|
|
141
|
+
* @default false
|
|
142
|
+
*/
|
|
143
|
+
rowSelection?: "single" | "multi" | false;
|
|
144
|
+
/**
|
|
145
|
+
* Controlled row selection state.
|
|
146
|
+
* Keys are row IDs (by default the row index).
|
|
147
|
+
*/
|
|
148
|
+
rowSelectionState?: RowSelectionState;
|
|
149
|
+
/** Callback for controlled row selection changes. */
|
|
150
|
+
onRowSelectionChange?: OnChangeFn<RowSelectionState>;
|
|
151
|
+
/**
|
|
152
|
+
* Callback when selected rows change. Receives the full Row objects.
|
|
153
|
+
* Convenience wrapper around `onRowSelectionChange`.
|
|
154
|
+
*/
|
|
155
|
+
onSelectedRowsChange?: (rows: Row<TData>[]) => void;
|
|
156
|
+
/**
|
|
157
|
+
* Function to determine if a row can be selected.
|
|
158
|
+
*/
|
|
159
|
+
enableRowSelection?: boolean | ((row: Row<TData>) => boolean);
|
|
160
|
+
/**
|
|
161
|
+
* Custom row ID accessor. By default, the row index is used.
|
|
162
|
+
*/
|
|
163
|
+
getRowId?: (originalRow: TData, index: number) => string;
|
|
164
|
+
/**
|
|
165
|
+
* Enable column visibility toggling.
|
|
166
|
+
* @default false
|
|
167
|
+
*/
|
|
168
|
+
columnVisibility?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Controlled column visibility state.
|
|
171
|
+
*/
|
|
172
|
+
columnVisibilityState?: VisibilityState;
|
|
173
|
+
/** Callback for controlled column visibility changes. */
|
|
174
|
+
onColumnVisibilityChange?: OnChangeFn<VisibilityState>;
|
|
175
|
+
/**
|
|
176
|
+
* Controlled column pinning state.
|
|
177
|
+
*/
|
|
178
|
+
columnPinning?: ColumnPinningState;
|
|
179
|
+
/** Callback for controlled column pinning changes. */
|
|
180
|
+
onColumnPinningChange?: OnChangeFn<ColumnPinningState>;
|
|
181
|
+
/**
|
|
182
|
+
* Row height density.
|
|
183
|
+
* @default "comfortable"
|
|
184
|
+
*/
|
|
185
|
+
density?: TableDensity;
|
|
186
|
+
/**
|
|
187
|
+
* Alternate row background color for readability.
|
|
188
|
+
* @default false
|
|
189
|
+
*/
|
|
190
|
+
striped?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Highlight rows on hover.
|
|
193
|
+
* @default true
|
|
194
|
+
*/
|
|
195
|
+
hoverable?: boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Add borders between cells.
|
|
198
|
+
* @default false
|
|
199
|
+
*/
|
|
200
|
+
bordered?: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Wrap the table in a horizontally-scrollable container.
|
|
203
|
+
* @default true
|
|
204
|
+
*/
|
|
205
|
+
responsive?: boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Show a loading skeleton overlay.
|
|
208
|
+
* @default false
|
|
209
|
+
*/
|
|
210
|
+
loading?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Custom content to show when data is empty.
|
|
213
|
+
*/
|
|
214
|
+
emptyState?: ReactNode;
|
|
215
|
+
/**
|
|
216
|
+
* Table caption (accessibility).
|
|
217
|
+
*/
|
|
218
|
+
caption?: ReactNode;
|
|
219
|
+
/**
|
|
220
|
+
* Render a footer row. If true, column footers from ColumnDef are rendered.
|
|
221
|
+
* @default false
|
|
222
|
+
*/
|
|
223
|
+
showFooter?: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Content rendered above the table (e.g., filters, actions toolbar).
|
|
226
|
+
* Receives the table instance for advanced usage.
|
|
227
|
+
*/
|
|
228
|
+
toolbar?: ReactNode | ((table: Table<TData>) => ReactNode);
|
|
229
|
+
/**
|
|
230
|
+
* Content rendered below the table (e.g., custom pagination, summary).
|
|
231
|
+
* Receives the table instance for advanced usage.
|
|
232
|
+
*/
|
|
233
|
+
footer?: ReactNode | ((table: Table<TData>) => ReactNode);
|
|
234
|
+
/** Additional CSS classes for the outermost wrapper. */
|
|
235
|
+
className?: string;
|
|
236
|
+
/** Additional CSS classes for the table element. */
|
|
237
|
+
tableClassName?: string;
|
|
238
|
+
/** Additional CSS classes for the responsive wrapper. */
|
|
239
|
+
wrapperClassName?: string;
|
|
240
|
+
/**
|
|
241
|
+
* Callback when a row is clicked.
|
|
242
|
+
*/
|
|
243
|
+
onRowClick?: (row: Row<TData>, event: React.MouseEvent) => void;
|
|
244
|
+
/**
|
|
245
|
+
* Expose the table instance to the parent via ref callback.
|
|
246
|
+
*/
|
|
247
|
+
onTableInstance?: (table: Table<TData>) => void;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* DataTable — a feature-rich data table powered by TanStack Table,
|
|
251
|
+
* rendered with Unified UI's styled Table primitives.
|
|
252
|
+
*
|
|
253
|
+
* Supports sorting, filtering, pagination, row selection, column visibility,
|
|
254
|
+
* loading/empty states, and custom toolbar/footer slots.
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```tsx
|
|
258
|
+
* import { DataTable, type ColumnDef } from "@work-rjkashyap/unified-ui";
|
|
259
|
+
*
|
|
260
|
+
* type Person = { name: string; email: string; age: number };
|
|
261
|
+
*
|
|
262
|
+
* const columns: ColumnDef<Person>[] = [
|
|
263
|
+
* { accessorKey: "name", header: "Name" },
|
|
264
|
+
* { accessorKey: "email", header: "Email" },
|
|
265
|
+
* { accessorKey: "age", header: "Age" },
|
|
266
|
+
* ];
|
|
267
|
+
*
|
|
268
|
+
* <DataTable
|
|
269
|
+
* data={people}
|
|
270
|
+
* columns={columns}
|
|
271
|
+
* sorting
|
|
272
|
+
* pagination
|
|
273
|
+
* pageSize={20}
|
|
274
|
+
* striped
|
|
275
|
+
* hoverable
|
|
276
|
+
* />
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
declare const DataTable: <TData>(props: DataTableProps<TData> & {
|
|
280
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
281
|
+
}) => React.ReactElement;
|
|
282
|
+
interface UseDataTableOptions<TData> {
|
|
283
|
+
data: TData[];
|
|
284
|
+
columns: ColumnDef<TData, any>[];
|
|
285
|
+
initialSorting?: SortingState;
|
|
286
|
+
initialPagination?: Partial<PaginationState>;
|
|
287
|
+
initialColumnFilters?: ColumnFiltersState;
|
|
288
|
+
initialRowSelection?: RowSelectionState;
|
|
289
|
+
initialColumnVisibility?: VisibilityState;
|
|
290
|
+
initialGlobalFilter?: string;
|
|
291
|
+
}
|
|
292
|
+
interface UseDataTableReturn<_TData> {
|
|
293
|
+
sorting: SortingState;
|
|
294
|
+
onSortingChange: OnChangeFn<SortingState>;
|
|
295
|
+
globalFilter: string;
|
|
296
|
+
onGlobalFilterChange: OnChangeFn<string>;
|
|
297
|
+
columnFilters: ColumnFiltersState;
|
|
298
|
+
onColumnFiltersChange: OnChangeFn<ColumnFiltersState>;
|
|
299
|
+
pagination: PaginationState;
|
|
300
|
+
onPaginationChange: OnChangeFn<PaginationState>;
|
|
301
|
+
rowSelection: RowSelectionState;
|
|
302
|
+
onRowSelectionChange: OnChangeFn<RowSelectionState>;
|
|
303
|
+
columnVisibility: VisibilityState;
|
|
304
|
+
onColumnVisibilityChange: OnChangeFn<VisibilityState>;
|
|
305
|
+
/** Spread these into <DataTable /> for full controlled mode. */
|
|
306
|
+
tableProps: {
|
|
307
|
+
sortingState: SortingState;
|
|
308
|
+
onSortingChange: OnChangeFn<SortingState>;
|
|
309
|
+
globalFilter: string;
|
|
310
|
+
onGlobalFilterChange: OnChangeFn<string>;
|
|
311
|
+
columnFilters: ColumnFiltersState;
|
|
312
|
+
onColumnFiltersChange: OnChangeFn<ColumnFiltersState>;
|
|
313
|
+
paginationState: PaginationState;
|
|
314
|
+
onPaginationChange: OnChangeFn<PaginationState>;
|
|
315
|
+
rowSelectionState: RowSelectionState;
|
|
316
|
+
onRowSelectionChange: OnChangeFn<RowSelectionState>;
|
|
317
|
+
columnVisibilityState: VisibilityState;
|
|
318
|
+
onColumnVisibilityChange: OnChangeFn<VisibilityState>;
|
|
319
|
+
};
|
|
320
|
+
/** Reset all state back to initial values. */
|
|
321
|
+
reset: () => void;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* useDataTable — a convenience hook that manages all table state in one place.
|
|
325
|
+
*
|
|
326
|
+
* Spread `tableProps` into `<DataTable />` for fully controlled usage:
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```tsx
|
|
330
|
+
* const { tableProps, sorting, rowSelection, reset } = useDataTable({
|
|
331
|
+
* data,
|
|
332
|
+
* columns,
|
|
333
|
+
* initialSorting: [{ id: "name", desc: false }],
|
|
334
|
+
* initialPagination: { pageSize: 20 },
|
|
335
|
+
* });
|
|
336
|
+
*
|
|
337
|
+
* <DataTable
|
|
338
|
+
* data={data}
|
|
339
|
+
* columns={columns}
|
|
340
|
+
* sorting
|
|
341
|
+
* pagination
|
|
342
|
+
* rowSelection="multi"
|
|
343
|
+
* {...tableProps}
|
|
344
|
+
* />
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
declare function useDataTable<TData>(options: UseDataTableOptions<TData>): UseDataTableReturn<TData>;
|
|
348
|
+
|
|
349
|
+
export { DataTable, type DataTableColumnMeta, type DataTableFacetedFilter, type DataTableProps, type UseDataTableOptions, type UseDataTableReturn, useDataTable };
|