@navikt/ds-react 8.10.6 → 8.11.0

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 (209) hide show
  1. package/cjs/data/drag-and-drop/root/DragAndDropRoot.d.ts +1 -1
  2. package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +2 -2
  3. package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
  4. package/cjs/data/stories/Data.test-data.d.ts +2 -2
  5. package/cjs/data/stories/Data.test-data.js +37 -42
  6. package/cjs/data/stories/Data.test-data.js.map +1 -1
  7. package/cjs/data/table/base-cell/DataTableBaseCell.d.ts +4 -4
  8. package/cjs/data/table/base-cell/DataTableBaseCell.js +2 -2
  9. package/cjs/data/table/base-cell/DataTableBaseCell.js.map +1 -1
  10. package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +3 -15
  11. package/cjs/data/table/column-header/DataTableColumnHeader.js +8 -5
  12. package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  13. package/cjs/data/table/column-header/useTableColumnResize.d.ts +2 -2
  14. package/cjs/data/table/column-header/useTableColumnResize.js +10 -10
  15. package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
  16. package/cjs/data/table/helpers/collectTableRowEntries.d.ts +1 -1
  17. package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +6 -5
  18. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +6 -2
  19. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  20. package/cjs/data/table/helpers/selection/getSingleSelectProps.d.ts +3 -3
  21. package/cjs/data/table/helpers/selection/getSingleSelectProps.js +1 -1
  22. package/cjs/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
  23. package/cjs/data/table/helpers/selection/selection.types.d.ts +19 -27
  24. package/cjs/data/table/helpers/selection/selection.utils.d.ts +1 -1
  25. package/cjs/data/table/hooks/useColumnOptions.d.ts +3 -3
  26. package/cjs/data/table/hooks/useColumnOptions.js +2 -2
  27. package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
  28. package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +8 -9
  29. package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -1
  30. package/cjs/data/table/hooks/useTableItems.d.ts +10 -11
  31. package/cjs/data/table/hooks/useTableItems.js +11 -3
  32. package/cjs/data/table/hooks/useTableItems.js.map +1 -1
  33. package/cjs/data/table/hooks/useTableSelection.d.ts +2 -1
  34. package/cjs/data/table/hooks/useTableSelection.js +46 -29
  35. package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
  36. package/cjs/data/table/hooks/useTableSort.d.ts +13 -7
  37. package/cjs/data/table/hooks/useTableSort.js +8 -9
  38. package/cjs/data/table/hooks/useTableSort.js.map +1 -1
  39. package/cjs/data/table/index.d.ts +1 -1
  40. package/cjs/data/table/index.js +3 -23
  41. package/cjs/data/table/index.js.map +1 -1
  42. package/cjs/data/table/root/{DataTable.types.d.ts → DataGridTable.types.d.ts} +16 -26
  43. package/cjs/data/table/root/DataGridTable.types.js +3 -0
  44. package/cjs/data/table/root/DataGridTable.types.js.map +1 -0
  45. package/cjs/data/table/root/DataGridTableRoot.d.ts +104 -0
  46. package/cjs/data/table/root/{DataTableRoot.js → DataGridTableRoot.js} +57 -37
  47. package/cjs/data/table/root/DataGridTableRoot.js.map +1 -0
  48. package/cjs/data/table/root/DataTableRoot.context.d.ts +6 -2
  49. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
  50. package/cjs/data/table/tbody/DataTableTbody.js +3 -3
  51. package/cjs/data/table/tbody/DataTableTbody.js.map +1 -1
  52. package/cjs/data/table/tr/DataTableTr.d.ts +3 -3
  53. package/cjs/data/table/tr/DataTableTr.js +44 -20
  54. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  55. package/cjs/data/token-filter/TokenFilter.d.ts +0 -6
  56. package/cjs/data/token-filter/TokenFilter.js +1 -1
  57. package/cjs/data-grid/index.d.ts +2 -0
  58. package/cjs/data-grid/index.js +9 -0
  59. package/cjs/data-grid/index.js.map +1 -0
  60. package/cjs/data-grid/root/DataGrid.types.d.ts +35 -0
  61. package/cjs/{data/table/root/DataTable.types.js → data-grid/root/DataGrid.types.js} +1 -1
  62. package/cjs/data-grid/root/DataGrid.types.js.map +1 -0
  63. package/cjs/data-grid/root/DataGridRoot.context.d.ts +16 -0
  64. package/cjs/{data/data-grid → data-grid}/root/DataGridRoot.context.js +1 -1
  65. package/cjs/data-grid/root/DataGridRoot.context.js.map +1 -0
  66. package/cjs/data-grid/root/DataGridRoot.d.ts +89 -0
  67. package/cjs/{data/data-grid → data-grid}/root/DataGridRoot.js +33 -8
  68. package/cjs/data-grid/root/DataGridRoot.js.map +1 -0
  69. package/cjs/preview.d.ts +1 -0
  70. package/cjs/{data/data-grid/index.js → preview.js} +3 -3
  71. package/cjs/preview.js.map +1 -0
  72. package/cjs/table/ColumnHeader.js.map +1 -1
  73. package/esm/data/drag-and-drop/root/DragAndDropRoot.d.ts +1 -1
  74. package/esm/data/drag-and-drop/root/DragAndDropRoot.js +2 -2
  75. package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
  76. package/esm/data/stories/Data.test-data.d.ts +2 -2
  77. package/esm/data/stories/Data.test-data.js +37 -42
  78. package/esm/data/stories/Data.test-data.js.map +1 -1
  79. package/esm/data/table/base-cell/DataTableBaseCell.d.ts +4 -4
  80. package/esm/data/table/base-cell/DataTableBaseCell.js +2 -2
  81. package/esm/data/table/base-cell/DataTableBaseCell.js.map +1 -1
  82. package/esm/data/table/column-header/DataTableColumnHeader.d.ts +3 -15
  83. package/esm/data/table/column-header/DataTableColumnHeader.js +8 -5
  84. package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  85. package/esm/data/table/column-header/useTableColumnResize.d.ts +2 -2
  86. package/esm/data/table/column-header/useTableColumnResize.js +10 -10
  87. package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
  88. package/esm/data/table/helpers/collectTableRowEntries.d.ts +1 -1
  89. package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +6 -5
  90. package/esm/data/table/helpers/selection/getMultipleSelectProps.js +6 -2
  91. package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  92. package/esm/data/table/helpers/selection/getSingleSelectProps.d.ts +3 -3
  93. package/esm/data/table/helpers/selection/getSingleSelectProps.js +1 -1
  94. package/esm/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
  95. package/esm/data/table/helpers/selection/selection.types.d.ts +19 -27
  96. package/esm/data/table/helpers/selection/selection.utils.d.ts +1 -1
  97. package/esm/data/table/hooks/useColumnOptions.d.ts +3 -3
  98. package/esm/data/table/hooks/useColumnOptions.js +2 -2
  99. package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
  100. package/esm/data/table/hooks/useTableDetailsPanel.d.ts +8 -9
  101. package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -1
  102. package/esm/data/table/hooks/useTableItems.d.ts +10 -11
  103. package/esm/data/table/hooks/useTableItems.js +11 -3
  104. package/esm/data/table/hooks/useTableItems.js.map +1 -1
  105. package/esm/data/table/hooks/useTableSelection.d.ts +2 -1
  106. package/esm/data/table/hooks/useTableSelection.js +46 -29
  107. package/esm/data/table/hooks/useTableSelection.js.map +1 -1
  108. package/esm/data/table/hooks/useTableSort.d.ts +13 -7
  109. package/esm/data/table/hooks/useTableSort.js +9 -10
  110. package/esm/data/table/hooks/useTableSort.js.map +1 -1
  111. package/esm/data/table/index.d.ts +1 -1
  112. package/esm/data/table/index.js +1 -21
  113. package/esm/data/table/index.js.map +1 -1
  114. package/esm/data/table/root/{DataTable.types.d.ts → DataGridTable.types.d.ts} +16 -26
  115. package/esm/data/table/root/DataGridTable.types.js +2 -0
  116. package/esm/data/table/root/DataGridTable.types.js.map +1 -0
  117. package/esm/data/table/root/DataGridTableRoot.d.ts +104 -0
  118. package/esm/data/table/root/{DataTableRoot.js → DataGridTableRoot.js} +59 -38
  119. package/esm/data/table/root/DataGridTableRoot.js.map +1 -0
  120. package/esm/data/table/root/DataTableRoot.context.d.ts +6 -2
  121. package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
  122. package/esm/data/table/tbody/DataTableTbody.js +3 -3
  123. package/esm/data/table/tbody/DataTableTbody.js.map +1 -1
  124. package/esm/data/table/tr/DataTableTr.d.ts +3 -3
  125. package/esm/data/table/tr/DataTableTr.js +44 -20
  126. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  127. package/esm/data/token-filter/TokenFilter.d.ts +0 -6
  128. package/esm/data/token-filter/TokenFilter.js +1 -1
  129. package/esm/data-grid/index.d.ts +2 -0
  130. package/esm/data-grid/index.js +4 -0
  131. package/esm/data-grid/index.js.map +1 -0
  132. package/esm/data-grid/root/DataGrid.types.d.ts +35 -0
  133. package/esm/data-grid/root/DataGrid.types.js +2 -0
  134. package/esm/data-grid/root/DataGrid.types.js.map +1 -0
  135. package/esm/data-grid/root/DataGridRoot.context.d.ts +16 -0
  136. package/esm/{data/data-grid → data-grid}/root/DataGridRoot.context.js +1 -1
  137. package/esm/data-grid/root/DataGridRoot.context.js.map +1 -0
  138. package/esm/data-grid/root/DataGridRoot.d.ts +89 -0
  139. package/esm/data-grid/root/DataGridRoot.js +57 -0
  140. package/esm/data-grid/root/DataGridRoot.js.map +1 -0
  141. package/esm/preview.d.ts +1 -0
  142. package/esm/preview.js +3 -0
  143. package/esm/preview.js.map +1 -0
  144. package/esm/table/ColumnHeader.js.map +1 -1
  145. package/package.json +23 -3
  146. package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +3 -3
  147. package/src/data/stories/Data.test-data.tsx +53 -51
  148. package/src/data/table/base-cell/DataTableBaseCell.tsx +6 -6
  149. package/src/data/table/column-header/DataTableColumnHeader.tsx +17 -20
  150. package/src/data/table/column-header/useTableColumnResize.ts +14 -14
  151. package/src/data/table/helpers/collectTableRowEntries.ts +1 -1
  152. package/src/data/table/helpers/selection/getMultipleSelectProps.ts +11 -5
  153. package/src/data/table/helpers/selection/getSingleSelectProps.ts +4 -4
  154. package/src/data/table/helpers/selection/selection.types.ts +19 -29
  155. package/src/data/table/helpers/selection/selection.utils.test.ts +1 -1
  156. package/src/data/table/helpers/selection/selection.utils.ts +1 -1
  157. package/src/data/table/hooks/__tests__/useTableItems.test.ts +1 -1
  158. package/src/data/table/hooks/useColumnOptions.ts +5 -5
  159. package/src/data/table/hooks/useTableDetailsPanel.tsx +14 -18
  160. package/src/data/table/hooks/useTableItems.ts +37 -23
  161. package/src/data/table/hooks/useTableSelection.ts +62 -45
  162. package/src/data/table/hooks/useTableSort.ts +29 -17
  163. package/src/data/table/index.tsx +4 -21
  164. package/src/data/table/root/{DataTable.types.ts → DataGridTable.types.ts} +17 -30
  165. package/src/data/table/root/{DataTableRoot.tsx → DataGridTableRoot.tsx} +196 -143
  166. package/src/data/table/root/DataTableRoot.context.ts +10 -8
  167. package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +1 -1
  168. package/src/data/table/tbody/DataTableTbody.tsx +3 -3
  169. package/src/data/table/tr/DataTableTr.tsx +51 -16
  170. package/src/data/token-filter/TokenFilter.tsx +1 -1
  171. package/src/data-grid/index.ts +3 -0
  172. package/src/data-grid/root/DataGrid.types.ts +36 -0
  173. package/src/data-grid/root/DataGridRoot.context.ts +21 -0
  174. package/src/data-grid/root/DataGridRoot.tsx +152 -0
  175. package/src/preview.ts +2 -0
  176. package/src/table/ColumnHeader.tsx +1 -0
  177. package/cjs/data/data-grid/index.d.ts +0 -2
  178. package/cjs/data/data-grid/index.js.map +0 -1
  179. package/cjs/data/data-grid/root/DataGridRoot.context.d.ts +0 -11
  180. package/cjs/data/data-grid/root/DataGridRoot.context.js.map +0 -1
  181. package/cjs/data/data-grid/root/DataGridRoot.d.ts +0 -38
  182. package/cjs/data/data-grid/root/DataGridRoot.js.map +0 -1
  183. package/cjs/data/table/root/DataTable.types.js.map +0 -1
  184. package/cjs/data/table/root/DataTableRoot.d.ts +0 -118
  185. package/cjs/data/table/root/DataTableRoot.js.map +0 -1
  186. package/cjs/data/table/root/DataTableRoot.legacy.d.ts +0 -172
  187. package/cjs/data/table/root/DataTableRoot.legacy.js +0 -118
  188. package/cjs/data/table/root/DataTableRoot.legacy.js.map +0 -1
  189. package/esm/data/data-grid/index.d.ts +0 -2
  190. package/esm/data/data-grid/index.js +0 -3
  191. package/esm/data/data-grid/index.js.map +0 -1
  192. package/esm/data/data-grid/root/DataGridRoot.context.d.ts +0 -11
  193. package/esm/data/data-grid/root/DataGridRoot.context.js.map +0 -1
  194. package/esm/data/data-grid/root/DataGridRoot.d.ts +0 -38
  195. package/esm/data/data-grid/root/DataGridRoot.js +0 -32
  196. package/esm/data/data-grid/root/DataGridRoot.js.map +0 -1
  197. package/esm/data/table/root/DataTable.types.js +0 -2
  198. package/esm/data/table/root/DataTable.types.js.map +0 -1
  199. package/esm/data/table/root/DataTableRoot.d.ts +0 -118
  200. package/esm/data/table/root/DataTableRoot.js.map +0 -1
  201. package/esm/data/table/root/DataTableRoot.legacy.d.ts +0 -172
  202. package/esm/data/table/root/DataTableRoot.legacy.js +0 -73
  203. package/esm/data/table/root/DataTableRoot.legacy.js.map +0 -1
  204. package/src/data/data-grid/index.ts +0 -3
  205. package/src/data/data-grid/root/DataGridRoot.context.ts +0 -16
  206. package/src/data/data-grid/root/DataGridRoot.tsx +0 -71
  207. package/src/data/table/Readme.md +0 -11
  208. package/src/data/table/agent-component-review.md +0 -175
  209. package/src/data/table/root/DataTableRoot.legacy.tsx +0 -305
@@ -1,26 +1,32 @@
1
- import type { SortChangeDetail, SortEntry } from "../root/DataTable.types";
1
+ import type { SortChangeDetail, SortEntry } from "../root/DataGridTable.types";
2
2
  type TableSortOptions = {
3
3
  /**
4
4
  * Current sort state. Each entry represents a sorted column.
5
5
  * Columns not present in the array are unsorted.
6
6
  * Supports multi-column sorting when multiple entries are provided.
7
7
  *
8
- * When provided, the component is controlled you must also handle `onSortChange`.
9
- * For uncontrolled usage, use `defaultSort` instead.
8
+ * When provided, the component is controlled - you must also handle `onSortOrderChange`.
9
+ * For uncontrolled usage, use `defaultSortOrder` instead.
10
10
  */
11
- sort?: SortEntry[];
11
+ sortOrder?: SortEntry[];
12
12
  /**
13
13
  * Initial sort state for uncontrolled usage.
14
- * Use `sort` + `onSortChange` for controlled usage.
14
+ * Use `sortOrder` + `onSortOrderChange` for controlled usage.
15
15
  * @default []
16
16
  */
17
- defaultSort?: SortEntry[];
17
+ defaultSortOrder?: SortEntry[];
18
18
  /**
19
19
  * Called when the user clicks a sortable column header.
20
20
  * - `sort` — the full updated sort array after cycling: unsorted → asc → desc → unsorted.
21
21
  * - `detail` — the specific column that changed, including its new direction (`"none"` means removed).
22
22
  */
23
- onSortChange?: (sort: SortEntry[], detail: SortChangeDetail) => void;
23
+ onSortOrderChange?: (sortOrder: SortEntry[], detail: SortChangeDetail) => void;
24
+ /**
25
+ * When true, allows multiple columns to be sorted by holding Shift while clicking headers.
26
+ *
27
+ * @default true
28
+ */
29
+ allowMultiSort?: boolean;
24
30
  };
25
31
  type UseTableSortResults = {
26
32
  /**
@@ -1,26 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useTableSort = useTableSort;
4
- const react_1 = require("react");
5
4
  const consoleWarning_1 = require("../../../utils/helpers/consoleWarning");
6
5
  const hooks_1 = require("../../../utils/hooks");
7
6
  function useTableSort(options) {
8
- const { defaultSort, onSortChange, sort: sortOption } = options || {};
7
+ const { defaultSortOrder, onSortOrderChange, sortOrder, allowMultiSort = true, } = options || {};
9
8
  const [sort, setSort] = (0, hooks_1.useControllableState)({
10
- value: sortOption,
11
- defaultValue: defaultSort || [],
9
+ value: sortOrder,
10
+ defaultValue: defaultSortOrder || [],
12
11
  });
13
- const handleSortClick = (0, react_1.useCallback)((id, event) => {
12
+ const handleSortClick = (0, hooks_1.useEventCallback)((id, event) => {
14
13
  if (id === undefined) {
15
- (0, consoleWarning_1.consoleWarning)("DataTable: Column id is undefined for sort event on target", event.target, "Make sure your column definitions include an 'id' property.");
14
+ (0, consoleWarning_1.consoleWarning)("DataGrid.Table: Column id is undefined for sort event on target", event.target, "Make sure your column definitions include an 'id' property.");
16
15
  return;
17
16
  }
18
- const cumulative = event.shiftKey;
17
+ const cumulative = allowMultiSort && event.shiftKey;
19
18
  const base = cumulative ? sort : sort.filter((s) => s.columnId === id);
20
19
  const { next, detail } = nextSortEntries(base, id);
21
20
  setSort(next);
22
- onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(next, detail);
23
- }, [onSortChange, setSort, sort]);
21
+ onSortOrderChange === null || onSortOrderChange === void 0 ? void 0 : onSortOrderChange(next, detail);
22
+ });
24
23
  return {
25
24
  onSortClick: handleSortClick,
26
25
  sortState: sort,
@@ -1 +1 @@
1
- {"version":3,"file":"useTableSort.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSort.ts"],"names":[],"mappings":";;AAsGS,oCAAY;AAtGrB,iCAAoC;AACpC,0EAAuE;AACvE,gDAA4D;AAyC5D,SAAS,YAAY,CAAC,OAA0B;IAC9C,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEtE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,4BAAoB,EAAC;QAC3C,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,WAAW,IAAI,EAAE;KAChC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,CAAC,EAAU,EAAE,KAAgD,EAAE,EAAE;QAC/D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAA,+BAAc,EACZ,4DAA4D,EAC5D,KAAK,CAAC,MAAM,EACZ,6DAA6D,CAC9D,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAC9B,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAAoB,EACpB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAClD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,iCAAM,CAAC,KAAE,SAAS,EAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAC1D;YACD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;SACxC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACpD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useTableSort.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSort.ts"],"names":[],"mappings":";;AAkHS,oCAAY;AAlHrB,0EAAuE;AACvE,gDAA8E;AAkD9E,SAAS,YAAY,CAAC,OAA0B;IAC9C,MAAM,EACJ,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,cAAc,GAAG,IAAI,GACtB,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,4BAAoB,EAAC;QAC3C,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,gBAAgB,IAAI,EAAE;KACrC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAA,wBAAgB,EACtC,CAAC,EAAU,EAAE,KAAgD,EAAE,EAAE;QAC/D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAA,+BAAc,EACZ,iEAAiE,EACjE,KAAK,CAAC,MAAM,EACZ,6DAA6D,CAC9D,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,cAAc,IAAI,KAAK,CAAC,QAAQ,CAAC;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CACF,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAAoB,EACpB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAClD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,iCAAM,CAAC,KAAE,SAAS,EAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAC1D;YACD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;SACxC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACpD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;KACxC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- export { DataTable, type DataTableProps } from "./root/DataTableRoot";
1
+ export { DataGridTable, type DataGridTableProps, } from "./root/DataGridTableRoot";
@@ -1,27 +1,7 @@
1
1
  "use strict";
2
2
  "use client";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DataTable = void 0;
5
- /* export {
6
- default as DataTable,
7
- DataTableCaption,
8
- DataTableThead,
9
- DataTableTbody,
10
- DataTableTr,
11
- DataTableTh,
12
- DataTableTd,
13
- DataTableTfoot,
14
- } from "./root/DataTableRoot.legacy";
15
- export type {
16
- DataTableProps,
17
- DataTableCaptionProps,
18
- DataTableTheadProps,
19
- DataTableTbodyProps,
20
- DataTableTrProps,
21
- DataTableThProps,
22
- DataTableTdProps,
23
- DataTableTfootProps,
24
- } from "./root/DataTableRoot.legacy"; */
25
- var DataTableRoot_1 = require("./root/DataTableRoot");
26
- Object.defineProperty(exports, "DataTable", { enumerable: true, get: function () { return DataTableRoot_1.DataTable; } });
4
+ exports.DataGridTable = void 0;
5
+ var DataGridTableRoot_1 = require("./root/DataGridTableRoot");
6
+ Object.defineProperty(exports, "DataGridTable", { enumerable: true, get: function () { return DataGridTableRoot_1.DataGridTable; } });
27
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/table/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AACb;;;;;;;;;;;;;;;;;;;wCAmBwC;AAExC,sDAAsE;AAA7D,0GAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/table/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAEb,8DAGkC;AAFhC,kHAAA,aAAa,OAAA"}
@@ -1,45 +1,37 @@
1
1
  import type { DataTableColumnHeaderProps } from "../column-header/DataTableColumnHeader";
2
- type SortDirection = "asc" | "desc" | "none";
3
2
  /**
4
3
  * TODO:
5
4
  * - Consider "accessorKey" or similar to allow simple column definitions without a cell function.
6
- * - Add "align" property for better control over text alignment in cells.
7
5
  */
8
6
  type ColumnDefinition<T> = {
9
7
  id: string;
10
8
  /**
11
- * Text alignment for cells in this column.
9
+ * Uses `<th>` instead of `<td>` for the cell if true.
12
10
  *
13
- * @default "left"
14
- */
15
- align?: "left" | "right" | "center";
16
- /**
17
- * Assigned to the cell's `th` element instead of `td` if true.
18
- *
19
- * Should be used for cells that act as row headers. Each row should have one rowheader, and only have one cell with `isRowHeader: true`,
20
- * TODO: Better documentation, consider warning if not one column has this set to true.
11
+ * Should be used on the column that acts as row header.
12
+ * There should be exactly one column with this set to true.
21
13
  */
22
14
  isRowHeader?: boolean;
23
15
  /**
24
- * Renders table header-cell
25
- * TODO: Pri zero rename to headerCell
16
+ * Name of the column.
17
+ * Used in the header cell unless `headerCell` is provided.
18
+ * Also used in the settings dialog.
26
19
  */
27
- header?: React.ReactNode;
20
+ header: string;
28
21
  /**
29
- * Renders table-cell
22
+ * Overrides header cell content. Should not differ too much from `header`.
30
23
  */
31
- cell: (item: T) => React.ReactNode;
24
+ headerCell?: React.ReactNode;
32
25
  /**
33
- * Label of header. Renders if header is not provided.
34
- * TODO: Pri zero consider renaming to header
26
+ * Renders table body cell content.
35
27
  */
36
- label: string;
28
+ bodyCell: (item: T) => React.ReactNode;
37
29
  /**
38
30
  * Makes the column sortable. Renders the header as a sort button.
39
- * Use `sort` and `onSortChange` on the root component to control sort state.
31
+ * Use `sorting` prop on `DataGrid.Table` to configure sorting behavior and state management.
40
32
  */
41
- sortable?: boolean;
42
- } & Pick<DataTableColumnHeaderProps, "width">;
33
+ isSortable?: boolean;
34
+ } & Pick<DataTableColumnHeaderProps, "width" | "align">;
43
35
  type ColumnDefinitions<T> = ColumnDefinition<T>[];
44
36
  /**
45
37
  * A single sort entry representing a column's current sort state.
@@ -59,8 +51,6 @@ type SortChangeDetail = {
59
51
  direction: "asc" | "desc" | "none";
60
52
  };
61
53
  type DataTableLoadingConfig = {
62
- isLoading?: boolean;
63
- } & ({
64
54
  variant: "content";
65
55
  content: React.ReactNode;
66
56
  } | {
@@ -70,6 +60,6 @@ type DataTableLoadingConfig = {
70
60
  } | {
71
61
  variant: "overlay";
72
62
  label?: string;
73
- });
63
+ };
74
64
  type TableRowEntryId = string;
75
- export type { ColumnDefinition, ColumnDefinitions, DataTableLoadingConfig, SortDirection, SortEntry, SortChangeDetail, TableRowEntryId, };
65
+ export type { ColumnDefinition, ColumnDefinitions, DataTableLoadingConfig, SortEntry, SortChangeDetail, TableRowEntryId, };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DataGridTable.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridTable.types.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataGridTable.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ import React from "react";
2
+ import { type DetailsPanelProps } from "../hooks/useTableDetailsPanel";
3
+ import { type SubRowsProps } from "../hooks/useTableItems";
4
+ import { type TableSortOptions } from "../hooks/useTableSort";
5
+ import type { DataTableLoadingConfig } from "./DataGridTable.types";
6
+ interface DataGridTableProps<T> extends React.HTMLAttributes<HTMLTableElement> {
7
+ children?: never;
8
+ /**
9
+ * Controls table layout.
10
+ *
11
+ * ### fixed
12
+ * Gives you full control of column widths. This is required for resizable columns.
13
+ *
14
+ * ### auto
15
+ * Makes the columns resize automatically based on the content.
16
+ * The table will take up at least 100% of available width.
17
+ *
18
+ * **NB:** When using this with `truncateContent`, you have to manually
19
+ * set a `contentMaxWidth` on cells that should be truncated.
20
+ * @default "fixed"
21
+ */
22
+ layout?: "fixed" | "auto";
23
+ /**
24
+ * Whether the header should be sticky.
25
+ * For this to work, you have to put the component in a flex container with a height restriction.
26
+ *
27
+ * @example
28
+ * <VStack height="100vh">
29
+ * <div>Content before DataGrid</div>
30
+ * <DataGrid>
31
+ * <DataGrid.Table />
32
+ * </DataGrid>
33
+ * <div>Content after DataGrid</div>
34
+ * </VStack>
35
+ *
36
+ * @example
37
+ * <div style={{ display: "flex", maxHeight: "500px" }}>
38
+ * <DataGrid>
39
+ * <DataGrid.Table />
40
+ * </DataGrid>
41
+ * </div>
42
+ *
43
+ * @default true
44
+ */
45
+ stickyHeader?: boolean;
46
+ /**
47
+ * Callback invoked when a row in the table body is clicked.
48
+ *
49
+ * Call `event.preventDefault()` inside the callback to prevent the default row click behavior, such as selection.
50
+ */
51
+ onRowAction?: ({ row, id, event, }: {
52
+ row: T;
53
+ id: string;
54
+ event: React.MouseEvent<HTMLTableRowElement>;
55
+ }) => void;
56
+ /**
57
+ * Content to render when `data` is empty.
58
+ * Rendered inside a row spanning all columns.
59
+ */
60
+ emptyContent?: React.ReactNode;
61
+ /**
62
+ * Configures how the table behaves during loading.
63
+ *
64
+ * Use `variant` to select the loading strategy:
65
+ * - `"content"` — renders custom content inside a full-width row.
66
+ * - `"skeleton"` — renders skeleton placeholder rows.
67
+ * - `"overlay"` — keeps existing data visible with a loading overlay.
68
+ *
69
+ * @default { variant: "skeleton", rows: 5 }
70
+ */
71
+ loadingContent?: DataTableLoadingConfig;
72
+ /**
73
+ * Object with props related to nested rows (sub-rows).
74
+ */
75
+ subRows?: SubRowsProps<T>;
76
+ /**
77
+ * Object with props related to details panel.
78
+ * This is a panel that can be expanded below each row to show arbitrary content.
79
+ */
80
+ detailsPanel?: DetailsPanelProps<T>;
81
+ /**
82
+ * Object with props related to sorting.
83
+ */
84
+ sorting?: TableSortOptions;
85
+ /**
86
+ * Determines if selection is triggered by clicking the row or the selection control (checkbox/radio).
87
+ * @default "row"
88
+ */
89
+ selectionTrigger?: "row" | "control";
90
+ }
91
+ declare const DataGridTableInternal: React.ForwardRefExoticComponent<DataGridTableProps<any> & React.RefAttributes<HTMLTableElement>>;
92
+ declare const DataGridTable: <RowT>(props: DataGridTableProps<RowT> & React.RefAttributes<HTMLTableElement>) => React.ReactElement | null;
93
+ export declare namespace DataGridTable {
94
+ type Props<T = unknown> = DataGridTableProps<T>;
95
+ type Sorting = TableSortOptions;
96
+ type SortEntry = import("./DataGridTable.types").SortEntry;
97
+ type SortChangeDetail = import("./DataGridTable.types").SortChangeDetail;
98
+ type LoadingContent = DataTableLoadingConfig;
99
+ type SubRows<T = unknown> = SubRowsProps<T>;
100
+ type DetailsPanel<T = unknown> = DetailsPanelProps<T>;
101
+ }
102
+ export { DataGridTable, DataGridTableInternal };
103
+ export type { DataGridTableProps };
104
+ export default DataGridTable;
@@ -44,14 +44,14 @@ var __rest = (this && this.__rest) || function (s, e) {
44
44
  return t;
45
45
  };
46
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.DataTableInternal = exports.DataTable = void 0;
47
+ exports.DataGridTableInternal = exports.DataGridTable = void 0;
48
48
  const react_1 = __importStar(require("react"));
49
+ const DataGridRoot_context_1 = require("../../../data-grid/root/DataGridRoot.context");
49
50
  const skeleton_1 = require("../../../skeleton");
50
51
  const utils_external_1 = require("../../../utils-external");
51
52
  const Slot_1 = require("../../../utils/components/slot/Slot");
52
53
  const helpers_1 = require("../../../utils/helpers");
53
54
  const hooks_1 = require("../../../utils/hooks");
54
- const DataGridRoot_context_1 = require("../../data-grid/root/DataGridRoot.context");
55
55
  const DataTableBaseCell_1 = require("../base-cell/DataTableBaseCell");
56
56
  const DataTableColumnHeader_1 = require("../column-header/DataTableColumnHeader");
57
57
  const DataTableDetailsPanelRow_1 = require("../details-panel-row/DataTableDetailsPanelRow");
@@ -68,10 +68,15 @@ const DataTableTbody_1 = require("../tbody/DataTableTbody");
68
68
  const DataTableThead_1 = require("../thead/DataTableThead");
69
69
  const DataTableTr_1 = require("../tr/DataTableTr");
70
70
  const DataTableRoot_context_1 = require("./DataTableRoot.context");
71
- const DataTableInternal = (0, react_1.forwardRef)((_a, // Have to use <any> for docgen to work
72
- forwardedRef) => {
73
- var { className, id, rowDensity = "normal", textSize = "medium", withKeyboardNav = true, zebraStripes = false, truncateContent: truncateContentProp, layout = "fixed", stickyColumns, stickyHeader = true, onRowClick, emptyContent, selection, loading, detailsPanel, subRows, sorting } = _a, rest = __rest(_a, ["className", "id", "rowDensity", "textSize", "withKeyboardNav", "zebraStripes", "truncateContent", "layout", "stickyColumns", "stickyHeader", "onRowClick", "emptyContent", "selection", "loading", "detailsPanel", "subRows", "sorting"]);
74
- const { columnDefinitions, data, getRowId } = (0, DataGridRoot_context_1.useDataGridContext)();
71
+ const DataGridTableInternal = (0, react_1.forwardRef)((_a, forwardedRef) => {
72
+ var _b, _c, _d;
73
+ var { className, id, layout = "fixed", stickyHeader = true, onRowAction, emptyContent, loadingContent = {
74
+ variant: "skeleton",
75
+ rows: 5,
76
+ label: "Laster innhold",
77
+ }, // TODO translate label
78
+ detailsPanel, subRows, sorting, selectionTrigger = "row" } = _a, rest = __rest(_a, ["className", "id", "layout", "stickyHeader", "onRowAction", "emptyContent", "loadingContent", "detailsPanel", "subRows", "sorting", "selectionTrigger"]);
79
+ const { columnDefinitions, data, getRowId, selection, isLoading, tableSettings, } = (0, DataGridRoot_context_1.useDataGridContext)();
75
80
  const sortingState = (0, useTableSort_1.useTableSort)(sorting);
76
81
  const tableItems = (0, useTableItems_1.useTableItems)({
77
82
  items: data,
@@ -80,35 +85,37 @@ forwardedRef) => {
80
85
  });
81
86
  const tableSelectionState = (0, useTableSelection_1.useTableSelection)({
82
87
  selection,
88
+ selectionTrigger,
83
89
  tableItems,
84
90
  });
85
91
  const { columns, stickyStart, totalColSpan } = (0, useColumnOptions_1.useColumnOptions)(columnDefinitions, {
86
- stickyColumns,
87
- hasSelection: tableSelectionState.selection.selectionMode !== "none",
92
+ stickyColumns: tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.stickyColumns,
93
+ hasSelection: tableSelectionState.selection.mode !== "none",
88
94
  hasDetailsPanel: !!(detailsPanel === null || detailsPanel === void 0 ? void 0 : detailsPanel.getContent),
89
95
  layout,
90
96
  });
91
97
  const tableId = (0, utils_external_1.useId)(id);
92
- const truncateContent = truncateContentProp !== null && truncateContentProp !== void 0 ? truncateContentProp : layout !== "auto";
93
- return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: tableSelectionState, stickyStart: stickyStart, stickyHeader: stickyHeader, tableId: tableId, loading: loading, onRowClick: onRowClick, columns: columns, totalColSpan: totalColSpan, tableItems: tableItems, sortingState: sortingState },
94
- react_1.default.createElement(TableElementWrapper, { enabled: withKeyboardNav },
95
- react_1.default.createElement("table", Object.assign({}, rest, { ref: forwardedRef, className: (0, helpers_1.cl)("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, "data-text-size": textSize, "data-layout": layout, "data-loading": (loading === null || loading === void 0 ? void 0 : loading.isLoading) || undefined, "aria-busy": (loading === null || loading === void 0 ? void 0 : loading.isLoading) || undefined }),
98
+ const truncateContent = (_b = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.truncateContent) !== null && _b !== void 0 ? _b : layout !== "auto";
99
+ return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: true, selectionState: tableSelectionState, stickyStart: stickyStart, stickyHeader: stickyHeader, tableId: tableId, loading: loadingContent, onRowAction: onRowAction, columns: columns, totalColSpan: totalColSpan, tableItems: tableItems, sortingState: sortingState },
100
+ react_1.default.createElement(TableElementWrapper, { enabled: true, hasStickyColumns: !!(((_c = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.stickyColumns) === null || _c === void 0 ? void 0 : _c.start) ||
101
+ ((_d = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.stickyColumns) === null || _d === void 0 ? void 0 : _d.end)) },
102
+ react_1.default.createElement("table", Object.assign({}, rest, { ref: forwardedRef, className: (0, helpers_1.cl)("aksel-data-table", className), "data-zebra-stripes": tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.zebraStripes, "data-truncate-content": truncateContent, "data-density": tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.rowDensity, "data-text-size": tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.textSize, "data-layout": layout, "data-loading": isLoading || undefined, "aria-busy": isLoading || undefined }),
96
103
  react_1.default.createElement(useTableDetailsPanel_1.DataTableDetailsPanelProvider, { detailsPanel: detailsPanel },
97
104
  react_1.default.createElement(DataTableThead_1.DataTableThead, null,
98
105
  react_1.default.createElement(DataTableTr_1.DataTableTr, null, columns.map(({ isSticky, isStickyLast, stickyLeftOffset, colDef }) => {
99
106
  var _a, _b;
100
- return (react_1.default.createElement(DataTableColumnHeader_1.DataTableColumnHeader, { id: colDef.id, width: colDef.width, textAlign: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id, isSticky: isSticky, sortable: colDef.sortable, label: colDef.label, style: stickyLeftOffset
107
+ return (react_1.default.createElement(DataTableColumnHeader_1.DataTableColumnHeader, { id: colDef.id, width: colDef.width, align: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id, isSticky: isSticky, sortable: colDef.isSortable, label: colDef.header, style: stickyLeftOffset
101
108
  ? { left: stickyLeftOffset }
102
- : undefined, "data-sticky-last": isStickyLast || undefined }, (_b = colDef.header) !== null && _b !== void 0 ? _b : colDef.label));
109
+ : undefined, "data-sticky-last": isStickyLast || undefined }, (_b = colDef.headerCell) !== null && _b !== void 0 ? _b : colDef.header));
103
110
  }))),
104
111
  react_1.default.createElement(DataTableTbody_1.DataTableTbody, null,
105
112
  react_1.default.createElement(DataTableTBodyContent, { emptyContent: emptyContent })))))));
106
113
  });
107
- exports.DataTableInternal = DataTableInternal;
114
+ exports.DataGridTableInternal = DataGridTableInternal;
108
115
  /**
109
116
  * Temp optimization to avoid re-renders on every keyboard-move, selection change etc
110
117
  */
111
- function TableElementWrapper({ children, enabled, }) {
118
+ function TableElementWrapper({ children, enabled, hasStickyColumns, }) {
112
119
  const [applyStickyStyles, setApplyStickyStyles] = (0, react_1.useState)(false);
113
120
  const tableWrapperRef = (0, react_1.useRef)(null);
114
121
  const tableRef = (0, react_1.useRef)(null);
@@ -134,6 +141,9 @@ function TableElementWrapper({ children, enabled, }) {
134
141
  });
135
142
  }, [updateStickyStyles]);
136
143
  (0, react_1.useEffect)(function observeAndUpdateStickyStyles() {
144
+ if (!hasStickyColumns) {
145
+ return;
146
+ }
137
147
  const tableWrapperElement = tableWrapperRef.current;
138
148
  if (!tableWrapperElement) {
139
149
  return;
@@ -157,7 +167,7 @@ function TableElementWrapper({ children, enabled, }) {
157
167
  rafRef.current = null;
158
168
  }
159
169
  };
160
- }, [scheduleStickyStylesUpdate]);
170
+ }, [scheduleStickyStylesUpdate, hasStickyColumns]);
161
171
  return (react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
162
172
  react_1.default.createElement("div", { ref: tableWrapperRef, className: "aksel-data-table__scroll-wrapper" },
163
173
  react_1.default.createElement(Slot_1.Slot, { tabIndex: tabIndex,
@@ -167,27 +177,28 @@ function TableElementWrapper({ children, enabled, }) {
167
177
  function DataTableTBodyContent({ emptyContent }) {
168
178
  var _a, _b, _c;
169
179
  const { columns, loading, totalColSpan, tableItems } = (0, DataTableRoot_context_1.useDataTableContext)();
170
- if ((loading === null || loading === void 0 ? void 0 : loading.isLoading) && (loading === null || loading === void 0 ? void 0 : loading.variant) === "content") {
180
+ const { isLoading } = (0, DataGridRoot_context_1.useDataGridContext)();
181
+ if (isLoading && (loading === null || loading === void 0 ? void 0 : loading.variant) === "content") {
171
182
  return (react_1.default.createElement(DataTableLoadingState_1.DataTableLoadingState, { colSpan: totalColSpan }, loading.content));
172
183
  }
173
- if ((loading === null || loading === void 0 ? void 0 : loading.isLoading) && (loading === null || loading === void 0 ? void 0 : loading.variant) === "skeleton") {
184
+ if (isLoading && (loading === null || loading === void 0 ? void 0 : loading.variant) === "skeleton") {
174
185
  const rows = (_a = loading.rows) !== null && _a !== void 0 ? _a : 5;
175
- const label = (_b = loading.label) !== null && _b !== void 0 ? _b : "Laster innhold";
186
+ const label = (_b = loading.label) !== null && _b !== void 0 ? _b : "Laster innhold"; // TODO translate
176
187
  return (react_1.default.createElement(react_1.default.Fragment, null,
177
188
  react_1.default.createElement("tr", null,
178
189
  react_1.default.createElement("td", { colSpan: totalColSpan, className: "aksel-sr-only" }, label)),
179
190
  Array.from({ length: rows }, (_, rowIndex) => (react_1.default.createElement(DataTableTr_1.DataTableTr, { key: `skeleton-row-${rowIndex}`, "aria-hidden": true }, columns.map(({ isSticky, isStickyLast, stickyLeftOffset, colDef }, colDefIndex) => {
180
191
  var _a;
181
- return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { textAlign: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky, style: stickyLeftOffset ? { left: stickyLeftOffset } : undefined, "data-sticky-last": isStickyLast || undefined },
192
+ return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { align: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky, style: stickyLeftOffset ? { left: stickyLeftOffset } : undefined, "data-sticky-last": isStickyLast || undefined },
182
193
  react_1.default.createElement(skeleton_1.Skeleton, { variant: "text" })));
183
194
  }))))));
184
195
  }
185
196
  if (tableItems.items.length === 0 && emptyContent !== undefined) {
186
197
  return (react_1.default.createElement(DataTableEmptyState_1.DataTableEmptyState, { colSpan: totalColSpan }, emptyContent));
187
198
  }
188
- const renderLoadingAnnouncement = (loading === null || loading === void 0 ? void 0 : loading.isLoading) && (loading === null || loading === void 0 ? void 0 : loading.variant) === "overlay";
199
+ const renderLoadingAnnouncement = isLoading && (loading === null || loading === void 0 ? void 0 : loading.variant) === "overlay";
189
200
  const overlayLabel = (loading === null || loading === void 0 ? void 0 : loading.variant) === "overlay"
190
- ? ((_c = loading.label) !== null && _c !== void 0 ? _c : "Laster innhold")
201
+ ? ((_c = loading.label) !== null && _c !== void 0 ? _c : "Laster innhold") // TODO translate
191
202
  : "Laster innhold";
192
203
  return (react_1.default.createElement(react_1.default.Fragment, null,
193
204
  renderLoadingAnnouncement && (react_1.default.createElement("tr", null,
@@ -199,19 +210,28 @@ function DataTableTBodyContent({ emptyContent }) {
199
210
  if (!details) {
200
211
  return null;
201
212
  }
202
- const hasSubRows = details.children.length > 0;
203
- return (react_1.default.createElement(react_1.default.Fragment, { key: details.id },
204
- react_1.default.createElement(DataTableTr_1.DataTableTr, { rowId: details.id }, columns.map(({ isSticky, isStickyLast, stickyLeftOffset, colDef }, colDefIndex) => {
205
- var _a;
206
- const renderNestedToggle = colDefIndex === 0 && hasSubRows;
207
- const renderNestedIndent = colDefIndex === 0 && (details.level > 0 || hasSubRows);
208
- const style = Object.assign({ "--__axc-data-table-nested-depth": details.level }, (stickyLeftOffset ? { left: stickyLeftOffset } : {}));
209
- return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { textAlign: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky, "data-nested": renderNestedIndent || undefined, "data-sticky-last": isStickyLast || undefined, style: style, beforeContent: renderNestedToggle ? (react_1.default.createElement(DataTableSubRowToggle_1.DataTableSubRowToggle, { details: details })) : undefined }, colDef.cell(rowData)));
210
- })),
211
- react_1.default.createElement(DataTableDetailsPanelRow_1.DataTableDetailsPanelRow, { rowId: details.id, rowData: rowData })));
213
+ return (react_1.default.createElement(DataTableDataRow, { key: details.id, rowData: rowData, details: details, columns: columns }));
212
214
  })));
213
215
  }
214
- const DataTable = DataTableInternal;
215
- exports.DataTable = DataTable;
216
- exports.default = DataTable;
217
- //# sourceMappingURL=DataTableRoot.js.map
216
+ const DataTableDataRow = (0, react_1.memo)(function DataTableDataRow({ rowData, details, columns, }) {
217
+ const hasSubRows = details.children.length > 0;
218
+ return (react_1.default.createElement(react_1.default.Fragment, null,
219
+ react_1.default.createElement(DataTableTr_1.DataTableTr, { rowId: details.id }, columns.map(({ isSticky, isStickyLast, stickyLeftOffset, colDef }, colDefIndex) => {
220
+ var _a;
221
+ const renderNestedToggle = colDefIndex === 0 && hasSubRows;
222
+ const renderNestedIndent = colDefIndex === 0 && (details.level > 0 || hasSubRows);
223
+ const style = Object.assign({ "--__axc-data-table-nested-depth": details.level }, (stickyLeftOffset ? { left: stickyLeftOffset } : {}));
224
+ return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { align: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky, "data-nested": renderNestedIndent || undefined, "data-sticky-last": isStickyLast || undefined, style: style, beforeContent: renderNestedToggle ? (react_1.default.createElement(DataTableSubRowToggle_1.DataTableSubRowToggle, { details: details })) : undefined }, colDef.bodyCell(rowData)));
225
+ })),
226
+ react_1.default.createElement(DataTableDetailsPanelRow_1.DataTableDetailsPanelRow, { rowId: details.id, rowData: rowData })));
227
+ },
228
+ /* TODO: Might be some better metrics we could use to optimize this */
229
+ (prev, next) => prev.rowData === next.rowData &&
230
+ prev.columns === next.columns &&
231
+ prev.details.id === next.details.id &&
232
+ prev.details.level === next.details.level &&
233
+ prev.details.children.length === next.details.children.length);
234
+ const DataGridTable = DataGridTableInternal;
235
+ exports.DataGridTable = DataGridTable;
236
+ exports.default = DataGridTable;
237
+ //# sourceMappingURL=DataGridTableRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataGridTableRoot.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { StickyStartState, UseColumnOptionsResult } from "../hooks/useColum
2
2
  import type { UseTableItemsReturn } from "../hooks/useTableItems";
3
3
  import type { UseTableSelectionReturn } from "../hooks/useTableSelection";
4
4
  import type { UseTableSortResults } from "../hooks/useTableSort";
5
- import type { DataTableLoadingConfig, TableRowEntryId } from "./DataTable.types";
5
+ import type { DataTableLoadingConfig } from "./DataGridTable.types";
6
6
  type DataTableContextProps<T> = {
7
7
  layout: "fixed" | "auto";
8
8
  withKeyboardNav: boolean;
@@ -11,7 +11,11 @@ type DataTableContextProps<T> = {
11
11
  stickyHeader: boolean;
12
12
  tableId: string;
13
13
  loading: DataTableLoadingConfig | undefined;
14
- onRowClick?: (rowId: TableRowEntryId, event: React.MouseEvent<HTMLTableRowElement>) => void;
14
+ onRowAction?: ({ row, id, event, }: {
15
+ row: T;
16
+ id: string;
17
+ event: React.MouseEvent<HTMLTableRowElement>;
18
+ }) => void;
15
19
  columns: UseColumnOptionsResult<T>["columns"];
16
20
  /**
17
21
  * Used to set exact colspan for detailsPanel, loadingState and emptyState.
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRoot.context.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.context.ts"],"names":[],"mappings":";;;AAAA,oDAA6D;AAsC7D,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAC3E,IAAA,6BAAmB,EAA6B;IAC9C,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,mDAAmD;CAClE,CAAC,CAAC;AAcH,4DAAwB;AAExB,kDAAmB;AAZrB,MAAM,EACJ,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,oBAAoB,GACjC,GAAG,IAAA,6BAAmB,EAAkC;IACvD,IAAI,EAAE,mBAAmB;IACzB,YAAY,EACV,mIAAmI;CACtI,CAAC,CAAC;AAID,8DAAyB;AAEzB,oDAAoB"}
1
+ {"version":3,"file":"DataTableRoot.context.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.context.ts"],"names":[],"mappings":";;;AAAA,oDAA6D;AAwC7D,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAC3E,IAAA,6BAAmB,EAA6B;IAC9C,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,mDAAmD;CAClE,CAAC,CAAC;AAcH,4DAAwB;AAExB,kDAAmB;AAZrB,MAAM,EACJ,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,oBAAoB,GACjC,GAAG,IAAA,6BAAmB,EAAkC;IACvD,IAAI,EAAE,mBAAmB;IACzB,YAAY,EACV,mIAAmI;CACtI,CAAC,CAAC;AAID,8DAAyB;AAEzB,oDAAoB"}
@@ -46,18 +46,18 @@ var __rest = (this && this.__rest) || function (s, e) {
46
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
47
  exports.DataTableTbody = void 0;
48
48
  const react_1 = __importStar(require("react"));
49
+ const DataGridRoot_context_1 = require("../../../data-grid/root/DataGridRoot.context");
49
50
  const helpers_1 = require("../../../utils/helpers");
50
51
  const DataTableRoot_context_1 = require("../root/DataTableRoot.context");
51
52
  const inertValue = parseInt(react_1.version.split(".")[0], 10) > 18 ? true : ""; // Support for inert was added in React 19
52
53
  const DataTableTbody = (0, react_1.forwardRef)((_a, forwardedRef) => {
53
54
  var { className } = _a, rest = __rest(_a, ["className"]);
55
+ const { isLoading } = (0, DataGridRoot_context_1.useDataGridContext)();
54
56
  const { loading } = (0, DataTableRoot_context_1.useDataTableContext)();
55
57
  return (react_1.default.createElement(DataTableRoot_context_1.DataTableLocationProvider, { location: "tbody" },
56
58
  react_1.default.createElement("tbody", Object.assign({}, rest, { ref: forwardedRef, className: (0, helpers_1.cl)("aksel-data-table__tbody", className),
57
59
  // @ts-expect-error - inert is not yet recognized by React's type definitions, but we want to use it for better accessibility when showing the loading overlay.
58
- inert: (loading === null || loading === void 0 ? void 0 : loading.isLoading) && loading.variant === "overlay"
59
- ? inertValue
60
- : false }))));
60
+ inert: isLoading && (loading === null || loading === void 0 ? void 0 : loading.variant) === "overlay" ? inertValue : false }))));
61
61
  });
62
62
  exports.DataTableTbody = DataTableTbody;
63
63
  //# sourceMappingURL=DataTableTbody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableTbody.js","sourceRoot":"","sources":["../../../../src/data/table/tbody/DataTableTbody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,oDAA4C;AAC5C,yEAGuC;AAIvC,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,0CAA0C;AAEnH,MAAM,cAAc,GAAG,IAAA,kBAAU,EAC/B,CAAC,EAAsB,EAAE,YAAY,EAAE,EAAE;QAAxC,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IACnB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,2CAAmB,GAAE,CAAC;IAC1C,OAAO,CACL,8BAAC,iDAAyB,IAAC,QAAQ,EAAC,OAAO;QACzC,yDACM,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,IAAA,YAAE,EAAC,yBAAyB,EAAE,SAAS,CAAC;YACnD,+JAA+J;YAC/J,KAAK,EACH,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,OAAO,CAAC,OAAO,KAAK,SAAS;gBACjD,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,KAAK,IAEX,CACwB,CAC7B,CAAC;AACJ,CAAC,CACF,CAAC;AAEO,wCAAc"}
1
+ {"version":3,"file":"DataTableTbody.js","sourceRoot":"","sources":["../../../../src/data/table/tbody/DataTableTbody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,uFAAkF;AAClF,oDAA4C;AAC5C,yEAGuC;AAIvC,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,0CAA0C;AAEnH,MAAM,cAAc,GAAG,IAAA,kBAAU,EAC/B,CAAC,EAAsB,EAAE,YAAY,EAAE,EAAE;QAAxC,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IACnB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,yCAAkB,GAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,2CAAmB,GAAE,CAAC;IAC1C,OAAO,CACL,8BAAC,iDAAyB,IAAC,QAAQ,EAAC,OAAO;QACzC,yDACM,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,IAAA,YAAE,EAAC,yBAAyB,EAAE,SAAS,CAAC;YACnD,+JAA+J;YAC/J,KAAK,EACH,SAAS,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAElE,CACwB,CAC7B,CAAC;AACJ,CAAC,CACF,CAAC;AAEO,wCAAc"}
@@ -1,17 +1,17 @@
1
1
  import React from "react";
2
- import type { TableRowEntryId } from "../root/DataTable.types";
2
+ import type { TableRowEntryId } from "../root/DataGridTable.types";
3
3
  declare const ACTION_CELL_WIDTH = 50;
4
4
  type DataTableTrProps = React.HTMLAttributes<HTMLTableRowElement> & {
5
5
  selected?: boolean;
6
6
  /**
7
- * Unique identifier for the row, used for selection..
7
+ * Unique identifier for the row, used for selection.
8
8
  */
9
9
  rowId?: TableRowEntryId;
10
10
  };
11
11
  declare const DataTableTr: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & {
12
12
  selected?: boolean;
13
13
  /**
14
- * Unique identifier for the row, used for selection..
14
+ * Unique identifier for the row, used for selection.
15
15
  */
16
16
  rowId?: TableRowEntryId;
17
17
  } & React.RefAttributes<HTMLTableRowElement>>;