@navikt/ds-react 8.10.4 → 8.10.6

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 (244) hide show
  1. package/cjs/data/data-grid/index.d.ts +2 -0
  2. package/cjs/data/data-grid/index.js +7 -0
  3. package/cjs/data/data-grid/index.js.map +1 -0
  4. package/cjs/data/data-grid/root/DataGridRoot.context.d.ts +11 -0
  5. package/cjs/data/data-grid/root/DataGridRoot.context.js +11 -0
  6. package/cjs/data/data-grid/root/DataGridRoot.context.js.map +1 -0
  7. package/cjs/data/data-grid/root/DataGridRoot.d.ts +38 -0
  8. package/cjs/data/data-grid/root/DataGridRoot.js +68 -0
  9. package/cjs/data/data-grid/root/DataGridRoot.js.map +1 -0
  10. package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +11 -13
  11. package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
  12. package/cjs/data/drag-and-drop/root/DragAndDrop.context.d.ts +4 -2
  13. package/cjs/data/drag-and-drop/root/DragAndDrop.context.js.map +1 -1
  14. package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +44 -46
  15. package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
  16. package/cjs/data/drag-and-drop/types.d.ts +0 -4
  17. package/cjs/data/stories/Data.test-data.d.ts +2 -5
  18. package/cjs/data/stories/Data.test-data.js +30 -39
  19. package/cjs/data/stories/Data.test-data.js.map +1 -1
  20. package/cjs/data/table/base-cell/DataTableBaseCell.d.ts +15 -15
  21. package/cjs/data/table/base-cell/DataTableBaseCell.js +4 -8
  22. package/cjs/data/table/base-cell/DataTableBaseCell.js.map +1 -1
  23. package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +24 -6
  24. package/cjs/data/table/column-header/DataTableColumnHeader.js +22 -27
  25. package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  26. package/cjs/data/table/column-header/useTableColumnResize.d.ts +19 -29
  27. package/cjs/data/table/column-header/useTableColumnResize.js +24 -22
  28. package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
  29. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +1 -1
  30. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js +2 -2
  31. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -1
  32. package/cjs/data/table/helpers/collectTableRowEntries.d.ts +9 -7
  33. package/cjs/data/table/helpers/collectTableRowEntries.js +18 -10
  34. package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -1
  35. package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +13 -11
  36. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +43 -53
  37. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  38. package/cjs/data/table/helpers/selection/getSingleSelectProps.d.ts +9 -8
  39. package/cjs/data/table/helpers/selection/getSingleSelectProps.js +23 -10
  40. package/cjs/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
  41. package/cjs/data/table/helpers/selection/selection.types.d.ts +19 -19
  42. package/cjs/data/table/helpers/selection/selection.utils.d.ts +21 -0
  43. package/cjs/data/table/helpers/selection/selection.utils.js +46 -0
  44. package/cjs/data/table/helpers/selection/selection.utils.js.map +1 -0
  45. package/cjs/data/table/helpers/table-focus.d.ts +0 -3
  46. package/cjs/data/table/helpers/table-focus.js +38 -8
  47. package/cjs/data/table/helpers/table-focus.js.map +1 -1
  48. package/cjs/data/table/hooks/useColumnOptions.d.ts +16 -5
  49. package/cjs/data/table/hooks/useColumnOptions.js +26 -8
  50. package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
  51. package/cjs/data/table/hooks/useGridCache.js +2 -2
  52. package/cjs/data/table/hooks/useGridCache.js.map +1 -1
  53. package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +10 -13
  54. package/cjs/data/table/hooks/useTableDetailsPanel.js +7 -6
  55. package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -1
  56. package/cjs/data/table/hooks/useTableItems.d.ts +31 -17
  57. package/cjs/data/table/hooks/useTableItems.js +10 -20
  58. package/cjs/data/table/hooks/useTableItems.js.map +1 -1
  59. package/cjs/data/table/hooks/useTableKeyboardNav.d.ts +1 -6
  60. package/cjs/data/table/hooks/useTableKeyboardNav.js +6 -5
  61. package/cjs/data/table/hooks/useTableKeyboardNav.js.map +1 -1
  62. package/cjs/data/table/hooks/useTableSelection.d.ts +6 -6
  63. package/cjs/data/table/hooks/useTableSelection.js +13 -13
  64. package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
  65. package/cjs/data/table/hooks/useTableSort.d.ts +2 -2
  66. package/cjs/data/table/hooks/useTableSort.js +4 -5
  67. package/cjs/data/table/hooks/useTableSort.js.map +1 -1
  68. package/cjs/data/table/root/DataTable.types.d.ts +22 -13
  69. package/cjs/data/table/root/DataTableRoot.context.d.ts +13 -7
  70. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
  71. package/cjs/data/table/root/DataTableRoot.d.ts +49 -72
  72. package/cjs/data/table/root/DataTableRoot.js +56 -72
  73. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  74. package/cjs/data/table/root/DataTableRoot.legacy.d.ts +2 -7
  75. package/cjs/data/table/root/DataTableRoot.legacy.js +17 -3
  76. package/cjs/data/table/root/DataTableRoot.legacy.js.map +1 -1
  77. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js +4 -4
  78. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -1
  79. package/cjs/data/table/tbody/DataTableTbody.js +4 -2
  80. package/cjs/data/table/tbody/DataTableTbody.js.map +1 -1
  81. package/cjs/data/table/tr/DataTableTr.d.ts +5 -3
  82. package/cjs/data/table/tr/DataTableTr.js +36 -23
  83. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  84. package/cjs/table/ColumnHeader.js +2 -1
  85. package/cjs/table/ColumnHeader.js.map +1 -1
  86. package/esm/data/data-grid/index.d.ts +2 -0
  87. package/esm/data/data-grid/index.js +3 -0
  88. package/esm/data/data-grid/index.js.map +1 -0
  89. package/esm/data/data-grid/root/DataGridRoot.context.d.ts +11 -0
  90. package/esm/data/data-grid/root/DataGridRoot.context.js +7 -0
  91. package/esm/data/data-grid/root/DataGridRoot.context.js.map +1 -0
  92. package/esm/data/data-grid/root/DataGridRoot.d.ts +38 -0
  93. package/esm/data/data-grid/root/DataGridRoot.js +32 -0
  94. package/esm/data/data-grid/root/DataGridRoot.js.map +1 -0
  95. package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +11 -13
  96. package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
  97. package/esm/data/drag-and-drop/root/DragAndDrop.context.d.ts +4 -2
  98. package/esm/data/drag-and-drop/root/DragAndDrop.context.js.map +1 -1
  99. package/esm/data/drag-and-drop/root/DragAndDropRoot.js +44 -46
  100. package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
  101. package/esm/data/drag-and-drop/types.d.ts +0 -4
  102. package/esm/data/stories/Data.test-data.d.ts +2 -5
  103. package/esm/data/stories/Data.test-data.js +30 -39
  104. package/esm/data/stories/Data.test-data.js.map +1 -1
  105. package/esm/data/table/base-cell/DataTableBaseCell.d.ts +15 -15
  106. package/esm/data/table/base-cell/DataTableBaseCell.js +4 -8
  107. package/esm/data/table/base-cell/DataTableBaseCell.js.map +1 -1
  108. package/esm/data/table/column-header/DataTableColumnHeader.d.ts +24 -6
  109. package/esm/data/table/column-header/DataTableColumnHeader.js +23 -28
  110. package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  111. package/esm/data/table/column-header/useTableColumnResize.d.ts +19 -29
  112. package/esm/data/table/column-header/useTableColumnResize.js +24 -22
  113. package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
  114. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +1 -1
  115. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js +2 -2
  116. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -1
  117. package/esm/data/table/helpers/collectTableRowEntries.d.ts +9 -7
  118. package/esm/data/table/helpers/collectTableRowEntries.js +18 -10
  119. package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -1
  120. package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +13 -11
  121. package/esm/data/table/helpers/selection/getMultipleSelectProps.js +43 -53
  122. package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  123. package/esm/data/table/helpers/selection/getSingleSelectProps.d.ts +9 -8
  124. package/esm/data/table/helpers/selection/getSingleSelectProps.js +23 -10
  125. package/esm/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
  126. package/esm/data/table/helpers/selection/selection.types.d.ts +19 -19
  127. package/esm/data/table/helpers/selection/selection.utils.d.ts +21 -0
  128. package/esm/data/table/helpers/selection/selection.utils.js +43 -0
  129. package/esm/data/table/helpers/selection/selection.utils.js.map +1 -0
  130. package/esm/data/table/helpers/table-focus.d.ts +0 -3
  131. package/esm/data/table/helpers/table-focus.js +38 -8
  132. package/esm/data/table/helpers/table-focus.js.map +1 -1
  133. package/esm/data/table/hooks/useColumnOptions.d.ts +16 -5
  134. package/esm/data/table/hooks/useColumnOptions.js +26 -8
  135. package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
  136. package/esm/data/table/hooks/useGridCache.js +2 -2
  137. package/esm/data/table/hooks/useGridCache.js.map +1 -1
  138. package/esm/data/table/hooks/useTableDetailsPanel.d.ts +10 -13
  139. package/esm/data/table/hooks/useTableDetailsPanel.js +7 -6
  140. package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -1
  141. package/esm/data/table/hooks/useTableItems.d.ts +31 -17
  142. package/esm/data/table/hooks/useTableItems.js +11 -18
  143. package/esm/data/table/hooks/useTableItems.js.map +1 -1
  144. package/esm/data/table/hooks/useTableKeyboardNav.d.ts +1 -6
  145. package/esm/data/table/hooks/useTableKeyboardNav.js +7 -6
  146. package/esm/data/table/hooks/useTableKeyboardNav.js.map +1 -1
  147. package/esm/data/table/hooks/useTableSelection.d.ts +6 -6
  148. package/esm/data/table/hooks/useTableSelection.js +13 -13
  149. package/esm/data/table/hooks/useTableSelection.js.map +1 -1
  150. package/esm/data/table/hooks/useTableSort.d.ts +2 -2
  151. package/esm/data/table/hooks/useTableSort.js +4 -5
  152. package/esm/data/table/hooks/useTableSort.js.map +1 -1
  153. package/esm/data/table/root/DataTable.types.d.ts +22 -13
  154. package/esm/data/table/root/DataTableRoot.context.d.ts +13 -7
  155. package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
  156. package/esm/data/table/root/DataTableRoot.d.ts +49 -72
  157. package/esm/data/table/root/DataTableRoot.js +58 -74
  158. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  159. package/esm/data/table/root/DataTableRoot.legacy.d.ts +2 -7
  160. package/esm/data/table/root/DataTableRoot.legacy.js +17 -3
  161. package/esm/data/table/root/DataTableRoot.legacy.js.map +1 -1
  162. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js +4 -4
  163. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -1
  164. package/esm/data/table/tbody/DataTableTbody.js +4 -2
  165. package/esm/data/table/tbody/DataTableTbody.js.map +1 -1
  166. package/esm/data/table/tr/DataTableTr.d.ts +5 -3
  167. package/esm/data/table/tr/DataTableTr.js +35 -23
  168. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  169. package/esm/table/ColumnHeader.js +2 -1
  170. package/esm/table/ColumnHeader.js.map +1 -1
  171. package/package.json +8 -7
  172. package/src/data/data-grid/index.ts +3 -0
  173. package/src/data/data-grid/root/DataGridRoot.context.ts +16 -0
  174. package/src/data/data-grid/root/DataGridRoot.tsx +71 -0
  175. package/src/data/drag-and-drop/drag-handler/DragAndDropDragHandler.tsx +11 -17
  176. package/src/data/drag-and-drop/root/DragAndDrop.context.tsx +4 -2
  177. package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +63 -52
  178. package/src/data/drag-and-drop/types.ts +0 -5
  179. package/src/data/stories/Data.test-data.tsx +52 -44
  180. package/src/data/table/agent-component-review.md +175 -0
  181. package/src/data/table/base-cell/DataTableBaseCell.tsx +31 -21
  182. package/src/data/table/column-header/DataTableColumnHeader.tsx +63 -58
  183. package/src/data/table/column-header/useTableColumnResize.ts +55 -71
  184. package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +7 -3
  185. package/src/data/table/helpers/collectTableRowEntries.ts +32 -19
  186. package/src/data/table/helpers/selection/getMultipleSelectProps.ts +65 -85
  187. package/src/data/table/helpers/selection/getSingleSelectProps.ts +35 -17
  188. package/src/data/table/helpers/selection/selection.types.ts +19 -19
  189. package/src/data/table/helpers/selection/selection.utils.test.ts +161 -0
  190. package/src/data/table/helpers/selection/selection.utils.ts +73 -0
  191. package/src/data/table/helpers/table-focus.ts +63 -9
  192. package/src/data/table/hooks/__tests__/useTableItems.test.ts +48 -8
  193. package/src/data/table/hooks/useColumnOptions.ts +48 -14
  194. package/src/data/table/hooks/useGridCache.ts +3 -2
  195. package/src/data/table/hooks/useTableDetailsPanel.tsx +25 -25
  196. package/src/data/table/hooks/useTableItems.ts +51 -42
  197. package/src/data/table/hooks/useTableKeyboardNav.ts +7 -15
  198. package/src/data/table/hooks/useTableSelection.ts +26 -31
  199. package/src/data/table/hooks/useTableSort.ts +10 -9
  200. package/src/data/table/root/DataTable.types.ts +30 -25
  201. package/src/data/table/root/DataTableRoot.context.ts +19 -7
  202. package/src/data/table/root/DataTableRoot.legacy.tsx +22 -14
  203. package/src/data/table/root/DataTableRoot.tsx +271 -320
  204. package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +5 -4
  205. package/src/data/table/tbody/DataTableTbody.tsx +6 -2
  206. package/src/data/table/tr/DataTableTr.tsx +98 -35
  207. package/src/table/ColumnHeader.tsx +2 -1
  208. package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.d.ts +0 -22
  209. package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js +0 -35
  210. package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js.map +0 -1
  211. package/cjs/data/drag-and-drop-old/item/DataDragAndDropItem.d.ts +0 -27
  212. package/cjs/data/drag-and-drop-old/item/DataDragAndDropItem.js +0 -86
  213. package/cjs/data/drag-and-drop-old/item/DataDragAndDropItem.js.map +0 -1
  214. package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.d.ts +0 -5
  215. package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.js +0 -6
  216. package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.js.map +0 -1
  217. package/cjs/data/drag-and-drop-old/root/DataDragAndDropRoot.d.ts +0 -24
  218. package/cjs/data/drag-and-drop-old/root/DataDragAndDropRoot.js +0 -108
  219. package/cjs/data/drag-and-drop-old/root/DataDragAndDropRoot.js.map +0 -1
  220. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +0 -46
  221. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js +0 -112
  222. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js.map +0 -1
  223. package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.d.ts +0 -22
  224. package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js +0 -29
  225. package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js.map +0 -1
  226. package/esm/data/drag-and-drop-old/item/DataDragAndDropItem.d.ts +0 -27
  227. package/esm/data/drag-and-drop-old/item/DataDragAndDropItem.js +0 -50
  228. package/esm/data/drag-and-drop-old/item/DataDragAndDropItem.js.map +0 -1
  229. package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.d.ts +0 -5
  230. package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.js +0 -3
  231. package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.js.map +0 -1
  232. package/esm/data/drag-and-drop-old/root/DataDragAndDropRoot.d.ts +0 -24
  233. package/esm/data/drag-and-drop-old/root/DataDragAndDropRoot.js +0 -68
  234. package/esm/data/drag-and-drop-old/root/DataDragAndDropRoot.js.map +0 -1
  235. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +0 -46
  236. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js +0 -109
  237. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js.map +0 -1
  238. package/src/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.tsx +0 -104
  239. package/src/data/drag-and-drop-old/item/DataDragAndDropItem.tsx +0 -74
  240. package/src/data/drag-and-drop-old/root/DataDragAndDrop.context.tsx +0 -11
  241. package/src/data/drag-and-drop-old/root/DataDragAndDropRoot.tsx +0 -96
  242. package/src/data/table/helpers/selection/SelectionSubtreeHelper.test.ts +0 -66
  243. package/src/data/table/helpers/selection/SelectionSubtreeHelper.ts +0 -162
  244. package/src/data/table/hooks/__tests__/useTableSelection.test.ts +0 -488
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableTr.js","sourceRoot":"","sources":["../../../../src/data/table/tr/DataTableTr.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTableTr.js","sourceRoot":"","sources":["../../../../src/data/table/tr/DataTableTr.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,qBAAqB,GAAG,GAAG,iBAAiB,IAAI,CAAC;AAUvD,MAAM,WAAW,GAAG,UAAU,CAC5B,CACE,EAOC,EACD,YAAY,EACZ,EAAE;;QATF,EACE,SAAS,EACT,QAAQ,EACR,QAAQ,EAAE,YAAY,GAAG,KAAK,EAC9B,KAAK,EACL,OAAO,OAER,EADI,IAAI,cANT,yDAOC,CADQ;IAIT,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,GACxD,mBAAmB,EAAE,CAAC;IACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE7C,MAAM,gBAAgB,GAAG,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC;IAExD,MAAM,QAAQ,GACZ,MAAA,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,mCAAI,YAAY,CAAC;IAEtE,MAAM,QAAQ,GAAG,QAAQ,KAAK,OAAO,IAAI,YAAY,CAAC;IAEtD,MAAM,WAAW,GACf,QAAQ,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS;QACzC,CAAC,CAAC,CAAC,KAA4C,EAAE,EAAE;;YAC/C,IACE,KAAK,KAAK,SAAS;gBACnB,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;iBACjC,MAAC,KAAK,CAAC,MAA6B,0CAAE,OAAO,CAC3C,0BAA0B,CAC3B,CAAA,EACD,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,IACE,cAAc,CAAC,gBAAgB,KAAK,KAAK;gBACzC,cAAc,CAAC,SAAS,CAAC,aAAa,KAAK,MAAM,EACjD,CAAC;gBACD,MAAM,OAAO,GAAG,MAAA,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAC;gBAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,cAAc,CACZ,+BAA+B,KAAK,uEAAuE,CAC5G,CAAC;gBACJ,CAAC;gBACD,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,4CACM,IAAI;QACR,gGAAgG;QAChG,OAAO,EACL,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,EAExE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,mBACjC,QAAQ,iBACV,QAAQ,IAAI,SAAS;QAElC,oBAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,GAAI;QAClC,oBAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,GAAI;QACjC,QAAQ;QACR,gBAAgB,IAAI,CAEnB,iDAEE,SAAS,EAAC,sDAAsD,oCAEhE,CACH,CACE,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA+B;IAC9D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChE,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;IAE9C,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAE5C,MAAM,EACJ,UAAU,EACV,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,GACd,GAAG,wBAAwB,EAAE,CAAC;IAE/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,UAAU,EAAE,CAAC;QAC1D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,CACL,oBAAC,qBAAqB,IACpB,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EACvC,QAAQ,EAAC,QAAQ,mCAEjB,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAChD,CACH,CAAC;QACJ,CAAC;QACD,OAAO,CACL,oBAAC,iBAAiB,IAChB,EAAE,EAAC,IAAI,EACP,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAEhD,oBAAC,QAAQ,IAAC,OAAO,EAAC,MAAM,GAAG,CACT,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO,CACL,oBAAC,qBAAqB,IACpB,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EACvC,QAAQ,EAAC,QAAQ,mCAEjB,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAChD,CACH,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CACL,oBAAC,qBAAqB,IACpB,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EACvC,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAEhD,oBAAC,MAAM,IACL,OAAO,EAAC,UAAU,gBACP,SAAS,EACpB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,mBACH,aAAa,gBAChB,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,EACjE,IAAI,EACF,aAAa,CAAC,CAAC,CAAC,CACd,oBAAC,iBAAiB,0BAAe,CAClC,CAAC,CAAC,CAAC,CACF,oBAAC,iBAAiB,0BAAe,CAClC,GAEH,CACoB,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE/D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CACL,oBAAC,WAAW,IACV,QAAQ,EAAC,QAAQ,EACjB,eAAe,QACf,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAChD,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,WAAW,IACV,QAAQ,EAAC,QAAQ,EACjB,eAAe,QACf,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAEhD,oBAAC,MAAM,IACL,OAAO,EAAC,UAAU,gBACP,SAAS,EACpB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,mBACc,aAAa,mBACb,WAAW,gBACd,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,EAC7D,IAAI,EACF,aAAa,CAAC,CAAC,CAAC,oBAAC,SAAS,0BAAe,CAAC,CAAC,CAAC,oBAAC,QAAQ,0BAAe,GAEtE,CACU,CACf,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA+B;;IAC9D,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACvE,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;IAC9C,MAAM,qBAAqB,GAAG,WAAW,CAAC,eAAe,CAAC;IAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAE5C,MAAM,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IAExB,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;IAEtD,IAAI,SAAS,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,UAAU,EAAE,CAAC;QAC1D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,CACL,oBAAC,qBAAqB,IACpB,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EACvC,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAC,EAAE,mCAER,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS,GACpE,CACH,CAAC;QACJ,CAAC;QAED,OAAO,CACL,oBAAC,iBAAiB,IAChB,EAAE,EAAC,IAAI,EACP,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS;YAEpE,oBAAC,QAAQ,IAAC,OAAO,EAAC,MAAM,GAAG,CACT,CACrB,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,IAAI,SAAS,CAAC,aAAa,KAAK,UAAU,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACnE,MAAM,kBAAkB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAE7D,IAAI,SAAS,GAAG,yBAAyB,CAAC;QAC1C,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,SAAS,GAAG,iCAAiC,CAAC;QAChD,CAAC;QAED,OAAO,CACL,oBAAC,qBAAqB,IACpB,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EACvC,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS;YAEpE,oBAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,cAAc,UACpC,SAAS,CACJ;YACR,oBAAC,aAAa,oBAAK,kBAAkB,IAAE,EAAE,EAAE,OAAO,EAAE,OAAO,UAAG,CACxC,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,aAAa,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjE,OAAO,CACL,oBAAC,qBAAqB,IACpB,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EACvC,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAC,EAAE,mCAER,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS,GACpE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,aAAa,KAAK,UAAU,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACnE,OAAO,CACL,oBAAC,WAAW,IACV,QAAQ,EAAC,QAAQ,EACjB,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS;YAEpE,oBAAC,aAAa,oBACR,SAAS,CAAC,mBAAmB,CAC/B,KAAK,EACL,MAAA,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,OAAO,CAC3C,IACD,OAAO,UACP,CACU,CACf,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,aAAa,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjE,OAAO,CACL,oBAAC,WAAW,IACV,QAAQ,EAAC,QAAQ,EACjB,QAAQ,EAAE,eAAe,IAAI,OAAO,EACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS;YAEpE,oBAAC,UAAU,oBACL,SAAS,CAAC,gBAAgB,CAC5B,KAAK,EACL,MAAA,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,OAAO,CAC3C,EACD,CACU,CACf,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,WAAW;AACX,SAAS,mBAAmB,CAAC,MAA0B;IACrD,OAAO,CAAC,CAAC,CAAC,MAA6B,aAA7B,MAAM,uBAAN,MAAM,CAAyB,OAAO,CAC9C,oCAAoC,CACrC,CAAA,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC"}
@@ -11,6 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React, { forwardRef, useContext } from "react";
13
13
  import { ArrowsUpDownIcon, SortDownIcon, SortUpIcon, } from "@navikt/aksel-icons";
14
+ import { consoleWarning } from "../utils/helpers/consoleWarning.js";
14
15
  import HeaderCell from "./HeaderCell.js";
15
16
  import { TableContext } from "./context.js";
16
17
  export const ColumnHeader = forwardRef((_a, ref) => {
@@ -18,7 +19,7 @@ export const ColumnHeader = forwardRef((_a, ref) => {
18
19
  var { children, sortable = false, sortKey } = _a, rest = __rest(_a, ["children", "sortable", "sortKey"]);
19
20
  const context = useContext(TableContext);
20
21
  if (sortable && !sortKey) {
21
- console.warn("ColumnHeader with `sortable=true` must have a sortKey.");
22
+ consoleWarning("ColumnHeader with `sortable=true` must have a sortKey.");
22
23
  }
23
24
  return (React.createElement(HeaderCell, Object.assign({ scope: "col", ref: ref, "aria-sort": sortable
24
25
  ? ((_b = context === null || context === void 0 ? void 0 : context.sort) === null || _b === void 0 ? void 0 : _b.orderBy) === sortKey
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeader.js","sourceRoot":"","sources":["../../src/table/ColumnHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,UAA+B,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAkBzC,MAAM,CAAC,MAAM,YAAY,GAAqB,UAAU,CACtD,CAAC,EAAgD,EAAE,GAAG,EAAE,EAAE;;QAAzD,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,OAAW,EAAN,IAAI,cAA9C,mCAAgD,CAAF;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CACL,oBAAC,UAAU,kBACT,KAAK,EAAC,KAAK,EACX,GAAG,EAAE,GAAG,eAEN,QAAQ;YACN,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,MAAK,OAAO;gBAClC,CAAC,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS;gBAC1B,CAAC,CAAC,MAAM;YACV,CAAC,CAAC,SAAS,IAEX,IAAI,GAEP,QAAQ,CAAC,CAAC,CAAC,CACV,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0BAA0B,EACpC,OAAO,EACL,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,wDAAG,OAAO,CAAC,CAAA,EAAA;YACxC,CAAC,CAAC,SAAS;QAGd,QAAQ;QACR,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,MAAK,OAAO,CAAC,CAAC,CAAC,CACpC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS,MAAK,YAAY,CAAC,CAAC,CAAC,CAC1C,oBAAC,YAAY,0BAAe,CAC7B,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,0BAAe,CAC3B,CACF,CAAC,CAAC,CAAC,CACF,oBAAC,gBAAgB,0BAAe,CACjC,CACM,CACV,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CACU,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ColumnHeader.js","sourceRoot":"","sources":["../../src/table/ColumnHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,UAA+B,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAkBzC,MAAM,CAAC,MAAM,YAAY,GAAqB,UAAU,CACtD,CAAC,EAAgD,EAAE,GAAG,EAAE,EAAE;;QAAzD,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,OAAW,EAAN,IAAI,cAA9C,mCAAgD,CAAF;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,cAAc,CAAC,wDAAwD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CACL,oBAAC,UAAU,kBACT,KAAK,EAAC,KAAK,EACX,GAAG,EAAE,GAAG,eAEN,QAAQ;YACN,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,MAAK,OAAO;gBAClC,CAAC,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS;gBAC1B,CAAC,CAAC,MAAM;YACV,CAAC,CAAC,SAAS,IAEX,IAAI,GAEP,QAAQ,CAAC,CAAC,CAAC,CACV,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0BAA0B,EACpC,OAAO,EACL,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,wDAAG,OAAO,CAAC,CAAA,EAAA;YACxC,CAAC,CAAC,SAAS;QAGd,QAAQ;QACR,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,MAAK,OAAO,CAAC,CAAC,CAAC,CACpC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS,MAAK,YAAY,CAAC,CAAC,CAAC,CAC1C,oBAAC,YAAY,0BAAe,CAC7B,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,0BAAe,CAC3B,CACF,CAAC,CAAC,CAAC,CACF,oBAAC,gBAAgB,0BAAe,CACjC,CACM,CACV,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CACU,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "8.10.4",
3
+ "version": "8.10.6",
4
4
  "description": "React components from the Norwegian Labour and Welfare Administration.",
5
5
  "author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
6
6
  "license": "MIT",
@@ -698,16 +698,16 @@
698
698
  "clean": "rimraf cjs esm",
699
699
  "build": "yarn i18n-jsdoc && concurrently \"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json\" \"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json && yarn write-packagejson\" && yarn i18n-jsdoc --cleanup && yarn copy-types",
700
700
  "watch": "tsc --watch -p tsconfig.esm.json",
701
- "test": "concurrently \"TZ=UTC vitest run -c tests/vitest.config.ts\" \"yarn test-sb-build\"",
701
+ "test": "concurrently \"cross-env TZ=UTC vitest run -c tests/vitest.config.ts\" \"yarn test-sb-build\"",
702
702
  "test-sb-build": "tsc -p tsconfig.sb.json",
703
703
  "test:watch": "TZ=UTC vitest watch -c tests/vitest.config.ts",
704
704
  "copy-types": "copyfiles -f ./src/types/theme.d.ts ./esm/types"
705
705
  },
706
706
  "dependencies": {
707
- "@floating-ui/react": "0.27.8",
707
+ "@floating-ui/react": "0.27.19",
708
708
  "@floating-ui/react-dom": "^2.1.8",
709
- "@navikt/aksel-icons": "^8.10.4",
710
- "@navikt/ds-tokens": "^8.10.4",
709
+ "@navikt/aksel-icons": "^8.10.6",
710
+ "@navikt/ds-tokens": "^8.10.6",
711
711
  "date-fns": "^4.0.0",
712
712
  "react-day-picker": "9.14.0"
713
713
  },
@@ -723,6 +723,7 @@
723
723
  "aksel": "workspace:^",
724
724
  "concurrently": "9.2.1",
725
725
  "copyfiles": "^2.4.1",
726
+ "cross-env": "^10.1.0",
726
727
  "fast-glob": "3.3.3",
727
728
  "jscodeshift": "17.3.0",
728
729
  "jsdom": "27.1.0",
@@ -733,8 +734,8 @@
733
734
  "swr": "^2.4.1",
734
735
  "tsc-alias": "1.8.16",
735
736
  "tsx": "^4.20.6",
736
- "typescript": "6.0.2",
737
- "vitest": "4.1.4"
737
+ "typescript": "6.0.3",
738
+ "vitest": "4.1.5"
738
739
  },
739
740
  "peerDependencies": {
740
741
  "@types/react": "^17.0.30 || ^18 || ^19",
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ export { DataGridRoot as DataGrid } from "./root/DataGridRoot";
3
+ export type { DataGridProps } from "./root/DataGridRoot";
@@ -0,0 +1,16 @@
1
+ import { createStrictContext } from "../../../utils/helpers";
2
+ import type { ColumnDefinitions } from "../../table/root/DataTable.types";
3
+
4
+ type DataGridContextValue<RowDef = unknown> = {
5
+ data: RowDef[];
6
+ columnDefinitions: ColumnDefinitions<RowDef>;
7
+ getRowId?: (rowData: RowDef) => string;
8
+ };
9
+
10
+ const { Provider: DataGridContextProvider, useContext: useDataGridContext } =
11
+ createStrictContext<DataGridContextValue>({
12
+ name: "DataGridContext",
13
+ errorMessage: "DataGrid hooks must be used within a <DataGrid />",
14
+ });
15
+
16
+ export { DataGridContextProvider, useDataGridContext };
@@ -0,0 +1,71 @@
1
+ import React, { HTMLAttributes, forwardRef } from "react";
2
+ import { cl } from "../../../utils/helpers";
3
+ import type { ColumnDefinitions } from "../../table/root/DataTable.types";
4
+ import { DataGridContextProvider } from "./DataGridRoot.context";
5
+
6
+ type RowTId = string;
7
+
8
+ export interface DataGridProps<RowT> extends HTMLAttributes<HTMLDivElement> {
9
+ children: React.ReactNode;
10
+ /**
11
+ * Definitions of the columns to display in the data grid.
12
+ *
13
+ * Each column definition should have a unique `id` and a `cell`-renderer function that takes the row data as argument and returns a React node.
14
+ */
15
+ columnDefinitions: ColumnDefinitions<RowT>;
16
+ /**
17
+ * The data to display.
18
+ *
19
+ * Each object in the array represents a row, and the properties of the object are used to render the cells based on the `columnDefinitions`.
20
+ */
21
+ data: RowT[];
22
+ /**
23
+ * Function to get unique row id from row data.
24
+ *
25
+ * If not provided, the row index will be used as id. This can cause issues if your data changes dynamically, so it's recommended to provide a stable id if possible.
26
+ */
27
+ getRowId?: (rowData: RowT) => RowTId;
28
+ }
29
+
30
+ type DataGridRootComponent = <RowT>(
31
+ props: DataGridProps<RowT> & React.RefAttributes<HTMLDivElement>,
32
+ ) => React.ReactElement | null;
33
+
34
+ /**
35
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/data-grid)
36
+ * @see 🏷️ {@link DataGridProps}
37
+ *
38
+ * @example
39
+ * ```jsx
40
+ * <DataGrid columnDefinitions={columnDefs} data={rowData} getRowId={(row) => row.id}>
41
+ * <DataTable />
42
+ * </DataGrid>
43
+ * ```
44
+ */
45
+ export const DataGridRoot = forwardRef<HTMLDivElement, DataGridProps<unknown>>(
46
+ (
47
+ {
48
+ children,
49
+ className,
50
+ columnDefinitions,
51
+ data,
52
+ getRowId,
53
+ ...rest
54
+ }: DataGridProps<unknown>,
55
+ ref,
56
+ ) => {
57
+ return (
58
+ <div {...rest} ref={ref} className={cl("aksel-data-grid", className)}>
59
+ <DataGridContextProvider
60
+ columnDefinitions={columnDefinitions}
61
+ data={data}
62
+ getRowId={getRowId}
63
+ >
64
+ {children}
65
+ </DataGridContextProvider>
66
+ </div>
67
+ );
68
+ },
69
+ ) as DataGridRootComponent;
70
+
71
+ export default DataGridRoot;
@@ -49,7 +49,7 @@ export const DragAndDropDragHandler = React.forwardRef<
49
49
  <button
50
50
  className="aksel-data-drag-and-drop__drag-handler__arrow"
51
51
  data-direction="up"
52
- onClick={() => context?.onKeyboardDragEnd(-1)}
52
+ onClick={() => context?.onKeyboardDragEnd(-1, itemLabel)}
53
53
  onMouseDown={(e) => e.preventDefault()}
54
54
  disabled={context?.dragHandlerActive?.index === 0}
55
55
  type="button"
@@ -58,13 +58,7 @@ export const DragAndDropDragHandler = React.forwardRef<
58
58
  </button>
59
59
  )}
60
60
  <button
61
- // TODO - Bedre formulering av aria-label?
62
- //aria-label={`Flytt element ${item.index + 1}. Trykk Enter eller Mellomrom for å aktivere, deretter piltastene for å flytte elementet.`}
63
- aria-label={
64
- active
65
- ? `Flytt element ${itemLabel || item.index + 1}. Bruk piltastene for å flytte elementet.`
66
- : `Flytt element ${itemLabel || item.index + 1}. Trykk Enter eller Mellomrom for å aktivere flytting.`
67
- }
61
+ aria-label={`${itemLabel}. Plass ${item.index + 1}.`}
68
62
  aria-pressed={Boolean(active)}
69
63
  aria-roledescription="draggable"
70
64
  type="button"
@@ -77,18 +71,18 @@ export const DragAndDropDragHandler = React.forwardRef<
77
71
  }}
78
72
  onClick={(event) => {
79
73
  if (!active) {
80
- context?.setDragHandlerActive(item);
74
+ context?.onKeyboardDragStart(item);
81
75
  event.currentTarget.focus();
82
76
  } else {
83
- context?.setDragHandlerActive(null);
77
+ context?.onKeyboardDragStart(null);
84
78
  }
85
79
  }}
86
- onBlur={() => context?.setDragHandlerActive(null)}
80
+ onBlur={() => context?.cancelDrag()}
87
81
  onKeyDown={(event) => {
88
82
  if (event.key === "Enter" || event.key === " ") {
89
83
  // Enter or space, currently active item - end keyboard dragging
90
84
  event.preventDefault();
91
- context?.setDragHandlerActive(active ? null : item);
85
+ context?.onKeyboardDragStart(active ? null : item);
92
86
  return;
93
87
  }
94
88
 
@@ -96,19 +90,19 @@ export const DragAndDropDragHandler = React.forwardRef<
96
90
 
97
91
  if (event.key === "Escape") {
98
92
  // Cancel dragging
99
- // TODO Handle reset
100
93
  event.preventDefault();
101
- context?.setDragHandlerActive(null);
94
+ context?.setAnnouncer(`Flytting av ${itemLabel} avbrutt.`);
95
+ context?.cancelDrag(true);
102
96
  return;
103
97
  } else if (event.key === "ArrowUp") {
104
98
  // Move item up
105
99
  event.preventDefault();
106
- context?.onKeyboardDragEnd(-1);
100
+ context?.onKeyboardDragEnd(-1, itemLabel);
107
101
  return;
108
102
  } else if (event.key === "ArrowDown") {
109
103
  // Move item down
110
104
  event.preventDefault();
111
- context?.onKeyboardDragEnd(1);
105
+ context?.onKeyboardDragEnd(1, itemLabel);
112
106
  return;
113
107
  }
114
108
  }}
@@ -120,7 +114,7 @@ export const DragAndDropDragHandler = React.forwardRef<
120
114
  className="aksel-data-drag-and-drop__drag-handler__arrow"
121
115
  data-direction="down"
122
116
  type="button"
123
- onClick={() => context?.onKeyboardDragEnd(1)}
117
+ onClick={() => context?.onKeyboardDragEnd(1, itemLabel)}
124
118
  onMouseDown={(e) => e.preventDefault()}
125
119
  disabled={
126
120
  context?.dragHandlerActive?.index === context?.itemAmount - 1
@@ -7,14 +7,16 @@ interface DragAndDropContextType {
7
7
  dropTarget: DragAndDropElement | null;
8
8
  setDropTarget: (id: DragAndDropElement | null) => void;
9
9
  dragHandlerActive: DragAndDropElement | null;
10
- setDragHandlerActive: (active: DragAndDropElement | null) => void;
11
- onKeyboardDragEnd: (diff: number) => void;
10
+ onKeyboardDragStart: (active: DragAndDropElement | null) => void;
11
+ onKeyboardDragEnd: (diff: number, label: string) => void;
12
12
  startPendingDrag: (
13
13
  event: React.PointerEvent,
14
14
  item: DragAndDropElement,
15
15
  element?: HTMLElement | null,
16
16
  ) => void;
17
17
  itemAmount: number;
18
+ cancelDrag: (resetOrder?: boolean) => void;
19
+ setAnnouncer: (message: string) => void;
18
20
  }
19
21
 
20
22
  export const {
@@ -22,34 +22,16 @@ interface DragAndDropProps<T> extends React.HTMLAttributes<HTMLUListElement> {
22
22
  }
23
23
 
24
24
  /**
25
- * TODO
26
- * [x] setItems on root
27
- * [x] state : active element
28
- * [x] pointer over listener / state, onPointerEnter, onPointerLeave
29
- * [x] Overlay - Use floating component
30
- * [x] Keyboard navigation
31
- * [ ] UU - announce on drag start, item moved, drag end
32
- * [x] Make overlay same width as the OG item, currently jumps to content width
33
- * [x] Look into adding a cancel listener event
34
- * [x] Make onClick work on drag handler button, currently blocked by pointer down/up listeners
35
- * [x] Talk to design about what should happen on ESC key press, currently just cancels dragging, should it also reset position?
36
- * [x] Make arrow icons into buttons that react to keyboard events, currently just decorative
37
- * [x] Keep handler focus after clicking arrows for dragging
38
- * [x] Look into data-based API vs component-based API
39
- * [ ] Should we have hidden instructions for screen readers on how to use the drag and drop, and should we announce the position of the item while dragging?
40
- * [x] Discuss if this component should be generic for drag and drop, or if it should be specifically for tables - just for table for now
41
- * [x] Discuss items type
42
- * [ ] Discuss how to implement label best
43
- * [ ] Quick nav (< > samtidig) - få piltastene til å fungere
44
- * [x] Implement new type for items - ColumnDefinitions<T>
45
- * [ ] Remove announcer div and use a live region component instead
46
- * [ ] Make ESC reset position, not just cancel dragging
47
- * [ ] Make instructions for keyboard users (visible?)
48
- * [ ] Ask design about visible keyboard instructions
25
+ * TODO:
26
+ *
27
+ * Backlog:
28
+ * [ ] Quick nav (< > samtidig) - få piltastene til å fungere - ignore?
29
+ * [ ] Look at instructions text
49
30
  *
50
31
  */
51
32
 
52
33
  const DRAG_THRESHOLD = 4; // Minimum movement in pixels to start dragging
34
+ const SR_INSTRUCTIONS_ID = "drag-and-drop-instructions-id";
53
35
 
54
36
  function DragAndDropInner<T>(
55
37
  { items, setItems, renderItem }: DragAndDropProps<T>,
@@ -60,7 +42,8 @@ function DragAndDropInner<T>(
60
42
  const [dragHandlerActive, setDragHandlerActive] =
61
43
  useState<DragAndDropElement | null>(null);
62
44
  const [overlayWidth, setOverlayWidth] = useState<number | null>(null);
63
- const [announcement, setAnnouncement] = useState("");
45
+ const [announcer, setAnnouncer] = useState("");
46
+ const initialItemsRef = useRef<ColumnDefinitions<T> | null>(null);
64
47
  const activeData = items.find((item) => item.id === activeItem?.id);
65
48
 
66
49
  const activeItemRef = useRef<DragAndDropElement | null>(null);
@@ -79,6 +62,19 @@ function DragAndDropInner<T>(
79
62
  startY: number;
80
63
  } | null>(null);
81
64
 
65
+ const saveInitialItems = useCallback(() => {
66
+ initialItemsRef.current = items;
67
+ }, [items]);
68
+
69
+ const keyboardDragStart = (item: DragAndDropElement | null) => {
70
+ if (item) {
71
+ saveInitialItems();
72
+ } else {
73
+ initialItemsRef.current = null;
74
+ }
75
+ setDragHandlerActive(item);
76
+ };
77
+
82
78
  const startPendingDrag = (
83
79
  event: React.PointerEvent,
84
80
  item: DragAndDropElement,
@@ -121,9 +117,24 @@ function DragAndDropInner<T>(
121
117
  [setItems],
122
118
  );
123
119
 
120
+ const cancelDrag = useCallback(
121
+ (resetOrder = false) => {
122
+ if (resetOrder && initialItemsRef.current) {
123
+ setItems(initialItemsRef.current);
124
+ }
125
+ setOverlayWidth(null);
126
+ setDragHandlerActive(null);
127
+ setCombinedActiveItem(null);
128
+ setCombinedDropTarget(null);
129
+ pendingDragStartRef.current = null;
130
+ initialItemsRef.current = null;
131
+ },
132
+ [setItems, setCombinedActiveItem, setCombinedDropTarget],
133
+ );
134
+
124
135
  useEffect(() => {
125
- /* This useEffect is used to toggle a class on the html element when dragging,
126
- to prevent cursor issues when dragging over interactive elements,
136
+ /* This useEffect is used to toggle a class on the html element when dragging,
137
+ to prevent cursor issues when dragging over interactive elements,
127
138
  and to prevent text selection during dragging. */
128
139
 
129
140
  if (activeItem) {
@@ -156,6 +167,7 @@ function DragAndDropInner<T>(
156
167
  }
157
168
 
158
169
  setOverlayWidth(element?.getBoundingClientRect().width ?? null);
170
+ saveInitialItems();
159
171
  setCombinedActiveItem(pendingStart.item);
160
172
  setCombinedDropTarget(pendingStart.item);
161
173
  pendingDragStartRef.current = null;
@@ -221,25 +233,12 @@ function DragAndDropInner<T>(
221
233
 
222
234
  if (active && target && active.id !== target.id) {
223
235
  reorderItems(active.index, target.index);
224
- setAnnouncement(
225
- `Element flyttet til posisjon ${target?.index + 1} av ${items.length}`,
226
- ); // TODO - Bedre formulering?
227
236
  }
228
237
 
229
- setOverlayWidth(null);
230
- setDragHandlerActive(null);
231
- setCombinedActiveItem(null);
232
- setCombinedDropTarget(null);
233
- pendingDragStartRef.current = null;
238
+ cancelDrag();
234
239
  };
235
240
 
236
- const handlePointerCancel = () => {
237
- setOverlayWidth(null);
238
- setDragHandlerActive(null);
239
- setCombinedActiveItem(null);
240
- setCombinedDropTarget(null);
241
- pendingDragStartRef.current = null;
242
- };
241
+ const handlePointerCancel = () => cancelDrag(true);
243
242
 
244
243
  window.addEventListener("pointermove", handlePointerMove);
245
244
  window.addEventListener("pointerup", handlePointerUp);
@@ -254,10 +253,11 @@ function DragAndDropInner<T>(
254
253
  setCombinedDropTarget,
255
254
  setCombinedActiveItem,
256
255
  reorderItems,
257
- items.length,
256
+ saveInitialItems,
257
+ cancelDrag,
258
258
  ]);
259
259
 
260
- const onKeyboardDragEnd = (diff: number) => {
260
+ const onKeyboardDragEnd = (diff: number, label: string) => {
261
261
  if (!dragHandlerActive) return;
262
262
 
263
263
  const targetIndex = dragHandlerActive.index + diff;
@@ -265,11 +265,9 @@ function DragAndDropInner<T>(
265
265
  return;
266
266
  }
267
267
 
268
+ setAnnouncer(`${label}. Plass ${targetIndex + 1} av ${items.length}.`);
268
269
  reorderItems(dragHandlerActive.index, targetIndex);
269
270
  setDragHandlerActive({ ...dragHandlerActive, index: targetIndex });
270
- setAnnouncement(
271
- `Element flyttet til posisjon ${targetIndex + 1} av ${items.length}`,
272
- ); // TODO - Bedre formulering?
273
271
  };
274
272
 
275
273
  return (
@@ -279,12 +277,27 @@ function DragAndDropInner<T>(
279
277
  dropTarget={dropTarget}
280
278
  setDropTarget={setCombinedDropTarget}
281
279
  dragHandlerActive={dragHandlerActive}
282
- setDragHandlerActive={setDragHandlerActive}
280
+ onKeyboardDragStart={keyboardDragStart}
283
281
  onKeyboardDragEnd={onKeyboardDragEnd}
284
282
  startPendingDrag={startPendingDrag}
283
+ cancelDrag={cancelDrag}
284
+ setAnnouncer={setAnnouncer}
285
285
  itemAmount={items.length}
286
286
  >
287
- <ul ref={forwardedRef} aria-label="Dra og slipp elementer">
287
+ <span id={SR_INSTRUCTIONS_ID} className="sr-only">
288
+ Bruk Tab for å fokusere på en kolonne. Trykk mellomrom eller enter for å
289
+ starte flytting, bruk piltastene for å flytte kolonnen, trykk mellomrom
290
+ eller enter for å slippe, eller Escape for å avbryte.
291
+ </span>
292
+ <div aria-live="assertive" className="sr-only" aria-atomic>
293
+ {announcer}
294
+ </div>
295
+ <ul
296
+ ref={forwardedRef}
297
+ aria-label="Kolonneinnstillinger"
298
+ aria-describedby={SR_INSTRUCTIONS_ID}
299
+ className="aksel-data-table__drag-and-drop-root"
300
+ >
288
301
  {items.map((item, index) => {
289
302
  return (
290
303
  <DragAndDropItem
@@ -306,6 +319,7 @@ function DragAndDropInner<T>(
306
319
  <Floating.Content
307
320
  align="start"
308
321
  updatePositionStrategy="always"
322
+ aria-hidden
309
323
  style={{
310
324
  pointerEvents: "none",
311
325
  boxSizing: "border-box",
@@ -323,9 +337,6 @@ function DragAndDropInner<T>(
323
337
  </Floating.Content>
324
338
  </Floating>
325
339
  )}
326
- <div aria-live="assertive" className="sr-only" aria-atomic="true">
327
- {announcement}
328
- </div>
329
340
  </DragAndDropProvider>
330
341
  );
331
342
  }
@@ -2,8 +2,3 @@ export interface DragAndDropElement {
2
2
  id: string;
3
3
  index: number;
4
4
  }
5
-
6
- export interface DragAndDropItemData {
7
- id: string;
8
- label: string;
9
- }