pixelize-design-library 2.3.1-beta.1 → 2.3.1-beta.10

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 (324) hide show
  1. package/.claude/settings.local.json +21 -1
  2. package/dist/Components/Accordion/Accordion.js +26 -5
  3. package/dist/Components/KanbanBoard/AccountCard.js +17 -14
  4. package/dist/Components/KanbanBoard/KanbanBoard.js +93 -78
  5. package/dist/Components/NavigationBar/NavigationBar.js +4 -4
  6. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +1 -1
  7. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +42 -24
  8. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.d.ts +2 -0
  9. package/dist/Components/SearchSelect/SearchSelect.js +53 -21
  10. package/dist/Components/Table/Table.d.ts +1 -1
  11. package/dist/Components/Table/Table.js +143 -28
  12. package/dist/Components/Table/TableProps.d.ts +9 -1
  13. package/dist/Components/Table/{Components → components}/TableActions.d.ts +2 -2
  14. package/dist/Components/Table/{Components → components}/TableActions.js +5 -4
  15. package/dist/Components/Table/{Components → components}/TableBody.js +84 -18
  16. package/dist/Components/Table/{Components → components}/TableHeader.js +5 -9
  17. package/dist/Components/Table/hooks/useTable.d.ts +1 -1
  18. package/dist/Components/Table/hooks/useTable.js +8 -7
  19. package/dist/Components/Table/settings/TableSettings.d.ts +3 -2
  20. package/dist/Components/Table/settings/TableSettings.js +30 -6
  21. package/dist/Components/Timeline/Timeline.d.ts +1 -1
  22. package/dist/Components/Timeline/Timeline.js +145 -78
  23. package/dist/Components/Toaster/Toaster.js +40 -20
  24. package/dist/Utils/table.d.ts +6 -1
  25. package/dist/Utils/table.js +47 -27
  26. package/package.json +1 -1
  27. package/dist/App.d.ts +0 -4
  28. package/dist/App.js +0 -131
  29. package/dist/Components/Table/CompactSelect.d.ts +0 -15
  30. package/dist/Components/Table/CompactSelect.js +0 -69
  31. package/dist/Components/Table/Components/ActiveFilters.d.ts +0 -9
  32. package/dist/Components/Table/Components/ActiveFilters.js +0 -132
  33. package/dist/Components/Table/Components/TableFilters.d.ts +0 -7
  34. package/dist/Components/Table/Components/TableFilters.js +0 -89
  35. package/dist/Components/Table/Components/useDebounce.d.ts +0 -2
  36. package/dist/Components/Table/Components/useDebounce.js +0 -28
  37. package/dist/Components/Table/Components/useTable.d.ts +0 -47
  38. package/dist/Components/Table/Components/useTable.js +0 -219
  39. package/dist/Components/Table/LeftFilterPane.d.ts +0 -36
  40. package/dist/Components/Table/LeftFilterPane.js +0 -273
  41. package/dist/Components/Table/SelectOperationControls.d.ts +0 -8
  42. package/dist/Components/Table/SelectOperationControls.js +0 -15
  43. package/dist/Components/Table/TableSettings/ManageColumns.d.ts +0 -12
  44. package/dist/Components/Table/TableSettings/ManageColumns.js +0 -166
  45. package/dist/Components/Table/TableSettings/ManageColumns.test.d.ts +0 -1
  46. package/dist/Components/Table/TableSettings/ManageColumns.test.js +0 -146
  47. package/dist/Components/Table/TableSettings/TableFilters.d.ts +0 -10
  48. package/dist/Components/Table/TableSettings/TableFilters.js +0 -69
  49. package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +0 -1
  50. package/dist/Components/Table/TableSettings/TableFilters.test.js +0 -109
  51. package/dist/Components/Table/TableSettings/TableSettings.d.ts +0 -8
  52. package/dist/Components/Table/TableSettings/TableSettings.js +0 -141
  53. package/dist/Components/Table/TableToDo.d.ts +0 -2
  54. package/dist/Components/Table/TableToDo.js +0 -291
  55. package/dist/Components/Table/TextOperationControls.d.ts +0 -12
  56. package/dist/Components/Table/TextOperationControls.js +0 -29
  57. package/dist/Layout.d.ts +0 -3
  58. package/dist/Layout.js +0 -292
  59. package/dist/Pages/TInput.d.ts +0 -3
  60. package/dist/Pages/TInput.js +0 -56
  61. package/dist/Pages/accordion.d.ts +0 -3
  62. package/dist/Pages/accordion.js +0 -42
  63. package/dist/Pages/alertdialog.d.ts +0 -3
  64. package/dist/Pages/alertdialog.js +0 -54
  65. package/dist/Pages/button.d.ts +0 -3
  66. package/dist/Pages/button.js +0 -46
  67. package/dist/Pages/card.d.ts +0 -3
  68. package/dist/Pages/card.js +0 -117
  69. package/dist/Pages/chart.d.ts +0 -4
  70. package/dist/Pages/chart.js +0 -40
  71. package/dist/Pages/checkbox.d.ts +0 -3
  72. package/dist/Pages/checkbox.js +0 -12
  73. package/dist/Pages/contactForm.d.ts +0 -3
  74. package/dist/Pages/contactForm.js +0 -16
  75. package/dist/Pages/datePick.d.ts +0 -3
  76. package/dist/Pages/datePick.js +0 -88
  77. package/dist/Pages/drawer.d.ts +0 -3
  78. package/dist/Pages/drawer.js +0 -58
  79. package/dist/Pages/dropdown.d.ts +0 -3
  80. package/dist/Pages/dropdown.js +0 -24
  81. package/dist/Pages/editor.d.ts +0 -3
  82. package/dist/Pages/editor.js +0 -14
  83. package/dist/Pages/feedback.d.ts +0 -2
  84. package/dist/Pages/feedback.js +0 -15
  85. package/dist/Pages/fileUpload.d.ts +0 -2
  86. package/dist/Pages/fileUpload.js +0 -82
  87. package/dist/Pages/input.d.ts +0 -3
  88. package/dist/Pages/input.js +0 -92
  89. package/dist/Pages/kanbanboard.d.ts +0 -3
  90. package/dist/Pages/kanbanboard.js +0 -224
  91. package/dist/Pages/modal.d.ts +0 -3
  92. package/dist/Pages/modal.js +0 -65
  93. package/dist/Pages/multiSelect.d.ts +0 -3
  94. package/dist/Pages/multiSelect.js +0 -55
  95. package/dist/Pages/noteArea.d.ts +0 -3
  96. package/dist/Pages/noteArea.js +0 -59
  97. package/dist/Pages/notification.d.ts +0 -3
  98. package/dist/Pages/notification.js +0 -25
  99. package/dist/Pages/numberInput.d.ts +0 -3
  100. package/dist/Pages/numberInput.js +0 -49
  101. package/dist/Pages/photoViewer.d.ts +0 -3
  102. package/dist/Pages/photoViewer.js +0 -12
  103. package/dist/Pages/pinInputs.d.ts +0 -3
  104. package/dist/Pages/pinInputs.js +0 -12
  105. package/dist/Pages/productCaard.d.ts +0 -3
  106. package/dist/Pages/productCaard.js +0 -311
  107. package/dist/Pages/productDetailCard.d.ts +0 -3
  108. package/dist/Pages/productDetailCard.js +0 -78
  109. package/dist/Pages/productFilter.d.ts +0 -3
  110. package/dist/Pages/productFilter.js +0 -202
  111. package/dist/Pages/progressbar.d.ts +0 -3
  112. package/dist/Pages/progressbar.js +0 -12
  113. package/dist/Pages/radioButton.d.ts +0 -3
  114. package/dist/Pages/radioButton.js +0 -54
  115. package/dist/Pages/search.d.ts +0 -3
  116. package/dist/Pages/search.js +0 -54
  117. package/dist/Pages/searchSelect.d.ts +0 -3
  118. package/dist/Pages/searchSelect.js +0 -133
  119. package/dist/Pages/select.d.ts +0 -3
  120. package/dist/Pages/select.js +0 -53
  121. package/dist/Pages/selectSearch.d.ts +0 -3
  122. package/dist/Pages/selectSearch.js +0 -103
  123. package/dist/Pages/skeleton.d.ts +0 -3
  124. package/dist/Pages/skeleton.js +0 -22
  125. package/dist/Pages/switch.d.ts +0 -3
  126. package/dist/Pages/switch.js +0 -50
  127. package/dist/Pages/table.d.ts +0 -3
  128. package/dist/Pages/table.js +0 -174
  129. package/dist/Pages/textArea.d.ts +0 -3
  130. package/dist/Pages/textArea.js +0 -15
  131. package/dist/Pages/timeline.d.ts +0 -3
  132. package/dist/Pages/timeline.js +0 -74
  133. package/dist/Pages/tooltip.d.ts +0 -3
  134. package/dist/Pages/tooltip.js +0 -12
  135. package/dist/Pages/toster.d.ts +0 -3
  136. package/dist/Pages/toster.js +0 -68
  137. package/dist/Pages/verifyEmail.d.ts +0 -3
  138. package/dist/Pages/verifyEmail.js +0 -18
  139. package/dist/Theme/Dark/palette.d.ts +0 -370
  140. package/dist/Theme/Dark/palette.js +0 -372
  141. package/dist/bootstrap.d.ts +0 -1
  142. package/dist/bootstrap.js +0 -14
  143. package/dist/components-v2/AlertDialog/AlertDialog.d.ts +0 -23
  144. package/dist/components-v2/AlertDialog/AlertDialog.js +0 -98
  145. package/dist/components-v2/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  146. package/dist/components-v2/Breadcrumbs/Breadcrumbs.js +0 -66
  147. package/dist/components-v2/Charts/AreaChart.d.ts +0 -23
  148. package/dist/components-v2/Charts/AreaChart.js +0 -63
  149. package/dist/components-v2/Charts/BarChart.d.ts +0 -25
  150. package/dist/components-v2/Charts/BarChart.js +0 -57
  151. package/dist/components-v2/Charts/LineChart.d.ts +0 -23
  152. package/dist/components-v2/Charts/LineChart.js +0 -55
  153. package/dist/components-v2/Charts/PieChart.d.ts +0 -15
  154. package/dist/components-v2/Charts/PieChart.js +0 -54
  155. package/dist/components-v2/Charts/PolarChart.d.ts +0 -14
  156. package/dist/components-v2/Charts/PolarChart.js +0 -54
  157. package/dist/components-v2/Charts/chartOptions.d.ts +0 -7
  158. package/dist/components-v2/Charts/chartOptions.js +0 -41
  159. package/dist/components-v2/Charts/useChartTheme.d.ts +0 -22
  160. package/dist/components-v2/Charts/useChartTheme.js +0 -106
  161. package/dist/components-v2/ContactForm/ContactForm.d.ts +0 -25
  162. package/dist/components-v2/ContactForm/ContactForm.js +0 -116
  163. package/dist/components-v2/DatePicker/Calendar.d.ts +0 -19
  164. package/dist/components-v2/DatePicker/Calendar.js +0 -212
  165. package/dist/components-v2/DatePicker/DatePicker.d.ts +0 -46
  166. package/dist/components-v2/DatePicker/DatePicker.js +0 -189
  167. package/dist/components-v2/DatePicker/TimePicker.d.ts +0 -12
  168. package/dist/components-v2/DatePicker/TimePicker.js +0 -105
  169. package/dist/components-v2/DatePicker/utils.d.ts +0 -31
  170. package/dist/components-v2/DatePicker/utils.js +0 -109
  171. package/dist/components-v2/Drawer/Drawer.d.ts +0 -27
  172. package/dist/components-v2/Drawer/Drawer.js +0 -132
  173. package/dist/components-v2/FeedbackForm/FeedbackForm.d.ts +0 -26
  174. package/dist/components-v2/FeedbackForm/FeedbackForm.js +0 -112
  175. package/dist/components-v2/FileUploader/FileUploader.d.ts +0 -28
  176. package/dist/components-v2/FileUploader/FileUploader.js +0 -127
  177. package/dist/components-v2/Input/TextInput.d.ts +0 -41
  178. package/dist/components-v2/Input/TextInput.js +0 -169
  179. package/dist/components-v2/KanbanBoard/KanbanBoard.d.ts +0 -39
  180. package/dist/components-v2/KanbanBoard/KanbanBoard.js +0 -101
  181. package/dist/components-v2/Layout/AppLayout.d.ts +0 -22
  182. package/dist/components-v2/Layout/AppLayout.js +0 -53
  183. package/dist/components-v2/Loading/Loading.d.ts +0 -19
  184. package/dist/components-v2/Loading/Loading.js +0 -55
  185. package/dist/components-v2/Modal/Modal.d.ts +0 -30
  186. package/dist/components-v2/Modal/Modal.js +0 -82
  187. package/dist/components-v2/NavigationBar/NavigationBar.d.ts +0 -47
  188. package/dist/components-v2/NavigationBar/NavigationBar.js +0 -148
  189. package/dist/components-v2/Notification/Notification.d.ts +0 -22
  190. package/dist/components-v2/Notification/Notification.js +0 -113
  191. package/dist/components-v2/NumberInput/NumberInput.d.ts +0 -37
  192. package/dist/components-v2/NumberInput/NumberInput.js +0 -210
  193. package/dist/components-v2/PinInput/PinInput.d.ts +0 -26
  194. package/dist/components-v2/PinInput/PinInput.js +0 -138
  195. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +0 -18
  196. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.js +0 -91
  197. package/dist/components-v2/Select/Select.d.ts +0 -41
  198. package/dist/components-v2/Select/Select.js +0 -284
  199. package/dist/components-v2/Sidebar/Sidebar.d.ts +0 -41
  200. package/dist/components-v2/Sidebar/Sidebar.js +0 -182
  201. package/dist/components-v2/Slider/Slider.d.ts +0 -18
  202. package/dist/components-v2/Slider/Slider.js +0 -101
  203. package/dist/components-v2/Table/Table.d.ts +0 -7
  204. package/dist/components-v2/Table/Table.js +0 -172
  205. package/dist/components-v2/Table/TableProps.d.ts +0 -139
  206. package/dist/components-v2/Table/TableProps.js +0 -9
  207. package/dist/components-v2/Table/components/ActiveFilters.d.ts +0 -10
  208. package/dist/components-v2/Table/components/ActiveFilters.js +0 -70
  209. package/dist/components-v2/Table/components/BulkActionBar.d.ts +0 -11
  210. package/dist/components-v2/Table/components/BulkActionBar.js +0 -92
  211. package/dist/components-v2/Table/components/ColumnResizeHandle.d.ts +0 -7
  212. package/dist/components-v2/Table/components/ColumnResizeHandle.js +0 -41
  213. package/dist/components-v2/Table/components/Pagination.d.ts +0 -11
  214. package/dist/components-v2/Table/components/Pagination.js +0 -92
  215. package/dist/components-v2/Table/components/TableBody.d.ts +0 -23
  216. package/dist/components-v2/Table/components/TableBody.js +0 -69
  217. package/dist/components-v2/Table/components/TableCell.d.ts +0 -14
  218. package/dist/components-v2/Table/components/TableCell.js +0 -63
  219. package/dist/components-v2/Table/components/TableEmptyState.d.ts +0 -12
  220. package/dist/components-v2/Table/components/TableEmptyState.js +0 -55
  221. package/dist/components-v2/Table/components/TableErrorState.d.ts +0 -6
  222. package/dist/components-v2/Table/components/TableErrorState.js +0 -52
  223. package/dist/components-v2/Table/components/TableHeader.d.ts +0 -21
  224. package/dist/components-v2/Table/components/TableHeader.js +0 -94
  225. package/dist/components-v2/Table/components/TableRow.d.ts +0 -20
  226. package/dist/components-v2/Table/components/TableRow.js +0 -64
  227. package/dist/components-v2/Table/components/TableSearch.d.ts +0 -8
  228. package/dist/components-v2/Table/components/TableSearch.js +0 -47
  229. package/dist/components-v2/Table/filters/FilterChips.d.ts +0 -6
  230. package/dist/components-v2/Table/filters/FilterChips.js +0 -9
  231. package/dist/components-v2/Table/filters/LeftFilterPane.d.ts +0 -17
  232. package/dist/components-v2/Table/filters/LeftFilterPane.js +0 -105
  233. package/dist/components-v2/Table/filters/TableFilters.d.ts +0 -12
  234. package/dist/components-v2/Table/filters/TableFilters.js +0 -127
  235. package/dist/components-v2/Table/hooks/useColumnResize.d.ts +0 -15
  236. package/dist/components-v2/Table/hooks/useColumnResize.js +0 -104
  237. package/dist/components-v2/Table/hooks/useTable.d.ts +0 -58
  238. package/dist/components-v2/Table/hooks/useTable.js +0 -254
  239. package/dist/components-v2/Table/hooks/useTableKeyboard.d.ts +0 -25
  240. package/dist/components-v2/Table/hooks/useTableKeyboard.js +0 -112
  241. package/dist/components-v2/Table/hooks/useVirtualScroll.d.ts +0 -29
  242. package/dist/components-v2/Table/hooks/useVirtualScroll.js +0 -83
  243. package/dist/components-v2/Table/settings/ManageColumns.d.ts +0 -12
  244. package/dist/components-v2/Table/settings/ManageColumns.js +0 -59
  245. package/dist/components-v2/Table/settings/TableSettings.d.ts +0 -12
  246. package/dist/components-v2/Table/settings/TableSettings.js +0 -57
  247. package/dist/components-v2/Table/utils/filterUtils.d.ts +0 -7
  248. package/dist/components-v2/Table/utils/filterUtils.js +0 -149
  249. package/dist/components-v2/Table/utils/sortUtils.d.ts +0 -6
  250. package/dist/components-v2/Table/utils/sortUtils.js +0 -65
  251. package/dist/components-v2/Tag/Tag.d.ts +0 -15
  252. package/dist/components-v2/Tag/Tag.js +0 -87
  253. package/dist/components-v2/Timeline/Timeline.d.ts +0 -18
  254. package/dist/components-v2/Timeline/Timeline.js +0 -76
  255. package/dist/components-v2/Toaster/Toaster.d.ts +0 -61
  256. package/dist/components-v2/Toaster/Toaster.js +0 -63
  257. package/dist/components-v2/Toggle/Toggle.d.ts +0 -28
  258. package/dist/components-v2/Toggle/Toggle.js +0 -90
  259. package/dist/components-v2/ui/accordion.d.ts +0 -12
  260. package/dist/components-v2/ui/accordion.js +0 -104
  261. package/dist/components-v2/ui/alert.d.ts +0 -18
  262. package/dist/components-v2/ui/alert.js +0 -99
  263. package/dist/components-v2/ui/avatar.d.ts +0 -12
  264. package/dist/components-v2/ui/avatar.js +0 -80
  265. package/dist/components-v2/ui/badge.d.ts +0 -10
  266. package/dist/components-v2/ui/badge.js +0 -76
  267. package/dist/components-v2/ui/button.d.ts +0 -18
  268. package/dist/components-v2/ui/button.js +0 -97
  269. package/dist/components-v2/ui/checkbox.d.ts +0 -15
  270. package/dist/components-v2/ui/checkbox.js +0 -86
  271. package/dist/components-v2/ui/dialog.d.ts +0 -30
  272. package/dist/components-v2/ui/dialog.js +0 -115
  273. package/dist/components-v2/ui/dropdown-menu.d.ts +0 -26
  274. package/dist/components-v2/ui/dropdown-menu.js +0 -121
  275. package/dist/components-v2/ui/field.d.ts +0 -32
  276. package/dist/components-v2/ui/field.js +0 -62
  277. package/dist/components-v2/ui/form-field.d.ts +0 -25
  278. package/dist/components-v2/ui/form-field.js +0 -96
  279. package/dist/components-v2/ui/input.d.ts +0 -9
  280. package/dist/components-v2/ui/input.js +0 -73
  281. package/dist/components-v2/ui/label.d.ts +0 -10
  282. package/dist/components-v2/ui/label.js +0 -70
  283. package/dist/components-v2/ui/popover.d.ts +0 -9
  284. package/dist/components-v2/ui/popover.js +0 -60
  285. package/dist/components-v2/ui/progress.d.ts +0 -12
  286. package/dist/components-v2/ui/progress.js +0 -75
  287. package/dist/components-v2/ui/radio-group.d.ts +0 -17
  288. package/dist/components-v2/ui/radio-group.js +0 -91
  289. package/dist/components-v2/ui/select.d.ts +0 -24
  290. package/dist/components-v2/ui/select.js +0 -122
  291. package/dist/components-v2/ui/separator.d.ts +0 -5
  292. package/dist/components-v2/ui/separator.js +0 -55
  293. package/dist/components-v2/ui/skeleton.d.ts +0 -9
  294. package/dist/components-v2/ui/skeleton.js +0 -68
  295. package/dist/components-v2/ui/spinner.d.ts +0 -16
  296. package/dist/components-v2/ui/spinner.js +0 -64
  297. package/dist/components-v2/ui/switch.d.ts +0 -10
  298. package/dist/components-v2/ui/switch.js +0 -81
  299. package/dist/components-v2/ui/tabs.d.ts +0 -13
  300. package/dist/components-v2/ui/tabs.js +0 -95
  301. package/dist/components-v2/ui/textarea.d.ts +0 -10
  302. package/dist/components-v2/ui/textarea.js +0 -96
  303. package/dist/components-v2/ui/tooltip.d.ts +0 -17
  304. package/dist/components-v2/ui/tooltip.js +0 -75
  305. package/dist/lib/utils.d.ts +0 -2
  306. package/dist/lib/utils.js +0 -8
  307. package/dist/theme-v2/ThemeProvider.d.ts +0 -19
  308. package/dist/theme-v2/ThemeProvider.js +0 -149
  309. package/dist/theme-v2/dark.css +0 -47
  310. package/dist/theme-v2/tokens.css +0 -72
  311. /package/dist/Components/Table/{Components → components}/HeaderActions.d.ts +0 -0
  312. /package/dist/Components/Table/{Components → components}/HeaderActions.js +0 -0
  313. /package/dist/Components/Table/{Components → components}/Pagination.d.ts +0 -0
  314. /package/dist/Components/Table/{Components → components}/Pagination.js +0 -0
  315. /package/dist/Components/Table/{Components → components}/TableBody.d.ts +0 -0
  316. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.d.ts +0 -0
  317. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.js +0 -0
  318. /package/dist/Components/Table/{Components → components}/TableGroupRow.d.ts +0 -0
  319. /package/dist/Components/Table/{Components → components}/TableGroupRow.js +0 -0
  320. /package/dist/Components/Table/{Components → components}/TableHeader.d.ts +0 -0
  321. /package/dist/Components/Table/{Components → components}/TableLoading.d.ts +0 -0
  322. /package/dist/Components/Table/{Components → components}/TableLoading.js +0 -0
  323. /package/dist/Components/Table/{Components → components}/TableSearch.d.ts +0 -0
  324. /package/dist/Components/Table/{Components → components}/TableSearch.js +0 -0
@@ -63,13 +63,44 @@ var EMPTY_SX = {};
63
63
  var EMPTY_HOVER = {};
64
64
  var TableRow = react_2.default.memo(function (_a) {
65
65
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
66
- var row = _a.row, rowIndex = _a.rowIndex, index = _a.index, isChecked = _a.isChecked, isExpanded = _a.isExpanded, isContent = _a.isContent, isLink = _a.isLink, isCheckbox = _a.isCheckbox, isLoading = _a.isLoading, isActionFreeze = _a.isActionFreeze, columns = _a.columns, leftOffsets = _a.leftOffsets, noBorders = _a.noBorders, freezedBgColor = _a.freezedBgColor, freezedTextColor = _a.freezedTextColor, theme = _a.theme, borderStyle = _a.borderStyle, hoverStyle = _a.hoverStyle, rowHeight = _a.rowHeight, cellPy = _a.cellPy, palette = _a.palette, accentColor = _a.accentColor, handleCheckbox = _a.handleCheckbox, onRowClick = _a.onRowClick, toggleRowExpansion = _a.toggleRowExpansion;
66
+ var row = _a.row, rowIndex = _a.rowIndex, index = _a.index, isChecked = _a.isChecked, isExpanded = _a.isExpanded, isContent = _a.isContent, isLink = _a.isLink, isCheckbox = _a.isCheckbox, isLoading = _a.isLoading, isActionFreeze = _a.isActionFreeze, columns = _a.columns, leftOffsets = _a.leftOffsets, noBorders = _a.noBorders, freezedBgColor = _a.freezedBgColor, freezedTextColor = _a.freezedTextColor, theme = _a.theme, borderStyle = _a.borderStyle, hoverStyle = _a.hoverStyle, rowHeight = _a.rowHeight, cellPy = _a.cellPy, palette = _a.palette, accentColor = _a.accentColor, handleCheckbox = _a.handleCheckbox, onRowClick = _a.onRowClick, toggleRowExpansion = _a.toggleRowExpansion, onMeasure = _a.onMeasure;
67
67
  var checkedSx = (0, react_2.useMemo)(function () {
68
68
  var _a, _b, _c;
69
69
  return isChecked ? {
70
70
  "& td": { backgroundColor: (_c = (_b = (_a = theme.colors.primary) === null || _a === void 0 ? void 0 : _a.opacity) === null || _b === void 0 ? void 0 : _b[16]) !== null && _c !== void 0 ? _c : theme.colors.disabled[100] },
71
71
  } : EMPTY_SX;
72
72
  }, [isChecked, (_b = theme.colors.primary) === null || _b === void 0 ? void 0 : _b.opacity, theme.colors.disabled]);
73
+ // Measured-height virtualization: report this row's real height (main + any
74
+ // expanded panel) so the windower can place variable/expandable rows exactly.
75
+ var mainRowRef = (0, react_2.useRef)(null);
76
+ var expandedRowRef = (0, react_2.useRef)(null);
77
+ var hasContent = !!row.content;
78
+ (0, react_2.useLayoutEffect)(function () {
79
+ if (!onMeasure)
80
+ return;
81
+ var measure = function () {
82
+ var _a, _b, _c, _d;
83
+ var main = (_b = (_a = mainRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) !== null && _b !== void 0 ? _b : 0;
84
+ var exp = isExpanded && hasContent ? (_d = (_c = expandedRowRef.current) === null || _c === void 0 ? void 0 : _c.offsetHeight) !== null && _d !== void 0 ? _d : 0 : 0;
85
+ var h = main + exp;
86
+ if (h > 0)
87
+ onMeasure(row.id, h);
88
+ };
89
+ measure();
90
+ var raf = requestAnimationFrame(measure);
91
+ var ro;
92
+ if (typeof ResizeObserver !== "undefined") {
93
+ ro = new ResizeObserver(measure);
94
+ if (mainRowRef.current)
95
+ ro.observe(mainRowRef.current);
96
+ if (expandedRowRef.current)
97
+ ro.observe(expandedRowRef.current);
98
+ }
99
+ return function () {
100
+ cancelAnimationFrame(raf);
101
+ ro === null || ro === void 0 ? void 0 : ro.disconnect();
102
+ };
103
+ }, [onMeasure, isExpanded, hasContent, row.id]);
73
104
  var handleCellClick = (0, react_2.useCallback)(function (header) {
74
105
  if (!header.node && onRowClick) {
75
106
  onRowClick(row, { label: header.label, id: header.id });
@@ -78,7 +109,7 @@ var TableRow = react_2.default.memo(function (_a) {
78
109
  var firstDataColIndex = columns.findIndex(function (c) { return !c.isHidden; });
79
110
  var accentSx = accentColor ? "inset 3px 0 0 ".concat(accentColor) : undefined;
80
111
  return (react_2.default.createElement(react_2.default.Fragment, null,
81
- react_2.default.createElement(react_1.Tr, { opacity: isLoading ? 0.4 : 1, pointerEvents: isLoading ? "none" : "auto", transition: "opacity 0.2s", sx: checkedSx },
112
+ react_2.default.createElement(react_1.Tr, { ref: mainRowRef, opacity: isLoading ? 0.4 : 1, pointerEvents: isLoading ? "none" : "auto", transition: "opacity 0.2s", sx: checkedSx },
82
113
  isContent && (react_2.default.createElement(react_1.Td, { w: "6", p: 0, fontSize: 14, backgroundColor: (_d = (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.background) === null || _d === void 0 ? void 0 : _d[50], color: freezedTextColor, position: "sticky", borderBottom: borderStyle, boxShadow: accentSx, boxSizing: "border-box", left: 0, zIndex: 1, className: "columns sticky-columns" }, !!(row === null || row === void 0 ? void 0 : row.content) && (react_2.default.createElement(react_1.IconButton, { "aria-label": isExpanded ? "Collapse row" : "Expand row", color: (_e = theme.colors) === null || _e === void 0 ? void 0 : _e.gray[600], icon: isExpanded ? (react_2.default.createElement(lucide_react_1.ChevronDown, { fontSize: 16 })) : (react_2.default.createElement(lucide_react_1.ChevronRight, { fontSize: 16 })), _hover: { transform: "scale(1.1)" }, size: "sm", onClick: function () { return toggleRowExpansion(rowIndex); }, variant: "ghost" })))),
83
114
  isCheckbox && (react_2.default.createElement(react_1.Td, { w: "6", fontSize: 14, fontWeight: 600, color: (_g = (_f = theme.colors) === null || _f === void 0 ? void 0 : _f.background) === null || _g === void 0 ? void 0 : _g[50], textTransform: "capitalize", backgroundColor: (_j = (_h = theme.colors) === null || _h === void 0 ? void 0 : _h.background) === null || _j === void 0 ? void 0 : _j[50], position: "sticky", borderBottom: borderStyle, boxShadow: !isContent ? accentSx : undefined, boxSizing: "border-box", left: 0, zIndex: 1, className: "columns sticky-columns" },
84
115
  react_2.default.createElement(Checkbox_1.default, { "aria-label": "Select all rows", onChange: function () { return handleCheckbox(row.id); }, isChecked: isChecked }))),
@@ -102,7 +133,7 @@ var TableRow = react_2.default.memo(function (_a) {
102
133
  : hoverStyle }, isStatus && statusColor ? (react_2.default.createElement(StatusCell, { value: (0, table_1.normalizeTableCellValue)(row[header.id]) })) : (react_2.default.createElement(react_1.Box, { display: "block", overflow: "hidden", whiteSpace: "normal", overflowWrap: "break-word" }, (0, table_1.normalizeTableCellValue)(header.node ? header.node(row) : row[header.id])))));
103
134
  }),
104
135
  isLink && (react_2.default.createElement(react_1.Td, { w: 2, p: 0, fontSize: 14, backgroundColor: (_l = (_k = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _k === void 0 ? void 0 : _k.background) === null || _l === void 0 ? void 0 : _l[50], color: freezedTextColor, position: isActionFreeze ? "sticky" : "relative", borderBottom: borderStyle, boxSizing: "border-box", right: 0, zIndex: 1, className: "columns sticky-columns".concat(isActionFreeze ? "-right" : "") }, (row.onLink || row.onEdit || row.onDelete) && (react_2.default.createElement(TableActions_1.default, { row: row }))))),
105
- row.content && isExpanded && (react_2.default.createElement(react_1.Tr, null,
136
+ row.content && isExpanded && (react_2.default.createElement(react_1.Tr, { ref: expandedRowRef },
106
137
  react_2.default.createElement(react_1.Td, { colSpan: columns.length +
107
138
  (isCheckbox ? 1 : 0) +
108
139
  (isContent ? 1 : 0) +
@@ -135,19 +166,32 @@ var TableBody = function (_a) {
135
166
  // remaining height with empty spacer rows. Spacer rows (rather than CSS
136
167
  // transforms) keep the table in normal flow so the sticky header and
137
168
  // `position: sticky` frozen columns keep working.
138
- // Disabled when expandable content rows are present, since those break the
139
- // fixed-height assumption.
169
+ // Expandable `content` rows are supported via measured heights (see
170
+ // `measuredHeights` / `onMeasure` below) — each rendered row reports its real
171
+ // height, so the window places variable/expanded rows exactly.
140
172
  var ROW_HEIGHT = rowHeight;
141
173
  var GROUP_HEADER_H = 42;
142
174
  var OVERSCAN = 6;
143
175
  var VIRTUALIZE_THRESHOLD = 30;
144
- var shouldVirtualize = !isContent && data.length > VIRTUALIZE_THRESHOLD;
176
+ var ESTIMATED_EXPAND = 120; // assumed extra height for an expanded-but-not-yet-measured row
177
+ var shouldVirtualize = data.length > VIRTUALIZE_THRESHOLD;
145
178
  // Grouped mode has no pager, so it virtualizes too (when no expandable rows):
146
179
  // group headers + rows form one flat sequence that we window over.
147
180
  var groupRowCount = groups ? groups.reduce(function (n, g) { return n + g.rows.length; }, 0) : 0;
148
181
  var groupVirtualize = !!groups && !isContent && groupRowCount > VIRTUALIZE_THRESHOLD;
149
182
  var _w = (0, react_2.useState)(0), scrollTop = _w[0], setScrollTop = _w[1];
150
183
  var _x = (0, react_2.useState)(0), viewportH = _x[0], setViewportH = _x[1];
184
+ // Measured row heights keyed by row id (stable across scroll/paging).
185
+ var _y = (0, react_2.useState)(new Map()), measuredHeights = _y[0], setMeasuredHeights = _y[1];
186
+ var reportHeight = (0, react_2.useCallback)(function (id, h) {
187
+ setMeasuredHeights(function (prev) {
188
+ if (prev.get(id) === h)
189
+ return prev;
190
+ var next = new Map(prev);
191
+ next.set(id, h);
192
+ return next;
193
+ });
194
+ }, []);
151
195
  (0, react_2.useEffect)(function () {
152
196
  var el = scrollContainerRef === null || scrollContainerRef === void 0 ? void 0 : scrollContainerRef.current;
153
197
  if (!el || !(shouldVirtualize || groupVirtualize))
@@ -175,15 +219,37 @@ var TableBody = function (_a) {
175
219
  var total = data.length;
176
220
  var firstIndex = 0;
177
221
  var lastIndex = total;
222
+ var topPad = 0;
223
+ var bottomPad = 0;
178
224
  if (shouldVirtualize) {
179
225
  var vh = viewportH || 500;
180
- firstIndex = Math.max(0, Math.floor(scrollTop / ROW_HEIGHT) - OVERSCAN);
181
- var count = Math.ceil(vh / ROW_HEIGHT) + OVERSCAN * 2;
182
- lastIndex = Math.min(total, firstIndex + count);
226
+ // Prefix-sum offsets using measured heights (exact for rendered rows) and
227
+ // estimates for not-yet-measured rows (ROW_HEIGHT, + ESTIMATED_EXPAND if expanded).
228
+ var offsets = new Array(total + 1);
229
+ offsets[0] = 0;
230
+ for (var i = 0; i < total; i++) {
231
+ var id = data[i].id;
232
+ var measured = measuredHeights.get(id);
233
+ var h = measured != null
234
+ ? measured
235
+ : ROW_HEIGHT + (expandedRows.has(startRow + i) ? ESTIMATED_EXPAND : 0);
236
+ offsets[i + 1] = offsets[i] + h;
237
+ }
238
+ var totalH = offsets[total];
239
+ var top_1 = scrollTop - OVERSCAN * ROW_HEIGHT;
240
+ var bottom = scrollTop + vh + OVERSCAN * ROW_HEIGHT;
241
+ firstIndex = 0;
242
+ while (firstIndex < total && offsets[firstIndex + 1] <= top_1)
243
+ firstIndex++;
244
+ lastIndex = firstIndex;
245
+ while (lastIndex < total && offsets[lastIndex] < bottom)
246
+ lastIndex++;
247
+ if (lastIndex < firstIndex)
248
+ lastIndex = firstIndex;
249
+ topPad = offsets[firstIndex];
250
+ bottomPad = totalH - offsets[lastIndex];
183
251
  }
184
252
  var visibleRows = shouldVirtualize ? data.slice(firstIndex, lastIndex) : data;
185
- var topPad = firstIndex * ROW_HEIGHT;
186
- var bottomPad = (total - lastIndex) * ROW_HEIGHT;
187
253
  var toggleRowExpansion = (0, react_2.useCallback)(function (rowIndex) {
188
254
  setExpandedRows(function (prev) {
189
255
  var newSet = new Set(prev);
@@ -235,8 +301,8 @@ var TableBody = function (_a) {
235
301
  var g = groups_1[_i];
236
302
  items.push({ kind: "header", g: g });
237
303
  if (!collapsedGroups.has(g.value)) {
238
- for (var _y = 0, _z = g.rows; _y < _z.length; _y++) {
239
- var row = _z[_y];
304
+ for (var _z = 0, _0 = g.rows; _z < _0.length; _z++) {
305
+ var row = _0[_z];
240
306
  items.push({ kind: "row", g: g, row: row });
241
307
  }
242
308
  }
@@ -249,16 +315,16 @@ var TableBody = function (_a) {
249
315
  var heights_2 = items.map(function (it) { return (it.kind === "header" ? GROUP_HEADER_H : rowHeight); });
250
316
  var offsets_1 = [];
251
317
  var acc = 0;
252
- for (var _0 = 0, heights_1 = heights_2; _0 < heights_1.length; _0++) {
253
- var h = heights_1[_0];
318
+ for (var _1 = 0, heights_1 = heights_2; _1 < heights_1.length; _1++) {
319
+ var h = heights_1[_1];
254
320
  offsets_1.push(acc);
255
321
  acc += h;
256
322
  }
257
323
  var totalH = acc;
258
324
  var vh = viewportH || 500;
259
- var top_1 = scrollTop - OVERSCAN * rowHeight;
325
+ var top_2 = scrollTop - OVERSCAN * rowHeight;
260
326
  var bottom = scrollTop + vh + OVERSCAN * rowHeight;
261
- firstI_1 = items.findIndex(function (_, i) { return offsets_1[i] + heights_2[i] > top_1; });
327
+ firstI_1 = items.findIndex(function (_, i) { return offsets_1[i] + heights_2[i] > top_2; });
262
328
  if (firstI_1 < 0)
263
329
  firstI_1 = items.length;
264
330
  lastI = items.length;
@@ -295,7 +361,7 @@ var TableBody = function (_a) {
295
361
  var rowIndex = startRow + index;
296
362
  var isExpanded = expandedRows.has(rowIndex);
297
363
  var isChecked = selectionsSet.has(row.id);
298
- return (react_2.default.createElement(TableRow, { key: (_a = row.id) !== null && _a !== void 0 ? _a : rowIndex, row: row, rowIndex: rowIndex, index: index, isChecked: isChecked, isExpanded: isExpanded, isContent: isContent, isLink: isLink, isCheckbox: isCheckbox, isLoading: isLoading, isActionFreeze: isActionFreeze, columns: columns, leftOffsets: leftOffsets, noBorders: noBorders, freezedBgColor: freezedBgColor, freezedTextColor: freezedTextColor, theme: theme, borderStyle: borderStyle, hoverStyle: hoverStyle, rowHeight: rowHeight, cellPy: cellPy, palette: palette, accentColor: accentColors === null || accentColors === void 0 ? void 0 : accentColors[row.id], handleCheckbox: handleCheckbox, onRowClick: onRowClick, toggleRowExpansion: toggleRowExpansion }));
364
+ return (react_2.default.createElement(TableRow, { key: (_a = row.id) !== null && _a !== void 0 ? _a : rowIndex, row: row, rowIndex: rowIndex, index: index, isChecked: isChecked, isExpanded: isExpanded, isContent: isContent, isLink: isLink, isCheckbox: isCheckbox, isLoading: isLoading, isActionFreeze: isActionFreeze, columns: columns, leftOffsets: leftOffsets, noBorders: noBorders, freezedBgColor: freezedBgColor, freezedTextColor: freezedTextColor, theme: theme, borderStyle: borderStyle, hoverStyle: hoverStyle, rowHeight: rowHeight, cellPy: cellPy, palette: palette, accentColor: accentColors === null || accentColors === void 0 ? void 0 : accentColors[row.id], handleCheckbox: handleCheckbox, onRowClick: onRowClick, toggleRowExpansion: toggleRowExpansion, onMeasure: shouldVirtualize ? reportHeight : undefined }));
299
365
  }),
300
366
  shouldVirtualize && bottomPad > 0 && (react_2.default.createElement("tr", { "aria-hidden": "true", style: { height: bottomPad } },
301
367
  react_2.default.createElement("td", { colSpan: totalVisibleColumns, style: { padding: 0, border: "none", height: bottomPad } })))));
@@ -59,8 +59,8 @@ var TableHeader = function (_a) {
59
59
  var theme = (0, useCustomTheme_1.useCustomTheme)();
60
60
  var _b = (0, react_2.useState)(null), openFilterId = _b[0], setOpenFilterId = _b[1];
61
61
  var RenderCheckbox = (0, react_2.useCallback)(function () {
62
- var _a, _b, _c, _d;
63
- return (react_2.default.createElement(react_1.Th, { w: 6, fontSize: 14, fontWeight: 600, color: freezedTextColor, textTransform: "capitalize", backgroundColor: (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b[50], position: "sticky", className: "columns sticky-columns", left: "0px", zIndex: 9 }, isSelecting ? (react_2.default.createElement(react_1.Spinner, { size: "sm", color: (_d = (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.primary) === null || _d === void 0 ? void 0 : _d[500] })) : (react_2.default.createElement(Checkbox_1.default, { "aria-label": "Select all rows", variant: "outline", onChange: function () { return handleCheckbox(0); }, isChecked: isLoading ? false : checked === true, isIndeterminate: checked === "indeterminate" }))));
62
+ var _a, _b, _c, _d, _e;
63
+ return (react_2.default.createElement(react_1.Th, { w: 6, fontSize: 14, fontWeight: 600, color: freezedTextColor, textTransform: "capitalize", backgroundColor: (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b[50], position: "sticky", className: "columns sticky-columns", left: "0px", zIndex: 9, borderBottom: noBorders ? "none" : "0.063rem solid ".concat((_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[300]) }, isSelecting ? (react_2.default.createElement(react_1.Spinner, { size: "sm", color: (_e = (_d = theme.colors) === null || _d === void 0 ? void 0 : _d.primary) === null || _e === void 0 ? void 0 : _e[500] })) : (react_2.default.createElement(Checkbox_1.default, { "aria-label": "Select all rows", variant: "outline", onChange: function () { return handleCheckbox(0); }, isChecked: isLoading ? false : checked === true, isIndeterminate: checked === "indeterminate" }))));
64
64
  }, [
65
65
  checked,
66
66
  freezedTextColor,
@@ -72,15 +72,11 @@ var TableHeader = function (_a) {
72
72
  ]);
73
73
  var RenderConent = (0, react_2.useCallback)(function () {
74
74
  var _a, _b, _c;
75
- return (react_2.default.createElement(react_1.Th, { w: 6, minW: "35px", p: 0, backgroundColor: (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b[50], borderY: noBorders ? "none" : "0.063rem solid ".concat((_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[300]), position: "sticky", className: "columns sticky-columns", left: "0px", zIndex: 1, boxShadow: theme.shadows.md }));
75
+ return (react_2.default.createElement(react_1.Th, { w: 6, minW: "35px", p: 0, backgroundColor: (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b[50], borderBottom: noBorders ? "none" : "0.063rem solid ".concat((_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[300]), position: "sticky", className: "columns sticky-columns", left: "0px", zIndex: 1 }));
76
76
  }, [noBorders, theme.colors]);
77
77
  var RenderView = (0, react_2.useCallback)(function () {
78
- var _a, _b;
79
- return (react_2.default.createElement(react_1.Th, { w: 2, p: 0, minW: "2.065rem", backgroundColor: (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b[50],
80
- // borderY={
81
- // noBorders ? "none" : `0.063rem solid ${theme.colors?.gray[300]}`
82
- // }
83
- position: isActionFreeze ? "sticky" : "relative", className: "columns sticky-columns", right: "0px", zIndex: 1 }));
78
+ var _a, _b, _c;
79
+ return (react_2.default.createElement(react_1.Th, { w: 2, p: 0, minW: "2.065rem", backgroundColor: (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b[50], borderBottom: noBorders ? "none" : "0.063rem solid ".concat((_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[300]), position: isActionFreeze ? "sticky" : "relative", className: "columns sticky-columns", right: "0px", zIndex: 1 }));
84
80
  }, [noBorders, theme.colors, isActionFreeze]);
85
81
  return (react_2.default.createElement(react_1.Tr, { pr: 0 },
86
82
  isContent && react_2.default.createElement(RenderConent, null),
@@ -41,7 +41,7 @@ declare const useTable: ({ tableBorderColor, data, isPagination, selections, onS
41
41
  rowsPerPage: number;
42
42
  setCurrentPage: import("react").Dispatch<import("react").SetStateAction<number>>;
43
43
  columnsList: TableHeaderProps[];
44
- handleColumnPreferences: (columns: any) => void;
44
+ handleColumnPreferences: (columns: any, extra?: Record<string, any>) => void;
45
45
  isSelecting: boolean;
46
46
  };
47
47
  export default useTable;
@@ -47,13 +47,13 @@ var useTable = function (_a) {
47
47
  var _f = (0, react_1.useState)([]), columnsSort = _f[0], setColumnsSort = _f[1];
48
48
  var _g = (0, react_1.useState)(0), currentPage = _g[0], setCurrentPage = _g[1];
49
49
  var _h = (0, react_1.useState)(noOfRowsPerPage !== null && noOfRowsPerPage !== void 0 ? noOfRowsPerPage : defaultPageSize), rowsPerPage = _h[0], setRowsPerPage = _h[1];
50
- var prevRowsPerPageProp = (0, react_1.useRef)(noOfRowsPerPage);
51
- if (noOfRowsPerPage !== prevRowsPerPageProp.current) {
52
- prevRowsPerPageProp.current = noOfRowsPerPage;
53
- if (noOfRowsPerPage !== undefined && noOfRowsPerPage !== rowsPerPage) {
50
+ // Keep the internal page size in sync with the `noOfRowsPerPage` prop when the
51
+ // consumer changes it (e.g. a page-size control outside the table).
52
+ (0, react_1.useEffect)(function () {
53
+ if (noOfRowsPerPage !== undefined) {
54
54
  setRowsPerPage(noOfRowsPerPage);
55
55
  }
56
- }
56
+ }, [noOfRowsPerPage]);
57
57
  var tableData = data;
58
58
  var _j = (0, react_1.useState)(function () {
59
59
  return columns.map(function (col, i) {
@@ -187,10 +187,11 @@ var useTable = function (_a) {
187
187
  (_a = onSelectionRef.current) === null || _a === void 0 ? void 0 : _a.call(onSelectionRef, selectedItems);
188
188
  }
189
189
  }, [tableData]);
190
- var handleColumnPreferences = function (columns) {
190
+ var handleColumnPreferences = function (columns, extra) {
191
+ if (extra === void 0) { extra = {}; }
191
192
  setColumnsList(columns);
192
193
  savePreferences &&
193
- savePreferences(__assign(__assign({}, tablePreferences), { columns: columns }));
194
+ savePreferences(__assign(__assign(__assign({}, tablePreferences), { columns: columns }), extra));
194
195
  };
195
196
  return {
196
197
  tableData: tableData,
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
2
  import { TableDensity, TableProps } from "../TableProps";
3
- declare const TableSettings: ({ columns, onSave, density, onDensityChange, }: {
3
+ declare const TableSettings: ({ columns, onSave, density, onDensityChange, groupBy, }: {
4
4
  columns: TableProps["columns"];
5
- onSave: (updatedColumns: TableProps["columns"]) => void;
5
+ onSave: (updatedColumns: TableProps["columns"], groupBy: string | number | undefined) => void;
6
6
  tableSettings?: TableProps["tableSettings"];
7
7
  density?: TableDensity;
8
8
  onDensityChange?: (d: TableDensity) => void;
9
+ groupBy?: string | number;
9
10
  }) => React.JSX.Element;
10
11
  export default TableSettings;
@@ -43,6 +43,15 @@ var __importStar = (this && this.__importStar) || (function () {
43
43
  return result;
44
44
  };
45
45
  })();
46
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
47
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
48
+ if (ar || !(i in from)) {
49
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
50
+ ar[i] = from[i];
51
+ }
52
+ }
53
+ return to.concat(ar || Array.prototype.slice.call(from));
54
+ };
46
55
  var __importDefault = (this && this.__importDefault) || function (mod) {
47
56
  return (mod && mod.__esModule) ? mod : { "default": mod };
48
57
  };
@@ -62,20 +71,23 @@ var DENSITY_OPTIONS = [
62
71
  ];
63
72
  var TableSettings = function (_a) {
64
73
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
65
- var columns = _a.columns, onSave = _a.onSave, _p = _a.density, density = _p === void 0 ? "normal" : _p, onDensityChange = _a.onDensityChange;
74
+ var columns = _a.columns, onSave = _a.onSave, _p = _a.density, density = _p === void 0 ? "normal" : _p, onDensityChange = _a.onDensityChange, groupBy = _a.groupBy;
66
75
  var theme = (0, useCustomTheme_1.useCustomTheme)();
67
76
  var childInputMethodsRef = (0, react_2.useRef)({});
68
77
  var _q = (0, react_2.useState)(false), settingsOpen = _q[0], setSettingsOpen = _q[1];
69
78
  var _r = (0, react_2.useState)(0), selectedIndex = _r[0], setSelectedIndex = _r[1];
70
79
  var _s = (0, react_2.useState)(columns), items = _s[0], setItems = _s[1];
80
+ // Group selection is applied on Save (not live), per "click Apply to group".
81
+ var _t = (0, react_2.useState)(groupBy), selectedGroup = _t[0], setSelectedGroup = _t[1];
71
82
  var handleSave = (0, react_2.useCallback)(function () {
72
- onSave(items);
83
+ onSave(items, selectedGroup);
73
84
  setSettingsOpen(false);
74
- }, [onSave, items]);
85
+ }, [onSave, items, selectedGroup]);
75
86
  var handleOpen = (0, react_2.useCallback)(function () {
76
87
  setItems(columns);
88
+ setSelectedGroup(groupBy);
77
89
  setSettingsOpen(true);
78
- }, [columns]);
90
+ }, [columns, groupBy]);
79
91
  var tabStyle = {
80
92
  fontSize: "13px",
81
93
  fontWeight: 500,
@@ -102,7 +114,8 @@ var TableSettings = function (_a) {
102
114
  react_2.default.createElement(react_1.Text, { fontWeight: 600, fontSize: "md", mb: 3 }, "Table Settings"),
103
115
  react_2.default.createElement(react_1.TabList, { gap: 0, borderBottom: "1px solid", borderColor: (_l = (_k = theme.colors) === null || _k === void 0 ? void 0 : _k.border) === null || _l === void 0 ? void 0 : _l[200] },
104
116
  react_2.default.createElement(react_1.Tab, __assign({}, tabStyle), "Density"),
105
- react_2.default.createElement(react_1.Tab, __assign({}, tabStyle), "Manage Columns"))),
117
+ react_2.default.createElement(react_1.Tab, __assign({}, tabStyle), "Manage Columns"),
118
+ react_2.default.createElement(react_1.Tab, __assign({}, tabStyle), "Group"))),
106
119
  react_2.default.createElement(react_1.ModalBody, { px: 4, py: 3, flex: "1", overflowY: "auto", sx: {
107
120
  "&::-webkit-scrollbar": { width: "3px", height: "3px" },
108
121
  "&::-webkit-scrollbar-track": { background: theme.colors.gray[100], borderRadius: "2px" },
@@ -133,7 +146,18 @@ var TableSettings = function (_a) {
133
146
  "& .chakra-checkbox__label": { fontSize: "13px !important" },
134
147
  "& [draggable]": { py: "5px !important" },
135
148
  } },
136
- react_2.default.createElement(ManageColumns_1.default, { columns: columns, items: items, setItems: setItems, childInputMethodsRef: childInputMethodsRef })))))),
149
+ react_2.default.createElement(ManageColumns_1.default, { columns: columns, items: items, setItems: setItems, childInputMethodsRef: childInputMethodsRef }))),
150
+ react_2.default.createElement(react_1.TabPanel, { px: 0, py: 1 },
151
+ react_2.default.createElement(react_1.Text, { fontSize: "12px", color: theme.colors.gray[500], mb: 2 }, "Group rows by a column. Click Save to apply."),
152
+ react_2.default.createElement(react_1.Flex, { direction: "column", gap: 2 }, __spreadArray([{ id: undefined, label: "None (no grouping)" }], columns
153
+ .filter(function (c) { return !!c.columnType && !c.isHidden; })
154
+ .map(function (c) { return ({ id: c.id, label: String(c.label) }); }), true).map(function (opt) {
155
+ var _a, _b;
156
+ var selected = selectedGroup === opt.id;
157
+ return (react_2.default.createElement(react_1.Flex, { as: "button", type: "button", key: String((_a = opt.id) !== null && _a !== void 0 ? _a : "__none__"), align: "center", gap: 3, px: 3, py: 2.5, borderRadius: "0.5rem", border: "1px solid", borderColor: selected ? theme.colors.primary[500] : (_b = theme.colors.boxborder) === null || _b === void 0 ? void 0 : _b[300], bg: selected ? theme.colors.primary.opacity[8] : "transparent", transition: "all 0.15s", _hover: { borderColor: theme.colors.primary[400] }, onClick: function () { return setSelectedGroup(opt.id); } },
158
+ react_2.default.createElement(react_1.Box, { boxSize: "1.1rem", borderRadius: "full", border: "2px solid", borderColor: selected ? theme.colors.primary[500] : theme.colors.gray[400], display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0 }, selected && react_2.default.createElement(lucide_react_1.Check, { size: 11, color: theme.colors.primary[500], strokeWidth: 3 })),
159
+ react_2.default.createElement(react_1.Text, { fontSize: "13px", fontWeight: 600, color: theme.colors.text[700], textAlign: "left" }, opt.label)));
160
+ })))))),
137
161
  react_2.default.createElement(react_1.ModalFooter, { gap: "0.5rem", borderTop: "1px solid", borderColor: (_o = (_m = theme.colors) === null || _m === void 0 ? void 0 : _m.border) === null || _o === void 0 ? void 0 : _o[200], pt: 3, pb: 3, px: 4 },
138
162
  react_2.default.createElement(Button_1.default, { label: "Close", size: "sm", onClick: function () { return setSettingsOpen(false); }, variant: "outline", colorScheme: "red" }),
139
163
  react_2.default.createElement(Button_1.default, { label: "Save", size: "sm", onClick: handleSave }))))));
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { TimelineProps } from "./TimelineProps";
3
- declare const Timeline: ({ timelineEvents }: TimelineProps) => React.JSX.Element;
3
+ declare const Timeline: ({ timelineEvents, onEventClick }: TimelineProps) => React.JSX.Element;
4
4
  export default Timeline;