@navikt/ds-react 7.2.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/cjs/accordion/AccordionHeader.js +1 -1
  2. package/cjs/accordion/AccordionHeader.js.map +1 -1
  3. package/cjs/alert/Alert.d.ts +0 -3
  4. package/cjs/alert/Alert.js +11 -17
  5. package/cjs/alert/Alert.js.map +1 -1
  6. package/cjs/chips/Removable.d.ts +5 -5
  7. package/cjs/chips/Removable.js +4 -2
  8. package/cjs/chips/Removable.js.map +1 -1
  9. package/cjs/collapsible/Collapsible.context.d.ts +1 -1
  10. package/cjs/date/datepicker/DatePicker.d.ts +2 -2
  11. package/cjs/date/monthpicker/MonthPicker.d.ts +2 -2
  12. package/cjs/form/file-upload/FileUpload.context.d.ts +1 -1
  13. package/cjs/index.d.ts +1 -0
  14. package/cjs/index.js +4 -2
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/layout/base/BasePrimitive.d.ts +3 -0
  17. package/cjs/layout/base/BasePrimitive.js.map +1 -1
  18. package/cjs/layout/box/Box.d.ts +2 -2
  19. package/cjs/layout/box/Box.js.map +1 -1
  20. package/cjs/layout/grid/HGrid.d.ts +2 -2
  21. package/cjs/layout/grid/HGrid.js.map +1 -1
  22. package/cjs/layout/stack/Stack.d.ts +2 -2
  23. package/cjs/layout/stack/Stack.js.map +1 -1
  24. package/cjs/modal/ModalHeader.js +6 -1
  25. package/cjs/modal/ModalHeader.js.map +1 -1
  26. package/cjs/modal/dialog-polyfill.js +2 -2
  27. package/cjs/modal/dialog-polyfill.js.map +1 -1
  28. package/cjs/overlays/action-menu/ActionMenu.d.ts +310 -0
  29. package/cjs/overlays/action-menu/ActionMenu.js +227 -0
  30. package/cjs/overlays/action-menu/ActionMenu.js.map +1 -0
  31. package/cjs/overlays/action-menu/index.d.ts +1 -0
  32. package/cjs/overlays/action-menu/index.js +19 -0
  33. package/cjs/overlays/action-menu/index.js.map +1 -0
  34. package/cjs/overlays/floating/Floating.js +9 -10
  35. package/cjs/overlays/floating/Floating.js.map +1 -1
  36. package/cjs/overlays/floating/Floating.utils.d.ts +3 -5
  37. package/cjs/overlays/floating/Floating.utils.js +0 -2
  38. package/cjs/overlays/floating/Floating.utils.js.map +1 -1
  39. package/cjs/overlays/floating-menu/Menu.d.ts +15 -21
  40. package/cjs/overlays/floating-menu/Menu.js +119 -230
  41. package/cjs/overlays/floating-menu/Menu.js.map +1 -1
  42. package/cjs/overlays/floating-menu/parts/RovingFocus.d.ts +1 -1
  43. package/cjs/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
  44. package/cjs/pagination/Pagination.d.ts +1 -6
  45. package/cjs/pagination/Pagination.js.map +1 -1
  46. package/cjs/provider/i18n/LanguageProvider.d.ts +3 -3
  47. package/cjs/stepper/context.d.ts +1 -1
  48. package/cjs/table/Body.d.ts +2 -4
  49. package/cjs/table/Body.js.map +1 -1
  50. package/cjs/table/ColumnHeader.d.ts +1 -2
  51. package/cjs/table/ColumnHeader.js.map +1 -1
  52. package/cjs/table/ExpandableRow.d.ts +1 -2
  53. package/cjs/table/ExpandableRow.js.map +1 -1
  54. package/cjs/table/Header.d.ts +2 -4
  55. package/cjs/table/Header.js.map +1 -1
  56. package/cjs/table/HeaderCell.d.ts +1 -2
  57. package/cjs/table/HeaderCell.js.map +1 -1
  58. package/cjs/table/Row.d.ts +1 -2
  59. package/cjs/table/Row.js.map +1 -1
  60. package/cjs/tabs/Tabs.context.d.ts +1 -1
  61. package/cjs/toggle-group/ToggleGroup.context.d.ts +1 -1
  62. package/cjs/util/i18n/get.d.ts +2 -2
  63. package/cjs/util/i18n/get.js.map +1 -1
  64. package/cjs/util/i18n/i18n.context.d.ts +2 -3
  65. package/cjs/util/i18n/i18n.context.js.map +1 -1
  66. package/cjs/util/i18n/i18n.types.d.ts +5 -9
  67. package/cjs/util/i18n/locales/en.d.ts +39 -0
  68. package/cjs/util/i18n/locales/en.js +41 -0
  69. package/cjs/util/i18n/locales/en.js.map +1 -0
  70. package/cjs/util/i18n/locales/nb.d.ts +14 -0
  71. package/cjs/util/i18n/locales/nb.js +14 -0
  72. package/cjs/util/i18n/locales/nb.js.map +1 -1
  73. package/cjs/util/i18n/locales/nn.d.ts +39 -0
  74. package/cjs/util/i18n/locales/nn.js +41 -0
  75. package/cjs/util/i18n/locales/nn.js.map +1 -0
  76. package/cjs/util/requireReactElement.d.ts +2 -0
  77. package/cjs/util/requireReactElement.js +22 -0
  78. package/cjs/util/requireReactElement.js.map +1 -0
  79. package/cjs/util/virtualfocus/Context.d.ts +1 -1
  80. package/cjs/util/virtualfocus/parts/VirtualFocusContent.d.ts +1 -2
  81. package/cjs/util/virtualfocus/parts/VirtualFocusContent.js.map +1 -1
  82. package/esm/accordion/AccordionHeader.js +1 -1
  83. package/esm/accordion/AccordionHeader.js.map +1 -1
  84. package/esm/alert/Alert.d.ts +0 -3
  85. package/esm/alert/Alert.js +11 -17
  86. package/esm/alert/Alert.js.map +1 -1
  87. package/esm/chips/Removable.d.ts +5 -5
  88. package/esm/chips/Removable.js +4 -2
  89. package/esm/chips/Removable.js.map +1 -1
  90. package/esm/collapsible/Collapsible.context.d.ts +1 -1
  91. package/esm/date/datepicker/DatePicker.d.ts +2 -2
  92. package/esm/date/monthpicker/MonthPicker.d.ts +2 -2
  93. package/esm/form/file-upload/FileUpload.context.d.ts +1 -1
  94. package/esm/index.d.ts +1 -0
  95. package/esm/index.js +1 -0
  96. package/esm/index.js.map +1 -1
  97. package/esm/layout/base/BasePrimitive.d.ts +3 -0
  98. package/esm/layout/base/BasePrimitive.js.map +1 -1
  99. package/esm/layout/box/Box.d.ts +2 -2
  100. package/esm/layout/box/Box.js.map +1 -1
  101. package/esm/layout/grid/HGrid.d.ts +2 -2
  102. package/esm/layout/grid/HGrid.js.map +1 -1
  103. package/esm/layout/stack/Stack.d.ts +2 -2
  104. package/esm/layout/stack/Stack.js.map +1 -1
  105. package/esm/modal/ModalHeader.js +6 -1
  106. package/esm/modal/ModalHeader.js.map +1 -1
  107. package/esm/modal/dialog-polyfill.js +2 -2
  108. package/esm/modal/dialog-polyfill.js.map +1 -1
  109. package/esm/overlays/action-menu/ActionMenu.d.ts +310 -0
  110. package/esm/overlays/action-menu/ActionMenu.js +197 -0
  111. package/esm/overlays/action-menu/ActionMenu.js.map +1 -0
  112. package/esm/overlays/action-menu/index.d.ts +1 -0
  113. package/esm/overlays/action-menu/index.js +3 -0
  114. package/esm/overlays/action-menu/index.js.map +1 -0
  115. package/esm/overlays/floating/Floating.js +9 -10
  116. package/esm/overlays/floating/Floating.js.map +1 -1
  117. package/esm/overlays/floating/Floating.utils.d.ts +3 -5
  118. package/esm/overlays/floating/Floating.utils.js +0 -2
  119. package/esm/overlays/floating/Floating.utils.js.map +1 -1
  120. package/esm/overlays/floating-menu/Menu.d.ts +15 -21
  121. package/esm/overlays/floating-menu/Menu.js +119 -230
  122. package/esm/overlays/floating-menu/Menu.js.map +1 -1
  123. package/esm/overlays/floating-menu/parts/RovingFocus.d.ts +1 -1
  124. package/esm/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
  125. package/esm/pagination/Pagination.d.ts +1 -6
  126. package/esm/pagination/Pagination.js.map +1 -1
  127. package/esm/provider/i18n/LanguageProvider.d.ts +3 -3
  128. package/esm/stepper/context.d.ts +1 -1
  129. package/esm/table/Body.d.ts +2 -4
  130. package/esm/table/Body.js.map +1 -1
  131. package/esm/table/ColumnHeader.d.ts +1 -2
  132. package/esm/table/ColumnHeader.js.map +1 -1
  133. package/esm/table/ExpandableRow.d.ts +1 -2
  134. package/esm/table/ExpandableRow.js.map +1 -1
  135. package/esm/table/Header.d.ts +2 -4
  136. package/esm/table/Header.js.map +1 -1
  137. package/esm/table/HeaderCell.d.ts +1 -2
  138. package/esm/table/HeaderCell.js.map +1 -1
  139. package/esm/table/Row.d.ts +1 -2
  140. package/esm/table/Row.js.map +1 -1
  141. package/esm/tabs/Tabs.context.d.ts +1 -1
  142. package/esm/toggle-group/ToggleGroup.context.d.ts +1 -1
  143. package/esm/util/i18n/get.d.ts +2 -2
  144. package/esm/util/i18n/get.js.map +1 -1
  145. package/esm/util/i18n/i18n.context.d.ts +2 -3
  146. package/esm/util/i18n/i18n.context.js.map +1 -1
  147. package/esm/util/i18n/i18n.types.d.ts +5 -9
  148. package/esm/util/i18n/locales/en.d.ts +39 -0
  149. package/esm/util/i18n/locales/en.js +39 -0
  150. package/esm/util/i18n/locales/en.js.map +1 -0
  151. package/esm/util/i18n/locales/nb.d.ts +14 -0
  152. package/esm/util/i18n/locales/nb.js +14 -0
  153. package/esm/util/i18n/locales/nb.js.map +1 -1
  154. package/esm/util/i18n/locales/nn.d.ts +39 -0
  155. package/esm/util/i18n/locales/nn.js +39 -0
  156. package/esm/util/i18n/locales/nn.js.map +1 -0
  157. package/esm/util/requireReactElement.d.ts +2 -0
  158. package/esm/util/requireReactElement.js +15 -0
  159. package/esm/util/requireReactElement.js.map +1 -0
  160. package/esm/util/virtualfocus/Context.d.ts +1 -1
  161. package/esm/util/virtualfocus/parts/VirtualFocusContent.d.ts +1 -2
  162. package/esm/util/virtualfocus/parts/VirtualFocusContent.js.map +1 -1
  163. package/package.json +15 -7
  164. package/src/accordion/AccordionHeader.tsx +0 -1
  165. package/src/alert/Alert.tsx +11 -20
  166. package/src/chips/Removable.tsx +13 -9
  167. package/src/date/datepicker/DatePicker.tsx +2 -2
  168. package/src/date/monthpicker/MonthPicker.tsx +2 -2
  169. package/src/form/checkbox/Checkbox.test.tsx +2 -3
  170. package/src/form/confirmation-panel/ConfirmationPanel.test.tsx +1 -2
  171. package/src/form/radio/Radio.test.tsx +4 -5
  172. package/src/index.ts +1 -0
  173. package/src/layout/base/BasePrimitive.tsx +3 -0
  174. package/src/layout/box/Box.tsx +35 -36
  175. package/src/layout/grid/HGrid.tsx +26 -27
  176. package/src/layout/stack/Stack.tsx +53 -54
  177. package/src/modal/ModalHeader.tsx +6 -0
  178. package/src/modal/dialog-polyfill.ts +2 -2
  179. package/src/overlays/action-menu/ActionMenu.tsx +971 -0
  180. package/src/overlays/action-menu/index.ts +29 -0
  181. package/src/overlays/floating/Floating.tsx +6 -12
  182. package/src/overlays/floating/Floating.utils.ts +2 -5
  183. package/src/overlays/floating-menu/Menu.tsx +183 -332
  184. package/src/overlays/floating-menu/parts/RovingFocus.tsx +3 -3
  185. package/src/pagination/Pagination.tsx +4 -1
  186. package/src/pagination/steps.test.ts +15 -16
  187. package/src/provider/i18n/LanguageProvider.tsx +3 -3
  188. package/src/table/Body.tsx +4 -6
  189. package/src/table/ColumnHeader.tsx +3 -4
  190. package/src/table/ExpandableRow.tsx +3 -4
  191. package/src/table/Header.tsx +4 -6
  192. package/src/table/HeaderCell.tsx +3 -4
  193. package/src/table/Row.tsx +3 -4
  194. package/src/util/i18n/get.ts +3 -3
  195. package/src/util/i18n/i18n.context.ts +2 -3
  196. package/src/util/i18n/i18n.types.ts +7 -11
  197. package/src/util/i18n/locales/en.ts +40 -0
  198. package/src/util/i18n/locales/nb.ts +23 -1
  199. package/src/util/i18n/locales/nn.ts +40 -0
  200. package/src/util/i18n/locales.test.tsx +23 -0
  201. package/src/util/requireReactElement.ts +25 -0
  202. package/src/util/virtualfocus/parts/VirtualFocusContent.tsx +4 -2
  203. package/cjs/util/i18n/merge.d.ts +0 -2
  204. package/cjs/util/i18n/merge.js +0 -28
  205. package/cjs/util/i18n/merge.js.map +0 -1
  206. package/esm/util/i18n/merge.d.ts +0 -2
  207. package/esm/util/i18n/merge.js +0 -25
  208. package/esm/util/i18n/merge.js.map +0 -1
  209. package/src/util/i18n/merge.ts +0 -35
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ export {
3
+ ActionMenu,
4
+ ActionMenuCheckboxItem,
5
+ ActionMenuContent,
6
+ ActionMenuGroup,
7
+ ActionMenuItem,
8
+ ActionMenuLabel,
9
+ ActionMenuRadioGroup,
10
+ ActionMenuRadioItem,
11
+ ActionMenuDivider,
12
+ ActionMenuSub,
13
+ ActionMenuSubContent,
14
+ ActionMenuSubTrigger,
15
+ ActionMenuTrigger,
16
+ type ActionMenuItemProps,
17
+ type ActionMenuCheckboxItemProps,
18
+ type ActionMenuContentProps,
19
+ type ActionMenuGroupProps,
20
+ type ActionMenuLabelProps,
21
+ type ActionMenuProps,
22
+ type ActionMenuRadioGroupProps,
23
+ type ActionMenuRadioItemProps,
24
+ type ActionMenuDividerProps,
25
+ type ActionMenuSubContentProps,
26
+ type ActionMenuSubProps,
27
+ type ActionMenuSubTriggerProps,
28
+ type ActionMenuTriggerProps,
29
+ } from "./ActionMenu";
@@ -1,4 +1,5 @@
1
1
  import {
2
+ FlipOptions,
2
3
  Placement,
3
4
  autoUpdate,
4
5
  flip,
@@ -217,9 +218,6 @@ const FloatingContent = forwardRef<HTMLDivElement, FloatingContentProps>(
217
218
  ) => {
218
219
  const context = useFloatingContext();
219
220
 
220
- const [content, setContent] = useState<HTMLDivElement | null>(null);
221
- const mergeRefs = useMergeRefs(forwardedRef, setContent);
222
-
223
221
  const arrowDefaults = {
224
222
  padding: 5,
225
223
  width: 0,
@@ -251,11 +249,13 @@ const FloatingContent = forwardRef<HTMLDivElement, FloatingContentProps>(
251
249
  return value !== null;
252
250
  }
253
251
 
254
- const detectOverflowOptions = {
252
+ const detectOverflowOptions: FlipOptions = {
255
253
  padding: collisionPadding,
256
254
  boundary: boundary.filter(isNotNull),
257
255
  // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
258
256
  altBoundary: hasExplicitBoundaries,
257
+ /* https://floating-ui.com/docs/flip#fallbackaxissidedirection */
258
+ fallbackAxisSideDirection: "end",
259
259
  };
260
260
 
261
261
  const { refs, floatingStyles, placement, isPositioned, middlewareData } =
@@ -282,7 +282,6 @@ const FloatingContent = forwardRef<HTMLDivElement, FloatingContentProps>(
282
282
  mainAxis: true,
283
283
  crossAxis: false,
284
284
  limiter: limitShift(),
285
- ...detectOverflowOptions,
286
285
  }),
287
286
  avoidCollisions && flip({ ...detectOverflowOptions }),
288
287
  size({
@@ -332,11 +331,6 @@ const FloatingContent = forwardRef<HTMLDivElement, FloatingContentProps>(
332
331
  const arrowY = middlewareData.arrow?.y;
333
332
  const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
334
333
 
335
- const [contentZIndex, setContentZIndex] = useState<string>();
336
- useClientLayoutEffect(() => {
337
- if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
338
- }, [content]);
339
-
340
334
  return (
341
335
  <div
342
336
  ref={refs.setFloating}
@@ -347,7 +341,7 @@ const FloatingContent = forwardRef<HTMLDivElement, FloatingContentProps>(
347
341
  ? floatingStyles.transform
348
342
  : "translate(0, -200%)", // keep off the page when measuring
349
343
  minWidth: "max-content",
350
- zIndex: contentZIndex,
344
+ zIndex: "9999999",
351
345
  ["--ac-floating-transform-origin" as any]: [
352
346
  middlewareData.transformOrigin?.x,
353
347
  middlewareData.transformOrigin?.y,
@@ -365,7 +359,7 @@ const FloatingContent = forwardRef<HTMLDivElement, FloatingContentProps>(
365
359
  hideArrow={cannotCenterArrow}
366
360
  >
367
361
  <div
368
- ref={mergeRefs}
362
+ ref={forwardedRef}
369
363
  data-side={placedSide}
370
364
  data-align={placedAlign}
371
365
  {...contentProps}
@@ -1,10 +1,7 @@
1
1
  import type { Middleware, Placement } from "@floating-ui/react-dom";
2
2
 
3
- const SIDE_OPTIONS = ["top", "right", "bottom", "left"] as const;
4
- const ALIGN_OPTIONS = ["start", "center", "end"] as const;
5
-
6
- type Side = (typeof SIDE_OPTIONS)[number];
7
- type Align = (typeof ALIGN_OPTIONS)[number];
3
+ type Side = "top" | "right" | "bottom" | "left";
4
+ type Align = "start" | "center" | "end";
8
5
  type Measurable = { getBoundingClientRect(): DOMRect };
9
6
 
10
7
  /**