@kayord/ui 3.0.12 → 4.0.1

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.
Files changed (303) hide show
  1. package/README.md +70 -156
  2. package/dist/components/custom/animations/NumberTicker.svelte +2 -3
  3. package/dist/components/custom/copy-button/CopyButton.svelte +0 -1
  4. package/dist/components/custom/data-table/DataTable.svelte +42 -69
  5. package/dist/components/custom/data-table/DataTable.svelte.d.ts +14 -9
  6. package/dist/components/custom/data-table/DataTableFooter.svelte +7 -6
  7. package/dist/components/custom/data-table/DataTableFooter.svelte.d.ts +9 -8
  8. package/dist/components/custom/data-table/DataTableHeader.svelte +27 -13
  9. package/dist/components/custom/data-table/DataTableHeader.svelte.d.ts +9 -9
  10. package/dist/components/custom/data-table/DataTableView.svelte +7 -6
  11. package/dist/components/custom/data-table/DataTableView.svelte.d.ts +8 -7
  12. package/dist/components/custom/data-table/FullscreenModeToggle.svelte +11 -6
  13. package/dist/components/custom/data-table/Pagination.svelte +57 -41
  14. package/dist/components/custom/data-table/Pagination.svelte.d.ts +9 -8
  15. package/dist/components/custom/data-table/data-table-utils.js +19 -21
  16. package/dist/components/custom/data-table/features.d.ts +157 -0
  17. package/dist/components/custom/data-table/features.js +36 -0
  18. package/dist/components/custom/data-table/index.d.ts +5 -2
  19. package/dist/components/custom/data-table/index.js +3 -2
  20. package/dist/components/custom/data-table/shad-table.svelte.d.ts +9 -8
  21. package/dist/components/custom/data-table/shad-table.svelte.js +54 -230
  22. package/dist/components/custom/data-table/table-search-params.d.ts +9 -7
  23. package/dist/components/custom/data-table/table-search-params.js +29 -20
  24. package/dist/components/custom/data-table/table-url-sync.svelte.d.ts +42 -0
  25. package/dist/components/custom/data-table/table-url-sync.svelte.js +81 -0
  26. package/dist/components/custom/data-table/types.d.ts +9 -5
  27. package/dist/components/custom/light-switch.svelte/LightSwitch.svelte +1 -1
  28. package/dist/components/custom/loader/Loader.svelte +0 -2
  29. package/dist/components/custom/loader/Loader.svelte.d.ts +1 -3
  30. package/dist/components/custom/theme-selector/ThemeSelector.svelte +1 -1
  31. package/dist/components/ui/accordion/accordion-content.svelte +2 -2
  32. package/dist/components/ui/accordion/accordion-item.svelte +5 -1
  33. package/dist/components/ui/accordion/accordion-trigger.svelte +5 -11
  34. package/dist/components/ui/alert/alert-action.svelte +6 -1
  35. package/dist/components/ui/alert/alert-description.svelte +1 -1
  36. package/dist/components/ui/alert/alert-title.svelte +1 -1
  37. package/dist/components/ui/alert/alert.svelte +8 -3
  38. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +5 -1
  39. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +5 -1
  40. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +1 -1
  41. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +6 -5
  42. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +1 -1
  43. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +1 -4
  44. package/dist/components/ui/alert-dialog/alert-dialog-media.svelte +1 -4
  45. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +6 -5
  46. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +6 -5
  47. package/dist/components/ui/avatar/avatar-fallback.svelte +6 -2
  48. package/dist/components/ui/avatar/avatar-group-count.svelte +1 -1
  49. package/dist/components/ui/avatar/avatar-group.svelte +1 -1
  50. package/dist/components/ui/avatar/avatar-image.svelte +6 -2
  51. package/dist/components/ui/avatar/avatar.svelte +1 -1
  52. package/dist/components/ui/badge/badge.svelte +1 -2
  53. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +3 -3
  54. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +12 -2
  55. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +7 -2
  56. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +1 -1
  57. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +8 -3
  58. package/dist/components/ui/button/button.svelte +5 -10
  59. package/dist/components/ui/button/index.js +1 -1
  60. package/dist/components/ui/button-group/button-group-text.svelte +1 -4
  61. package/dist/components/ui/calendar/calendar-cell.svelte +5 -1
  62. package/dist/components/ui/calendar/calendar-day.svelte +7 -3
  63. package/dist/components/ui/calendar/calendar-grid-body.svelte +5 -1
  64. package/dist/components/ui/calendar/calendar-grid-head.svelte +5 -1
  65. package/dist/components/ui/calendar/calendar-grid-row.svelte +5 -1
  66. package/dist/components/ui/calendar/calendar-grid.svelte +10 -2
  67. package/dist/components/ui/calendar/calendar-head-cell.svelte +9 -2
  68. package/dist/components/ui/calendar/calendar-header.svelte +9 -2
  69. package/dist/components/ui/calendar/calendar-heading.svelte +10 -2
  70. package/dist/components/ui/calendar/calendar-month-select.svelte +7 -5
  71. package/dist/components/ui/calendar/calendar-months.svelte +5 -1
  72. package/dist/components/ui/calendar/calendar-next-button.svelte +1 -1
  73. package/dist/components/ui/calendar/calendar-prev-button.svelte +1 -1
  74. package/dist/components/ui/calendar/calendar-year-select.svelte +7 -5
  75. package/dist/components/ui/calendar/calendar.svelte +1 -1
  76. package/dist/components/ui/card/card-action.svelte +4 -1
  77. package/dist/components/ui/card/card-content.svelte +6 -1
  78. package/dist/components/ui/card/card-description.svelte +6 -1
  79. package/dist/components/ui/card/card-footer.svelte +1 -1
  80. package/dist/components/ui/card/card-header.svelte +1 -1
  81. package/dist/components/ui/card/card.svelte +1 -4
  82. package/dist/components/ui/carousel/carousel-content.svelte +5 -1
  83. package/dist/components/ui/carousel/carousel-item.svelte +5 -1
  84. package/dist/components/ui/carousel/carousel-next.svelte +3 -3
  85. package/dist/components/ui/carousel/carousel-previous.svelte +3 -3
  86. package/dist/components/ui/carousel/carousel.svelte +6 -1
  87. package/dist/components/ui/chart/chart-tooltip.svelte +17 -8
  88. package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +2 -1
  89. package/dist/components/ui/chart/chart-utils.js +3 -1
  90. package/dist/components/ui/checkbox/checkbox.svelte +9 -6
  91. package/dist/components/ui/collapsible/collapsible.svelte +5 -1
  92. package/dist/components/ui/command/command-dialog.svelte +1 -1
  93. package/dist/components/ui/command/command-empty.svelte +5 -1
  94. package/dist/components/ui/command/command-group.svelte +2 -5
  95. package/dist/components/ui/command/command-input.svelte +6 -5
  96. package/dist/components/ui/command/command-item.svelte +9 -6
  97. package/dist/components/ui/command/command-link-item.svelte +6 -2
  98. package/dist/components/ui/command/command-list.svelte +6 -2
  99. package/dist/components/ui/command/command-separator.svelte +6 -2
  100. package/dist/components/ui/command/command-shortcut.svelte +1 -4
  101. package/dist/components/ui/command/command.svelte +1 -1
  102. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +4 -4
  103. package/dist/components/ui/context-menu/context-menu-content.svelte +1 -1
  104. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +1 -1
  105. package/dist/components/ui/context-menu/context-menu-item.svelte +1 -1
  106. package/dist/components/ui/context-menu/context-menu-label.svelte +1 -1
  107. package/dist/components/ui/context-menu/context-menu-radio-group.svelte +11 -2
  108. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +4 -4
  109. package/dist/components/ui/context-menu/context-menu-separator.svelte +6 -2
  110. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +1 -4
  111. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +6 -5
  112. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +2 -2
  113. package/dist/components/ui/context-menu/context-menu-trigger.svelte +5 -1
  114. package/dist/components/ui/data-table/index.d.ts +2 -3
  115. package/dist/components/ui/data-table/index.js +1 -3
  116. package/dist/components/ui/dialog/dialog-close.svelte +5 -1
  117. package/dist/components/ui/dialog/dialog-content.svelte +3 -3
  118. package/dist/components/ui/dialog/dialog-description.svelte +6 -5
  119. package/dist/components/ui/dialog/dialog-footer.svelte +1 -4
  120. package/dist/components/ui/dialog/dialog-header.svelte +6 -1
  121. package/dist/components/ui/dialog/dialog-overlay.svelte +6 -5
  122. package/dist/components/ui/dialog/dialog-title.svelte +5 -1
  123. package/dist/components/ui/dialog/dialog-trigger.svelte +5 -1
  124. package/dist/components/ui/drawer/drawer-content.svelte +2 -5
  125. package/dist/components/ui/drawer/drawer-description.svelte +6 -2
  126. package/dist/components/ui/drawer/drawer-footer.svelte +6 -1
  127. package/dist/components/ui/drawer/drawer-header.svelte +1 -4
  128. package/dist/components/ui/drawer/drawer-overlay.svelte +6 -5
  129. package/dist/components/ui/drawer/drawer-title.svelte +6 -2
  130. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +6 -1
  131. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +6 -6
  132. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +1 -1
  133. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
  134. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +1 -1
  135. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +11 -2
  136. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +4 -4
  137. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +6 -2
  138. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +1 -4
  139. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +6 -5
  140. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
  141. package/dist/components/ui/empty/empty-content.svelte +4 -1
  142. package/dist/components/ui/empty/empty-description.svelte +1 -1
  143. package/dist/components/ui/empty/empty-header.svelte +1 -1
  144. package/dist/components/ui/empty/empty-title.svelte +6 -1
  145. package/dist/components/ui/empty/empty.svelte +1 -1
  146. package/dist/components/ui/field/field-content.svelte +1 -1
  147. package/dist/components/ui/field/field-description.svelte +2 -2
  148. package/dist/components/ui/field/field-error.svelte +1 -1
  149. package/dist/components/ui/field/field-group.svelte +1 -1
  150. package/dist/components/ui/field/field-label.svelte +7 -2
  151. package/dist/components/ui/field/field-separator.svelte +2 -2
  152. package/dist/components/ui/field/field-set.svelte +1 -4
  153. package/dist/components/ui/field/field-title.svelte +1 -4
  154. package/dist/components/ui/form/form-description.svelte +1 -1
  155. package/dist/components/ui/form/form-element-field.svelte +2 -1
  156. package/dist/components/ui/form/form-field-errors.svelte +5 -1
  157. package/dist/components/ui/form/form-field.svelte +2 -1
  158. package/dist/components/ui/form/form-label.svelte +5 -1
  159. package/dist/components/ui/form/form-legend.svelte +6 -2
  160. package/dist/components/ui/hover-card/hover-card-content.svelte +1 -4
  161. package/dist/components/ui/input/input.svelte +4 -3
  162. package/dist/components/ui/input-group/input-group-addon.svelte +1 -2
  163. package/dist/components/ui/input-group/input-group-input.svelte +1 -4
  164. package/dist/components/ui/input-group/input-group-text.svelte +1 -4
  165. package/dist/components/ui/input-group/input-group-textarea.svelte +1 -4
  166. package/dist/components/ui/input-group/input-group.svelte +1 -1
  167. package/dist/components/ui/input-otp/input-otp-group.svelte +1 -4
  168. package/dist/components/ui/input-otp/input-otp-separator.svelte +3 -3
  169. package/dist/components/ui/input-otp/input-otp-slot.svelte +11 -4
  170. package/dist/components/ui/input-otp/input-otp.svelte +1 -1
  171. package/dist/components/ui/item/item-actions.svelte +6 -1
  172. package/dist/components/ui/item/item-content.svelte +1 -1
  173. package/dist/components/ui/item/item-description.svelte +1 -1
  174. package/dist/components/ui/item/item-footer.svelte +1 -1
  175. package/dist/components/ui/item/item-group.svelte +1 -4
  176. package/dist/components/ui/item/item-header.svelte +1 -1
  177. package/dist/components/ui/item/item-media.svelte +1 -2
  178. package/dist/components/ui/item/item-separator.svelte +12 -2
  179. package/dist/components/ui/item/item-title.svelte +1 -4
  180. package/dist/components/ui/kbd/kbd-group.svelte +6 -1
  181. package/dist/components/ui/kbd/kbd.svelte +1 -1
  182. package/dist/components/ui/label/label.svelte +6 -2
  183. package/dist/components/ui/menubar/menubar-checkbox-item.svelte +6 -6
  184. package/dist/components/ui/menubar/menubar-content.svelte +1 -1
  185. package/dist/components/ui/menubar/menubar-item.svelte +1 -4
  186. package/dist/components/ui/menubar/menubar-radio-group.svelte +5 -1
  187. package/dist/components/ui/menubar/menubar-radio-item.svelte +4 -4
  188. package/dist/components/ui/menubar/menubar-separator.svelte +5 -1
  189. package/dist/components/ui/menubar/menubar-shortcut.svelte +1 -4
  190. package/dist/components/ui/menubar/menubar-sub-content.svelte +6 -5
  191. package/dist/components/ui/menubar/menubar-sub-trigger.svelte +2 -2
  192. package/dist/components/ui/menubar/menubar-trigger.svelte +6 -5
  193. package/dist/components/ui/menubar/menubar.svelte +6 -2
  194. package/dist/components/ui/native-select/index.d.ts +1 -1
  195. package/dist/components/ui/native-select/index.js +1 -1
  196. package/dist/components/ui/native-select/native-select-opt-group.svelte +5 -1
  197. package/dist/components/ui/native-select/native-select.svelte +7 -8
  198. package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +6 -2
  199. package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +6 -2
  200. package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +5 -1
  201. package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +6 -5
  202. package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +9 -2
  203. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +2 -5
  204. package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +6 -2
  205. package/dist/components/ui/navigation-menu/navigation-menu.svelte +4 -1
  206. package/dist/components/ui/pagination/pagination-content.svelte +6 -1
  207. package/dist/components/ui/pagination/pagination-ellipsis.svelte +3 -6
  208. package/dist/components/ui/pagination/pagination-item.svelte +5 -1
  209. package/dist/components/ui/pagination/pagination-link.svelte +5 -1
  210. package/dist/components/ui/pagination/pagination-next-button.svelte +1 -1
  211. package/dist/components/ui/pagination/pagination-next.svelte +6 -2
  212. package/dist/components/ui/pagination/pagination-prev-button.svelte +1 -1
  213. package/dist/components/ui/pagination/pagination-previous.svelte +11 -3
  214. package/dist/components/ui/popover/popover-content.svelte +1 -1
  215. package/dist/components/ui/popover/popover-description.svelte +6 -1
  216. package/dist/components/ui/popover/popover-header.svelte +6 -1
  217. package/dist/components/ui/popover/popover-title.svelte +6 -1
  218. package/dist/components/ui/popover/popover-trigger.svelte +11 -2
  219. package/dist/components/ui/progress/progress.svelte +1 -1
  220. package/dist/components/ui/radio-group/radio-group-item.svelte +3 -5
  221. package/dist/components/ui/radio-group/radio-group.svelte +1 -1
  222. package/dist/components/ui/range-calendar/range-calendar-cell.svelte +6 -2
  223. package/dist/components/ui/range-calendar/range-calendar-day.svelte +8 -4
  224. package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte +5 -1
  225. package/dist/components/ui/range-calendar/range-calendar-grid.svelte +5 -1
  226. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +9 -2
  227. package/dist/components/ui/range-calendar/range-calendar-header.svelte +9 -2
  228. package/dist/components/ui/range-calendar/range-calendar-heading.svelte +10 -2
  229. package/dist/components/ui/range-calendar/range-calendar-month-select.svelte +6 -4
  230. package/dist/components/ui/range-calendar/range-calendar-months.svelte +5 -1
  231. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +1 -1
  232. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +1 -1
  233. package/dist/components/ui/range-calendar/range-calendar-year-select.svelte +6 -4
  234. package/dist/components/ui/range-calendar/range-calendar.svelte +1 -1
  235. package/dist/components/ui/resizable/resizable-handle.svelte +2 -2
  236. package/dist/components/ui/resizable/resizable-pane-group.svelte +4 -1
  237. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +5 -2
  238. package/dist/components/ui/scroll-area/scroll-area.svelte +7 -2
  239. package/dist/components/ui/select/select-content.svelte +4 -2
  240. package/dist/components/ui/select/select-group-heading.svelte +1 -1
  241. package/dist/components/ui/select/select-group.svelte +11 -2
  242. package/dist/components/ui/select/select-item.svelte +3 -3
  243. package/dist/components/ui/select/select-label.svelte +1 -1
  244. package/dist/components/ui/select/select-scroll-down-button.svelte +3 -6
  245. package/dist/components/ui/select/select-scroll-up-button.svelte +3 -6
  246. package/dist/components/ui/select/select-separator.svelte +6 -2
  247. package/dist/components/ui/select/select-trigger.svelte +3 -3
  248. package/dist/components/ui/select/select.svelte +5 -1
  249. package/dist/components/ui/separator/separator.svelte +1 -1
  250. package/dist/components/ui/sheet/sheet-content.svelte +3 -3
  251. package/dist/components/ui/sheet/sheet-description.svelte +6 -2
  252. package/dist/components/ui/sheet/sheet-footer.svelte +6 -1
  253. package/dist/components/ui/sheet/sheet-header.svelte +6 -1
  254. package/dist/components/ui/sheet/sheet-overlay.svelte +6 -2
  255. package/dist/components/ui/sheet/sheet-title.svelte +6 -2
  256. package/dist/components/ui/sidebar/sidebar-content.svelte +1 -1
  257. package/dist/components/ui/sidebar/sidebar-footer.svelte +1 -1
  258. package/dist/components/ui/sidebar/sidebar-group-content.svelte +1 -1
  259. package/dist/components/ui/sidebar/sidebar-group.svelte +1 -1
  260. package/dist/components/ui/sidebar/sidebar-header.svelte +1 -1
  261. package/dist/components/ui/sidebar/sidebar-input.svelte +1 -1
  262. package/dist/components/ui/sidebar/sidebar-inset.svelte +1 -4
  263. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +1 -1
  264. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +1 -2
  265. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +1 -1
  266. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +1 -4
  267. package/dist/components/ui/sidebar/sidebar-menu.svelte +1 -1
  268. package/dist/components/ui/sidebar/sidebar-provider.svelte +10 -2
  269. package/dist/components/ui/sidebar/sidebar-rail.svelte +1 -1
  270. package/dist/components/ui/sidebar/sidebar-separator.svelte +6 -2
  271. package/dist/components/ui/sidebar/sidebar-trigger.svelte +2 -2
  272. package/dist/components/ui/sidebar/sidebar.svelte +11 -5
  273. package/dist/components/ui/skeleton/skeleton.svelte +1 -1
  274. package/dist/components/ui/slider/slider.svelte +6 -4
  275. package/dist/components/ui/sonner/sonner.svelte +5 -5
  276. package/dist/components/ui/spinner/spinner.svelte +2 -10
  277. package/dist/components/ui/switch/switch.svelte +2 -2
  278. package/dist/components/ui/table/table-caption.svelte +1 -1
  279. package/dist/components/ui/table/table-cell.svelte +7 -7
  280. package/dist/components/ui/table/table-footer.svelte +1 -1
  281. package/dist/components/ui/table/table-head.svelte +7 -10
  282. package/dist/components/ui/table/table-header.svelte +6 -1
  283. package/dist/components/ui/table/table-row.svelte +1 -6
  284. package/dist/components/ui/tabs/tabs-content.svelte +6 -2
  285. package/dist/components/ui/tabs/tabs-trigger.svelte +7 -3
  286. package/dist/components/ui/tabs/tabs.svelte +1 -1
  287. package/dist/components/ui/textarea/textarea.svelte +1 -1
  288. package/dist/components/ui/toggle/index.d.ts +1 -1
  289. package/dist/components/ui/toggle/index.js +1 -1
  290. package/dist/components/ui/toggle-group/toggle-group-item.svelte +1 -1
  291. package/dist/components/ui/toggle-group/toggle-group.svelte +1 -1
  292. package/dist/components/ui/tooltip/tooltip-content.svelte +2 -2
  293. package/dist/data-table/index.d.ts +4 -1
  294. package/dist/data-table/index.js +11 -1
  295. package/package.json +33 -27
  296. package/dist/components/custom/data-table/shad-table-old.svelte.d.ts +0 -9
  297. package/dist/components/custom/data-table/shad-table-old.svelte.js +0 -202
  298. package/dist/components/ui/data-table/data-table.svelte.d.ts +0 -40
  299. package/dist/components/ui/data-table/data-table.svelte.js +0 -110
  300. package/dist/components/ui/data-table/flex-render.svelte +0 -37
  301. package/dist/components/ui/data-table/flex-render.svelte.d.ts +0 -33
  302. package/dist/components/ui/data-table/render-helpers.d.ts +0 -90
  303. package/dist/components/ui/data-table/render-helpers.js +0 -99
package/README.md CHANGED
@@ -10,7 +10,7 @@ Pnpm command to install ui library.
10
10
  # create a new project in the current directory
11
11
  pnpm add -D @kayord/ui
12
12
  # install minimal dependencies
13
- pnpm add -D @lucide/svelte tw-animate-css
13
+ pnpm add -D @lucide/svelte tw-animate-css shadcn-svelte
14
14
  # install other dependencies as required
15
15
  pnpm add -D zod sveltekit-superforms
16
16
  # include charts
@@ -24,6 +24,7 @@ Kayord UI exports components individually. Some components require additional pe
24
24
  ### Core Peer Dependencies (required for most components)
25
25
 
26
26
  - `svelte`
27
+ - `@sveltejs/kit`
27
28
  - `@lucide/svelte`
28
29
  - `mode-watcher`
29
30
 
@@ -33,23 +34,23 @@ Kayord UI exports components individually. Some components require additional pe
33
34
  | ------------------------------- | -------------------------------------------------------------------------- |
34
35
  | **Charts** (`chart/`) | `layerchart`, `d3-scale`, `d3-shape`, `@types/d3-scale`, `@types/d3-shape` |
35
36
  | **Carousel** (`carousel/`) | `embla-carousel-svelte` |
36
- | **Data Table** (`data-table/`) | `@tanstack/table-core` |
37
+ | **Data Table** (`data-table/`) | `@tanstack/svelte-table`, `runed`, `zod` |
37
38
  | **Drawer** (`drawer/`) | `vaul-svelte` |
38
39
  | **Form** (`form/`) | `formsnap`, `sveltekit-superforms` |
39
40
  | **Date/Calendar** (`calendar/`) | `@internationalized/date` |
40
41
  | **Resizable** (`resizable/`) | `paneforge` |
41
42
  | **Notifications** (`sonner/`) | `svelte-sonner` |
42
43
 
43
- > **Note:** All above dependencies are listed as optional peer dependencies. Only install those required for the components you use.
44
+ > **Note:** Optional peers are marked optional in `package.json`. The core peers (`svelte`, `@sveltejs/kit`, `@lucide/svelte`, and `mode-watcher`) are required. Install the others only if you use the corresponding feature.
44
45
 
45
46
  ### Example Installation
46
47
 
47
48
  ```bash
48
49
  # Core dependencies
49
- pnpm add -D svelte @lucide/svelte tailwindcss-animate mode-watcher
50
+ pnpm add -D svelte @sveltejs/kit @lucide/svelte tw-animate-css mode-watcher shadcn-svelte
50
51
 
51
52
  # Most likely dependencies
52
- pnpm add -D svelte @lucide/svelte tailwindcss-animate mode-watcher formsnap zod sveltekit-superforms @internationalized/date svelte-sonner
53
+ pnpm add -D svelte @sveltejs/kit @lucide/svelte tw-animate-css mode-watcher formsnap zod sveltekit-superforms @internationalized/date svelte-sonner
53
54
 
54
55
  # For charts
55
56
  pnpm add -D layerchart d3-scale d3-shape @types/d3-scale @types/d3-shape
@@ -58,7 +59,7 @@ pnpm add -D layerchart d3-scale d3-shape @types/d3-scale @types/d3-shape
58
59
  pnpm add -D embla-carousel-svelte
59
60
 
60
61
  # For data table
61
- pnpm add -D @tanstack/table-core
62
+ pnpm add -D @tanstack/svelte-table runed zod
62
63
 
63
64
  # For drawer @next for now
64
65
  pnpm add -D vaul-svelte@next
@@ -76,12 +77,13 @@ pnpm add -D paneforge
76
77
  pnpm add -D svelte-sonner
77
78
  ```
78
79
 
79
- ### Add app.css and also include tailwindcss-animate
80
+ ### Add app.css and also include tw-animate-css
80
81
 
81
82
  ```css
82
83
  @import "tailwindcss";
83
84
  @source "../node_modules/@kayord/ui";
84
85
  @import "tw-animate-css";
86
+ @import "shadcn-svelte/tailwind.css";
85
87
 
86
88
  @custom-variant dark (&:where(.dark, .dark *));
87
89
 
@@ -93,6 +95,46 @@ pnpm add -D svelte-sonner
93
95
  }
94
96
  }
95
97
 
98
+ @theme inline {
99
+ --color-background: var(--background);
100
+ --color-foreground: var(--foreground);
101
+ --font-sans: "Inter Variable", sans-serif;
102
+ --font-mono: var(--font-geist-mono);
103
+ --color-sidebar-ring: var(--sidebar-ring);
104
+ --color-sidebar-border: var(--sidebar-border);
105
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
106
+ --color-sidebar-accent: var(--sidebar-accent);
107
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
108
+ --color-sidebar-primary: var(--sidebar-primary);
109
+ --color-sidebar-foreground: var(--sidebar-foreground);
110
+ --color-sidebar: var(--sidebar);
111
+ --color-chart-5: var(--chart-5);
112
+ --color-chart-4: var(--chart-4);
113
+ --color-chart-3: var(--chart-3);
114
+ --color-chart-2: var(--chart-2);
115
+ --color-chart-1: var(--chart-1);
116
+ --color-ring: var(--ring);
117
+ --color-input: var(--input);
118
+ --color-border: var(--border);
119
+ --color-destructive: var(--destructive);
120
+ --color-accent-foreground: var(--accent-foreground);
121
+ --color-accent: var(--accent);
122
+ --color-muted-foreground: var(--muted-foreground);
123
+ --color-muted: var(--muted);
124
+ --color-secondary-foreground: var(--secondary-foreground);
125
+ --color-secondary: var(--secondary);
126
+ --color-primary-foreground: var(--primary-foreground);
127
+ --color-primary: var(--primary);
128
+ --color-popover-foreground: var(--popover-foreground);
129
+ --color-popover: var(--popover);
130
+ --color-card-foreground: var(--card-foreground);
131
+ --color-card: var(--card);
132
+ --radius-sm: calc(var(--radius) - 4px);
133
+ --radius-md: calc(var(--radius) - 2px);
134
+ --radius-lg: var(--radius);
135
+ --radius-xl: calc(var(--radius) + 4px);
136
+ }
137
+
96
138
  :root {
97
139
  --accent-foreground: 240 5.9% 10%;
98
140
  --accent: 240 4.8% 95.9%;
@@ -153,59 +195,6 @@ pnpm add -D svelte-sonner
153
195
  --sidebar-ring: 217.2 91.2% 59.8%;
154
196
  }
155
197
 
156
- @theme inline {
157
- /* Fonts */
158
- --font-sans:
159
- "Inter Variable", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
160
- "Noto Color Emoji";
161
- --font-mono:
162
- "Source Code Pro Variable", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
163
- monospace;
164
-
165
- /* Colors */
166
- --color-border: hsl(var(--border));
167
- --color-input: hsl(var(--input));
168
- --color-ring: hsl(var(--ring));
169
- --color-background: hsl(var(--background));
170
- --color-foreground: hsl(var(--foreground));
171
- --color-primary: hsl(var(--primary));
172
- --color-primary-foreground: hsl(var(--primary-foreground));
173
- --color-secondary: hsl(var(--secondary));
174
- --color-secondary-foreground: hsl(var(--secondary-foreground));
175
- --color-destructive: hsl(var(--destructive));
176
- --color-destructive-foreground: hsl(var(--destructive-foreground));
177
- --color-caution: var(--color-red-500);
178
- --color-warning: var(--color-amber-500);
179
- --color-info: var(--color-sky-500);
180
- --color-muted: hsl(var(--muted));
181
- --color-muted-foreground: hsl(var(--muted-foreground));
182
- --color-accent: hsl(var(--accent));
183
- --color-accent-foreground: hsl(var(--accent-foreground));
184
- --color-popover: hsl(var(--popover));
185
- --color-popover-foreground: hsl(var(--popover-foreground));
186
- --color-card: hsl(var(--card));
187
- --color-card-foreground: hsl(var(--card-foreground));
188
- --color-sidebar: hsl(var(--sidebar-background));
189
- --color-sidebar-foreground: hsl(var(--sidebar-foreground));
190
- --color-sidebar-primary: hsl(var(--sidebar-primary));
191
- --color-sidebar-primary-foreground: hsl(var(--sidebar-primary-foreground));
192
- --color-sidebar-accent: hsl(var(--sidebar-accent));
193
- --color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground));
194
- --color-sidebar-border: hsl(var(--sidebar-border));
195
- --color-sidebar-ring: hsl(var(--sidebar-ring));
196
-
197
- /* Custom Colors */
198
- --color-info: var(--chart-1);
199
- --color-success: var(--chart-2);
200
- --color-warning: var(--chart-3);
201
-
202
- /* Radius */
203
- --radius-sm: calc(var(--radius) - 4px);
204
- --radius-md: calc(var(--radius) - 2px);
205
- --radius-lg: var(--radius);
206
- --radius-xl: calc(var(--radius) + 4px);
207
- }
208
-
209
198
  @layer base {
210
199
  * {
211
200
  @apply border-border;
@@ -214,108 +203,33 @@ pnpm add -D svelte-sonner
214
203
  @apply bg-background text-foreground;
215
204
  }
216
205
  }
206
+ ```
217
207
 
218
- @custom-variant data-open {
219
- &:where([data-state="open"]),
220
- &:where([data-open]:not([data-open="false"])) {
221
- @slot;
222
- }
223
- &:where([data-state="open"]),
224
- &:where([data-open]:not([data-open="false"])) {
225
- @slot;
226
- }
227
- }
228
-
229
- @custom-variant data-closed {
230
- &:where([data-state="closed"]),
231
- &:where([data-closed]:not([data-closed="false"])) {
232
- @slot;
233
- }
234
- &:where([data-state="closed"]),
235
- &:where([data-closed]:not([data-closed="false"])) {
236
- @slot;
237
- }
238
- }
239
-
240
- @custom-variant data-checked {
241
- &:where([data-state="checked"]),
242
- &:where([data-checked]:not([data-checked="false"])) {
243
- @slot;
244
- }
245
- &:where([data-state="checked"]),
246
- &:where([data-checked]:not([data-checked="false"])) {
247
- @slot;
248
- }
249
- }
250
-
251
- @custom-variant data-unchecked {
252
- &:where([data-state="unchecked"]),
253
- &:where([data-unchecked]:not([data-unchecked="false"])) {
254
- @slot;
255
- }
256
- &:where([data-state="unchecked"]),
257
- &:where([data-unchecked]:not([data-unchecked="false"])) {
258
- @slot;
259
- }
260
- }
261
-
262
- @custom-variant data-selected {
263
- &:where([data-selected]) {
264
- @slot;
265
- }
266
- }
208
+ ## Data Table Types
267
209
 
268
- @custom-variant data-disabled {
269
- &:where([data-disabled="true"]),
270
- &:where([data-disabled]:not([data-disabled="false"])) {
271
- @slot;
272
- }
273
- &:where([data-disabled="true"]),
274
- &:where([data-disabled]:not([data-disabled="false"])) {
275
- @slot;
276
- }
277
- }
210
+ v9 types column/table metadata through the library's feature set, so **no
211
+ `app.d.ts` module augmentation is needed**. Type your columns and tables with
212
+ the exported `DataTableFeatures`:
278
213
 
279
- @custom-variant data-active {
280
- &:where([data-state="active"]),
281
- &:where([data-active]:not([data-active="false"])) {
282
- @slot;
283
- }
284
- &:where([data-state="active"]),
285
- &:where([data-active]:not([data-active="false"])) {
286
- @slot;
287
- }
288
- }
214
+ ```ts
215
+ import {
216
+ createShadTable,
217
+ type ColumnDef,
218
+ type DataTableFeatures,
219
+ } from "@kayord/ui/data-table";
289
220
 
290
- @custom-variant data-horizontal {
291
- &:where([data-orientation="horizontal"]) {
292
- @slot;
293
- }
221
+ interface Row {
222
+ id: number;
223
+ name: string;
294
224
  }
295
225
 
296
- @custom-variant data-vertical {
297
- &:where([data-orientation="vertical"]) {
298
- @slot;
299
- }
300
- }
226
+ const columns: ColumnDef<DataTableFeatures, Row>[] = [
227
+ { accessorKey: "id", header: "ID" },
228
+ { accessorKey: "name", header: "Name" },
229
+ ];
301
230
 
302
- @utility no-scrollbar {
303
- -ms-overflow-style: none;
304
- scrollbar-width: none;
305
- &::-webkit-scrollbar {
306
- display: none;
307
- }
308
- }
231
+ const table = createShadTable({ columns, data });
309
232
  ```
310
233
 
311
- ## Data Table Types
312
-
313
- ```ts
314
- // Add to app.d.ts
315
- import { CustomOptions, CustomColumnMeta } from "@kayord/ui/data-table";
316
-
317
- declare module "@tanstack/table-core" {
318
- interface ColumnMeta<TData extends RowData, TValue> extends CustomColumnMeta {}
319
- interface TableOptionsResolved<TData extends RowData> extends CustomOptions {}
320
- }
321
- ```
234
+ Per-column `meta.className` and the table flags (`useURLSearchParams`,
235
+ `enablePaging`) are typed automatically through the feature set.
@@ -1,6 +1,5 @@
1
1
  <script lang="ts">
2
2
  import { cubicOut } from "svelte/easing";
3
- import { onMount } from "svelte";
4
3
  import { Tween } from "svelte/motion";
5
4
  import { cn } from "../../../utils";
6
5
 
@@ -19,8 +18,8 @@
19
18
  easing: cubicOut,
20
19
  });
21
20
 
22
- onMount(() => {
23
- num.set(value);
21
+ $effect(() => {
22
+ num.set(value, { duration, easing: cubicOut });
24
23
  });
25
24
  </script>
26
25
 
@@ -35,7 +35,6 @@
35
35
  class={cn(className)}
36
36
  type="button"
37
37
  name="copy"
38
- tabindex={-1}
39
38
  onclick={async () => {
40
39
  const status = await clipboard.copy(text);
41
40
 
@@ -1,9 +1,10 @@
1
- <script lang="ts" generics="T">
2
- import { type Table as TableType } from "@tanstack/table-core";
1
+ <script lang="ts" generics="T extends RowData">
2
+ import type { RowData, Table as TableType } from "@tanstack/svelte-table";
3
+ import type { DataTableFeatures } from "./features";
3
4
  import { FlexRender } from "../../ui/data-table";
4
5
  import { Skeleton, Table } from "../../ui";
5
6
  import Pagination from "./Pagination.svelte";
6
- import { onMount, untrack, type Snippet } from "svelte";
7
+ import { type Snippet } from "svelte";
7
8
  import { fade } from "svelte/transition";
8
9
  import { ProgressLoading } from "../progress-loading";
9
10
  import FullscreenModeToggle from "./FullscreenModeToggle.svelte";
@@ -11,27 +12,27 @@
11
12
  import { TableStore } from "./table.svelte";
12
13
  import DataTableHeader from "./DataTableHeader.svelte";
13
14
  import DataTableFooter from "./DataTableFooter.svelte";
14
- import { beforeNavigate } from "$app/navigation";
15
- import { decodeColumnFilters, decodeSorting, encodeColumnFilters, encodeSorting } from "./table-search-params";
16
- import { useSearchParams } from "runed/kit";
17
- import { defaultSearchParamSchema } from "./types";
18
15
  import DataTableView from "./DataTableView.svelte";
19
16
 
20
- interface Props<T> {
21
- table: TableType<T>;
17
+ interface Props<T extends RowData> {
18
+ table: TableType<DataTableFeatures, T>;
22
19
  isLoading?: boolean;
23
20
  header?: Snippet;
24
21
  subHeader?: Snippet;
25
22
  footer?: Snippet;
26
23
  leftToolbar?: Snippet;
27
24
  rightToolbar?: Snippet;
25
+ /** Rich empty state; falls back to `noDataMessage` when not provided. */
26
+ emptyState?: Snippet;
28
27
  noDataMessage?: string;
29
28
  hideHeader?: boolean;
30
29
  enableVisibility?: boolean;
31
30
  enableFullscreen?: boolean;
31
+ /** Show the pagination bar (default `true`). */
32
+ pagination?: boolean;
33
+ disableUISorting?: boolean;
32
34
  class?: string;
33
35
  headerClass?: string;
34
- disableUISorting?: boolean;
35
36
  }
36
37
 
37
38
  let {
@@ -42,70 +43,32 @@
42
43
  footer,
43
44
  leftToolbar,
44
45
  rightToolbar,
46
+ emptyState,
45
47
  noDataMessage = "No data",
46
48
  hideHeader = false,
47
49
  enableVisibility = false,
48
50
  enableFullscreen = false,
51
+ pagination = true,
52
+ disableUISorting = false,
49
53
  class: className,
50
54
  headerClass,
51
- disableUISorting = false,
52
55
  }: Props<T> = $props();
53
56
 
54
57
  const tableStore = new TableStore();
55
- // svelte-ignore state_referenced_locally
56
- const isPaginationEnabled = table.options.getPaginationRowModel !== undefined;
57
-
58
- const params = useSearchParams(defaultSearchParamSchema, { pushHistory: false });
59
- // Load current url search params
60
- onMount(() => {
61
- if (table.options.useURLSearchParams) {
62
- table.setGlobalFilter(params.search);
63
- table.setSorting(decodeSorting() ?? []);
64
- table.setPageIndex(params.page);
65
- table.setColumnFilters(decodeColumnFilters() ?? []);
66
- }
67
- });
68
-
69
- // Reset pageIndex
70
- beforeNavigate((navigation) => {
71
- if (table.options.useURLSearchParams) {
72
- if (Number(navigation.to?.url.searchParams.get("page") ?? "0") > 0) {
73
- if (
74
- navigation.from?.url.searchParams.get("sort") != navigation.to?.url.searchParams.get("sort") ||
75
- navigation.from?.url.searchParams.get("search") != navigation.to?.url.searchParams.get("search") ||
76
- navigation.from?.url.searchParams.get("filter") != navigation.to?.url.searchParams.get("filter")
77
- ) {
78
- table.resetPageIndex();
79
- }
80
- }
81
- }
82
- });
83
-
84
- // Set url search params
85
- $effect(() => {
86
- if (table.options.useURLSearchParams) {
87
- const search = table.getState().globalFilter;
88
- const page = table.getState().pagination.pageIndex;
89
- const sort = encodeSorting(table.getState());
90
- const filter = encodeColumnFilters(table.getState());
91
- untrack(() => {
92
- params.search = search;
93
- params.page = page;
94
- params.sort = sort;
95
- params.filter = filter;
96
- });
97
- }
98
- });
99
-
100
58
  let end: HTMLElement | undefined = $state();
59
+
60
+ function cellSizeStyle(width: number, min?: number, max?: number) {
61
+ const styles = [`width: ${width}px`];
62
+ if (min !== undefined) styles.push(`min-width: ${min}px`);
63
+ if (max !== undefined) styles.push(`max-width: ${max}px`);
64
+ return styles.join("; ");
65
+ }
101
66
  </script>
102
67
 
103
68
  <div
104
69
  class={cn(
105
70
  "w-full",
106
- tableStore.isFullscreen
107
- ? "bg-background b-0 absolute inset-0 top-0 left-0 z-20 overflow-auto p-2 transition-all"
108
- : "w-full",
71
+ tableStore.isFullscreen ? "bg-background absolute inset-0 z-20 overflow-auto p-2 transition-all" : "w-full",
109
72
  className
110
73
  )}
111
74
  >
@@ -139,10 +102,10 @@
139
102
  {/if}
140
103
  </div>
141
104
 
142
- <div class="overflow-hidden rounded-md border">
105
+ <div class="relative overflow-hidden rounded-md border">
143
106
  {#if isLoading}
144
- <span in:fade={{ duration: 300 }}>
145
- <ProgressLoading class="h-1" />
107
+ <span class="absolute inset-x-0 top-0 z-10" in:fade={{ duration: 300 }}>
108
+ <ProgressLoading class="h-1 rounded-none" />
146
109
  </span>
147
110
  {/if}
148
111
 
@@ -156,7 +119,7 @@
156
119
  {#each table.getHeaderGroups() as headerGroup (headerGroup)}
157
120
  <Table.Row>
158
121
  {#each headerGroup.headers as header (header)}
159
- <DataTableHeader {header} {table} {disableUISorting} />
122
+ <DataTableHeader {header} {disableUISorting} />
160
123
  {/each}
161
124
  </Table.Row>
162
125
  {/each}
@@ -178,7 +141,13 @@
178
141
  {#if table.getRowModel().rows.length == 0}
179
142
  <Table.Row>
180
143
  <Table.Cell colspan={table.getAllColumns().length}>
181
- <div class="text-center">{noDataMessage}</div>
144
+ <div class="text-center">
145
+ {#if emptyState}
146
+ {@render emptyState()}
147
+ {:else}
148
+ {noDataMessage}
149
+ {/if}
150
+ </div>
182
151
  </Table.Cell>
183
152
  </Table.Row>
184
153
  {/if}
@@ -187,9 +156,13 @@
187
156
  {#each row.getVisibleCells() as cell (cell)}
188
157
  <Table.Cell
189
158
  class={cell.column.columnDef.meta?.className}
190
- style={`width: ${cell.column.getSize()}px; min-width:${cell.column.columnDef.minSize}px; max-width:${cell.column.columnDef.maxSize}px`}
159
+ style={cellSizeStyle(
160
+ cell.column.getSize(),
161
+ cell.column.columnDef.minSize,
162
+ cell.column.columnDef.maxSize
163
+ )}
191
164
  >
192
- <FlexRender content={cell.column.columnDef.cell} context={cell.getContext()} />
165
+ <FlexRender {cell} />
193
166
  </Table.Cell>
194
167
  {/each}
195
168
  </Table.Row>
@@ -199,12 +172,12 @@
199
172
  <DataTableFooter {table} />
200
173
  </Table.Root>
201
174
  {#if isLoading}
202
- <span in:fade={{ duration: 300 }}>
203
- <ProgressLoading class="h-1" />
175
+ <span class="absolute inset-x-0 bottom-0 z-10" in:fade={{ duration: 300 }}>
176
+ <ProgressLoading class="h-1 rounded-none" />
204
177
  </span>
205
178
  {/if}
206
179
  </div>
207
- {#if isPaginationEnabled}
180
+ {#if pagination}
208
181
  <Pagination {table} />
209
182
  {/if}
210
183
 
@@ -1,29 +1,34 @@
1
- import { type Table as TableType } from "@tanstack/table-core";
1
+ import type { RowData, Table as TableType } from "@tanstack/svelte-table";
2
+ import type { DataTableFeatures } from "./features";
2
3
  import { type Snippet } from "svelte";
3
- interface Props<T> {
4
- table: TableType<T>;
4
+ interface Props<T extends RowData> {
5
+ table: TableType<DataTableFeatures, T>;
5
6
  isLoading?: boolean;
6
7
  header?: Snippet;
7
8
  subHeader?: Snippet;
8
9
  footer?: Snippet;
9
10
  leftToolbar?: Snippet;
10
11
  rightToolbar?: Snippet;
12
+ /** Rich empty state; falls back to `noDataMessage` when not provided. */
13
+ emptyState?: Snippet;
11
14
  noDataMessage?: string;
12
15
  hideHeader?: boolean;
13
16
  enableVisibility?: boolean;
14
17
  enableFullscreen?: boolean;
18
+ /** Show the pagination bar (default `true`). */
19
+ pagination?: boolean;
20
+ disableUISorting?: boolean;
15
21
  class?: string;
16
22
  headerClass?: string;
17
- disableUISorting?: boolean;
18
23
  }
19
- declare function $$render<T>(): {
24
+ declare function $$render<T extends RowData>(): {
20
25
  props: Props<T>;
21
26
  exports: {};
22
27
  bindings: "";
23
28
  slots: {};
24
29
  events: {};
25
30
  };
26
- declare class __sveltets_Render<T> {
31
+ declare class __sveltets_Render<T extends RowData> {
27
32
  props(): ReturnType<typeof $$render<T>>['props'];
28
33
  events(): ReturnType<typeof $$render<T>>['events'];
29
34
  slots(): ReturnType<typeof $$render<T>>['slots'];
@@ -31,12 +36,12 @@ declare class __sveltets_Render<T> {
31
36
  exports(): {};
32
37
  }
33
38
  interface $$IsomorphicComponent {
34
- new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
39
+ new <T extends RowData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
35
40
  $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
36
41
  } & ReturnType<__sveltets_Render<T>['exports']>;
37
- <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
42
+ <T extends RowData>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
38
43
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
39
44
  }
40
45
  declare const DataTable: $$IsomorphicComponent;
41
- type DataTable<T> = InstanceType<typeof DataTable<T>>;
46
+ type DataTable<T extends RowData> = InstanceType<typeof DataTable<T>>;
42
47
  export default DataTable;
@@ -1,10 +1,11 @@
1
- <script lang="ts" generics="T">
1
+ <script lang="ts" generics="T extends RowData">
2
2
  import { Table } from "../../..";
3
- import { FlexRender } from "../../../data-table";
4
- import { type Table as TypeType } from "@tanstack/table-core";
3
+ import { FlexRender } from "../../ui/data-table";
4
+ import type { RowData, Table as TanstackTable } from "@tanstack/svelte-table";
5
+ import type { DataTableFeatures } from "./features";
5
6
 
6
- interface Props<T> {
7
- table: TypeType<T>;
7
+ interface Props<T extends RowData> {
8
+ table: TanstackTable<DataTableFeatures, T>;
8
9
  }
9
10
 
10
11
  let { table }: Props<T> = $props();
@@ -25,7 +26,7 @@
25
26
  {#each footerGroup.headers as header (header.id)}
26
27
  <Table.Cell colspan={header.colSpan}>
27
28
  {#if !header.isPlaceholder}
28
- <FlexRender content={header.column.columnDef.footer} context={header.getContext()} />
29
+ <FlexRender footer={header} />
29
30
  {/if}
30
31
  </Table.Cell>
31
32
  {/each}
@@ -1,15 +1,16 @@
1
- import { type Table as TypeType } from "@tanstack/table-core";
2
- interface Props<T> {
3
- table: TypeType<T>;
1
+ import type { RowData, Table as TanstackTable } from "@tanstack/svelte-table";
2
+ import type { DataTableFeatures } from "./features";
3
+ interface Props<T extends RowData> {
4
+ table: TanstackTable<DataTableFeatures, T>;
4
5
  }
5
- declare function $$render<T>(): {
6
+ declare function $$render<T extends RowData>(): {
6
7
  props: Props<T>;
7
8
  exports: {};
8
9
  bindings: "";
9
10
  slots: {};
10
11
  events: {};
11
12
  };
12
- declare class __sveltets_Render<T> {
13
+ declare class __sveltets_Render<T extends RowData> {
13
14
  props(): ReturnType<typeof $$render<T>>['props'];
14
15
  events(): ReturnType<typeof $$render<T>>['events'];
15
16
  slots(): ReturnType<typeof $$render<T>>['slots'];
@@ -17,12 +18,12 @@ declare class __sveltets_Render<T> {
17
18
  exports(): {};
18
19
  }
19
20
  interface $$IsomorphicComponent {
20
- new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
21
+ new <T extends RowData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
21
22
  $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
22
23
  } & ReturnType<__sveltets_Render<T>['exports']>;
23
- <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
24
+ <T extends RowData>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
24
25
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
25
26
  }
26
27
  declare const DataTableFooter: $$IsomorphicComponent;
27
- type DataTableFooter<T> = InstanceType<typeof DataTableFooter<T>>;
28
+ type DataTableFooter<T extends RowData> = InstanceType<typeof DataTableFooter<T>>;
28
29
  export default DataTableFooter;