@rio-cloud/rio-uikit 2.3.0-beta.1 → 2.3.0-beta.2

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 (294) hide show
  1. package/DayPicker.js +6 -2
  2. package/DayPicker.js.map +1 -1
  3. package/DayPickerCalendar.d.ts +2 -0
  4. package/DayPickerCalendar.js +5 -0
  5. package/DayPickerCalendar.js.map +1 -0
  6. package/DayPickerPrototype.d.ts +2 -0
  7. package/DayPickerPrototype.js +5 -0
  8. package/DayPickerPrototype.js.map +1 -0
  9. package/TableNext.d.ts +2 -0
  10. package/TableNext.js +23 -0
  11. package/TableNext.js.map +1 -0
  12. package/TableToolbar.js +3 -2
  13. package/TableToolbar.js.map +1 -1
  14. package/components/assetTree/Tree.js +13 -13
  15. package/components/charts/Area.d.ts +5 -3
  16. package/components/charts/Area.js +4 -3
  17. package/components/charts/Area.js.map +1 -1
  18. package/components/charts/AreaChart.js.map +1 -1
  19. package/components/charts/ComposedChart.js.map +1 -1
  20. package/components/clearableInput/ClearableInput.d.ts +30 -0
  21. package/components/clearableInput/ClearableInput.js +81 -78
  22. package/components/clearableInput/ClearableInput.js.map +1 -1
  23. package/components/datepicker/DayPicker.d.ts +4 -51
  24. package/components/datepicker/DayPicker.js +264 -256
  25. package/components/datepicker/DayPicker.js.map +1 -1
  26. package/components/datepicker/DayPickerCalendar.d.ts +4 -0
  27. package/components/datepicker/DayPickerCalendar.js +129 -0
  28. package/components/datepicker/DayPickerCalendar.js.map +1 -0
  29. package/components/datepicker/DayPickerDropdown.d.ts +18 -0
  30. package/components/datepicker/DayPickerDropdown.js +75 -0
  31. package/components/datepicker/DayPickerDropdown.js.map +1 -0
  32. package/components/datepicker/DayPickerDropdownFooter.d.ts +7 -0
  33. package/components/datepicker/DayPickerDropdownFooter.js +7 -0
  34. package/components/datepicker/DayPickerDropdownFooter.js.map +1 -0
  35. package/components/datepicker/DayPickerDropdownSidebar.d.ts +8 -0
  36. package/components/datepicker/DayPickerDropdownSidebar.js +7 -0
  37. package/components/datepicker/DayPickerDropdownSidebar.js.map +1 -0
  38. package/components/datepicker/DayPickerInput.d.ts +28 -0
  39. package/components/datepicker/DayPickerInput.js +65 -0
  40. package/components/datepicker/DayPickerInput.js.map +1 -0
  41. package/components/datepicker/DayPickerPrototype.d.ts +53 -0
  42. package/components/datepicker/DayPickerPrototype.js +285 -0
  43. package/components/datepicker/DayPickerPrototype.js.map +1 -0
  44. package/components/datepicker/dayPickerRangeSelectionUtils.d.ts +15 -0
  45. package/components/datepicker/dayPickerRangeSelectionUtils.js +31 -0
  46. package/components/datepicker/dayPickerRangeSelectionUtils.js.map +1 -0
  47. package/components/datepicker/dayPickerTypes.d.ts +517 -0
  48. package/components/datepicker/dayPickerTypes.js +7 -0
  49. package/components/datepicker/dayPickerTypes.js.map +1 -0
  50. package/components/datepicker/dayPickerUtils.d.ts +10 -0
  51. package/components/datepicker/dayPickerUtils.js +92 -0
  52. package/components/datepicker/dayPickerUtils.js.map +1 -0
  53. package/components/datepicker/useDayPickerInputState.d.ts +32 -0
  54. package/components/datepicker/useDayPickerInputState.js +85 -0
  55. package/components/datepicker/useDayPickerInputState.js.map +1 -0
  56. package/components/datepicker/useStackedDayPickerCalendars.d.ts +5 -0
  57. package/components/datepicker/useStackedDayPickerCalendars.js +39 -0
  58. package/components/datepicker/useStackedDayPickerCalendars.js.map +1 -0
  59. package/components/divider/Divider.js +6 -6
  60. package/components/dropdown/ButtonDropdown.d.ts +4 -0
  61. package/components/dropdown/ButtonDropdown.js +70 -68
  62. package/components/dropdown/ButtonDropdown.js.map +1 -1
  63. package/components/dropdown/DropdownToggleButton.d.ts +1 -0
  64. package/components/dropdown/DropdownToggleButton.js +17 -15
  65. package/components/dropdown/DropdownToggleButton.js.map +1 -1
  66. package/components/fade/FadeExpander.js +17 -20
  67. package/components/fade/FadeExpander.js.map +1 -1
  68. package/components/loadMore/LoadMoreProgress.js +6 -7
  69. package/components/map/components/Map.js +3 -3
  70. package/components/map/utils/rendering.js +5 -5
  71. package/components/popover/Popover.js +4 -4
  72. package/components/radiobutton/RadioCardGroup.js +3 -3
  73. package/components/rioglyph/RioglyphIconType.d.ts +1 -1
  74. package/components/selects/Multiselect.d.ts +6 -0
  75. package/components/selects/Multiselect.js +164 -150
  76. package/components/selects/Multiselect.js.map +1 -1
  77. package/components/selects/Select.js +39 -37
  78. package/components/selects/Select.js.map +1 -1
  79. package/components/table/Table.d.ts +27 -248
  80. package/components/table/Table.js +237 -214
  81. package/components/table/Table.js.map +1 -1
  82. package/components/table/Table.types.d.ts +293 -121
  83. package/components/table/TableBody.d.ts +65 -5
  84. package/components/table/TableBody.js +132 -2
  85. package/components/table/TableBody.js.map +1 -1
  86. package/components/table/TableCardsSorting.js +25 -32
  87. package/components/table/TableCardsSorting.js.map +1 -1
  88. package/components/table/TableColumn.d.ts +13 -5
  89. package/components/table/TableColumn.js +112 -2
  90. package/components/table/TableColumn.js.map +1 -1
  91. package/components/table/TableExpandedContentRow.d.ts +7 -7
  92. package/components/table/TableExpandedContentRow.js +107 -2
  93. package/components/table/TableExpandedContentRow.js.map +1 -1
  94. package/components/table/TableExpandedRow.d.ts +9 -4
  95. package/components/table/TableExpandedRow.js +147 -2
  96. package/components/table/TableExpandedRow.js.map +1 -1
  97. package/components/table/TableExpanderButton.js +13 -11
  98. package/components/table/TableExpanderButton.js.map +1 -1
  99. package/components/table/TableFooter.d.ts +10 -6
  100. package/components/table/TableFooter.js +49 -2
  101. package/components/table/TableFooter.js.map +1 -1
  102. package/components/table/TableGroupFooterRow.d.ts +7 -7
  103. package/components/table/TableGroupFooterRow.js +27 -2
  104. package/components/table/TableGroupFooterRow.js.map +1 -1
  105. package/components/table/TableGroupRow.d.ts +7 -7
  106. package/components/table/TableGroupRow.js +33 -2
  107. package/components/table/TableGroupRow.js.map +1 -1
  108. package/components/table/TableHeader.d.ts +9 -4
  109. package/components/table/TableHeader.js +104 -2
  110. package/components/table/TableHeader.js.map +1 -1
  111. package/components/table/TableHeaderColumn.d.ts +14 -8
  112. package/components/table/TableHeaderColumn.js +78 -2
  113. package/components/table/TableHeaderColumn.js.map +1 -1
  114. package/components/table/TableHeaderRow.d.ts +1 -1
  115. package/components/table/TableHeaderRow.js +11 -2
  116. package/components/table/TableHeaderRow.js.map +1 -1
  117. package/components/table/TableRow.d.ts +9 -4
  118. package/components/table/TableRow.js +108 -2
  119. package/components/table/TableRow.js.map +1 -1
  120. package/components/table/TableSpacerRow.d.ts +3 -2
  121. package/components/table/TableSpacerRow.js +26 -2
  122. package/components/table/TableSpacerRow.js.map +1 -1
  123. package/components/table/TableToolbar.d.ts +4 -23
  124. package/components/table/TableToolbar.js +39 -28
  125. package/components/table/TableToolbar.js.map +1 -1
  126. package/components/table/TableToolbarColumn.d.ts +31 -0
  127. package/components/table/TableToolbarColumn.js +33 -0
  128. package/components/table/TableToolbarColumn.js.map +1 -0
  129. package/components/table/TableViewToggles.d.ts +3 -3
  130. package/components/table/TableViewToggles.js.map +1 -1
  131. package/components/table/context/TableInteractionContext.d.ts +26 -0
  132. package/components/table/context/TableInteractionContext.js +7 -0
  133. package/components/table/context/TableInteractionContext.js.map +1 -0
  134. package/components/table/context/TableLayoutContext.d.ts +25 -0
  135. package/components/table/context/TableLayoutContext.js +7 -0
  136. package/components/table/context/TableLayoutContext.js.map +1 -0
  137. package/components/table/context/TableRenderConfigContext.d.ts +27 -0
  138. package/components/table/context/TableRenderConfigContext.js +7 -0
  139. package/components/table/context/TableRenderConfigContext.js.map +1 -0
  140. package/components/table/context/TableRenderContext.d.ts +85 -0
  141. package/components/table/context/TableRenderContext.js +7 -0
  142. package/components/table/context/TableRenderContext.js.map +1 -0
  143. package/components/table/context/TableStructureContext.d.ts +31 -0
  144. package/components/table/context/TableStructureContext.js +17 -0
  145. package/components/table/context/TableStructureContext.js.map +1 -0
  146. package/components/table/layout/columnSizing.d.ts +2 -2
  147. package/components/table/layout/columnSizing.js.map +1 -1
  148. package/components/table/layout/useDraggableColumns.d.ts +3 -3
  149. package/components/table/layout/useDraggableColumns.js +17 -17
  150. package/components/table/layout/useDraggableColumns.js.map +1 -1
  151. package/components/table/layout/useHorizontalSectionSync.d.ts +3 -1
  152. package/components/table/layout/useHorizontalSectionSync.js +32 -28
  153. package/components/table/layout/useHorizontalSectionSync.js.map +1 -1
  154. package/components/table/layout/useMeasuredColumnMaxWidths.d.ts +3 -3
  155. package/components/table/layout/useMeasuredColumnMaxWidths.js.map +1 -1
  156. package/components/table/layout/useResizableColumns.d.ts +5 -4
  157. package/components/table/layout/useResizableColumns.js +108 -67
  158. package/components/table/layout/useResizableColumns.js.map +1 -1
  159. package/components/table/layout/useTableBodyScrollBottom.d.ts +12 -0
  160. package/components/table/layout/useTableBodyScrollBottom.js +37 -0
  161. package/components/table/layout/useTableBodyScrollBottom.js.map +1 -0
  162. package/components/table/layout/useTableLayout.d.ts +17 -6
  163. package/components/table/layout/useTableLayout.js +41 -38
  164. package/components/table/layout/useTableLayout.js.map +1 -1
  165. package/components/table/layout/useTableVirtualization.d.ts +6 -6
  166. package/components/table/layout/useTableVirtualization.js +22 -22
  167. package/components/table/layout/useTableVirtualization.js.map +1 -1
  168. package/components/table/model/resolveRowMeta.d.ts +3 -2
  169. package/components/table/model/resolveRowMeta.js.map +1 -1
  170. package/components/table/model/resolveTableClassConfig.d.ts +2 -3
  171. package/components/table/model/resolveTableClassConfig.js.map +1 -1
  172. package/components/table/model/tableView.types.d.ts +41 -0
  173. package/components/table/native/TableSettingsListItem.js +1 -1
  174. package/components/table/native/TableSettingsListItem.js.map +1 -1
  175. package/components/table/render/body/TableBodyContent.d.ts +21 -0
  176. package/components/table/render/body/TableBodyContent.js +52 -0
  177. package/components/table/render/body/TableBodyContent.js.map +1 -0
  178. package/components/table/render/body/TableEmptyRow.js +2 -2
  179. package/components/table/render/body/TableEmptyRow.js.map +1 -1
  180. package/components/table/render/header/TableBatchDropdown.d.ts +5 -1
  181. package/components/table/render/header/TableBatchDropdown.js +17 -15
  182. package/components/table/render/header/TableBatchDropdown.js.map +1 -1
  183. package/components/table/render/header/TableColumnFilter.d.ts +2 -2
  184. package/components/table/render/header/TableColumnFilter.js +16 -14
  185. package/components/table/render/header/TableColumnFilter.js.map +1 -1
  186. package/components/table/render/header/TableDraggableHeaderCell.d.ts +2 -1
  187. package/components/table/render/header/TableDraggableHeaderCell.js +44 -34
  188. package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -1
  189. package/components/table/render/header/TableHeader.types.d.ts +11 -9
  190. package/components/table/render/header/TableHeaderCellContent.d.ts +2 -1
  191. package/components/table/render/header/TableHeaderCellContent.js.map +1 -1
  192. package/components/table/render/header/TableHeaderCellResizeHandle.d.ts +2 -1
  193. package/components/table/render/header/TableHeaderCellResizeHandle.js +8 -8
  194. package/components/table/render/header/TableHeaderCellResizeHandle.js.map +1 -1
  195. package/components/table/render/header/TableHeaderDragOverlay.d.ts +5 -4
  196. package/components/table/render/header/TableHeaderDragOverlay.js.map +1 -1
  197. package/components/table/render/header/TableStaticHeaderCell.d.ts +2 -1
  198. package/components/table/render/header/TableStaticHeaderCell.js +34 -22
  199. package/components/table/render/header/TableStaticHeaderCell.js.map +1 -1
  200. package/components/table/render/header/resolveAriaSort.d.ts +2 -1
  201. package/components/table/render/header/resolveAriaSort.js.map +1 -1
  202. package/components/table/render/header/resolveHeaderCellClassName.d.ts +4 -2
  203. package/components/table/render/header/resolveHeaderCellClassName.js +11 -10
  204. package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -1
  205. package/components/table/render/header/resolveHeaderCellStyle.d.ts +2 -1
  206. package/components/table/render/header/resolveHeaderCellStyle.js.map +1 -1
  207. package/components/table/runtime/shouldAnimateBodyRows.d.ts +17 -0
  208. package/components/table/runtime/shouldAnimateBodyRows.js +5 -0
  209. package/components/table/runtime/shouldAnimateBodyRows.js.map +1 -0
  210. package/components/table/runtime/useRenderDraftState.d.ts +14 -0
  211. package/components/table/runtime/useRenderDraftState.js +80 -0
  212. package/components/table/runtime/useRenderDraftState.js.map +1 -0
  213. package/components/table/runtime/useResolvedRenderColumns.d.ts +43 -0
  214. package/components/table/runtime/useResolvedRenderColumns.js +113 -0
  215. package/components/table/runtime/useResolvedRenderColumns.js.map +1 -0
  216. package/components/table/runtime/useResolvedRenderHeader.d.ts +27 -0
  217. package/components/table/runtime/useResolvedRenderHeader.js +67 -0
  218. package/components/table/runtime/useResolvedRenderHeader.js.map +1 -0
  219. package/components/table/selection/useInternalTableSelectionState.d.ts +17 -0
  220. package/components/table/selection/useInternalTableSelectionState.js +28 -0
  221. package/components/table/selection/useInternalTableSelectionState.js.map +1 -0
  222. package/components/table/selection/useTableSelection.d.ts +3 -3
  223. package/components/table/selection/useTableSelection.js.map +1 -1
  224. package/components/table/shared/getCellContentOverflowClassName.d.ts +3 -0
  225. package/components/table/shared/getCellContentOverflowClassName.js +18 -0
  226. package/components/table/shared/getCellContentOverflowClassName.js.map +1 -0
  227. package/components/table/shared/getInteractiveRowProps.d.ts +3 -2
  228. package/components/table/shared/getInteractiveRowProps.js.map +1 -1
  229. package/hooks/useUrlState.js +3 -3
  230. package/package.json +16 -17
  231. package/utils/analytics/createAnalyticsOverlayTooltip.js +57 -57
  232. package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -1
  233. package/utils/analytics/useAnalyticsOverlayDom.js +3 -3
  234. package/utils/routeUtils.d.ts +5 -2
  235. package/utils/routeUtils.js +17 -17
  236. package/utils/routeUtils.js.map +1 -1
  237. package/version.d.ts +1 -1
  238. package/version.js +1 -1
  239. package/version.js.map +1 -1
  240. package/components/table/TableCard.d.ts +0 -63
  241. package/components/table/TableCard.js +0 -150
  242. package/components/table/TableCard.js.map +0 -1
  243. package/components/table/model/buildTableViewModel.d.ts +0 -28
  244. package/components/table/model/buildTableViewModel.js +0 -221
  245. package/components/table/model/buildTableViewModel.js.map +0 -1
  246. package/components/table/model/resolveCellContent.d.ts +0 -2
  247. package/components/table/model/resolveCellContent.js +0 -5
  248. package/components/table/model/resolveCellContent.js.map +0 -1
  249. package/components/table/model/tableViewModel.types.d.ts +0 -153
  250. package/components/table/parse/parseBody.d.ts +0 -3
  251. package/components/table/parse/parseBody.js +0 -13
  252. package/components/table/parse/parseBody.js.map +0 -1
  253. package/components/table/parse/parseColumns.d.ts +0 -3
  254. package/components/table/parse/parseColumns.js +0 -81
  255. package/components/table/parse/parseColumns.js.map +0 -1
  256. package/components/table/parse/parseFooter.d.ts +0 -3
  257. package/components/table/parse/parseFooter.js +0 -39
  258. package/components/table/parse/parseFooter.js.map +0 -1
  259. package/components/table/parse/parseHeaders.d.ts +0 -4
  260. package/components/table/parse/parseHeaders.js +0 -89
  261. package/components/table/parse/parseHeaders.js.map +0 -1
  262. package/components/table/parse/parseRows.d.ts +0 -3
  263. package/components/table/parse/parseRows.js +0 -93
  264. package/components/table/parse/parseRows.js.map +0 -1
  265. package/components/table/parse/tableChildGuards.d.ts +0 -25
  266. package/components/table/parse/tableChildGuards.js +0 -29
  267. package/components/table/parse/tableChildGuards.js.map +0 -1
  268. package/components/table/render/body/TableBodyRow.d.ts +0 -16
  269. package/components/table/render/body/TableBodyRow.js +0 -84
  270. package/components/table/render/body/TableBodyRow.js.map +0 -1
  271. package/components/table/render/body/TableBodySection.d.ts +0 -20
  272. package/components/table/render/body/TableBodySection.js +0 -68
  273. package/components/table/render/body/TableBodySection.js.map +0 -1
  274. package/components/table/render/body/TableDataRow.d.ts +0 -15
  275. package/components/table/render/body/TableDataRow.js +0 -143
  276. package/components/table/render/body/TableDataRow.js.map +0 -1
  277. package/components/table/render/body/TableExpandedRow.d.ts +0 -8
  278. package/components/table/render/body/TableExpandedRow.js +0 -84
  279. package/components/table/render/body/TableExpandedRow.js.map +0 -1
  280. package/components/table/render/body/TableGroupRow.d.ts +0 -8
  281. package/components/table/render/body/TableGroupRow.js +0 -21
  282. package/components/table/render/body/TableGroupRow.js.map +0 -1
  283. package/components/table/render/body/TableSpacerRow.d.ts +0 -7
  284. package/components/table/render/body/TableSpacerRow.js +0 -15
  285. package/components/table/render/body/TableSpacerRow.js.map +0 -1
  286. package/components/table/render/footer/TableFooterCell.d.ts +0 -8
  287. package/components/table/render/footer/TableFooterCell.js +0 -31
  288. package/components/table/render/footer/TableFooterCell.js.map +0 -1
  289. package/components/table/render/footer/TableFooterSection.d.ts +0 -10
  290. package/components/table/render/footer/TableFooterSection.js +0 -28
  291. package/components/table/render/footer/TableFooterSection.js.map +0 -1
  292. package/components/table/render/header/TableHeaderSection.d.ts +0 -3
  293. package/components/table/render/header/TableHeaderSection.js +0 -104
  294. package/components/table/render/header/TableHeaderSection.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ import { PropsWithChildren, ReactNode } from 'react';
2
+ export type TableToolbarColumnHorizontalAlign = 'left' | 'right';
3
+ export type TableToolbarColumnVerticalAlign = 'start' | 'center' | 'end';
4
+ export type TableToolbarColumnProps = {
5
+ /**
6
+ * Controls whether the column is rendered in the left or right toolbar group.
7
+ *
8
+ * @default 'left'
9
+ */
10
+ horizontalAlign?: TableToolbarColumnHorizontalAlign;
11
+ /**
12
+ * Vertically centers this toolbar column within its group.
13
+ *
14
+ * @default 'end'
15
+ */
16
+ verticalAlign?: TableToolbarColumnVerticalAlign;
17
+ /**
18
+ * Optional label rendered above the column content.
19
+ */
20
+ label?: ReactNode;
21
+ /**
22
+ * Optional class names for the column wrapper.
23
+ */
24
+ className?: string;
25
+ /**
26
+ * Adds the default toolbar separator styling for the column.
27
+ */
28
+ separator?: boolean;
29
+ };
30
+ declare const TableToolbarColumn: (props: PropsWithChildren<TableToolbarColumnProps>) => import("react/jsx-runtime").JSX.Element;
31
+ export default TableToolbarColumn;
@@ -0,0 +1,33 @@
1
+ import { jsxs as t, jsx as i } from "react/jsx-runtime";
2
+ import c from "../../utils/classNames.js";
3
+ const p = (a) => {
4
+ const {
5
+ horizontalAlign: m,
6
+ label: l,
7
+ className: o,
8
+ separator: e,
9
+ verticalAlign: r = "end",
10
+ children: n,
11
+ ...s
12
+ } = a;
13
+ return /* @__PURE__ */ t(
14
+ "div",
15
+ {
16
+ ...s,
17
+ className: c(
18
+ "table-toolbar-column",
19
+ `align-self-${r}`,
20
+ e && "table-toolbar-column-separator",
21
+ o
22
+ ),
23
+ children: [
24
+ l ? /* @__PURE__ */ i("label", { className: "table-toolbar-label", children: l }) : null,
25
+ n
26
+ ]
27
+ }
28
+ );
29
+ };
30
+ export {
31
+ p as default
32
+ };
33
+ //# sourceMappingURL=TableToolbarColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableToolbarColumn.js","sources":["../../../src/components/table/TableToolbarColumn.tsx"],"sourcesContent":["import type { PropsWithChildren, ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\n\nexport type TableToolbarColumnHorizontalAlign = 'left' | 'right';\nexport type TableToolbarColumnVerticalAlign = 'start' | 'center' | 'end';\n\nexport type TableToolbarColumnProps = {\n /**\n * Controls whether the column is rendered in the left or right toolbar group.\n *\n * @default 'left'\n */\n horizontalAlign?: TableToolbarColumnHorizontalAlign;\n\n /**\n * Vertically centers this toolbar column within its group.\n *\n * @default 'end'\n */\n verticalAlign?: TableToolbarColumnVerticalAlign;\n\n /**\n * Optional label rendered above the column content.\n */\n label?: ReactNode;\n\n /**\n * Optional class names for the column wrapper.\n */\n className?: string;\n\n /**\n * Adds the default toolbar separator styling for the column.\n */\n separator?: boolean;\n};\n\nconst TableToolbarColumn = (props: PropsWithChildren<TableToolbarColumnProps>) => {\n const {\n horizontalAlign: _horizontalAlign,\n label,\n className,\n separator,\n verticalAlign = 'end',\n children,\n ...remainingProps\n } = props;\n\n return (\n <div\n {...remainingProps}\n className={classNames(\n 'table-toolbar-column',\n `align-self-${verticalAlign}`,\n separator && 'table-toolbar-column-separator',\n className\n )}\n >\n {label ? <label className='table-toolbar-label'>{label}</label> : null}\n {children}\n </div>\n );\n};\n\nexport default TableToolbarColumn;\n"],"names":["TableToolbarColumn","props","_horizontalAlign","label","className","separator","verticalAlign","children","remainingProps","jsxs","classNames","jsx"],"mappings":";;AAsCA,MAAMA,IAAqB,CAACC,MAAsD;AAC9E,QAAM;AAAA,IACF,iBAAiBC;AAAA,IACjB,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHP;AAEJ,SACI,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGD;AAAA,MACJ,WAAWE;AAAA,QACP;AAAA,QACA,cAAcJ,CAAa;AAAA,QAC3BD,KAAa;AAAA,QACbD;AAAA,MAAA;AAAA,MAGH,UAAA;AAAA,QAAAD,IAAQ,gBAAAQ,EAAC,SAAA,EAAM,WAAU,uBAAuB,aAAM,IAAW;AAAA,QACjEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGb;"}
@@ -11,7 +11,7 @@ export type TableViewTogglesProps = {
11
11
  * - `'TABLE'`
12
12
  * - `TableViewToggles.VIEW_TYPE_TABLE`
13
13
  * - `TableViewToggles.VIEW_TYPE_SINGLE_CARD`
14
- * - `TableViewToggles.VIEW_TYPE_CARD`
14
+ * - `TableViewToggles.VIEW_TYPE_MULTI_CARDS`
15
15
  */
16
16
  viewType?: TableViewTogglesViewType;
17
17
  /**
@@ -24,9 +24,9 @@ export type TableViewTogglesProps = {
24
24
  * - `'TABLE'`
25
25
  * - `TableViewToggles.VIEW_TYPE_TABLE`
26
26
  * - `TableViewToggles.VIEW_TYPE_SINGLE_CARD`
27
- * - `TableViewToggles.VIEW_TYPE_CARD`
27
+ * - `TableViewToggles.VIEW_TYPE_MULTI_CARDS`
28
28
  *
29
- * @default TableViewToggles.VIEW_TYPE
29
+ * @default TableViewToggles.VIEW_TYPE_TABLE
30
30
  */
31
31
  initialViewType?: TableViewTogglesViewType;
32
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TableViewToggles.js","sources":["../../../src/components/table/TableViewToggles.tsx"],"sourcesContent":["import { type ReactNode, useEffect, useState } from 'react';\nimport { noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport Select, { type SelectOption } from '../selects/Select';\n\n// TODO: add responsive behaviour and trigger a change from table to list for small screen -> see DriverAdministration\n\nconst typeIcons: Record<TableViewTogglesViewType, string> = {\n TABLE: 'rioglyph-table-view',\n SINGLE_CARD: 'rioglyph-th-list',\n MULTI_CARDS: 'rioglyph-split-view',\n};\n\ntype TableViewToggleOption = SelectOption & {\n id: TableViewTogglesViewType;\n};\n\nexport type TableViewTogglesViewType = 'SINGLE_CARD' | 'MULTI_CARDS' | 'TABLE';\n\nexport type TableViewTogglesProps = {\n /**\n * The current viewType for controlling the TablesViewToggles component.\n *\n * Possible values are:\n *\n * - `'SINGLE_CARD'`\n * - `'MULTI_CARDS'`\n * - `'TABLE'`\n * - `TableViewToggles.VIEW_TYPE_TABLE`\n * - `TableViewToggles.VIEW_TYPE_SINGLE_CARD`\n * - `TableViewToggles.VIEW_TYPE_CARD`\n */\n viewType?: TableViewTogglesViewType;\n\n /**\n * Defines the initial viewType (when viewType is not controlled from the outside).\n *\n * Possible values are:\n *\n * - `'SINGLE_CARD'`\n * - `'MULTI_CARDS'`\n * - `'TABLE'`\n * - `TableViewToggles.VIEW_TYPE_TABLE`\n * - `TableViewToggles.VIEW_TYPE_SINGLE_CARD`\n * - `TableViewToggles.VIEW_TYPE_CARD`\n *\n * @default TableViewToggles.VIEW_TYPE\n */\n initialViewType?: TableViewTogglesViewType;\n\n /**\n * Defines the view types which shall not be supported and are omitted.\n *\n * @default []\n */\n disabledViewTypes?: TableViewTogglesViewType[];\n\n /**\n * Callback function for when the user wants to change the viewType.\n *\n * Receives the new type as an argument.\n *\n * @param viewType The new viewType selected by the user.\n */\n onViewTypeChange: (viewType: TableViewTogglesViewType) => void;\n\n /**\n * Optional tooltip content for table view button.\n *\n * @deprecated Use `tableViewLabel` instead.\n */\n tableViewTooltipContent?: string | ReactNode;\n\n /**\n * Optional label content for the table view select item.\n */\n tableViewLabel?: string | ReactNode;\n\n /**\n * Optional tooltip content for single card view button.\n *\n * @deprecated Use `singleCardViewLabel` instead.\n */\n singleCardViewTooltipContent?: string | ReactNode;\n\n /**\n * Optional label content for the single card view select item.\n */\n singleCardViewLabel?: string | ReactNode;\n\n /**\n * Optional tooltip content for multi card view button.\n *\n * @deprecated Use `multiCardsViewLabel` instead.\n */\n multiCardsViewTooltipContent?: string | ReactNode;\n\n /**\n * Optional label content for the multi cards view select item.\n */\n multiCardsViewLabel?: string | ReactNode;\n\n /**\n * Disables all buttons.\n *\n * This means the buttons cannot be clicked. Used when disabling toolbar buttons during loading state or when the\n * corresponding table is empty.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Optional class names for the wrapper element.\n */\n className?: string;\n};\n\nconst TableViewToggles = (props: TableViewTogglesProps) => {\n const {\n viewType,\n initialViewType = 'TABLE',\n disabledViewTypes = [],\n onViewTypeChange = noop,\n tableViewTooltipContent,\n tableViewLabel,\n singleCardViewTooltipContent,\n singleCardViewLabel,\n multiCardsViewTooltipContent,\n multiCardsViewLabel,\n disabled = false,\n className,\n ...remainingProps\n } = props;\n\n const [internalViewType, setInternalViewType] = useState(initialViewType);\n\n // update internal state when external state changes - controlled component case\n useEffect(() => {\n if (viewType) {\n setInternalViewType(viewType);\n }\n }, [viewType]);\n\n const setViewType = (vt: TableViewTogglesViewType) => {\n setInternalViewType(vt);\n onViewTypeChange(vt);\n };\n\n const allOptions: TableViewToggleOption[] = [\n {\n id: 'TABLE',\n label: tableViewLabel ?? tableViewTooltipContent ?? '',\n icon: <span className={`rioglyph ${typeIcons.TABLE}`} />,\n },\n {\n id: 'SINGLE_CARD',\n label: singleCardViewLabel ?? singleCardViewTooltipContent ?? '',\n icon: <span className={`rioglyph ${typeIcons.SINGLE_CARD}`} />,\n },\n {\n id: 'MULTI_CARDS',\n label: multiCardsViewLabel ?? multiCardsViewTooltipContent ?? '',\n icon: <span className={`rioglyph ${typeIcons.MULTI_CARDS}`} />,\n },\n ];\n\n const options = allOptions.filter(option => !disabledViewTypes.includes(option.id));\n const hasOptionLabels = allOptions.some(option => option.label);\n\n const wrapperClassNames = classNames('TableViewToggles', className && className);\n\n return (\n <div {...remainingProps} className={wrapperClassNames}>\n <div className='form-group margin-bottom-0'>\n <Select\n options={options}\n value={[internalViewType]}\n onChange={item => item && setViewType(item.id as TableViewTogglesViewType)}\n disabled={disabled}\n showSelectedItemIcon\n pullRight\n dropdownClassName={!hasOptionLabels ? 'width-auto' : undefined}\n />\n </div>\n </div>\n );\n};\n\n// Don't export values as string but as a distinct union type\nTableViewToggles.VIEW_TYPE_TABLE = 'TABLE' as TableViewTogglesViewType;\nTableViewToggles.VIEW_TYPE_SINGLE_CARD = 'SINGLE_CARD' as TableViewTogglesViewType;\nTableViewToggles.VIEW_TYPE_MULTI_CARDS = 'MULTI_CARDS' as TableViewTogglesViewType;\n\nexport default TableViewToggles;\n"],"names":["typeIcons","TableViewToggles","props","viewType","initialViewType","disabledViewTypes","onViewTypeChange","noop","tableViewTooltipContent","tableViewLabel","singleCardViewTooltipContent","singleCardViewLabel","multiCardsViewTooltipContent","multiCardsViewLabel","disabled","className","remainingProps","internalViewType","setInternalViewType","useState","useEffect","setViewType","vt","allOptions","jsx","options","option","hasOptionLabels","wrapperClassNames","classNames","Select","item"],"mappings":";;;;;AAQA,MAAMA,IAAsD;AAAA,EACxD,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACjB,GA2GMC,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,mBAAAC,IAAoB,CAAA;AAAA,IACpB,kBAAAC,IAAmBC;AAAA,IACnB,yBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,8BAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,8BAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHd,GAEE,CAACe,GAAkBC,CAAmB,IAAIC,EAASf,CAAe;AAGxE,EAAAgB,EAAU,MAAM;AACZ,IAAIjB,KACAe,EAAoBf,CAAQ;AAAA,EAEpC,GAAG,CAACA,CAAQ,CAAC;AAEb,QAAMkB,IAAc,CAACC,MAAiC;AAClD,IAAAJ,EAAoBI,CAAE,GACtBhB,EAAiBgB,CAAE;AAAA,EACvB,GAEMC,IAAsC;AAAA,IACxC;AAAA,MACI,IAAI;AAAA,MACJ,OAAOd,KAAkBD,KAA2B;AAAA,MACpD,MAAM,gBAAAgB,EAAC,QAAA,EAAK,WAAW,YAAYxB,EAAU,KAAK,GAAA,CAAI;AAAA,IAAA;AAAA,IAE1D;AAAA,MACI,IAAI;AAAA,MACJ,OAAOW,KAAuBD,KAAgC;AAAA,MAC9D,MAAM,gBAAAc,EAAC,QAAA,EAAK,WAAW,YAAYxB,EAAU,WAAW,GAAA,CAAI;AAAA,IAAA;AAAA,IAEhE;AAAA,MACI,IAAI;AAAA,MACJ,OAAOa,KAAuBD,KAAgC;AAAA,MAC9D,MAAM,gBAAAY,EAAC,QAAA,EAAK,WAAW,YAAYxB,EAAU,WAAW,GAAA,CAAI;AAAA,IAAA;AAAA,EAChE,GAGEyB,IAAUF,EAAW,OAAO,CAAAG,MAAU,CAACrB,EAAkB,SAASqB,EAAO,EAAE,CAAC,GAC5EC,IAAkBJ,EAAW,KAAK,CAAAG,MAAUA,EAAO,KAAK,GAExDE,IAAoBC,EAAW,oBAAoBd,KAAaA,CAAS;AAE/E,SACI,gBAAAS,EAAC,SAAK,GAAGR,GAAgB,WAAWY,GAChC,UAAA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,8BACX,UAAA,gBAAAA;AAAA,IAACM;AAAA,IAAA;AAAA,MACG,SAAAL;AAAA,MACA,OAAO,CAACR,CAAgB;AAAA,MACxB,UAAU,CAAAc,MAAQA,KAAQV,EAAYU,EAAK,EAA8B;AAAA,MACzE,UAAAjB;AAAA,MACA,sBAAoB;AAAA,MACpB,WAAS;AAAA,MACT,mBAAoBa,IAAiC,SAAf;AAAA,IAAe;AAAA,EAAA,GAE7D,EAAA,CACJ;AAER;AAGA1B,EAAiB,kBAAkB;AACnCA,EAAiB,wBAAwB;AACzCA,EAAiB,wBAAwB;"}
1
+ {"version":3,"file":"TableViewToggles.js","sources":["../../../src/components/table/TableViewToggles.tsx"],"sourcesContent":["import { type ReactNode, useEffect, useState } from 'react';\nimport { noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport Select, { type SelectOption } from '../selects/Select';\n\nconst typeIcons: Record<TableViewTogglesViewType, string> = {\n TABLE: 'rioglyph-table-view',\n SINGLE_CARD: 'rioglyph-th-list',\n MULTI_CARDS: 'rioglyph-split-view',\n};\n\ntype TableViewToggleOption = SelectOption & {\n id: TableViewTogglesViewType;\n};\n\nexport type TableViewTogglesViewType = 'SINGLE_CARD' | 'MULTI_CARDS' | 'TABLE';\n\nexport type TableViewTogglesProps = {\n /**\n * The current viewType for controlling the TablesViewToggles component.\n *\n * Possible values are:\n *\n * - `'SINGLE_CARD'`\n * - `'MULTI_CARDS'`\n * - `'TABLE'`\n * - `TableViewToggles.VIEW_TYPE_TABLE`\n * - `TableViewToggles.VIEW_TYPE_SINGLE_CARD`\n * - `TableViewToggles.VIEW_TYPE_MULTI_CARDS`\n */\n viewType?: TableViewTogglesViewType;\n\n /**\n * Defines the initial viewType (when viewType is not controlled from the outside).\n *\n * Possible values are:\n *\n * - `'SINGLE_CARD'`\n * - `'MULTI_CARDS'`\n * - `'TABLE'`\n * - `TableViewToggles.VIEW_TYPE_TABLE`\n * - `TableViewToggles.VIEW_TYPE_SINGLE_CARD`\n * - `TableViewToggles.VIEW_TYPE_MULTI_CARDS`\n *\n * @default TableViewToggles.VIEW_TYPE_TABLE\n */\n initialViewType?: TableViewTogglesViewType;\n\n /**\n * Defines the view types which shall not be supported and are omitted.\n *\n * @default []\n */\n disabledViewTypes?: TableViewTogglesViewType[];\n\n /**\n * Callback function for when the user wants to change the viewType.\n *\n * Receives the new type as an argument.\n *\n * @param viewType The new viewType selected by the user.\n */\n onViewTypeChange: (viewType: TableViewTogglesViewType) => void;\n\n /**\n * Optional tooltip content for table view button.\n *\n * @deprecated Use `tableViewLabel` instead.\n */\n tableViewTooltipContent?: string | ReactNode;\n\n /**\n * Optional label content for the table view select item.\n */\n tableViewLabel?: string | ReactNode;\n\n /**\n * Optional tooltip content for single card view button.\n *\n * @deprecated Use `singleCardViewLabel` instead.\n */\n singleCardViewTooltipContent?: string | ReactNode;\n\n /**\n * Optional label content for the single card view select item.\n */\n singleCardViewLabel?: string | ReactNode;\n\n /**\n * Optional tooltip content for multi card view button.\n *\n * @deprecated Use `multiCardsViewLabel` instead.\n */\n multiCardsViewTooltipContent?: string | ReactNode;\n\n /**\n * Optional label content for the multi cards view select item.\n */\n multiCardsViewLabel?: string | ReactNode;\n\n /**\n * Disables all buttons.\n *\n * This means the buttons cannot be clicked. Used when disabling toolbar buttons during loading state or when the\n * corresponding table is empty.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Optional class names for the wrapper element.\n */\n className?: string;\n};\n\nconst TableViewToggles = (props: TableViewTogglesProps) => {\n const {\n viewType,\n initialViewType = 'TABLE',\n disabledViewTypes = [],\n onViewTypeChange = noop,\n tableViewTooltipContent,\n tableViewLabel,\n singleCardViewTooltipContent,\n singleCardViewLabel,\n multiCardsViewTooltipContent,\n multiCardsViewLabel,\n disabled = false,\n className,\n ...remainingProps\n } = props;\n\n const [internalViewType, setInternalViewType] = useState(initialViewType);\n\n // update internal state when external state changes - controlled component case\n useEffect(() => {\n if (viewType) {\n setInternalViewType(viewType);\n }\n }, [viewType]);\n\n const setViewType = (vt: TableViewTogglesViewType) => {\n setInternalViewType(vt);\n onViewTypeChange(vt);\n };\n\n const allOptions: TableViewToggleOption[] = [\n {\n id: 'TABLE',\n label: tableViewLabel ?? tableViewTooltipContent ?? '',\n icon: <span className={`rioglyph ${typeIcons.TABLE}`} />,\n },\n {\n id: 'SINGLE_CARD',\n label: singleCardViewLabel ?? singleCardViewTooltipContent ?? '',\n icon: <span className={`rioglyph ${typeIcons.SINGLE_CARD}`} />,\n },\n {\n id: 'MULTI_CARDS',\n label: multiCardsViewLabel ?? multiCardsViewTooltipContent ?? '',\n icon: <span className={`rioglyph ${typeIcons.MULTI_CARDS}`} />,\n },\n ];\n\n const options = allOptions.filter(option => !disabledViewTypes.includes(option.id));\n const hasOptionLabels = allOptions.some(option => option.label);\n\n const wrapperClassNames = classNames('TableViewToggles', className && className);\n\n return (\n <div {...remainingProps} className={wrapperClassNames}>\n <div className='form-group margin-bottom-0'>\n <Select\n options={options}\n value={[internalViewType]}\n onChange={item => item && setViewType(item.id as TableViewTogglesViewType)}\n disabled={disabled}\n showSelectedItemIcon\n pullRight\n dropdownClassName={!hasOptionLabels ? 'width-auto' : undefined}\n />\n </div>\n </div>\n );\n};\n\n// Don't export values as string but as a distinct union type\nTableViewToggles.VIEW_TYPE_TABLE = 'TABLE' as TableViewTogglesViewType;\nTableViewToggles.VIEW_TYPE_SINGLE_CARD = 'SINGLE_CARD' as TableViewTogglesViewType;\nTableViewToggles.VIEW_TYPE_MULTI_CARDS = 'MULTI_CARDS' as TableViewTogglesViewType;\n\nexport default TableViewToggles;\n"],"names":["typeIcons","TableViewToggles","props","viewType","initialViewType","disabledViewTypes","onViewTypeChange","noop","tableViewTooltipContent","tableViewLabel","singleCardViewTooltipContent","singleCardViewLabel","multiCardsViewTooltipContent","multiCardsViewLabel","disabled","className","remainingProps","internalViewType","setInternalViewType","useState","useEffect","setViewType","vt","allOptions","jsx","options","option","hasOptionLabels","wrapperClassNames","classNames","Select","item"],"mappings":";;;;;AAMA,MAAMA,IAAsD;AAAA,EACxD,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACjB,GA2GMC,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,mBAAAC,IAAoB,CAAA;AAAA,IACpB,kBAAAC,IAAmBC;AAAA,IACnB,yBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,8BAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,8BAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHd,GAEE,CAACe,GAAkBC,CAAmB,IAAIC,EAASf,CAAe;AAGxE,EAAAgB,EAAU,MAAM;AACZ,IAAIjB,KACAe,EAAoBf,CAAQ;AAAA,EAEpC,GAAG,CAACA,CAAQ,CAAC;AAEb,QAAMkB,IAAc,CAACC,MAAiC;AAClD,IAAAJ,EAAoBI,CAAE,GACtBhB,EAAiBgB,CAAE;AAAA,EACvB,GAEMC,IAAsC;AAAA,IACxC;AAAA,MACI,IAAI;AAAA,MACJ,OAAOd,KAAkBD,KAA2B;AAAA,MACpD,MAAM,gBAAAgB,EAAC,QAAA,EAAK,WAAW,YAAYxB,EAAU,KAAK,GAAA,CAAI;AAAA,IAAA;AAAA,IAE1D;AAAA,MACI,IAAI;AAAA,MACJ,OAAOW,KAAuBD,KAAgC;AAAA,MAC9D,MAAM,gBAAAc,EAAC,QAAA,EAAK,WAAW,YAAYxB,EAAU,WAAW,GAAA,CAAI;AAAA,IAAA;AAAA,IAEhE;AAAA,MACI,IAAI;AAAA,MACJ,OAAOa,KAAuBD,KAAgC;AAAA,MAC9D,MAAM,gBAAAY,EAAC,QAAA,EAAK,WAAW,YAAYxB,EAAU,WAAW,GAAA,CAAI;AAAA,IAAA;AAAA,EAChE,GAGEyB,IAAUF,EAAW,OAAO,CAAAG,MAAU,CAACrB,EAAkB,SAASqB,EAAO,EAAE,CAAC,GAC5EC,IAAkBJ,EAAW,KAAK,CAAAG,MAAUA,EAAO,KAAK,GAExDE,IAAoBC,EAAW,oBAAoBd,KAAaA,CAAS;AAE/E,SACI,gBAAAS,EAAC,SAAK,GAAGR,GAAgB,WAAWY,GAChC,UAAA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,8BACX,UAAA,gBAAAA;AAAA,IAACM;AAAA,IAAA;AAAA,MACG,SAAAL;AAAA,MACA,OAAO,CAACR,CAAgB;AAAA,MACxB,UAAU,CAAAc,MAAQA,KAAQV,EAAYU,EAAK,EAA8B;AAAA,MACzE,UAAAjB;AAAA,MACA,sBAAoB;AAAA,MACpB,WAAS;AAAA,MACT,mBAAoBa,IAAiC,SAAf;AAAA,IAAe;AAAA,EAAA,GAE7D,EAAA,CACJ;AAER;AAGA1B,EAAiB,kBAAkB;AACnCA,EAAiB,wBAAwB;AACzCA,EAAiB,wBAAwB;"}
@@ -0,0 +1,26 @@
1
+ import { MouseEvent as ReactMouseEvent, ReactNode } from 'react';
2
+ import { TableRowData, TableRowId, TableSortDirection } from '../Table.types';
3
+ /**
4
+ * User-facing table interaction state and callbacks consumed by header/body cells.
5
+ *
6
+ * These values are conceptually different from the normalized render model:
7
+ * they describe selection, sorting, and row activation/click behavior rather than
8
+ * the structural table draft.
9
+ */
10
+ export type TableInteractionContextValue<RowType extends TableRowData> = {
11
+ showSelectionColumn?: boolean;
12
+ selectedRowIdSet: Set<TableRowId>;
13
+ selectionHeaderContent?: ReactNode;
14
+ isAllRowsSelected?: boolean;
15
+ isSomeRowsSelected?: boolean;
16
+ onToggleAllSelection?: () => void;
17
+ onToggleRowSelection?: (rowId: TableRowId) => void;
18
+ activeRowId?: TableRowId;
19
+ onActiveRowChange?: (rowId: TableRowId | undefined, row: RowType, rowIndex: number) => void;
20
+ onRowClick?: (row: RowType, rowIndex: number) => void;
21
+ isClickable: boolean;
22
+ onSortChange?: (columnKey: string, direction: TableSortDirection, event: ReactMouseEvent<HTMLButtonElement>) => void;
23
+ };
24
+ export declare const TableInteractionContext: import('react').Context<TableInteractionContextValue<TableRowData> | null>;
25
+ export declare const useOptionalTableInteractionContext: <RowType extends TableRowData>() => TableInteractionContextValue<RowType> | null;
26
+ export declare const useTableInteractionContext: <RowType extends TableRowData>() => TableInteractionContextValue<RowType>;
@@ -0,0 +1,7 @@
1
+ import { createContext as t, useContext as e } from "react";
2
+ const n = t(null), a = () => e(n);
3
+ export {
4
+ n as TableInteractionContext,
5
+ a as useOptionalTableInteractionContext
6
+ };
7
+ //# sourceMappingURL=TableInteractionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableInteractionContext.js","sources":["../../../../src/components/table/context/TableInteractionContext.tsx"],"sourcesContent":["import { createContext, useContext, type MouseEvent as ReactMouseEvent, type ReactNode } from 'react';\n\nimport type { TableRowData, TableRowId, TableSortDirection } from '../Table.types';\n\n/**\n * User-facing table interaction state and callbacks consumed by header/body cells.\n *\n * These values are conceptually different from the normalized render model:\n * they describe selection, sorting, and row activation/click behavior rather than\n * the structural table draft.\n */\nexport type TableInteractionContextValue<RowType extends TableRowData> = {\n showSelectionColumn?: boolean;\n selectedRowIdSet: Set<TableRowId>;\n selectionHeaderContent?: ReactNode;\n isAllRowsSelected?: boolean;\n isSomeRowsSelected?: boolean;\n onToggleAllSelection?: () => void;\n onToggleRowSelection?: (rowId: TableRowId) => void;\n activeRowId?: TableRowId;\n onActiveRowChange?: (rowId: TableRowId | undefined, row: RowType, rowIndex: number) => void;\n onRowClick?: (row: RowType, rowIndex: number) => void;\n isClickable: boolean;\n onSortChange?: (\n columnKey: string,\n direction: TableSortDirection,\n event: ReactMouseEvent<HTMLButtonElement>\n ) => void;\n};\n\nexport const TableInteractionContext = createContext<TableInteractionContextValue<TableRowData> | null>(null);\n\nexport const useOptionalTableInteractionContext = <RowType extends TableRowData>() =>\n useContext(TableInteractionContext) as TableInteractionContextValue<RowType> | null;\n\nexport const useTableInteractionContext = <RowType extends TableRowData>() => {\n const context = useOptionalTableInteractionContext<RowType>();\n\n if (!context) {\n throw new Error('Table interaction context is missing.');\n }\n\n return context;\n};\n"],"names":["TableInteractionContext","createContext","useOptionalTableInteractionContext","useContext"],"mappings":";AA8BO,MAAMA,IAA0BC,EAAiE,IAAI,GAE/FC,IAAqC,MAC9CC,EAAWH,CAAuB;"}
@@ -0,0 +1,25 @@
1
+ import { PointerEvent as ReactPointerEvent, RefObject, UIEvent as ReactUIEvent } from 'react';
2
+ import { DragEndEvent } from '@dnd-kit/core';
3
+ /**
4
+ * Layout and column-behavior context.
5
+ *
6
+ * This groups scroll synchronization, sticky-column metadata, and drag/resize
7
+ * callbacks so header/footer/cell components do not need the full render model
8
+ * just to participate in layout behavior.
9
+ */
10
+ export type TableLayoutContextValue = {
11
+ handleBodyScroll?: (event: ReactUIEvent<HTMLElement> | undefined) => void;
12
+ tableHeadRowRef: RefObject<HTMLDivElement>;
13
+ tableFooterRowRef: RefObject<HTMLDivElement>;
14
+ draggableColumnKeys?: string[];
15
+ lastResizableColumnKey?: string;
16
+ resettableColumnKeys?: Set<string>;
17
+ stickyLeftColumnCount?: number;
18
+ stickyFooter?: boolean;
19
+ onColumnDragEnd?: (event: DragEndEvent) => void;
20
+ onColumnResizeReset?: (columnKey: string) => void;
21
+ onColumnResizeStart?: (columnKey: string, event: ReactPointerEvent<HTMLDivElement>) => void;
22
+ };
23
+ export declare const TableLayoutContext: import('react').Context<TableLayoutContextValue | null>;
24
+ export declare const useOptionalTableLayoutContext: () => TableLayoutContextValue | null;
25
+ export declare const useTableLayoutContext: () => TableLayoutContextValue;
@@ -0,0 +1,7 @@
1
+ import { createContext as t, useContext as o } from "react";
2
+ const e = t(null), a = () => o(e);
3
+ export {
4
+ e as TableLayoutContext,
5
+ a as useOptionalTableLayoutContext
6
+ };
7
+ //# sourceMappingURL=TableLayoutContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableLayoutContext.js","sources":["../../../../src/components/table/context/TableLayoutContext.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n type PointerEvent as ReactPointerEvent,\n type RefObject,\n type UIEvent as ReactUIEvent,\n} from 'react';\nimport type { DragEndEvent } from '@dnd-kit/core';\n\n/**\n * Layout and column-behavior context.\n *\n * This groups scroll synchronization, sticky-column metadata, and drag/resize\n * callbacks so header/footer/cell components do not need the full render model\n * just to participate in layout behavior.\n */\nexport type TableLayoutContextValue = {\n handleBodyScroll?: (event: ReactUIEvent<HTMLElement> | undefined) => void;\n tableHeadRowRef: RefObject<HTMLDivElement>;\n tableFooterRowRef: RefObject<HTMLDivElement>;\n draggableColumnKeys?: string[];\n lastResizableColumnKey?: string;\n resettableColumnKeys?: Set<string>;\n stickyLeftColumnCount?: number;\n stickyFooter?: boolean;\n onColumnDragEnd?: (event: DragEndEvent) => void;\n onColumnResizeReset?: (columnKey: string) => void;\n onColumnResizeStart?: (columnKey: string, event: ReactPointerEvent<HTMLDivElement>) => void;\n};\n\nexport const TableLayoutContext = createContext<TableLayoutContextValue | null>(null);\n\nexport const useOptionalTableLayoutContext = () => useContext(TableLayoutContext);\n\nexport const useTableLayoutContext = () => {\n const context = useOptionalTableLayoutContext();\n\n if (!context) {\n throw new Error('Table layout context is missing.');\n }\n\n return context;\n};\n"],"names":["TableLayoutContext","createContext","useOptionalTableLayoutContext","useContext"],"mappings":";AA8BO,MAAMA,IAAqBC,EAA8C,IAAI,GAEvEC,IAAgC,MAAMC,EAAWH,CAAkB;"}
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import { MotionProps } from 'motion/react';
3
+ import { TableCellClassName, TableExpandedRowAnimation, TableRowClassName, TableRowData, TableViewType } from '../Table.types';
4
+ import { TableViewCardClasses } from '../model/tableView.types';
5
+ /**
6
+ * Render-facing table configuration.
7
+ *
8
+ * These values come from public table props and are forwarded into row/cell/header
9
+ * components during rendering. They are separate from the normalized render model,
10
+ * which lives in `TableRenderContext`.
11
+ */
12
+ export type TableRenderConfigContextValue<RowType extends TableRowData> = {
13
+ viewType: TableViewType;
14
+ isTableView: boolean;
15
+ cardClasses: TableViewCardClasses;
16
+ noRowsState: ReactNode;
17
+ rowKey?: keyof RowType | ((row: RowType, rowIndex: number) => string | number);
18
+ rowClassName?: TableRowClassName<RowType>;
19
+ cellClassName?: TableCellClassName<RowType>;
20
+ rowAnimationProps?: MotionProps | ((row: RowType, rowIndex: number) => MotionProps);
21
+ expandedRowAnimation?: TableExpandedRowAnimation;
22
+ virtualizedRows?: boolean;
23
+ virtualizationOverscan?: number;
24
+ };
25
+ export declare const TableRenderConfigContext: import('react').Context<TableRenderConfigContextValue<TableRowData> | null>;
26
+ export declare const useOptionalTableRenderConfigContext: <RowType extends TableRowData>() => TableRenderConfigContextValue<RowType> | null;
27
+ export declare const useTableRenderConfigContext: <RowType extends TableRowData>() => TableRenderConfigContextValue<RowType>;
@@ -0,0 +1,7 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ const n = e(null), r = () => t(n);
3
+ export {
4
+ n as TableRenderConfigContext,
5
+ r as useOptionalTableRenderConfigContext
6
+ };
7
+ //# sourceMappingURL=TableRenderConfigContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRenderConfigContext.js","sources":["../../../../src/components/table/context/TableRenderConfigContext.tsx"],"sourcesContent":["import { createContext, useContext, type ReactNode } from 'react';\nimport type { MotionProps } from 'motion/react';\n\nimport type {\n TableCellClassName,\n TableExpandedRowAnimation,\n TableRowClassName,\n TableRowData,\n TableViewType,\n} from '../Table.types';\nimport type { TableViewCardClasses } from '../model/tableView.types';\n\n/**\n * Render-facing table configuration.\n *\n * These values come from public table props and are forwarded into row/cell/header\n * components during rendering. They are separate from the normalized render model,\n * which lives in `TableRenderContext`.\n */\nexport type TableRenderConfigContextValue<RowType extends TableRowData> = {\n viewType: TableViewType;\n isTableView: boolean;\n cardClasses: TableViewCardClasses;\n noRowsState: ReactNode;\n rowKey?: keyof RowType | ((row: RowType, rowIndex: number) => string | number);\n rowClassName?: TableRowClassName<RowType>;\n cellClassName?: TableCellClassName<RowType>;\n rowAnimationProps?: MotionProps | ((row: RowType, rowIndex: number) => MotionProps);\n expandedRowAnimation?: TableExpandedRowAnimation;\n virtualizedRows?: boolean;\n virtualizationOverscan?: number;\n};\n\nexport const TableRenderConfigContext = createContext<TableRenderConfigContextValue<TableRowData> | null>(null);\n\nexport const useOptionalTableRenderConfigContext = <RowType extends TableRowData>() =>\n useContext(TableRenderConfigContext) as TableRenderConfigContextValue<RowType> | null;\n\nexport const useTableRenderConfigContext = <RowType extends TableRowData>() => {\n const context = useOptionalTableRenderConfigContext<RowType>();\n\n if (!context) {\n throw new Error('Table render config context is missing.');\n }\n\n return context;\n};\n"],"names":["TableRenderConfigContext","createContext","useOptionalTableRenderConfigContext","useContext"],"mappings":";AAiCO,MAAMA,IAA2BC,EAAkE,IAAI,GAEjGC,IAAsC,MAC/CC,EAAWH,CAAwB;"}
@@ -0,0 +1,85 @@
1
+ import { ReactNode } from 'react';
2
+ import { TableColumnDefinition, TableHorizontalAlign, TableRowData, TableRowId, TableVerticalAlign } from '../Table.types';
3
+ import { TableViewHeader } from '../model/tableView.types';
4
+ export type RenderHeaderColumn<RowType extends TableRowData> = {
5
+ id: string;
6
+ columnKey?: string;
7
+ label: ReactNode;
8
+ icon?: string;
9
+ filter?: ReactNode;
10
+ hideLabel?: boolean;
11
+ width?: number | string;
12
+ mobileLabel?: string;
13
+ horizontalAlign?: TableHorizontalAlign;
14
+ verticalAlign?: TableVerticalAlign;
15
+ headerClassName?: string;
16
+ hideOnMobile?: boolean;
17
+ sortable?: boolean;
18
+ draggable?: boolean;
19
+ resizeable?: boolean;
20
+ minResizeWidth?: number;
21
+ maxResizeWidth?: number;
22
+ row: number;
23
+ colSpan: number;
24
+ rowSpan: number;
25
+ source?: RowType;
26
+ };
27
+ /**
28
+ * Mutable draft of the current render pass.
29
+ *
30
+ * The table keeps React composability, but still needs a normalized table model
31
+ * for features such as header placement, footer detection, virtualization, and
32
+ * stable body-row rendering.
33
+ *
34
+ * The table therefore works in two internal stages:
35
+ * 1. Header/body/footer sub-components register the structure they produce into this draft.
36
+ * 2. `Table` promotes that draft into stable draft state and renders from that.
37
+ *
38
+ * The draft is intentionally recreated on every render pass and must not be treated
39
+ * as persistent state.
40
+ */
41
+ export type TableRenderDraft<RowType extends TableRowData> = {
42
+ headerColumns: RenderHeaderColumn<RowType>[];
43
+ bodyRows: {
44
+ rowId: TableRowId;
45
+ rowIndex: number;
46
+ kind: 'data' | 'expanded' | 'expanded-full-width' | 'group' | 'group-footer' | 'spacer';
47
+ disabled?: boolean;
48
+ render: () => ReactNode;
49
+ }[];
50
+ bodyMaxHeight?: string;
51
+ hasFooter?: boolean;
52
+ hasFooterCells?: boolean;
53
+ hasExpandableRows?: boolean;
54
+ };
55
+ export type RenderBodyRow<RowType extends TableRowData> = Omit<TableRenderDraft<RowType>['bodyRows'][number], 'render'>;
56
+ /**
57
+ * Structural render context.
58
+ *
59
+ * This context only carries the normalized render model built from the current
60
+ * render pass. Public render configuration such as `rowClassName` or card/table
61
+ * view mode lives in `TableRenderConfigContext`.
62
+ */
63
+ export type TableRenderContextValue<RowType extends TableRowData> = {
64
+ header?: TableViewHeader<RowType>;
65
+ columns: RenderHeaderColumn<RowType>[];
66
+ columnDefinitionsByKey: Map<string, TableColumnDefinition<RowType>>;
67
+ columnIndexByKey: Map<string, number>;
68
+ bodyRows: RenderBodyRow<RowType>[];
69
+ renderBodyRow?: (row: RenderBodyRow<RowType>) => ReactNode;
70
+ renderDraft: TableRenderDraft<RowType>;
71
+ hasFooterCells?: boolean;
72
+ hasExpandableRows?: boolean;
73
+ /**
74
+ * Switches body rows into the registration pass.
75
+ *
76
+ * While this flag is true, row components register their normalized metadata in
77
+ * `renderDraft.bodyRows` and return `null` instead of rendering DOM directly.
78
+ * `TableBody` then performs the second pass by rendering the collected rows
79
+ * through `renderBodyRow(...)`.
80
+ */
81
+ isRegisteringBodyRows?: boolean;
82
+ };
83
+ export declare const TableRenderContext: import('react').Context<TableRenderContextValue<TableRowData> | null>;
84
+ export declare const useOptionalTableRenderContext: <RowType extends TableRowData>() => TableRenderContextValue<RowType> | null;
85
+ export declare const useTableRenderContext: <RowType extends TableRowData>() => TableRenderContextValue<RowType>;
@@ -0,0 +1,7 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ const n = e(null), r = () => t(n);
3
+ export {
4
+ n as TableRenderContext,
5
+ r as useOptionalTableRenderContext
6
+ };
7
+ //# sourceMappingURL=TableRenderContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRenderContext.js","sources":["../../../../src/components/table/context/TableRenderContext.tsx"],"sourcesContent":["import { createContext, useContext, type ReactNode } from 'react';\n\nimport type {\n TableColumnDefinition,\n TableHorizontalAlign,\n TableRowData,\n TableRowId,\n TableVerticalAlign,\n} from '../Table.types';\nimport type { TableViewHeader } from '../model/tableView.types';\n\nexport type RenderHeaderColumn<RowType extends TableRowData> = {\n id: string;\n columnKey?: string;\n label: ReactNode;\n icon?: string;\n filter?: ReactNode;\n hideLabel?: boolean;\n width?: number | string;\n mobileLabel?: string;\n horizontalAlign?: TableHorizontalAlign;\n verticalAlign?: TableVerticalAlign;\n headerClassName?: string;\n hideOnMobile?: boolean;\n sortable?: boolean;\n draggable?: boolean;\n resizeable?: boolean;\n minResizeWidth?: number;\n maxResizeWidth?: number;\n row: number;\n colSpan: number;\n rowSpan: number;\n source?: RowType;\n};\n\n/**\n * Mutable draft of the current render pass.\n *\n * The table keeps React composability, but still needs a normalized table model\n * for features such as header placement, footer detection, virtualization, and\n * stable body-row rendering.\n *\n * The table therefore works in two internal stages:\n * 1. Header/body/footer sub-components register the structure they produce into this draft.\n * 2. `Table` promotes that draft into stable draft state and renders from that.\n *\n * The draft is intentionally recreated on every render pass and must not be treated\n * as persistent state.\n */\nexport type TableRenderDraft<RowType extends TableRowData> = {\n headerColumns: RenderHeaderColumn<RowType>[];\n bodyRows: {\n rowId: TableRowId;\n rowIndex: number;\n kind: 'data' | 'expanded' | 'expanded-full-width' | 'group' | 'group-footer' | 'spacer';\n disabled?: boolean;\n render: () => ReactNode;\n }[];\n bodyMaxHeight?: string;\n hasFooter?: boolean;\n hasFooterCells?: boolean;\n hasExpandableRows?: boolean;\n};\n\nexport type RenderBodyRow<RowType extends TableRowData> = Omit<TableRenderDraft<RowType>['bodyRows'][number], 'render'>;\n\n/**\n * Structural render context.\n *\n * This context only carries the normalized render model built from the current\n * render pass. Public render configuration such as `rowClassName` or card/table\n * view mode lives in `TableRenderConfigContext`.\n */\nexport type TableRenderContextValue<RowType extends TableRowData> = {\n header?: TableViewHeader<RowType>;\n columns: RenderHeaderColumn<RowType>[];\n columnDefinitionsByKey: Map<string, TableColumnDefinition<RowType>>;\n columnIndexByKey: Map<string, number>;\n bodyRows: RenderBodyRow<RowType>[];\n renderBodyRow?: (row: RenderBodyRow<RowType>) => ReactNode;\n renderDraft: TableRenderDraft<RowType>;\n hasFooterCells?: boolean;\n hasExpandableRows?: boolean;\n /**\n * Switches body rows into the registration pass.\n *\n * While this flag is true, row components register their normalized metadata in\n * `renderDraft.bodyRows` and return `null` instead of rendering DOM directly.\n * `TableBody` then performs the second pass by rendering the collected rows\n * through `renderBodyRow(...)`.\n */\n isRegisteringBodyRows?: boolean;\n};\n\nexport const TableRenderContext = createContext<TableRenderContextValue<TableRowData> | null>(null);\n\nexport const useOptionalTableRenderContext = <RowType extends TableRowData>() =>\n useContext(TableRenderContext) as TableRenderContextValue<RowType> | null;\n\nexport const useTableRenderContext = <RowType extends TableRowData>() => {\n const context = useOptionalTableRenderContext<RowType>();\n\n if (!context) {\n throw new Error('Table render context is missing.');\n }\n\n return context;\n};\n"],"names":["TableRenderContext","createContext","useOptionalTableRenderContext","useContext"],"mappings":";AA8FO,MAAMA,IAAqBC,EAA4D,IAAI,GAErFC,IAAgC,MACzCC,EAAWH,CAAkB;"}
@@ -0,0 +1,31 @@
1
+ import { TableHtmlAttributes, TableRowData, TableRowId } from '../Table.types';
2
+ export type TableSection = 'header' | 'body' | 'footer';
3
+ export type TableBodyContextValue = {
4
+ nextRowIndex: () => number;
5
+ };
6
+ export type TableHeaderContextValue = {
7
+ nextHeaderRowIndex: () => number;
8
+ };
9
+ export type TableHeaderRowContextValue = {
10
+ row: number;
11
+ };
12
+ export type TableRenderRowContextValue = {
13
+ nextColumnIndex: (explicitColumnIndex?: number, span?: number) => number;
14
+ rowIndex: number;
15
+ rowId: TableRowId;
16
+ rowData: TableRowData;
17
+ };
18
+ export declare const TableSectionContext: import('react').Context<TableSection | null>;
19
+ export declare const TableBodyContext: import('react').Context<TableBodyContextValue | null>;
20
+ export declare const TableHeaderContext: import('react').Context<TableHeaderContextValue | null>;
21
+ export declare const TableHeaderRowContext: import('react').Context<TableHeaderRowContextValue | null>;
22
+ export declare const TableRowContext: import('react').Context<TableRenderRowContextValue | null>;
23
+ export declare const useOptionalTableSection: () => TableSection | null;
24
+ export declare const useTableBodyContext: () => TableBodyContextValue | null;
25
+ export declare const useTableHeaderContext: () => TableHeaderContextValue | null;
26
+ export declare const useTableHeaderRowContext: () => TableHeaderRowContextValue | null;
27
+ export declare const useTableRowContext: <RowType extends TableRowData>() => (Omit<TableRenderRowContextValue, "rowData"> & {
28
+ rowData: RowType;
29
+ }) | null;
30
+ export declare const isTableHtmlAttribute: (key: string) => boolean;
31
+ export declare const extractTableHtmlAttributes: (props: Record<string, unknown>) => TableHtmlAttributes;
@@ -0,0 +1,17 @@
1
+ import { createContext as e, useContext as n } from "react";
2
+ const l = e(null), a = e(null), s = e(null), r = e(null), c = e(null), u = () => n(l), x = () => n(a), T = () => n(s), C = () => n(r), d = () => n(c), i = (t) => t.startsWith("aria-") || t.startsWith("data-") || ["id", "lang", "title", "translate", "dir"].includes(t), H = (t) => Object.fromEntries(Object.entries(t).filter(([o]) => i(o)));
3
+ export {
4
+ a as TableBodyContext,
5
+ s as TableHeaderContext,
6
+ r as TableHeaderRowContext,
7
+ c as TableRowContext,
8
+ l as TableSectionContext,
9
+ H as extractTableHtmlAttributes,
10
+ i as isTableHtmlAttribute,
11
+ u as useOptionalTableSection,
12
+ x as useTableBodyContext,
13
+ T as useTableHeaderContext,
14
+ C as useTableHeaderRowContext,
15
+ d as useTableRowContext
16
+ };
17
+ //# sourceMappingURL=TableStructureContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableStructureContext.js","sources":["../../../../src/components/table/context/TableStructureContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type { TableHtmlAttributes, TableRowData, TableRowId } from '../Table.types';\n\nexport type TableSection = 'header' | 'body' | 'footer';\n\nexport type TableBodyContextValue = {\n nextRowIndex: () => number;\n};\n\nexport type TableHeaderContextValue = {\n nextHeaderRowIndex: () => number;\n};\n\nexport type TableHeaderRowContextValue = {\n row: number;\n};\n\nexport type TableRenderRowContextValue = {\n nextColumnIndex: (explicitColumnIndex?: number, span?: number) => number;\n rowIndex: number;\n rowId: TableRowId;\n rowData: TableRowData;\n};\n\nexport const TableSectionContext = createContext<TableSection | null>(null);\nexport const TableBodyContext = createContext<TableBodyContextValue | null>(null);\nexport const TableHeaderContext = createContext<TableHeaderContextValue | null>(null);\nexport const TableHeaderRowContext = createContext<TableHeaderRowContextValue | null>(null);\nexport const TableRowContext = createContext<TableRenderRowContextValue | null>(null);\n\nexport const useOptionalTableSection = () => useContext(TableSectionContext);\n\nexport const useTableBodyContext = () => useContext(TableBodyContext);\nexport const useTableHeaderContext = () => useContext(TableHeaderContext);\nexport const useTableHeaderRowContext = () => useContext(TableHeaderRowContext);\n\nexport const useTableRowContext = <RowType extends TableRowData>() =>\n useContext(TableRowContext) as (Omit<TableRenderRowContextValue, 'rowData'> & { rowData: RowType }) | null;\n\nexport const isTableHtmlAttribute = (key: string) =>\n key.startsWith('aria-') || key.startsWith('data-') || ['id', 'lang', 'title', 'translate', 'dir'].includes(key);\n\nexport const extractTableHtmlAttributes = (props: Record<string, unknown>) =>\n Object.fromEntries(Object.entries(props).filter(([key]) => isTableHtmlAttribute(key))) as TableHtmlAttributes;\n"],"names":["TableSectionContext","createContext","TableBodyContext","TableHeaderContext","TableHeaderRowContext","TableRowContext","useOptionalTableSection","useContext","useTableBodyContext","useTableHeaderContext","useTableHeaderRowContext","useTableRowContext","isTableHtmlAttribute","key","extractTableHtmlAttributes","props"],"mappings":";AAyBO,MAAMA,IAAsBC,EAAmC,IAAI,GAC7DC,IAAmBD,EAA4C,IAAI,GACnEE,IAAqBF,EAA8C,IAAI,GACvEG,IAAwBH,EAAiD,IAAI,GAC7EI,IAAkBJ,EAAiD,IAAI,GAEvEK,IAA0B,MAAMC,EAAWP,CAAmB,GAE9DQ,IAAsB,MAAMD,EAAWL,CAAgB,GACvDO,IAAwB,MAAMF,EAAWJ,CAAkB,GAC3DO,IAA2B,MAAMH,EAAWH,CAAqB,GAEjEO,IAAqB,MAC9BJ,EAAWF,CAAe,GAEjBO,IAAuB,CAACC,MACjCA,EAAI,WAAW,OAAO,KAAKA,EAAI,WAAW,OAAO,KAAK,CAAC,MAAM,QAAQ,SAAS,aAAa,KAAK,EAAE,SAASA,CAAG,GAErGC,IAA6B,CAACC,MACvC,OAAO,YAAY,OAAO,QAAQA,CAAK,EAAE,OAAO,CAAC,CAACF,CAAG,MAAMD,EAAqBC,CAAG,CAAC,CAAC;"}
@@ -1,3 +1,3 @@
1
- import { TableColumnDefinition } from '../Table.types';
1
+ import { TableColumnDefinition, TableRowData } from '../Table.types';
2
2
  export declare const toCssSize: (value?: number | string) => string | undefined;
3
- export declare const getColumnTrack: <RowType extends Record<string, unknown>>(column: TableColumnDefinition<RowType>, measuredMaxWidth?: string) => string;
3
+ export declare const getColumnTrack: <RowType extends TableRowData>(column: TableColumnDefinition<RowType>, measuredMaxWidth?: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"columnSizing.js","sources":["../../../../src/components/table/layout/columnSizing.ts"],"sourcesContent":["import type { TableColumnDefinition } from '../Table.types';\nimport { MIN_COLUMN_WIDTH } from '../tableSizing.constants';\n\nexport const toCssSize = (value?: number | string) => {\n if (value === undefined) {\n return;\n }\n\n return typeof value === 'number' ? `${value}px` : value;\n};\n\nconst isPercentSize = (value: string) => value.trim().endsWith('%');\nconst getPercentValue = (value: string) => {\n const percentValue = Number.parseFloat(value);\n\n return Number.isFinite(percentValue) ? percentValue : undefined;\n};\n\nexport const getColumnTrack = <RowType extends Record<string, unknown>>(\n column: TableColumnDefinition<RowType>,\n measuredMaxWidth?: string\n) => {\n const width = toCssSize(column.width);\n\n if (width) {\n if (isPercentSize(width)) {\n const percentValue = getPercentValue(width);\n\n if (percentValue !== undefined) {\n return `minmax(0, calc(var(--table-width) * ${percentValue} / 100))`;\n }\n\n return `minmax(0, ${width})`;\n }\n\n return `minmax(0, ${width})`;\n }\n\n if (measuredMaxWidth) {\n return `minmax(${MIN_COLUMN_WIDTH}, ${measuredMaxWidth})`;\n }\n\n // Unconfigured columns should share the available width evenly\n // and be allowed to shrink with the table width.\n return `minmax(${MIN_COLUMN_WIDTH}, 1fr)`;\n};\n"],"names":["toCssSize","value","isPercentSize","getPercentValue","percentValue","getColumnTrack","column","measuredMaxWidth","width","MIN_COLUMN_WIDTH"],"mappings":";AAGO,MAAMA,IAAY,CAACC,MAA4B;AAClD,MAAIA,MAAU;AAId,WAAO,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA;AACtD,GAEMC,IAAgB,CAACD,MAAkBA,EAAM,KAAA,EAAO,SAAS,GAAG,GAC5DE,IAAkB,CAACF,MAAkB;AACvC,QAAMG,IAAe,OAAO,WAAWH,CAAK;AAE5C,SAAO,OAAO,SAASG,CAAY,IAAIA,IAAe;AAC1D,GAEaC,IAAiB,CAC1BC,GACAC,MACC;AACD,QAAMC,IAAQR,EAAUM,EAAO,KAAK;AAEpC,MAAIE,GAAO;AACP,QAAIN,EAAcM,CAAK,GAAG;AACtB,YAAMJ,IAAeD,EAAgBK,CAAK;AAE1C,aAAIJ,MAAiB,SACV,uCAAuCA,CAAY,aAGvD,aAAaI,CAAK;AAAA,IAC7B;AAEA,WAAO,aAAaA,CAAK;AAAA,EAC7B;AAEA,SAAID,IACO,UAAUE,CAAgB,KAAKF,CAAgB,MAKnD,UAAUE,CAAgB;AACrC;"}
1
+ {"version":3,"file":"columnSizing.js","sources":["../../../../src/components/table/layout/columnSizing.ts"],"sourcesContent":["import type { TableColumnDefinition, TableRowData } from '../Table.types';\nimport { MIN_COLUMN_WIDTH } from '../tableSizing.constants';\n\nexport const toCssSize = (value?: number | string) => {\n if (value === undefined) {\n return;\n }\n\n return typeof value === 'number' ? `${value}px` : value;\n};\n\nconst isPercentSize = (value: string) => value.trim().endsWith('%');\nconst getPercentValue = (value: string) => {\n const percentValue = Number.parseFloat(value);\n\n return Number.isFinite(percentValue) ? percentValue : undefined;\n};\n\nexport const getColumnTrack = <RowType extends TableRowData>(\n column: TableColumnDefinition<RowType>,\n measuredMaxWidth?: string\n) => {\n const width = toCssSize(column.width);\n\n if (width) {\n if (isPercentSize(width)) {\n const percentValue = getPercentValue(width);\n\n if (percentValue !== undefined) {\n return `minmax(0, calc(var(--table-width) * ${percentValue} / 100))`;\n }\n\n return `minmax(0, ${width})`;\n }\n\n return `minmax(0, ${width})`;\n }\n\n if (measuredMaxWidth) {\n return `minmax(${MIN_COLUMN_WIDTH}, ${measuredMaxWidth})`;\n }\n\n // Unconfigured columns should share the available width evenly\n // and be allowed to shrink with the table width.\n return `minmax(${MIN_COLUMN_WIDTH}, 1fr)`;\n};\n"],"names":["toCssSize","value","isPercentSize","getPercentValue","percentValue","getColumnTrack","column","measuredMaxWidth","width","MIN_COLUMN_WIDTH"],"mappings":";AAGO,MAAMA,IAAY,CAACC,MAA4B;AAClD,MAAIA,MAAU;AAId,WAAO,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA;AACtD,GAEMC,IAAgB,CAACD,MAAkBA,EAAM,KAAA,EAAO,SAAS,GAAG,GAC5DE,IAAkB,CAACF,MAAkB;AACvC,QAAMG,IAAe,OAAO,WAAWH,CAAK;AAE5C,SAAO,OAAO,SAASG,CAAY,IAAIA,IAAe;AAC1D,GAEaC,IAAiB,CAC1BC,GACAC,MACC;AACD,QAAMC,IAAQR,EAAUM,EAAO,KAAK;AAEpC,MAAIE,GAAO;AACP,QAAIN,EAAcM,CAAK,GAAG;AACtB,YAAMJ,IAAeD,EAAgBK,CAAK;AAE1C,aAAIJ,MAAiB,SACV,uCAAuCA,CAAY,aAGvD,aAAaI,CAAK;AAAA,IAC7B;AAEA,WAAO,aAAaA,CAAK;AAAA,EAC7B;AAEA,SAAID,IACO,UAAUE,CAAgB,KAAKF,CAAgB,MAKnD,UAAUE,CAAgB;AACrC;"}
@@ -1,12 +1,12 @@
1
1
  import { DragEndEvent } from '@dnd-kit/core';
2
- import { TableColumnDefinition } from '../Table.types';
3
- type UseDraggableColumnsProps<RowType extends Record<string, unknown>> = {
2
+ import { TableColumnDefinition, TableRowData } from '../Table.types';
3
+ type UseDraggableColumnsProps<RowType extends TableRowData> = {
4
4
  columns: TableColumnDefinition<RowType>[];
5
5
  columnOrder?: string[];
6
6
  enabled: boolean;
7
7
  onColumnOrderChange?: (columnOrder: string[]) => void;
8
8
  };
9
- export declare const useDraggableColumns: <RowType extends Record<string, unknown>>(props: UseDraggableColumnsProps<RowType>) => {
9
+ export declare const useDraggableColumns: <RowType extends TableRowData>(props: UseDraggableColumnsProps<RowType>) => {
10
10
  draggableColumnKeys: (string | Extract<keyof RowType, string>)[];
11
11
  handleColumnDragEnd: (event: DragEndEvent) => void;
12
12
  orderedColumns: TableColumnDefinition<RowType>[];
@@ -1,17 +1,17 @@
1
1
  import { useState as D, useEffect as v } from "react";
2
2
  import h from "../../../utils/arrayMove.js";
3
- const K = (s, o) => {
4
- const l = o.map((n) => n.key), i = new Set(l), a = s.filter((n) => i.has(n)), u = l.filter((n) => !a.includes(n));
5
- return [...a, ...u];
6
- }, O = (s) => s.draggable !== !1, E = (s) => {
7
- const { columns: o, columnOrder: l, enabled: i, onColumnOrderChange: a } = s, [u, n] = D(() => o.map((e) => e.key)), p = K(l ?? u, o), d = l !== void 0;
3
+ const K = (s, t) => {
4
+ const l = t.map((n) => n.key), i = new Set(l), u = s.filter((n) => i.has(n)), a = l.filter((n) => !u.includes(n));
5
+ return [...u, ...a];
6
+ }, O = (s) => s.draggable === !0, E = (s) => {
7
+ const { columns: t, columnOrder: l, enabled: i, onColumnOrderChange: u } = s, [a, n] = D(() => t.map((e) => e.key)), p = K(l ?? a, t), d = l !== void 0;
8
8
  v(() => {
9
9
  d || n((e) => {
10
- const r = K(e, o);
10
+ const r = K(e, t);
11
11
  return JSON.stringify(e) === JSON.stringify(r) ? e : r;
12
12
  });
13
- }, [o, d]);
14
- const S = new Map(o.map((e) => [e.key, e])), m = p.flatMap((e) => {
13
+ }, [t, d]);
14
+ const S = new Map(t.map((e) => [e.key, e])), m = p.flatMap((e) => {
15
15
  const r = S.get(e);
16
16
  return r ? [r] : [];
17
17
  }), c = m.filter(O).map((e) => e.key);
@@ -23,20 +23,20 @@ const K = (s, o) => {
23
23
  const r = String(e.active.id), y = e.over ? String(e.over.id) : void 0;
24
24
  if (!y || r === y)
25
25
  return;
26
- const f = c.indexOf(r), C = c.indexOf(y);
27
- if (f < 0 || C < 0)
26
+ const C = c.indexOf(r), f = c.indexOf(y);
27
+ if (C < 0 || f < 0)
28
28
  return;
29
- const b = h(c, f, C);
29
+ const b = h(c, C, f);
30
30
  let x = 0;
31
- const g = m.map((t) => {
32
- if (!O(t))
33
- return t.key;
31
+ const g = m.map((o) => {
32
+ if (!O(o))
33
+ return o.key;
34
34
  const k = b[x];
35
- return x += 1, k ?? t.key;
35
+ return x += 1, k ?? o.key;
36
36
  });
37
37
  d || n(
38
- (t) => JSON.stringify(t) === JSON.stringify(g) ? t : g
39
- ), a?.(g);
38
+ (o) => JSON.stringify(o) === JSON.stringify(g) ? o : g
39
+ ), u?.(g);
40
40
  },
41
41
  orderedColumns: m
42
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDraggableColumns.js","sources":["../../../../src/components/table/layout/useDraggableColumns.ts"],"sourcesContent":["import type { DragEndEvent } from '@dnd-kit/core';\nimport { useEffect, useState } from 'react';\n\nimport arrayMove from '../../../utils/arrayMove';\nimport type { TableColumnDefinition } from '../Table.types';\n\ntype UseDraggableColumnsProps<RowType extends Record<string, unknown>> = {\n columns: TableColumnDefinition<RowType>[];\n columnOrder?: string[];\n enabled: boolean;\n onColumnOrderChange?: (columnOrder: string[]) => void;\n};\n\nconst reconcileColumnOrder = <RowType extends Record<string, unknown>>(\n previousColumnOrder: string[],\n columns: TableColumnDefinition<RowType>[]\n) => {\n const nextColumnKeys = columns.map(column => column.key);\n const previousColumnKeySet = new Set(nextColumnKeys);\n const preservedColumnOrder = previousColumnOrder.filter(columnKey => previousColumnKeySet.has(columnKey));\n const missingColumnKeys = nextColumnKeys.filter(columnKey => !preservedColumnOrder.includes(columnKey));\n\n return [...preservedColumnOrder, ...missingColumnKeys];\n};\n\nconst isColumnDraggable = <RowType extends Record<string, unknown>>(column: TableColumnDefinition<RowType>) =>\n column.draggable !== false;\n\nexport const useDraggableColumns = <RowType extends Record<string, unknown>>(\n props: UseDraggableColumnsProps<RowType>\n) => {\n const { columns, columnOrder, enabled, onColumnOrderChange } = props;\n const [uncontrolledColumnOrder, setUncontrolledColumnOrder] = useState(() => columns.map(column => column.key));\n const orderedColumnKeys = reconcileColumnOrder(columnOrder ?? uncontrolledColumnOrder, columns);\n const isControlled = columnOrder !== undefined;\n\n useEffect(() => {\n if (isControlled) {\n return;\n }\n\n setUncontrolledColumnOrder(previousColumnOrder => {\n const nextColumnOrder = reconcileColumnOrder(previousColumnOrder, columns);\n\n return JSON.stringify(previousColumnOrder) === JSON.stringify(nextColumnOrder)\n ? previousColumnOrder\n : nextColumnOrder;\n });\n }, [columns, isControlled]);\n\n const columnsByKey = new Map(columns.map(column => [column.key, column]));\n const orderedColumns = orderedColumnKeys.flatMap(columnKey => {\n const column = columnsByKey.get(columnKey);\n\n return column ? [column] : [];\n });\n const draggableColumnKeys = orderedColumns.filter(isColumnDraggable).map(column => column.key);\n\n const handleColumnDragEnd = (event: DragEndEvent) => {\n if (!enabled) {\n return;\n }\n\n const activeColumnKey = String(event.active.id);\n const overColumnKey = event.over ? String(event.over.id) : undefined;\n\n if (!overColumnKey || activeColumnKey === overColumnKey) {\n return;\n }\n\n const oldIndex = draggableColumnKeys.indexOf(activeColumnKey);\n const newIndex = draggableColumnKeys.indexOf(overColumnKey);\n\n if (oldIndex < 0 || newIndex < 0) {\n return;\n }\n\n const nextDraggableColumnKeys = arrayMove(draggableColumnKeys, oldIndex, newIndex);\n let nextDraggableColumnKeyIndex = 0;\n\n const nextOrderedColumnKeys = orderedColumns.map(column => {\n if (!isColumnDraggable(column)) {\n return column.key;\n }\n\n const nextColumnKey = nextDraggableColumnKeys[nextDraggableColumnKeyIndex];\n\n nextDraggableColumnKeyIndex += 1;\n\n return nextColumnKey ?? column.key;\n });\n\n if (!isControlled) {\n setUncontrolledColumnOrder(previousColumnOrder =>\n JSON.stringify(previousColumnOrder) === JSON.stringify(nextOrderedColumnKeys)\n ? previousColumnOrder\n : nextOrderedColumnKeys\n );\n }\n\n onColumnOrderChange?.(nextOrderedColumnKeys);\n };\n\n return {\n draggableColumnKeys,\n handleColumnDragEnd,\n orderedColumns,\n };\n};\n"],"names":["reconcileColumnOrder","previousColumnOrder","columns","nextColumnKeys","column","previousColumnKeySet","preservedColumnOrder","columnKey","missingColumnKeys","isColumnDraggable","useDraggableColumns","props","columnOrder","enabled","onColumnOrderChange","uncontrolledColumnOrder","setUncontrolledColumnOrder","useState","orderedColumnKeys","isControlled","useEffect","nextColumnOrder","columnsByKey","orderedColumns","draggableColumnKeys","event","activeColumnKey","overColumnKey","oldIndex","newIndex","nextDraggableColumnKeys","arrayMove","nextDraggableColumnKeyIndex","nextOrderedColumnKeys","nextColumnKey"],"mappings":";;AAaA,MAAMA,IAAuB,CACzBC,GACAC,MACC;AACD,QAAMC,IAAiBD,EAAQ,IAAI,CAAAE,MAAUA,EAAO,GAAG,GACjDC,IAAuB,IAAI,IAAIF,CAAc,GAC7CG,IAAuBL,EAAoB,OAAO,OAAaI,EAAqB,IAAIE,CAAS,CAAC,GAClGC,IAAoBL,EAAe,OAAO,CAAAI,MAAa,CAACD,EAAqB,SAASC,CAAS,CAAC;AAEtG,SAAO,CAAC,GAAGD,GAAsB,GAAGE,CAAiB;AACzD,GAEMC,IAAoB,CAA0CL,MAChEA,EAAO,cAAc,IAEZM,IAAsB,CAC/BC,MACC;AACD,QAAM,EAAE,SAAAT,GAAS,aAAAU,GAAa,SAAAC,GAAS,qBAAAC,MAAwBH,GACzD,CAACI,GAAyBC,CAA0B,IAAIC,EAAS,MAAMf,EAAQ,IAAI,CAAAE,MAAUA,EAAO,GAAG,CAAC,GACxGc,IAAoBlB,EAAqBY,KAAeG,GAAyBb,CAAO,GACxFiB,IAAeP,MAAgB;AAErC,EAAAQ,EAAU,MAAM;AACZ,IAAID,KAIJH,EAA2B,CAAAf,MAAuB;AAC9C,YAAMoB,IAAkBrB,EAAqBC,GAAqBC,CAAO;AAEzE,aAAO,KAAK,UAAUD,CAAmB,MAAM,KAAK,UAAUoB,CAAe,IACvEpB,IACAoB;AAAA,IACV,CAAC;AAAA,EACL,GAAG,CAACnB,GAASiB,CAAY,CAAC;AAE1B,QAAMG,IAAe,IAAI,IAAIpB,EAAQ,IAAI,CAAAE,MAAU,CAACA,EAAO,KAAKA,CAAM,CAAC,CAAC,GAClEmB,IAAiBL,EAAkB,QAAQ,CAAAX,MAAa;AAC1D,UAAMH,IAASkB,EAAa,IAAIf,CAAS;AAEzC,WAAOH,IAAS,CAACA,CAAM,IAAI,CAAA;AAAA,EAC/B,CAAC,GACKoB,IAAsBD,EAAe,OAAOd,CAAiB,EAAE,IAAI,CAAAL,MAAUA,EAAO,GAAG;AA+C7F,SAAO;AAAA,IACH,qBAAAoB;AAAA,IACA,qBA/CwB,CAACC,MAAwB;AACjD,UAAI,CAACZ;AACD;AAGJ,YAAMa,IAAkB,OAAOD,EAAM,OAAO,EAAE,GACxCE,IAAgBF,EAAM,OAAO,OAAOA,EAAM,KAAK,EAAE,IAAI;AAE3D,UAAI,CAACE,KAAiBD,MAAoBC;AACtC;AAGJ,YAAMC,IAAWJ,EAAoB,QAAQE,CAAe,GACtDG,IAAWL,EAAoB,QAAQG,CAAa;AAE1D,UAAIC,IAAW,KAAKC,IAAW;AAC3B;AAGJ,YAAMC,IAA0BC,EAAUP,GAAqBI,GAAUC,CAAQ;AACjF,UAAIG,IAA8B;AAElC,YAAMC,IAAwBV,EAAe,IAAI,CAAAnB,MAAU;AACvD,YAAI,CAACK,EAAkBL,CAAM;AACzB,iBAAOA,EAAO;AAGlB,cAAM8B,IAAgBJ,EAAwBE,CAA2B;AAEzE,eAAAA,KAA+B,GAExBE,KAAiB9B,EAAO;AAAA,MACnC,CAAC;AAED,MAAKe,KACDH;AAAA,QAA2B,CAAAf,MACvB,KAAK,UAAUA,CAAmB,MAAM,KAAK,UAAUgC,CAAqB,IACtEhC,IACAgC;AAAA,MAAA,GAIdnB,IAAsBmB,CAAqB;AAAA,IAC/C;AAAA,IAKI,gBAAAV;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"useDraggableColumns.js","sources":["../../../../src/components/table/layout/useDraggableColumns.ts"],"sourcesContent":["import type { DragEndEvent } from '@dnd-kit/core';\nimport { useEffect, useState } from 'react';\n\nimport arrayMove from '../../../utils/arrayMove';\nimport type { TableColumnDefinition, TableRowData } from '../Table.types';\n\ntype UseDraggableColumnsProps<RowType extends TableRowData> = {\n columns: TableColumnDefinition<RowType>[];\n columnOrder?: string[];\n enabled: boolean;\n onColumnOrderChange?: (columnOrder: string[]) => void;\n};\n\nconst reconcileColumnOrder = <RowType extends TableRowData>(\n previousColumnOrder: string[],\n columns: TableColumnDefinition<RowType>[]\n) => {\n const nextColumnKeys = columns.map(column => column.key);\n const previousColumnKeySet = new Set(nextColumnKeys);\n const preservedColumnOrder = previousColumnOrder.filter(columnKey => previousColumnKeySet.has(columnKey));\n const missingColumnKeys = nextColumnKeys.filter(columnKey => !preservedColumnOrder.includes(columnKey));\n\n return [...preservedColumnOrder, ...missingColumnKeys];\n};\n\nconst isColumnDraggable = <RowType extends TableRowData>(column: TableColumnDefinition<RowType>) =>\n column.draggable === true;\n\nexport const useDraggableColumns = <RowType extends TableRowData>(props: UseDraggableColumnsProps<RowType>) => {\n const { columns, columnOrder, enabled, onColumnOrderChange } = props;\n const [uncontrolledColumnOrder, setUncontrolledColumnOrder] = useState(() => columns.map(column => column.key));\n const orderedColumnKeys = reconcileColumnOrder(columnOrder ?? uncontrolledColumnOrder, columns);\n const isControlled = columnOrder !== undefined;\n\n useEffect(() => {\n if (isControlled) {\n return;\n }\n\n setUncontrolledColumnOrder(previousColumnOrder => {\n const nextColumnOrder = reconcileColumnOrder(previousColumnOrder, columns);\n\n return JSON.stringify(previousColumnOrder) === JSON.stringify(nextColumnOrder)\n ? previousColumnOrder\n : nextColumnOrder;\n });\n }, [columns, isControlled]);\n\n const columnsByKey = new Map(columns.map(column => [column.key, column]));\n const orderedColumns = orderedColumnKeys.flatMap(columnKey => {\n const column = columnsByKey.get(columnKey);\n\n return column ? [column] : [];\n });\n const draggableColumnKeys = orderedColumns.filter(isColumnDraggable).map(column => column.key);\n\n const handleColumnDragEnd = (event: DragEndEvent) => {\n if (!enabled) {\n return;\n }\n\n const activeColumnKey = String(event.active.id);\n const overColumnKey = event.over ? String(event.over.id) : undefined;\n\n if (!overColumnKey || activeColumnKey === overColumnKey) {\n return;\n }\n\n const oldIndex = draggableColumnKeys.indexOf(activeColumnKey);\n const newIndex = draggableColumnKeys.indexOf(overColumnKey);\n\n if (oldIndex < 0 || newIndex < 0) {\n return;\n }\n\n const nextDraggableColumnKeys = arrayMove(draggableColumnKeys, oldIndex, newIndex);\n let nextDraggableColumnKeyIndex = 0;\n\n const nextOrderedColumnKeys = orderedColumns.map(column => {\n if (!isColumnDraggable(column)) {\n return column.key;\n }\n\n const nextColumnKey = nextDraggableColumnKeys[nextDraggableColumnKeyIndex];\n\n nextDraggableColumnKeyIndex += 1;\n\n return nextColumnKey ?? column.key;\n });\n\n if (!isControlled) {\n setUncontrolledColumnOrder(previousColumnOrder =>\n JSON.stringify(previousColumnOrder) === JSON.stringify(nextOrderedColumnKeys)\n ? previousColumnOrder\n : nextOrderedColumnKeys\n );\n }\n\n onColumnOrderChange?.(nextOrderedColumnKeys);\n };\n\n return {\n draggableColumnKeys,\n handleColumnDragEnd,\n orderedColumns,\n };\n};\n"],"names":["reconcileColumnOrder","previousColumnOrder","columns","nextColumnKeys","column","previousColumnKeySet","preservedColumnOrder","columnKey","missingColumnKeys","isColumnDraggable","useDraggableColumns","props","columnOrder","enabled","onColumnOrderChange","uncontrolledColumnOrder","setUncontrolledColumnOrder","useState","orderedColumnKeys","isControlled","useEffect","nextColumnOrder","columnsByKey","orderedColumns","draggableColumnKeys","event","activeColumnKey","overColumnKey","oldIndex","newIndex","nextDraggableColumnKeys","arrayMove","nextDraggableColumnKeyIndex","nextOrderedColumnKeys","nextColumnKey"],"mappings":";;AAaA,MAAMA,IAAuB,CACzBC,GACAC,MACC;AACD,QAAMC,IAAiBD,EAAQ,IAAI,CAAAE,MAAUA,EAAO,GAAG,GACjDC,IAAuB,IAAI,IAAIF,CAAc,GAC7CG,IAAuBL,EAAoB,OAAO,OAAaI,EAAqB,IAAIE,CAAS,CAAC,GAClGC,IAAoBL,EAAe,OAAO,CAAAI,MAAa,CAACD,EAAqB,SAASC,CAAS,CAAC;AAEtG,SAAO,CAAC,GAAGD,GAAsB,GAAGE,CAAiB;AACzD,GAEMC,IAAoB,CAA+BL,MACrDA,EAAO,cAAc,IAEZM,IAAsB,CAA+BC,MAA6C;AAC3G,QAAM,EAAE,SAAAT,GAAS,aAAAU,GAAa,SAAAC,GAAS,qBAAAC,MAAwBH,GACzD,CAACI,GAAyBC,CAA0B,IAAIC,EAAS,MAAMf,EAAQ,IAAI,CAAAE,MAAUA,EAAO,GAAG,CAAC,GACxGc,IAAoBlB,EAAqBY,KAAeG,GAAyBb,CAAO,GACxFiB,IAAeP,MAAgB;AAErC,EAAAQ,EAAU,MAAM;AACZ,IAAID,KAIJH,EAA2B,CAAAf,MAAuB;AAC9C,YAAMoB,IAAkBrB,EAAqBC,GAAqBC,CAAO;AAEzE,aAAO,KAAK,UAAUD,CAAmB,MAAM,KAAK,UAAUoB,CAAe,IACvEpB,IACAoB;AAAA,IACV,CAAC;AAAA,EACL,GAAG,CAACnB,GAASiB,CAAY,CAAC;AAE1B,QAAMG,IAAe,IAAI,IAAIpB,EAAQ,IAAI,CAAAE,MAAU,CAACA,EAAO,KAAKA,CAAM,CAAC,CAAC,GAClEmB,IAAiBL,EAAkB,QAAQ,CAAAX,MAAa;AAC1D,UAAMH,IAASkB,EAAa,IAAIf,CAAS;AAEzC,WAAOH,IAAS,CAACA,CAAM,IAAI,CAAA;AAAA,EAC/B,CAAC,GACKoB,IAAsBD,EAAe,OAAOd,CAAiB,EAAE,IAAI,CAAAL,MAAUA,EAAO,GAAG;AA+C7F,SAAO;AAAA,IACH,qBAAAoB;AAAA,IACA,qBA/CwB,CAACC,MAAwB;AACjD,UAAI,CAACZ;AACD;AAGJ,YAAMa,IAAkB,OAAOD,EAAM,OAAO,EAAE,GACxCE,IAAgBF,EAAM,OAAO,OAAOA,EAAM,KAAK,EAAE,IAAI;AAE3D,UAAI,CAACE,KAAiBD,MAAoBC;AACtC;AAGJ,YAAMC,IAAWJ,EAAoB,QAAQE,CAAe,GACtDG,IAAWL,EAAoB,QAAQG,CAAa;AAE1D,UAAIC,IAAW,KAAKC,IAAW;AAC3B;AAGJ,YAAMC,IAA0BC,EAAUP,GAAqBI,GAAUC,CAAQ;AACjF,UAAIG,IAA8B;AAElC,YAAMC,IAAwBV,EAAe,IAAI,CAAAnB,MAAU;AACvD,YAAI,CAACK,EAAkBL,CAAM;AACzB,iBAAOA,EAAO;AAGlB,cAAM8B,IAAgBJ,EAAwBE,CAA2B;AAEzE,eAAAA,KAA+B,GAExBE,KAAiB9B,EAAO;AAAA,MACnC,CAAC;AAED,MAAKe,KACDH;AAAA,QAA2B,CAAAf,MACvB,KAAK,UAAUA,CAAmB,MAAM,KAAK,UAAUgC,CAAqB,IACtEhC,IACAgC;AAAA,MAAA,GAIdnB,IAAsBmB,CAAqB;AAAA,IAC/C;AAAA,IAKI,gBAAAV;AAAA,EAAA;AAER;"}
@@ -2,9 +2,11 @@ import { UIEvent } from 'react';
2
2
  export declare const TABLE_HORIZONTAL_SCROLL_EVENT = "table-horizontal-scroll";
3
3
  type UseHorizontalSectionSyncProps = {
4
4
  enabled: boolean;
5
+ hasFooterCells?: boolean;
5
6
  };
6
- export declare const useHorizontalSectionSync: ({ enabled }: UseHorizontalSectionSyncProps) => {
7
+ export declare const useHorizontalSectionSync: ({ enabled, hasFooterCells }: UseHorizontalSectionSyncProps) => {
7
8
  handleBodyScroll: (event: UIEvent<HTMLElement> | undefined) => void;
9
+ hasHorizontalScrollOffset: boolean;
8
10
  tableFooterRowRef: import('react').RefObject<HTMLDivElement>;
9
11
  tableHeadRowRef: import('react').RefObject<HTMLDivElement>;
10
12
  };