@navikt/ds-react 8.10.3 → 8.10.4

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 (159) hide show
  1. package/cjs/action-menu/ActionMenu.js +1 -1
  2. package/cjs/action-menu/ActionMenu.js.map +1 -1
  3. package/cjs/data/stories/Data.test-data.d.ts +24 -0
  4. package/cjs/data/stories/Data.test-data.js +1616 -0
  5. package/cjs/data/stories/Data.test-data.js.map +1 -0
  6. package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
  7. package/cjs/data/table/column-header/DataTableColumnHeader.js +2 -2
  8. package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  9. package/cjs/data/table/column-header/useTableColumnResize.d.ts +21 -18
  10. package/cjs/data/table/column-header/useTableColumnResize.js +7 -25
  11. package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
  12. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
  13. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js +32 -0
  14. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
  15. package/cjs/data/table/helpers/collectTableRowEntries.d.ts +4 -4
  16. package/cjs/data/table/helpers/collectTableRowEntries.js +6 -7
  17. package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -1
  18. package/cjs/data/table/hooks/useColumnOptions.js +18 -5
  19. package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
  20. package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
  21. package/cjs/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +20 -19
  22. package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -0
  23. package/cjs/data/table/hooks/useTableItems.d.ts +13 -16
  24. package/cjs/data/table/hooks/useTableItems.js +9 -8
  25. package/cjs/data/table/hooks/useTableItems.js.map +1 -1
  26. package/cjs/data/table/hooks/useTableSelection.d.ts +4 -2
  27. package/cjs/data/table/hooks/useTableSelection.js +6 -1
  28. package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
  29. package/cjs/data/table/index.d.ts +1 -2
  30. package/cjs/data/table/index.js +22 -12
  31. package/cjs/data/table/index.js.map +1 -1
  32. package/cjs/data/table/root/DataTable.types.d.ts +7 -6
  33. package/cjs/data/table/root/DataTableRoot.context.d.ts +5 -1
  34. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
  35. package/cjs/data/table/root/DataTableRoot.d.ts +79 -115
  36. package/cjs/data/table/root/DataTableRoot.js +167 -38
  37. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  38. package/cjs/data/table/root/DataTableRoot.legacy.d.ts +177 -0
  39. package/cjs/data/table/root/DataTableRoot.legacy.js +104 -0
  40. package/cjs/data/table/root/DataTableRoot.legacy.js.map +1 -0
  41. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
  42. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js +21 -0
  43. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
  44. package/cjs/data/table/tr/DataTableTr.js +11 -11
  45. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  46. package/cjs/utils/components/dismissablelayer/DismissableLayer.js +1 -1
  47. package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
  48. package/cjs/utils/components/floating/Floating.d.ts +16 -1
  49. package/cjs/utils/components/floating/Floating.js +50 -13
  50. package/cjs/utils/components/floating/Floating.js.map +1 -1
  51. package/cjs/utils/components/floating-menu/Menu.js +1 -1
  52. package/cjs/utils/components/floating-menu/Menu.js.map +1 -1
  53. package/cjs/utils/helpers/create-strict-context.js +1 -1
  54. package/cjs/utils/helpers/create-strict-context.js.map +1 -1
  55. package/cjs/utils/hooks/useControllableState.d.ts +5 -5
  56. package/cjs/utils/hooks/useControllableState.js.map +1 -1
  57. package/cjs/utils/hooks/useValueAsRef.js +1 -1
  58. package/cjs/utils/hooks/useValueAsRef.js.map +1 -1
  59. package/cjs/utils-external/hooks/useId.js +1 -1
  60. package/cjs/utils-external/hooks/useId.js.map +1 -1
  61. package/esm/action-menu/ActionMenu.js +1 -1
  62. package/esm/action-menu/ActionMenu.js.map +1 -1
  63. package/esm/data/stories/Data.test-data.d.ts +24 -0
  64. package/esm/data/stories/Data.test-data.js +1607 -0
  65. package/esm/data/stories/Data.test-data.js.map +1 -0
  66. package/esm/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
  67. package/esm/data/table/column-header/DataTableColumnHeader.js +2 -2
  68. package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  69. package/esm/data/table/column-header/useTableColumnResize.d.ts +21 -18
  70. package/esm/data/table/column-header/useTableColumnResize.js +7 -25
  71. package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
  72. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
  73. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js +27 -0
  74. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
  75. package/esm/data/table/helpers/collectTableRowEntries.d.ts +4 -4
  76. package/esm/data/table/helpers/collectTableRowEntries.js +6 -7
  77. package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -1
  78. package/esm/data/table/hooks/useColumnOptions.js +18 -5
  79. package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
  80. package/esm/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
  81. package/esm/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +17 -16
  82. package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -0
  83. package/esm/data/table/hooks/useTableItems.d.ts +13 -16
  84. package/esm/data/table/hooks/useTableItems.js +9 -8
  85. package/esm/data/table/hooks/useTableItems.js.map +1 -1
  86. package/esm/data/table/hooks/useTableSelection.d.ts +4 -2
  87. package/esm/data/table/hooks/useTableSelection.js +6 -1
  88. package/esm/data/table/hooks/useTableSelection.js.map +1 -1
  89. package/esm/data/table/index.d.ts +1 -2
  90. package/esm/data/table/index.js +21 -1
  91. package/esm/data/table/index.js.map +1 -1
  92. package/esm/data/table/root/DataTable.types.d.ts +7 -6
  93. package/esm/data/table/root/DataTableRoot.context.d.ts +5 -1
  94. package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
  95. package/esm/data/table/root/DataTableRoot.d.ts +79 -115
  96. package/esm/data/table/root/DataTableRoot.js +174 -36
  97. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  98. package/esm/data/table/root/DataTableRoot.legacy.d.ts +177 -0
  99. package/esm/data/table/root/DataTableRoot.legacy.js +59 -0
  100. package/esm/data/table/root/DataTableRoot.legacy.js.map +1 -0
  101. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
  102. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js +16 -0
  103. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
  104. package/esm/data/table/tr/DataTableTr.js +11 -11
  105. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  106. package/esm/utils/components/dismissablelayer/DismissableLayer.js +1 -1
  107. package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
  108. package/esm/utils/components/floating/Floating.d.ts +16 -1
  109. package/esm/utils/components/floating/Floating.js +48 -13
  110. package/esm/utils/components/floating/Floating.js.map +1 -1
  111. package/esm/utils/components/floating-menu/Menu.js +2 -2
  112. package/esm/utils/components/floating-menu/Menu.js.map +1 -1
  113. package/esm/utils/helpers/create-strict-context.js +1 -1
  114. package/esm/utils/helpers/create-strict-context.js.map +1 -1
  115. package/esm/utils/hooks/useControllableState.d.ts +5 -5
  116. package/esm/utils/hooks/useControllableState.js.map +1 -1
  117. package/esm/utils/hooks/useValueAsRef.js +1 -1
  118. package/esm/utils/hooks/useValueAsRef.js.map +1 -1
  119. package/esm/utils-external/hooks/useId.js +1 -1
  120. package/esm/utils-external/hooks/useId.js.map +1 -1
  121. package/package.json +3 -3
  122. package/src/action-menu/ActionMenu.tsx +1 -1
  123. package/src/data/stories/Data.test-data.tsx +1703 -0
  124. package/src/data/table/column-header/DataTableColumnHeader.tsx +6 -6
  125. package/src/data/table/column-header/useTableColumnResize.ts +29 -44
  126. package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +53 -0
  127. package/src/data/table/helpers/collectTableRowEntries.ts +10 -18
  128. package/src/data/table/hooks/__tests__/useTableItems.test.ts +14 -7
  129. package/src/data/table/hooks/__tests__/useTableSelection.test.ts +57 -44
  130. package/src/data/table/hooks/useColumnOptions.ts +19 -5
  131. package/src/data/table/hooks/{useTableExpansion.tsx → useTableDetailsPanel.tsx} +81 -45
  132. package/src/data/table/hooks/useTableItems.ts +27 -36
  133. package/src/data/table/hooks/useTableSelection.ts +17 -6
  134. package/src/data/table/index.tsx +5 -3
  135. package/src/data/table/root/DataTable.types.ts +20 -6
  136. package/src/data/table/root/DataTableRoot.context.ts +5 -1
  137. package/src/data/table/root/DataTableRoot.legacy.tsx +297 -0
  138. package/src/data/table/root/DataTableRoot.tsx +482 -217
  139. package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +39 -0
  140. package/src/data/table/tr/DataTableTr.tsx +14 -13
  141. package/src/utils/components/dismissablelayer/DismissableLayer.tsx +1 -1
  142. package/src/utils/components/floating/Floating.tsx +56 -13
  143. package/src/utils/components/floating-menu/Menu.tsx +4 -1
  144. package/src/utils/helpers/create-strict-context.tsx +1 -1
  145. package/src/utils/hooks/useControllableState.ts +11 -8
  146. package/src/utils/hooks/useValueAsRef.ts +1 -1
  147. package/src/utils-external/hooks/useId.ts +1 -1
  148. package/cjs/data/table/hooks/useTableExpansion.d.ts +0 -27
  149. package/cjs/data/table/hooks/useTableExpansion.js.map +0 -1
  150. package/cjs/data/table/root/DataTableAuto.d.ts +0 -182
  151. package/cjs/data/table/root/DataTableAuto.js +0 -206
  152. package/cjs/data/table/root/DataTableAuto.js.map +0 -1
  153. package/esm/data/table/hooks/useTableExpansion.d.ts +0 -27
  154. package/esm/data/table/hooks/useTableExpansion.js.map +0 -1
  155. package/esm/data/table/root/DataTableAuto.d.ts +0 -182
  156. package/esm/data/table/root/DataTableAuto.js +0 -170
  157. package/esm/data/table/root/DataTableAuto.js.map +0 -1
  158. package/src/data/table/root/DataTableAuto.test.tsx +0 -244
  159. package/src/data/table/root/DataTableAuto.tsx +0 -612
@@ -9,51 +9,189 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { forwardRef } from "react";
12
+ /** biome-ignore-all lint/correctness/useHookAtTopLevel: False positive because of the way forwardRef() is added */
13
+ import React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState, } from "react";
14
+ import { Skeleton } from "../../../skeleton/index.js";
13
15
  import { useId } from "../../../utils-external/index.js";
16
+ import { Slot } from "../../../utils/components/slot/Slot.js";
14
17
  import { cl } from "../../../utils/helpers/index.js";
15
18
  import { useMergeRefs } from "../../../utils/hooks/index.js";
16
- import { DataTableCaption, } from "../caption/DataTableCaption.js";
17
- import { DataTableEmptyState, } from "../empty-state/DataTableEmptyState.js";
18
- import { DataTableExpansionProvider } from "../hooks/useTableExpansion.js";
19
+ import { DataTableBaseCell } from "../base-cell/DataTableBaseCell.js";
20
+ import { DataTableColumnHeader } from "../column-header/DataTableColumnHeader.js";
21
+ import { DataTableDetailsPanelRow } from "../details-panel-row/DataTableDetailsPanelRow.js";
22
+ import { DataTableEmptyState } from "../empty-state/DataTableEmptyState.js";
23
+ import { useColumnOptions } from "../hooks/useColumnOptions.js";
24
+ import { DataTableDetailsPanelProvider, } from "../hooks/useTableDetailsPanel.js";
25
+ import { TableItemsProvider, useTableItems, useTableItemsContext, } from "../hooks/useTableItems.js";
19
26
  import { useTableKeyboardNav } from "../hooks/useTableKeyboardNav.js";
20
- import { noSelectionState, } from "../hooks/useTableSelection.js";
21
- import { DataTableLoadingState, } from "../loading-state/DataTableLoadingState.js";
22
- import { DataTableTbody, } from "../tbody/DataTableTbody.js";
23
- import { DataTableTd } from "../td/DataTableTd.js";
24
- import { DataTableTfoot, } from "../tfoot/DataTableTfoot.js";
25
- import { DataTableTh } from "../th/DataTableTh.js";
26
- import { DataTableThead, } from "../thead/DataTableThead.js";
27
+ import { useTableSelection, } from "../hooks/useTableSelection.js";
28
+ import { useTableSort } from "../hooks/useTableSort.js";
29
+ import { DataTableLoadingState } from "../loading-state/DataTableLoadingState.js";
30
+ import { DataTableSubRowToggle } from "../sub-row-toggle/DataTableSubRowToggle.js";
31
+ import { DataTableTbody } from "../tbody/DataTableTbody.js";
32
+ import { DataTableThead } from "../thead/DataTableThead.js";
27
33
  import { DataTableTr } from "../tr/DataTableTr.js";
28
- import { DataTableContextProvider } from "./DataTableRoot.context.js";
34
+ import { DataTableContextProvider, useDataTableContext, } from "./DataTableRoot.context.js";
35
+ function DataTableInner(_a, forwardedRef) {
36
+ var { className, id, rowDensity = "normal", withKeyboardNav = true, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed", selection, data, columnDefinitions, getRowId, stickyColumns, stickyHeader = true, sort: sortProp, defaultSort = [], onSortChange, onRowClick, emptyState, loading, detailsPanel, subRows } = _a, rest = __rest(_a, ["className", "id", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout", "selection", "data", "columnDefinitions", "getRowId", "stickyColumns", "stickyHeader", "sort", "defaultSort", "onSortChange", "onRowClick", "emptyState", "loading", "detailsPanel", "subRows"]);
37
+ const { sortState, onSortClick } = useTableSort({
38
+ defaultSort,
39
+ onSortChange,
40
+ sort: sortProp,
41
+ });
42
+ /**
43
+ * TODO:
44
+ * - If user currently does not give a getRowsId function, and data is nested (getSubRows)
45
+ * we end up in an infinite loop since the index based ids repeat for children and causes chaos.
46
+ */
47
+ const tableItems = useTableItems({
48
+ items: data,
49
+ getRowId: getRowId !== null && getRowId !== void 0 ? getRowId : ((_, index) => index),
50
+ subRows,
51
+ });
52
+ const tableSelectionState = useTableSelection({
53
+ selection,
54
+ visibleRowIds: tableItems.visibleRowIds,
55
+ childRowIdsById: tableItems.childRowIdsById,
56
+ });
57
+ const { columns, stickySelection } = useColumnOptions(columnDefinitions, {
58
+ stickyColumns,
59
+ selectionMode: tableSelectionState.selection.selectionMode,
60
+ });
61
+ const { isLoading = false, loadingState, loadingRows, loadingLabel = "Laster innhold", } = loading || {};
62
+ const fullWidthColSpan = useMemo(() => {
63
+ return (columns.length +
64
+ (layout === "fixed" ? 1 : 0) +
65
+ (tableSelectionState.selection.selectionMode !== "none" ? 1 : 0) +
66
+ ((detailsPanel === null || detailsPanel === void 0 ? void 0 : detailsPanel.getContent) ? 1 : 0));
67
+ }, [
68
+ columns,
69
+ layout,
70
+ tableSelectionState.selection.selectionMode,
71
+ detailsPanel,
72
+ ]);
73
+ const tableId = useId(id);
74
+ return (React.createElement(DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: tableSelectionState, stickySelection: stickySelection, stickyHeader: stickyHeader, tableId: tableId, showLoadingSkeletons: isLoading && loadingState == null, onRowClick: onRowClick, isLoading: isLoading, showLoadingOverlay: isLoading && !loadingState && !loadingRows, columns: columns, fullWidthColSpan: fullWidthColSpan },
75
+ React.createElement(TableItemsProvider, { itemDetails: tableItems.itemDetails, items: tableItems.items, onExpandedRowIdsChange: tableItems.onExpandedRowIdsChange, isSubRowExpanded: tableItems.isSubRowExpanded },
76
+ React.createElement(DataTableDetailsPanelProvider, { detailsPanel: detailsPanel },
77
+ React.createElement(TableElementWrapper, { shouldBlockNavigation: shouldBlockNavigation, enabled: withKeyboardNav },
78
+ React.createElement("table", Object.assign({}, rest, { ref: forwardedRef, className: cl("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, "data-layout": layout, "data-loading": isLoading || undefined, "aria-busy": isLoading || undefined }),
79
+ React.createElement(DataTableThead, null,
80
+ React.createElement(DataTableTr, null, columns.map(({ isSticky, colDef }) => {
81
+ var _a, _b, _c;
82
+ const sortEntry = sortState.find((s) => s.columnId === colDef.id);
83
+ const sortDirection = (_a = sortEntry === null || sortEntry === void 0 ? void 0 : sortEntry.direction) !== null && _a !== void 0 ? _a : "none";
84
+ return (React.createElement(DataTableColumnHeader, { resizable: colDef.resizable, width: colDef.width, defaultWidth: colDef.defaultWidth, autoWidth: colDef.autoWidth, minWidth: colDef.minWidth, maxWidth: colDef.maxWidth, onWidthChange: colDef.onWidthChange, textAlign: (_b = colDef.align) !== null && _b !== void 0 ? _b : "left", key: colDef.id, isSticky: isSticky, sortable: colDef.sortable, sortDirection: sortDirection, onSortClick: (event) => onSortClick(colDef.id, event), label: colDef.label }, (_c = colDef.header) !== null && _c !== void 0 ? _c : colDef.label));
85
+ }))),
86
+ React.createElement(DataTableTbody, null,
87
+ React.createElement(DataTableTBodyContent, { loadingState: loadingState, loadingRows: loadingRows, loadingLabel: loadingLabel, emptyState: emptyState }))))))));
88
+ }
29
89
  /**
30
- * TODO Component description etc.
31
- *
32
- * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
33
- * TODO example
90
+ * Temp optimization to avoid re-renders on every keyboard-move, selection change etc
34
91
  */
35
- const DataTable = forwardRef((_a, forwardedRef) => {
36
- var { className, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed" } = _a, rest = __rest(_a, ["className", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout"]);
92
+ function TableElementWrapper({ children, enabled, shouldBlockNavigation, }) {
93
+ const [applyStickyStyles, setApplyStickyStyles] = useState(false);
94
+ const tableWrapperRef = useRef(null);
95
+ const tableRef = useRef(null);
96
+ const rafRef = useRef(null);
37
97
  const { tabIndex, setTableRef } = useTableKeyboardNav({
38
- enabled: withKeyboardNav,
98
+ enabled,
39
99
  shouldBlockNavigation,
40
100
  });
41
- const mergedRef = useMergeRefs(forwardedRef, setTableRef);
42
- return (React.createElement(DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: noSelectionState, stickySelection: false, stickyHeader: true, tableId: useId(), showLoadingSkeletons: false, onRowClick: undefined, disableRowSelectionOnClick: false, showLoadingOverlay: false, columns: [] },
43
- React.createElement(DataTableExpansionProvider, null,
44
- React.createElement("div", { className: "aksel-data-table__border-wrapper" },
45
- React.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
46
- React.createElement("table", Object.assign({}, rest, { ref: mergedRef, className: cl("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, "data-layout": layout, tabIndex: tabIndex })))))));
47
- });
48
- DataTable.Caption = DataTableCaption;
49
- DataTable.Thead = DataTableThead;
50
- DataTable.Tbody = DataTableTbody;
51
- DataTable.Th = DataTableTh;
52
- DataTable.Tr = DataTableTr;
53
- DataTable.Td = DataTableTd;
54
- DataTable.Tfoot = DataTableTfoot;
55
- DataTable.EmptyState = DataTableEmptyState;
56
- DataTable.LoadingState = DataTableLoadingState;
57
- export { DataTable, DataTableCaption, DataTableEmptyState, DataTableLoadingState, DataTableTbody, DataTableTd, DataTableTfoot, DataTableTh, DataTableThead, DataTableTr, };
101
+ const mergedTableRefs = useMergeRefs(tableRef, setTableRef);
102
+ const updateStickyStyles = useCallback(() => {
103
+ if (!tableWrapperRef.current) {
104
+ return;
105
+ }
106
+ const doesWrapperHasScroll = tableWrapperRef.current.scrollWidth > tableWrapperRef.current.clientWidth;
107
+ setApplyStickyStyles(doesWrapperHasScroll);
108
+ }, []);
109
+ const scheduleStickyStylesUpdate = useCallback(() => {
110
+ if (rafRef.current !== null) {
111
+ return;
112
+ }
113
+ rafRef.current = requestAnimationFrame(() => {
114
+ rafRef.current = null;
115
+ updateStickyStyles();
116
+ });
117
+ }, [updateStickyStyles]);
118
+ useEffect(() => {
119
+ const tableWrapperElement = tableWrapperRef.current;
120
+ if (!tableWrapperElement) {
121
+ return;
122
+ }
123
+ const handleResize = () => scheduleStickyStylesUpdate();
124
+ window.addEventListener("resize", handleResize);
125
+ let resizeObserver;
126
+ if (typeof ResizeObserver !== "undefined") {
127
+ resizeObserver = new ResizeObserver(handleResize);
128
+ resizeObserver.observe(tableWrapperElement);
129
+ if (tableRef.current) {
130
+ resizeObserver.observe(tableRef.current);
131
+ }
132
+ }
133
+ scheduleStickyStylesUpdate();
134
+ return () => {
135
+ window.removeEventListener("resize", handleResize);
136
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
137
+ if (rafRef.current !== null) {
138
+ cancelAnimationFrame(rafRef.current);
139
+ rafRef.current = null;
140
+ }
141
+ };
142
+ }, [scheduleStickyStylesUpdate]);
143
+ return (React.createElement("div", { className: "aksel-data-table__border-wrapper" },
144
+ React.createElement("div", { ref: tableWrapperRef, className: "aksel-data-table__scroll-wrapper" },
145
+ React.createElement(Slot, { tabIndex: tabIndex,
146
+ /* @ts-expect-error Ref is not typed correctly to handle this case */
147
+ ref: mergedTableRefs, "data-scroll": applyStickyStyles ? "true" : undefined }, children))));
148
+ }
149
+ function DataTableTBodyContent({ loadingState, loadingRows, loadingLabel, emptyState, }) {
150
+ const { items, itemDetails } = useTableItemsContext();
151
+ const { columns, isLoading, fullWidthColSpan } = useDataTableContext();
152
+ if (isLoading && loadingState != null) {
153
+ return (React.createElement(DataTableLoadingState, { colSpan: fullWidthColSpan }, loadingState));
154
+ }
155
+ if (isLoading && loadingRows) {
156
+ return (React.createElement(React.Fragment, null,
157
+ React.createElement("tr", null,
158
+ React.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel)),
159
+ Array.from({ length: loadingRows }, (_, rowIndex) => (React.createElement(DataTableTr, { key: `skeleton-row-${rowIndex}`, "aria-hidden": true }, columns.map(({ isSticky, colDef }, colDefIndex) => {
160
+ var _a;
161
+ return (React.createElement(DataTableBaseCell, { textAlign: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky },
162
+ React.createElement(Skeleton, { variant: "text" })));
163
+ }))))));
164
+ }
165
+ if (items.length === 0 && emptyState !== undefined) {
166
+ return (React.createElement(DataTableEmptyState, { colSpan: fullWidthColSpan }, emptyState));
167
+ }
168
+ const renderLoadingAnnouncement = isLoading && !loadingState && !loadingRows;
169
+ return (React.createElement(React.Fragment, null,
170
+ renderLoadingAnnouncement && (React.createElement("tr", null,
171
+ React.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel))),
172
+ items.map((rowData) => {
173
+ const details = itemDetails.get(rowData);
174
+ /* Should in theory be impossible. Look about typing this? */
175
+ if (!details) {
176
+ return null;
177
+ }
178
+ const hasSubRows = details.children.length > 0;
179
+ return (React.createElement(React.Fragment, { key: details.id },
180
+ React.createElement(DataTableTr, { rowId: details.id }, columns.map(({ isSticky, colDef }, colDefIndex) => {
181
+ var _a;
182
+ const renderNestedToggle = colDefIndex === 0 && hasSubRows;
183
+ const renderNestedIndent = colDefIndex === 0 && (details.level > 0 || hasSubRows);
184
+ const style = {
185
+ "--__axc-data-table-nested-depth": details.level,
186
+ };
187
+ return (React.createElement(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, style: style },
188
+ renderNestedToggle && (React.createElement(DataTableSubRowToggle, { details: details })),
189
+ colDef.cell(rowData)));
190
+ })),
191
+ React.createElement(DataTableDetailsPanelRow, { rowId: details.id, rowData: rowData })));
192
+ })));
193
+ }
194
+ const DataTable = forwardRef(DataTableInner);
195
+ export { DataTable };
58
196
  export default DataTable;
59
197
  //# sourceMappingURL=DataTableRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ import React from "react";
2
+ import { DataTableCaption, type DataTableCaptionProps } from "../caption/DataTableCaption.js";
3
+ import { DataTableEmptyState, type DataTableEmptyStateProps } from "../empty-state/DataTableEmptyState.js";
4
+ import { type SelectionProps } from "../hooks/useTableSelection.js";
5
+ import { DataTableLoadingState, type DataTableLoadingStateProps } from "../loading-state/DataTableLoadingState.js";
6
+ import { DataTableTbody, type DataTableTbodyProps } from "../tbody/DataTableTbody.js";
7
+ import { DataTableTd, type DataTableTdProps } from "../td/DataTableTd.js";
8
+ import { DataTableTfoot, type DataTableTfootProps } from "../tfoot/DataTableTfoot.js";
9
+ import { DataTableTh, type DataTableThProps } from "../th/DataTableTh.js";
10
+ import { DataTableThead, type DataTableTheadProps } from "../thead/DataTableThead.js";
11
+ import { DataTableTr, type DataTableTrProps } from "../tr/DataTableTr.js";
12
+ interface DataTableProps extends React.HTMLAttributes<HTMLTableElement>, SelectionProps {
13
+ children: React.ReactNode;
14
+ /**
15
+ * Controls vertical cell padding.
16
+ * @default "normal"
17
+ */
18
+ rowDensity?: "condensed" | "normal" | "spacious";
19
+ /**
20
+ * Zebra striped table
21
+ * @default false
22
+ */
23
+ zebraStripes?: boolean;
24
+ /**
25
+ * Truncate content in cells and show ellipsis for overflowed text.
26
+ *
27
+ * **NB:** When using `layout="auto"`, you have to manually set a `maxWidth` on columns that should be truncated.
28
+ * @default true
29
+ */
30
+ truncateContent?: boolean;
31
+ /**
32
+ * Enables keyboard navigation for table rows and cells.
33
+ * @default false
34
+ */
35
+ withKeyboardNav?: boolean;
36
+ /**
37
+ * Custom callback to determine if navigation should be blocked.
38
+ * Called before default blocking logic.
39
+ * Requires `withKeyboardNav` to be `true`.
40
+ */
41
+ shouldBlockNavigation?: (event: KeyboardEvent) => boolean;
42
+ /**
43
+ * Controls table layout.
44
+ *
45
+ * ### fixed
46
+ * Gives you full control of column widths. This is required for resizable columns.
47
+ *
48
+ * ### auto
49
+ * Makes the columns resize automatically based on the content.
50
+ * The table will take up at least 100% of available width.
51
+ *
52
+ * **NB:** When using this with `truncateContent`, you have to manually
53
+ * set a `contentMaxWidth` on cells that should be truncated.
54
+ * @default "fixed"
55
+ */
56
+ layout?: "fixed" | "auto";
57
+ }
58
+ interface DataTableRootComponent extends React.ForwardRefExoticComponent<DataTableProps & React.RefAttributes<HTMLTableElement>> {
59
+ /**
60
+ * @see 🏷️ {@link DataTableCaptionProps}
61
+ * @example
62
+ * ```jsx
63
+ * <DataTable>
64
+ * <DataTable.Caption>
65
+ * Lorem ipsum
66
+ * </DataTable.Caption
67
+ * </DataTable>
68
+ * ```
69
+ */
70
+ Caption: typeof DataTableCaption;
71
+ /**
72
+ * @see 🏷️ {@link DataTableTheadProps}
73
+ * @example
74
+ * ```jsx
75
+ * <DataTable>
76
+ * <DataTable.Thead>
77
+ * ... TODO
78
+ * </DataTable.Thead>
79
+ * </DataTable>
80
+ * ```
81
+ */
82
+ Thead: typeof DataTableThead;
83
+ /**
84
+ * @see 🏷️ {@link DataTableTbodyProps}
85
+ * @example
86
+ * ```jsx
87
+ * <DataTable>
88
+ * <DataTable.Tbody>
89
+ * ... TODO
90
+ * </DataTable.Tbody>
91
+ * </DataTable>
92
+ * ```
93
+ */
94
+ Tbody: typeof DataTableTbody;
95
+ /**
96
+ * @see 🏷️ {@link DataTableTrProps}
97
+ * @example
98
+ * ```jsx
99
+ * <DataTable>
100
+ * <DataTable.Tr>
101
+ * ... TODO
102
+ * </DataTable.Tr
103
+ * </DataTable>
104
+ * ```
105
+ */
106
+ Tr: typeof DataTableTr;
107
+ /**
108
+ * @see 🏷️ {@link DataTableThProps}
109
+ * @example
110
+ * ```jsx
111
+ * ```
112
+ */
113
+ Th: typeof DataTableTh;
114
+ /**
115
+ * @see 🏷️ {@link DataTableTdProps}
116
+ * @example
117
+ * ```jsx
118
+ * <DataTable>
119
+ * <DataTable.Tbody>
120
+ * <DataTable.Td>
121
+ * Lorem ipsum
122
+ * </DataTable.Td>
123
+ * <DataTable.Td>
124
+ * Dolor sit amet
125
+ * </DataTable.Td>
126
+ * </DataTable.Tbody>
127
+ * </DataTable>
128
+ * ```
129
+ */
130
+ Td: typeof DataTableTd;
131
+ /**
132
+ * @see 🏷️ {@link DataTableTfootProps}
133
+ * @example
134
+ * ```jsx
135
+ * <DataTable>
136
+ * <DataTable.Tfoot>
137
+ * ...
138
+ * </DataTable.Tfoot>
139
+ * </DataTable>
140
+ * ```
141
+ */
142
+ Tfoot: typeof DataTableTfoot;
143
+ /**
144
+ * @see 🏷️ {@link DataTableEmptyStateProps}
145
+ * @example
146
+ * ```jsx
147
+ * <DataTable>
148
+ * <DataTable.TBody>
149
+ * <DataTable.EmptyState />
150
+ * </DataTable.TBody>
151
+ * </DataTable>
152
+ * ```
153
+ */
154
+ EmptyState: typeof DataTableEmptyState;
155
+ /**
156
+ * @see 🏷️ {@link DataTableEmptyStateProps}
157
+ * @example
158
+ * ```jsx
159
+ * <DataTable>
160
+ * <DataTable.TBody>
161
+ * <DataTable.LoadingState />
162
+ * </DataTable.TBody>
163
+ * </DataTable>
164
+ * ```
165
+ */
166
+ LoadingState: typeof DataTableLoadingState;
167
+ }
168
+ /**
169
+ * TODO Component description etc.
170
+ *
171
+ * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
172
+ * TODO example
173
+ */
174
+ declare const DataTable: DataTableRootComponent;
175
+ export { DataTable, DataTableCaption, DataTableEmptyState, DataTableLoadingState, DataTableTbody, DataTableTd, DataTableTfoot, DataTableTh, DataTableThead, DataTableTr, };
176
+ export default DataTable;
177
+ export type { DataTableCaptionProps, DataTableEmptyStateProps, DataTableLoadingStateProps, DataTableProps, DataTableTbodyProps, DataTableTdProps, DataTableTfootProps, DataTableTheadProps, DataTableThProps, DataTableTrProps, };
@@ -0,0 +1,59 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { forwardRef } from "react";
13
+ import { useId } from "../../../utils-external/index.js";
14
+ import { cl } from "../../../utils/helpers/index.js";
15
+ import { useMergeRefs } from "../../../utils/hooks/index.js";
16
+ import { DataTableCaption, } from "../caption/DataTableCaption.js";
17
+ import { DataTableEmptyState, } from "../empty-state/DataTableEmptyState.js";
18
+ import { DataTableDetailsPanelProvider } from "../hooks/useTableDetailsPanel.js";
19
+ import { useTableKeyboardNav } from "../hooks/useTableKeyboardNav.js";
20
+ import { noSelectionState, } from "../hooks/useTableSelection.js";
21
+ import { DataTableLoadingState, } from "../loading-state/DataTableLoadingState.js";
22
+ import { DataTableTbody, } from "../tbody/DataTableTbody.js";
23
+ import { DataTableTd } from "../td/DataTableTd.js";
24
+ import { DataTableTfoot, } from "../tfoot/DataTableTfoot.js";
25
+ import { DataTableTh } from "../th/DataTableTh.js";
26
+ import { DataTableThead, } from "../thead/DataTableThead.js";
27
+ import { DataTableTr } from "../tr/DataTableTr.js";
28
+ import { DataTableContextProvider } from "./DataTableRoot.context.js";
29
+ /**
30
+ * TODO Component description etc.
31
+ *
32
+ * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
33
+ * TODO example
34
+ */
35
+ const DataTable = forwardRef((_a, forwardedRef) => {
36
+ var { className, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed" } = _a, rest = __rest(_a, ["className", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout"]);
37
+ const { tabIndex, setTableRef } = useTableKeyboardNav({
38
+ enabled: withKeyboardNav,
39
+ shouldBlockNavigation,
40
+ });
41
+ const mergedRef = useMergeRefs(forwardedRef, setTableRef);
42
+ return (React.createElement(DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: noSelectionState, stickySelection: false, stickyHeader: true, tableId: useId(), showLoadingSkeletons: false, onRowClick: undefined, showLoadingOverlay: false, columns: [], fullWidthColSpan: 9999 },
43
+ React.createElement(DataTableDetailsPanelProvider, null,
44
+ React.createElement("div", { className: "aksel-data-table__border-wrapper" },
45
+ React.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
46
+ React.createElement("table", Object.assign({}, rest, { ref: mergedRef, className: cl("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, "data-layout": layout, tabIndex: tabIndex })))))));
47
+ });
48
+ DataTable.Caption = DataTableCaption;
49
+ DataTable.Thead = DataTableThead;
50
+ DataTable.Tbody = DataTableTbody;
51
+ DataTable.Th = DataTableTh;
52
+ DataTable.Tr = DataTableTr;
53
+ DataTable.Td = DataTableTd;
54
+ DataTable.Tfoot = DataTableTfoot;
55
+ DataTable.EmptyState = DataTableEmptyState;
56
+ DataTable.LoadingState = DataTableLoadingState;
57
+ export { DataTable, DataTableCaption, DataTableEmptyState, DataTableLoadingState, DataTableTbody, DataTableTd, DataTableTfoot, DataTableTh, DataTableThead, DataTableTr, };
58
+ export default DataTable;
59
+ //# sourceMappingURL=DataTableRoot.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableRoot.legacy.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.legacy.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { type ItemDetail } from "../hooks/useTableItems.js";
3
+ declare function DataTableSubRowToggle({ details }: {
4
+ details: ItemDetail<any>;
5
+ }): React.JSX.Element;
6
+ export { DataTableSubRowToggle };
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { ChevronDownIcon, ChevronRightIcon } from "@navikt/aksel-icons";
3
+ import { Button } from "../../../button/index.js";
4
+ import { useTableItemsContext } from "../hooks/useTableItems.js";
5
+ function DataTableSubRowToggle({ details }) {
6
+ const { isSubRowExpanded, onExpandedRowIdsChange } = useTableItemsContext();
7
+ const subRows = details.children;
8
+ const hasSubRows = subRows && subRows.length > 0;
9
+ const isRowExpanded = isSubRowExpanded(details.id);
10
+ return (React.createElement("div", { className: "aksel-data-table__nested-toggle" }, hasSubRows && (React.createElement(Button, { variant: "tertiary", "data-color": "neutral", size: "small", onClick: (e) => {
11
+ e.stopPropagation();
12
+ onExpandedRowIdsChange(details.id);
13
+ }, "aria-expanded": isRowExpanded, "aria-label": isRowExpanded ? "Skjul under-rader" : "Vis under-rader", icon: isRowExpanded ? (React.createElement(ChevronDownIcon, { "aria-hidden": true })) : (React.createElement(ChevronRightIcon, { "aria-hidden": true })) }))));
14
+ }
15
+ export { DataTableSubRowToggle };
16
+ //# sourceMappingURL=DataTableSubRowToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableSubRowToggle.js","sourceRoot":"","sources":["../../../../src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAmB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,SAAS,qBAAqB,CAAC,EAAE,OAAO,EAAgC;IACtE,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO,CACL,6BAAK,SAAS,EAAC,iCAAiC,IAC7C,UAAU,IAAI,CACb,oBAAC,MAAM,IACL,OAAO,EAAC,UAAU,gBACP,SAAS,EACpB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,mBACc,aAAa,gBAChB,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EACnE,IAAI,EACF,aAAa,CAAC,CAAC,CAAC,CACd,oBAAC,eAAe,0BAAe,CAChC,CAAC,CAAC,CAAC,CACF,oBAAC,gBAAgB,0BAAe,CACjC,GAEH,CACH,CACG,CACP,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -20,14 +20,14 @@ import { useId } from "../../../utils-external/index.js";
20
20
  import { cl, composeEventHandlers } from "../../../utils/helpers/index.js";
21
21
  import { DataTableBaseCell } from "../base-cell/DataTableBaseCell.js";
22
22
  import { DataTableColumnHeader } from "../column-header/DataTableColumnHeader.js";
23
- import { getDataTableExpansionId, useDataTableExpansion, } from "../hooks/useTableExpansion.js";
23
+ import { getDataTableDetailsPanelId, useDataTableDetailsPanel, } from "../hooks/useTableDetailsPanel.js";
24
24
  import { useDataTableContext, useDataTableLocation, } from "../root/DataTableRoot.context.js";
25
25
  import { DataTableTd } from "../td/DataTableTd.js";
26
26
  const SELECTION_CELL_WIDTH = "50px";
27
27
  const DataTableTr = forwardRef((_a, forwardedRef) => {
28
28
  var _b;
29
29
  var { className, children, selected: selectedProp = false, rowId, onClick } = _a, rest = __rest(_a, ["className", "children", "selected", "rowId", "onClick"]);
30
- const { layout, stickyHeader, selectionState, onRowClick, disableRowSelectionOnClick, } = useDataTableContext();
30
+ const { layout, stickyHeader, selectionState, onRowClick } = useDataTableContext();
31
31
  const { location } = useDataTableLocation();
32
32
  const renderFillerCell = layout === "fixed" && children;
33
33
  const selected = (_b = selectionState.selection.isRowSelected(rowId !== null && rowId !== void 0 ? rowId : "")) !== null && _b !== void 0 ? _b : selectedProp;
@@ -44,7 +44,7 @@ const DataTableTr = forwardRef((_a, forwardedRef) => {
44
44
  if (selection && selection.toString().length > 0) {
45
45
  return;
46
46
  }
47
- if (!disableRowSelectionOnClick &&
47
+ if (!selectionState.disableRowSelectionOnClick &&
48
48
  selectionState.selection.selectionMode !== "none") {
49
49
  selectionState.selection.toggleSelection(rowId);
50
50
  }
@@ -62,22 +62,22 @@ const DataTableTr = forwardRef((_a, forwardedRef) => {
62
62
  function RowExpansionCell({ rowId }) {
63
63
  const { tableId, showLoadingSkeletons } = useDataTableContext();
64
64
  const { location } = useDataTableLocation();
65
- const { isExpanded, isDetailsPanelExpandable, toggleExpansion, enableDetailsPanel, isAllExpanded, toggleAll, showExpandAll, } = useDataTableExpansion();
65
+ const { isExpanded, isDetailsPanelExpandable, toggleExpansion, enableDetailsPanel, isAllExpanded, toggleAll, showExpandAll, } = useDataTableDetailsPanel();
66
66
  if (!enableDetailsPanel) {
67
67
  return null;
68
68
  }
69
69
  if (showLoadingSkeletons) {
70
70
  if (location === "thead") {
71
- return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, "data-block-keyboard-nav": true }));
71
+ return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, "data-block-keyboard-nav": true, label: "" }));
72
72
  }
73
73
  return (React.createElement(DataTableBaseCell, { as: "td" },
74
74
  React.createElement(Skeleton, { variant: "text" })));
75
75
  }
76
76
  if (location === "thead" && !showExpandAll) {
77
- return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, "data-block-keyboard-nav": true }));
77
+ return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, "data-block-keyboard-nav": true, label: "" }));
78
78
  }
79
79
  if (location === "thead") {
80
- return (React.createElement(DataTableColumnHeader, { textAlign: "center", width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true },
80
+ return (React.createElement(DataTableColumnHeader, { textAlign: "center", width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, label: "" },
81
81
  React.createElement(Button, { variant: "tertiary", "data-color": "neutral", size: "xsmall", onClick: toggleAll, "aria-expanded": isAllExpanded, "aria-label": isAllExpanded ? "Skjul alle rader" : "Vis alle rader", icon: isAllExpanded ? (React.createElement(ChevronDownUpIcon, { "aria-hidden": true })) : (React.createElement(ChevronUpDownIcon, { "aria-hidden": true })) })));
82
82
  }
83
83
  if (!rowId) {
@@ -85,7 +85,7 @@ function RowExpansionCell({ rowId }) {
85
85
  }
86
86
  const isRowExpanded = isExpanded(rowId);
87
87
  const canExpandRow = isDetailsPanelExpandable(rowId);
88
- const expansionId = getDataTableExpansionId(tableId, rowId);
88
+ const expansionId = getDataTableDetailsPanelId(tableId, rowId);
89
89
  if (!canExpandRow) {
90
90
  return React.createElement(DataTableTd, { UNSAFE_isSelection: true, preventRowClick: true });
91
91
  }
@@ -109,7 +109,7 @@ function RowSelectionCell({ rowId }) {
109
109
  }
110
110
  if (showLoadingSkeletons) {
111
111
  if (location === "thead") {
112
- return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, "data-block-keyboard-nav": true, isSticky: stickySelection && "start" }));
112
+ return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, label: "", "data-block-keyboard-nav": true, isSticky: stickySelection && "start" }));
113
113
  }
114
114
  return (React.createElement(DataTableBaseCell, { as: "td" },
115
115
  React.createElement(Skeleton, { variant: "text" })));
@@ -121,12 +121,12 @@ function RowSelectionCell({ rowId }) {
121
121
  if (theadCheckboxProps.checked) {
122
122
  labelText = "Fjern alle synlige valgte rader";
123
123
  }
124
- return (React.createElement(DataTableColumnHeader, { textAlign: "center", width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, isSticky: stickySelection && "start" },
124
+ return (React.createElement(DataTableColumnHeader, { textAlign: "center", width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, label: "", isSticky: stickySelection && "start" },
125
125
  React.createElement(Label, { htmlFor: inputId, visuallyHidden: true }, labelText),
126
126
  React.createElement(CheckboxInput, Object.assign({}, theadCheckboxProps, { id: inputId, compact: true }))));
127
127
  }
128
128
  if (selection.selectionMode === "single" && location === "thead") {
129
- return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, "data-block-keyboard-nav": true, isSticky: stickySelection && "start" }));
129
+ return (React.createElement(DataTableColumnHeader, { width: SELECTION_CELL_WIDTH, UNSAFE_isSelection: true, label: "", "data-block-keyboard-nav": true, isSticky: stickySelection && "start" }));
130
130
  }
131
131
  if (rowId == null) {
132
132
  return null;