@navikt/ds-react 6.13.0 → 6.14.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 (270) hide show
  1. package/cjs/accordion/AccordionContext.d.ts +0 -1
  2. package/cjs/collapsible/Collapsible.context.d.ts +0 -1
  3. package/cjs/date/context/useDateInputContext.d.ts +0 -1
  4. package/cjs/date/datepicker/parts/HeadRow.d.ts +0 -1
  5. package/cjs/date/datepicker/parts/HeadRow.js +2 -3
  6. package/cjs/date/datepicker/parts/HeadRow.js.map +1 -1
  7. package/cjs/date/datepicker/parts/Row.d.ts +0 -1
  8. package/cjs/date/datepicker/parts/TableHead.d.ts +0 -1
  9. package/cjs/date/datepicker/parts/WeekNumber.d.ts +0 -1
  10. package/cjs/date/datepicker/types.d.ts +0 -1
  11. package/cjs/date/monthpicker/types.d.ts +0 -1
  12. package/cjs/date/utils/check-dates.js +2 -2
  13. package/cjs/date/utils/check-dates.js.map +1 -1
  14. package/cjs/date/utils/get-initial-year.js +1 -2
  15. package/cjs/date/utils/get-initial-year.js.map +1 -1
  16. package/cjs/date/utils/get-month-weeks.js +2 -3
  17. package/cjs/date/utils/get-month-weeks.js.map +1 -1
  18. package/cjs/date/utils/is-match.js +2 -3
  19. package/cjs/date/utils/is-match.js.map +1 -1
  20. package/cjs/dropdown/Menu/index.d.ts +1 -1
  21. package/cjs/dropdown/context.d.ts +0 -1
  22. package/cjs/expansion-card/context.d.ts +0 -1
  23. package/cjs/form/checkbox/useCheckbox.d.ts +3 -3
  24. package/cjs/form/combobox/Combobox.d.ts +1 -1
  25. package/cjs/form/combobox/Combobox.js.map +1 -1
  26. package/cjs/form/combobox/ComboboxProvider.js +3 -1
  27. package/cjs/form/combobox/ComboboxProvider.js.map +1 -1
  28. package/cjs/form/combobox/FilteredOptions/filtered-options-util.d.ts +1 -0
  29. package/cjs/form/combobox/FilteredOptions/filtered-options-util.js +6 -1
  30. package/cjs/form/combobox/FilteredOptions/filtered-options-util.js.map +1 -1
  31. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +5 -5
  32. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  33. package/cjs/form/combobox/Input/Input.context.d.ts +20 -7
  34. package/cjs/form/combobox/Input/Input.context.js +6 -12
  35. package/cjs/form/combobox/Input/Input.context.js.map +1 -1
  36. package/cjs/form/combobox/Input/Input.d.ts +1 -1
  37. package/cjs/form/combobox/Input/Input.js +42 -18
  38. package/cjs/form/combobox/Input/Input.js.map +1 -1
  39. package/cjs/form/combobox/Input/InputController.d.ts +1 -1
  40. package/cjs/form/combobox/Input/InputController.js.map +1 -1
  41. package/cjs/form/combobox/types.d.ts +8 -4
  42. package/cjs/form/fieldset/context.d.ts +0 -1
  43. package/cjs/form/fieldset/useFieldset.d.ts +1 -1
  44. package/cjs/form/file-upload/FileUpload.context.d.ts +0 -1
  45. package/cjs/form/file-upload/parts/dropzone/dropzone.types.d.ts +0 -1
  46. package/cjs/form/file-upload/parts/item/utils/format-file-size.js +1 -2
  47. package/cjs/form/file-upload/parts/item/utils/format-file-size.js.map +1 -1
  48. package/cjs/form/file-upload/useFileUpload.d.ts +1 -2
  49. package/cjs/form/file-upload/utils/is-accepted-file-type.js +1 -2
  50. package/cjs/form/file-upload/utils/is-accepted-file-type.js.map +1 -1
  51. package/cjs/form/file-upload/utils/is-accepted-size.js +1 -2
  52. package/cjs/form/file-upload/utils/is-accepted-size.js.map +1 -1
  53. package/cjs/form/radio/useRadio.d.ts +3 -3
  54. package/cjs/form/search/context.d.ts +0 -1
  55. package/cjs/layout/base/PrimitiveAsChildProps.d.ts +0 -1
  56. package/cjs/layout/grid/HGrid.js +4 -1
  57. package/cjs/layout/grid/HGrid.js.map +1 -1
  58. package/cjs/layout/stack/Stack.js +7 -2
  59. package/cjs/layout/stack/Stack.js.map +1 -1
  60. package/cjs/layout/utilities/css.js +2 -3
  61. package/cjs/layout/utilities/css.js.map +1 -1
  62. package/cjs/list/context.d.ts +0 -1
  63. package/cjs/list/types.d.ts +0 -1
  64. package/cjs/modal/ModalUtils.js +3 -3
  65. package/cjs/modal/ModalUtils.js.map +1 -1
  66. package/cjs/modal/types.d.ts +0 -1
  67. package/cjs/overlays/dismissablelayer/DismissableLayer.d.ts +1 -1
  68. package/cjs/overlays/dismissablelayer/util/dispatchCustomEvent.js +2 -2
  69. package/cjs/overlays/dismissablelayer/util/dispatchCustomEvent.js.map +1 -1
  70. package/cjs/overlays/dismissablelayer/util/useEscapeKeydown.js +1 -2
  71. package/cjs/overlays/dismissablelayer/util/useEscapeKeydown.js.map +1 -1
  72. package/cjs/overlays/dismissablelayer/util/useFocusOutside.js +1 -2
  73. package/cjs/overlays/dismissablelayer/util/useFocusOutside.js.map +1 -1
  74. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js +1 -2
  75. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
  76. package/cjs/overlays/floating/Floating.utils.js +2 -3
  77. package/cjs/overlays/floating/Floating.utils.js.map +1 -1
  78. package/cjs/slot/merge-props.js +1 -2
  79. package/cjs/slot/merge-props.js.map +1 -1
  80. package/cjs/stepper/context.d.ts +0 -1
  81. package/cjs/table/context.d.ts +0 -1
  82. package/cjs/tabs/Tabs.context.d.ts +1 -2
  83. package/cjs/tabs/parts/tab/useTab.d.ts +1 -2
  84. package/cjs/tabs/parts/tab/useTab.js +1 -2
  85. package/cjs/tabs/parts/tab/useTab.js.map +1 -1
  86. package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +0 -1
  87. package/cjs/tabs/parts/tablist/useScrollButtons.js +1 -2
  88. package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -1
  89. package/cjs/tabs/parts/tablist/useTabList.js +3 -3
  90. package/cjs/tabs/parts/tablist/useTabList.js.map +1 -1
  91. package/cjs/tabs/parts/tabpanel/useTabPanel.js +1 -2
  92. package/cjs/tabs/parts/tabpanel/useTabPanel.js.map +1 -1
  93. package/cjs/tabs/useTabs.d.ts +0 -1
  94. package/cjs/tabs/useTabs.js +1 -2
  95. package/cjs/tabs/useTabs.js.map +1 -1
  96. package/cjs/timeline/hooks/usePeriodContext.d.ts +0 -1
  97. package/cjs/timeline/hooks/useRowContext.d.ts +0 -1
  98. package/cjs/timeline/hooks/useTimelineContext.d.ts +0 -1
  99. package/cjs/timeline/period/types.d.ts +0 -1
  100. package/cjs/timeline/zoom/index.d.ts +1 -1
  101. package/cjs/toggle-group/ToggleGroup.context.d.ts +1 -2
  102. package/cjs/toggle-group/parts/useToggleItem.d.ts +1 -2
  103. package/cjs/toggle-group/parts/useToggleItem.js +3 -3
  104. package/cjs/toggle-group/parts/useToggleItem.js.map +1 -1
  105. package/cjs/toggle-group/useToggleGroup.d.ts +0 -1
  106. package/cjs/toggle-group/useToggleGroup.js +1 -2
  107. package/cjs/toggle-group/useToggleGroup.js.map +1 -1
  108. package/cjs/util/composeEventHandlers.d.ts +0 -1
  109. package/cjs/util/composeEventHandlers.js +1 -2
  110. package/cjs/util/composeEventHandlers.js.map +1 -1
  111. package/cjs/util/copy.js +1 -1
  112. package/cjs/util/copy.js.map +1 -1
  113. package/cjs/util/create-context.js +1 -2
  114. package/cjs/util/create-context.js.map +1 -1
  115. package/cjs/util/debounce.js +1 -1
  116. package/cjs/util/debounce.js.map +1 -1
  117. package/cjs/util/hooks/descendants/useDescendant.d.ts +1 -1
  118. package/cjs/util/hooks/descendants/useDescendant.js +1 -2
  119. package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
  120. package/cjs/util/hooks/descendants/utils.js +4 -4
  121. package/cjs/util/hooks/descendants/utils.js.map +1 -1
  122. package/cjs/util/hooks/useCallbackRef.d.ts +0 -1
  123. package/cjs/util/hooks/useCallbackRef.js +1 -2
  124. package/cjs/util/hooks/useCallbackRef.js.map +1 -1
  125. package/cjs/util/hooks/useControllableState.js +1 -2
  126. package/cjs/util/hooks/useControllableState.js.map +1 -1
  127. package/cjs/util/hooks/useId.js +1 -2
  128. package/cjs/util/hooks/useId.js.map +1 -1
  129. package/cjs/util/hooks/useMergeRefs.d.ts +1 -1
  130. package/cjs/util/hooks/useMergeRefs.js +2 -3
  131. package/cjs/util/hooks/useMergeRefs.js.map +1 -1
  132. package/cjs/util/i18n/get.js +1 -2
  133. package/cjs/util/i18n/get.js.map +1 -1
  134. package/cjs/util/i18n/i18n.context.d.ts +0 -1
  135. package/cjs/util/i18n/i18n.context.js +2 -2
  136. package/cjs/util/i18n/i18n.context.js.map +1 -1
  137. package/cjs/util/i18n/merge.js +1 -2
  138. package/cjs/util/i18n/merge.js.map +1 -1
  139. package/cjs/util/omit.js +1 -2
  140. package/cjs/util/omit.js.map +1 -1
  141. package/cjs/util/types/AsChild.d.ts +0 -1
  142. package/cjs/util/types/AsChildProps.d.ts +0 -1
  143. package/cjs/util/virtualfocus/Context.d.ts +43 -0
  144. package/cjs/util/virtualfocus/Context.js +9 -0
  145. package/cjs/util/virtualfocus/Context.js.map +1 -0
  146. package/cjs/util/virtualfocus/SlottedDivElement.d.ts +7 -0
  147. package/cjs/util/virtualfocus/SlottedDivElement.js +46 -0
  148. package/cjs/util/virtualfocus/SlottedDivElement.js.map +1 -0
  149. package/cjs/util/virtualfocus/VirtualFocus.d.ts +62 -0
  150. package/cjs/util/virtualfocus/VirtualFocus.js +90 -0
  151. package/cjs/util/virtualfocus/VirtualFocus.js.map +1 -0
  152. package/cjs/util/virtualfocus/parts/VirtualFocusAnchor.d.ts +33 -0
  153. package/cjs/util/virtualfocus/parts/VirtualFocusAnchor.js +80 -0
  154. package/cjs/util/virtualfocus/parts/VirtualFocusAnchor.js.map +1 -0
  155. package/cjs/util/virtualfocus/parts/VirtualFocusContent.d.ts +4 -0
  156. package/cjs/util/virtualfocus/parts/VirtualFocusContent.js +45 -0
  157. package/cjs/util/virtualfocus/parts/VirtualFocusContent.js.map +1 -0
  158. package/cjs/util/virtualfocus/parts/VirtualFocusItem.d.ts +18 -0
  159. package/cjs/util/virtualfocus/parts/VirtualFocusItem.js +64 -0
  160. package/cjs/util/virtualfocus/parts/VirtualFocusItem.js.map +1 -0
  161. package/esm/accordion/AccordionContext.d.ts +0 -1
  162. package/esm/collapsible/Collapsible.context.d.ts +0 -1
  163. package/esm/date/context/useDateInputContext.d.ts +0 -1
  164. package/esm/date/datepicker/parts/HeadRow.d.ts +0 -1
  165. package/esm/date/datepicker/parts/Row.d.ts +0 -1
  166. package/esm/date/datepicker/parts/TableHead.d.ts +0 -1
  167. package/esm/date/datepicker/parts/WeekNumber.d.ts +0 -1
  168. package/esm/date/datepicker/types.d.ts +0 -1
  169. package/esm/date/monthpicker/types.d.ts +0 -1
  170. package/esm/dropdown/Menu/index.d.ts +1 -1
  171. package/esm/dropdown/context.d.ts +0 -1
  172. package/esm/expansion-card/context.d.ts +0 -1
  173. package/esm/form/checkbox/useCheckbox.d.ts +3 -3
  174. package/esm/form/combobox/Combobox.d.ts +1 -1
  175. package/esm/form/combobox/Combobox.js.map +1 -1
  176. package/esm/form/combobox/ComboboxProvider.js +3 -1
  177. package/esm/form/combobox/ComboboxProvider.js.map +1 -1
  178. package/esm/form/combobox/FilteredOptions/filtered-options-util.d.ts +1 -0
  179. package/esm/form/combobox/FilteredOptions/filtered-options-util.js +6 -1
  180. package/esm/form/combobox/FilteredOptions/filtered-options-util.js.map +1 -1
  181. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +5 -5
  182. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  183. package/esm/form/combobox/Input/Input.context.d.ts +20 -7
  184. package/esm/form/combobox/Input/Input.context.js +7 -13
  185. package/esm/form/combobox/Input/Input.context.js.map +1 -1
  186. package/esm/form/combobox/Input/Input.d.ts +1 -1
  187. package/esm/form/combobox/Input/Input.js +43 -19
  188. package/esm/form/combobox/Input/Input.js.map +1 -1
  189. package/esm/form/combobox/Input/InputController.d.ts +1 -1
  190. package/esm/form/combobox/Input/InputController.js.map +1 -1
  191. package/esm/form/combobox/types.d.ts +8 -4
  192. package/esm/form/fieldset/context.d.ts +0 -1
  193. package/esm/form/fieldset/useFieldset.d.ts +1 -1
  194. package/esm/form/file-upload/FileUpload.context.d.ts +0 -1
  195. package/esm/form/file-upload/parts/dropzone/dropzone.types.d.ts +0 -1
  196. package/esm/form/file-upload/useFileUpload.d.ts +1 -2
  197. package/esm/form/radio/useRadio.d.ts +3 -3
  198. package/esm/form/search/context.d.ts +0 -1
  199. package/esm/layout/base/PrimitiveAsChildProps.d.ts +0 -1
  200. package/esm/layout/grid/HGrid.js +4 -1
  201. package/esm/layout/grid/HGrid.js.map +1 -1
  202. package/esm/layout/stack/Stack.js +7 -2
  203. package/esm/layout/stack/Stack.js.map +1 -1
  204. package/esm/list/context.d.ts +0 -1
  205. package/esm/list/types.d.ts +0 -1
  206. package/esm/modal/types.d.ts +0 -1
  207. package/esm/overlays/dismissablelayer/DismissableLayer.d.ts +1 -1
  208. package/esm/stepper/context.d.ts +0 -1
  209. package/esm/table/context.d.ts +0 -1
  210. package/esm/tabs/Tabs.context.d.ts +1 -2
  211. package/esm/tabs/parts/tab/useTab.d.ts +1 -2
  212. package/esm/tabs/parts/tablist/useScrollButtons.d.ts +0 -1
  213. package/esm/tabs/parts/tablist/useTabList.js +2 -1
  214. package/esm/tabs/parts/tablist/useTabList.js.map +1 -1
  215. package/esm/tabs/useTabs.d.ts +0 -1
  216. package/esm/timeline/hooks/usePeriodContext.d.ts +0 -1
  217. package/esm/timeline/hooks/useRowContext.d.ts +0 -1
  218. package/esm/timeline/hooks/useTimelineContext.d.ts +0 -1
  219. package/esm/timeline/period/types.d.ts +0 -1
  220. package/esm/timeline/zoom/index.d.ts +1 -1
  221. package/esm/toggle-group/ToggleGroup.context.d.ts +1 -2
  222. package/esm/toggle-group/parts/useToggleItem.d.ts +1 -2
  223. package/esm/toggle-group/parts/useToggleItem.js +2 -1
  224. package/esm/toggle-group/parts/useToggleItem.js.map +1 -1
  225. package/esm/toggle-group/useToggleGroup.d.ts +0 -1
  226. package/esm/util/composeEventHandlers.d.ts +0 -1
  227. package/esm/util/hooks/descendants/useDescendant.d.ts +1 -1
  228. package/esm/util/hooks/useCallbackRef.d.ts +0 -1
  229. package/esm/util/hooks/useMergeRefs.d.ts +1 -1
  230. package/esm/util/i18n/i18n.context.d.ts +0 -1
  231. package/esm/util/types/AsChild.d.ts +0 -1
  232. package/esm/util/types/AsChildProps.d.ts +0 -1
  233. package/esm/util/virtualfocus/Context.d.ts +43 -0
  234. package/esm/util/virtualfocus/Context.js +5 -0
  235. package/esm/util/virtualfocus/Context.js.map +1 -0
  236. package/esm/util/virtualfocus/SlottedDivElement.d.ts +7 -0
  237. package/esm/util/virtualfocus/SlottedDivElement.js +20 -0
  238. package/esm/util/virtualfocus/SlottedDivElement.js.map +1 -0
  239. package/esm/util/virtualfocus/VirtualFocus.d.ts +62 -0
  240. package/esm/util/virtualfocus/VirtualFocus.js +63 -0
  241. package/esm/util/virtualfocus/VirtualFocus.js.map +1 -0
  242. package/esm/util/virtualfocus/parts/VirtualFocusAnchor.d.ts +33 -0
  243. package/esm/util/virtualfocus/parts/VirtualFocusAnchor.js +54 -0
  244. package/esm/util/virtualfocus/parts/VirtualFocusAnchor.js.map +1 -0
  245. package/esm/util/virtualfocus/parts/VirtualFocusContent.d.ts +4 -0
  246. package/esm/util/virtualfocus/parts/VirtualFocusContent.js +19 -0
  247. package/esm/util/virtualfocus/parts/VirtualFocusContent.js.map +1 -0
  248. package/esm/util/virtualfocus/parts/VirtualFocusItem.d.ts +18 -0
  249. package/esm/util/virtualfocus/parts/VirtualFocusItem.js +38 -0
  250. package/esm/util/virtualfocus/parts/VirtualFocusItem.js.map +1 -0
  251. package/package.json +3 -3
  252. package/src/form/combobox/Combobox.tsx +4 -1
  253. package/src/form/combobox/ComboboxProvider.tsx +3 -0
  254. package/src/form/combobox/FilteredOptions/filtered-options-util.ts +9 -1
  255. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +8 -5
  256. package/src/form/combobox/Input/Input.context.tsx +27 -25
  257. package/src/form/combobox/Input/Input.tsx +56 -27
  258. package/src/form/combobox/Input/InputController.tsx +1 -0
  259. package/src/form/combobox/__tests__/combobox.test.tsx +174 -66
  260. package/src/form/combobox/types.ts +11 -7
  261. package/src/layout/grid/HGrid.tsx +4 -1
  262. package/src/layout/stack/Stack.tsx +6 -2
  263. package/src/tabs/parts/tablist/useTabList.ts +4 -1
  264. package/src/toggle-group/parts/useToggleItem.ts +4 -1
  265. package/src/util/virtualfocus/Context.tsx +27 -0
  266. package/src/util/virtualfocus/SlottedDivElement.tsx +17 -0
  267. package/src/util/virtualfocus/VirtualFocus.tsx +89 -0
  268. package/src/util/virtualfocus/parts/VirtualFocusAnchor.tsx +102 -0
  269. package/src/util/virtualfocus/parts/VirtualFocusContent.tsx +17 -0
  270. package/src/util/virtualfocus/parts/VirtualFocusItem.tsx +60 -0
@@ -0,0 +1,60 @@
1
+ import React, { forwardRef } from "react";
2
+ import { Slot } from "../../../slot/Slot";
3
+ import { composeEventHandlers } from "../../composeEventHandlers";
4
+ import { useMergeRefs } from "../../hooks";
5
+ import {
6
+ useVirtualFocusDescendant,
7
+ useVirtualFocusInternalContext,
8
+ } from "../Context";
9
+
10
+ export interface VirtualFocusItemProps
11
+ extends Omit<React.HTMLAttributes<HTMLDivElement>, "id" | "tabIndex"> {
12
+ /**
13
+ * The function that is run when the element is focused
14
+ * (virtually, not actual focus, eg. set a border around an item)
15
+ */
16
+ onActive: () => void;
17
+ /**
18
+ * The function that is run when the focused element
19
+ * is to be selected (eg. do an actual search, change route... etc)
20
+ */
21
+ onSelect: () => void;
22
+ children: React.ReactNode;
23
+ }
24
+
25
+ /**
26
+ * Contains an item you want to be iterable via virtual focus.
27
+ */
28
+ export const VirtualFocusItem = forwardRef<HTMLElement, VirtualFocusItemProps>(
29
+ ({ children, onActive, onSelect, ...rest }, ref) => {
30
+ const { virtualFocusIdx, setVirtualFocusIdx, uniqueId } =
31
+ useVirtualFocusInternalContext();
32
+ const { register, index } = useVirtualFocusDescendant({
33
+ handleOnActive: () => {
34
+ setVirtualFocusIdx(index);
35
+ onActive();
36
+ },
37
+ handleOnSelect: onSelect,
38
+ });
39
+
40
+ const mergedRefs = useMergeRefs(ref, register);
41
+ return (
42
+ <Slot
43
+ ref={mergedRefs}
44
+ {...rest}
45
+ id={`virtualfocus-${uniqueId}-${index}`}
46
+ data-aksel-virtualfocus={virtualFocusIdx === index}
47
+ tabIndex={-1}
48
+ onClick={composeEventHandlers(rest.onClick, () => {
49
+ onSelect();
50
+ })}
51
+ onMouseMove={composeEventHandlers(rest.onMouseMove, () => {
52
+ setVirtualFocusIdx(index);
53
+ onActive();
54
+ })}
55
+ >
56
+ {children}
57
+ </Slot>
58
+ );
59
+ },
60
+ );