@navikt/ds-react 7.1.2 → 7.2.1

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 (156) hide show
  1. package/cjs/dropdown/Menu/index.js +1 -1
  2. package/cjs/dropdown/Menu/index.js.map +1 -1
  3. package/cjs/form/checkbox/useCheckbox.js +3 -2
  4. package/cjs/form/checkbox/useCheckbox.js.map +1 -1
  5. package/cjs/form/combobox/ComboboxProvider.js +4 -1
  6. package/cjs/form/combobox/ComboboxProvider.js.map +1 -1
  7. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +3 -1
  8. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  9. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +1 -1
  10. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  11. package/cjs/form/combobox/FilteredOptions/useVirtualFocus.d.ts +3 -0
  12. package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js +33 -10
  13. package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
  14. package/cjs/form/combobox/Input/Input.context.js +1 -1
  15. package/cjs/form/combobox/Input/Input.context.js.map +1 -1
  16. package/cjs/form/combobox/Input/Input.js +23 -10
  17. package/cjs/form/combobox/Input/Input.js.map +1 -1
  18. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js +2 -1
  19. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  20. package/cjs/form/combobox/customOptionsContext.js +2 -2
  21. package/cjs/form/combobox/customOptionsContext.js.map +1 -1
  22. package/cjs/form/file-upload/index.d.ts +4 -4
  23. package/cjs/form/file-upload/index.js +5 -5
  24. package/cjs/form/file-upload/index.js.map +1 -1
  25. package/cjs/form/radio/useRadio.js +3 -2
  26. package/cjs/form/radio/useRadio.js.map +1 -1
  27. package/cjs/form/search/Search.js +1 -1
  28. package/cjs/form/search/Search.js.map +1 -1
  29. package/cjs/form/switch/Switch.js +2 -1
  30. package/cjs/form/switch/Switch.js.map +1 -1
  31. package/cjs/index.d.ts +1 -1
  32. package/cjs/index.js +2 -2
  33. package/cjs/index.js.map +1 -1
  34. package/cjs/list/List.js +7 -2
  35. package/cjs/list/List.js.map +1 -1
  36. package/cjs/list/types.d.ts +1 -1
  37. package/cjs/modal/Modal.js +2 -2
  38. package/cjs/modal/Modal.js.map +1 -1
  39. package/cjs/overlays/dismissablelayer/DismissableLayer.js +2 -0
  40. package/cjs/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
  41. package/cjs/overlays/floating-menu/parts/RovingFocus.js +4 -4
  42. package/cjs/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
  43. package/cjs/progress-bar/ProgressBar.js +6 -2
  44. package/cjs/progress-bar/ProgressBar.js.map +1 -1
  45. package/cjs/table/AnimateHeight.js +12 -14
  46. package/cjs/table/AnimateHeight.js.map +1 -1
  47. package/cjs/tabs/parts/tablist/useScrollButtons.js +1 -1
  48. package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -1
  49. package/cjs/tabs/parts/tablist/useTabList.js +4 -4
  50. package/cjs/tabs/parts/tablist/useTabList.js.map +1 -1
  51. package/cjs/timeline/TimelineRow.js +9 -10
  52. package/cjs/timeline/TimelineRow.js.map +1 -1
  53. package/cjs/toggle-group/parts/useToggleItem.js +4 -4
  54. package/cjs/toggle-group/parts/useToggleItem.js.map +1 -1
  55. package/cjs/util/TextareaAutoSize.js +3 -2
  56. package/cjs/util/TextareaAutoSize.js.map +1 -1
  57. package/cjs/util/create-context.js +3 -3
  58. package/cjs/util/create-context.js.map +1 -1
  59. package/cjs/util/hooks/descendants/descendant.js +1 -1
  60. package/cjs/util/hooks/descendants/descendant.js.map +1 -1
  61. package/cjs/util/hooks/descendants/useDescendant.js +1 -1
  62. package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
  63. package/esm/dropdown/Menu/index.js +1 -1
  64. package/esm/dropdown/Menu/index.js.map +1 -1
  65. package/esm/form/checkbox/useCheckbox.js +3 -2
  66. package/esm/form/checkbox/useCheckbox.js.map +1 -1
  67. package/esm/form/combobox/ComboboxProvider.js +4 -1
  68. package/esm/form/combobox/ComboboxProvider.js.map +1 -1
  69. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +3 -1
  70. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  71. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +1 -1
  72. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  73. package/esm/form/combobox/FilteredOptions/useVirtualFocus.d.ts +3 -0
  74. package/esm/form/combobox/FilteredOptions/useVirtualFocus.js +34 -11
  75. package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
  76. package/esm/form/combobox/Input/Input.context.js +1 -1
  77. package/esm/form/combobox/Input/Input.context.js.map +1 -1
  78. package/esm/form/combobox/Input/Input.js +23 -10
  79. package/esm/form/combobox/Input/Input.js.map +1 -1
  80. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js +2 -1
  81. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  82. package/esm/form/combobox/customOptionsContext.js +2 -2
  83. package/esm/form/combobox/customOptionsContext.js.map +1 -1
  84. package/esm/form/file-upload/index.d.ts +4 -4
  85. package/esm/form/file-upload/index.js +4 -4
  86. package/esm/form/file-upload/index.js.map +1 -1
  87. package/esm/form/radio/useRadio.js +3 -2
  88. package/esm/form/radio/useRadio.js.map +1 -1
  89. package/esm/form/search/Search.js +1 -1
  90. package/esm/form/search/Search.js.map +1 -1
  91. package/esm/form/switch/Switch.js +2 -1
  92. package/esm/form/switch/Switch.js.map +1 -1
  93. package/esm/index.d.ts +1 -1
  94. package/esm/index.js +1 -1
  95. package/esm/index.js.map +1 -1
  96. package/esm/list/List.js +7 -2
  97. package/esm/list/List.js.map +1 -1
  98. package/esm/list/types.d.ts +1 -1
  99. package/esm/modal/Modal.js +2 -2
  100. package/esm/modal/Modal.js.map +1 -1
  101. package/esm/overlays/dismissablelayer/DismissableLayer.js +2 -0
  102. package/esm/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
  103. package/esm/overlays/floating-menu/parts/RovingFocus.js +4 -4
  104. package/esm/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
  105. package/esm/progress-bar/ProgressBar.js +6 -2
  106. package/esm/progress-bar/ProgressBar.js.map +1 -1
  107. package/esm/table/AnimateHeight.js +12 -14
  108. package/esm/table/AnimateHeight.js.map +1 -1
  109. package/esm/tabs/parts/tablist/useScrollButtons.js +1 -1
  110. package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -1
  111. package/esm/tabs/parts/tablist/useTabList.js +4 -4
  112. package/esm/tabs/parts/tablist/useTabList.js.map +1 -1
  113. package/esm/timeline/TimelineRow.js +9 -10
  114. package/esm/timeline/TimelineRow.js.map +1 -1
  115. package/esm/toggle-group/parts/useToggleItem.js +4 -4
  116. package/esm/toggle-group/parts/useToggleItem.js.map +1 -1
  117. package/esm/util/TextareaAutoSize.js +3 -2
  118. package/esm/util/TextareaAutoSize.js.map +1 -1
  119. package/esm/util/create-context.js +3 -3
  120. package/esm/util/create-context.js.map +1 -1
  121. package/esm/util/hooks/descendants/descendant.js +1 -1
  122. package/esm/util/hooks/descendants/descendant.js.map +1 -1
  123. package/esm/util/hooks/descendants/useDescendant.js +1 -1
  124. package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
  125. package/package.json +5 -5
  126. package/src/dropdown/Menu/index.tsx +1 -1
  127. package/src/form/checkbox/useCheckbox.ts +2 -2
  128. package/src/form/combobox/ComboboxProvider.tsx +9 -1
  129. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +1 -0
  130. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +1 -1
  131. package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +42 -11
  132. package/src/form/combobox/Input/Input.context.tsx +1 -1
  133. package/src/form/combobox/Input/Input.tsx +19 -10
  134. package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +2 -1
  135. package/src/form/combobox/__tests__/combobox.test.tsx +36 -0
  136. package/src/form/combobox/customOptionsContext.tsx +2 -2
  137. package/src/form/file-upload/index.ts +4 -4
  138. package/src/form/radio/useRadio.ts +2 -2
  139. package/src/form/search/Search.tsx +1 -1
  140. package/src/form/switch/Switch.tsx +1 -1
  141. package/src/index.ts +1 -1
  142. package/src/list/List.tsx +12 -6
  143. package/src/list/types.ts +1 -1
  144. package/src/modal/Modal.tsx +2 -2
  145. package/src/overlays/dismissablelayer/DismissableLayer.tsx +3 -0
  146. package/src/overlays/floating-menu/parts/RovingFocus.tsx +4 -4
  147. package/src/progress-bar/ProgressBar.tsx +2 -0
  148. package/src/table/AnimateHeight.tsx +15 -16
  149. package/src/tabs/parts/tablist/useScrollButtons.ts +1 -1
  150. package/src/tabs/parts/tablist/useTabList.ts +4 -4
  151. package/src/timeline/TimelineRow.tsx +20 -21
  152. package/src/toggle-group/parts/useToggleItem.ts +4 -4
  153. package/src/util/TextareaAutoSize.tsx +3 -2
  154. package/src/util/create-context.tsx +3 -2
  155. package/src/util/hooks/descendants/descendant.ts +1 -1
  156. package/src/util/hooks/descendants/useDescendant.tsx +1 -1
@@ -91,27 +91,26 @@ export const TimelineRow = forwardRef<HTMLOListElement, TimelineRowProps>(
91
91
  }
92
92
  }}
93
93
  >
94
- {periods &&
95
- periods.map((period) => {
96
- return (
97
- <li key={`period-${period.id}`}>
98
- <PeriodContext.Provider
99
- value={{
100
- periodId: period.id,
101
- firstFocus: firstFocusable?.id === period.id,
102
- restProps: period?.restProps,
103
- }}
104
- >
105
- <Period
106
- start={period.start}
107
- end={period.endInclusive}
108
- icon={period.icon}
109
- ref={period?.ref}
110
- />
111
- </PeriodContext.Provider>
112
- </li>
113
- );
114
- })}
94
+ {periods?.map((period) => {
95
+ return (
96
+ <li key={`period-${period.id}`}>
97
+ <PeriodContext.Provider
98
+ value={{
99
+ periodId: period.id,
100
+ firstFocus: firstFocusable?.id === period.id,
101
+ restProps: period?.restProps,
102
+ }}
103
+ >
104
+ <Period
105
+ start={period.start}
106
+ end={period.endInclusive}
107
+ icon={period.icon}
108
+ ref={period?.ref}
109
+ />
110
+ </PeriodContext.Provider>
111
+ </li>
112
+ );
113
+ })}
115
114
  </ol>
116
115
  </div>
117
116
  </>
@@ -55,19 +55,19 @@ export function useToggleItem<P extends UseToggleItemProps>(
55
55
 
56
56
  const nextTab = () => {
57
57
  const next = descendants.nextEnabled(idx, false);
58
- next && next.node?.focus();
58
+ next?.node?.focus();
59
59
  };
60
60
  const prevTab = () => {
61
61
  const prev = descendants.prevEnabled(idx, false);
62
- prev && prev.node?.focus();
62
+ prev?.node?.focus();
63
63
  };
64
64
  const firstTab = () => {
65
65
  const first = descendants.firstEnabled();
66
- first && first.node?.focus();
66
+ first?.node?.focus();
67
67
  };
68
68
  const lastTab = () => {
69
69
  const last = descendants.lastEnabled();
70
- last && last.node?.focus();
70
+ last?.node?.focus();
71
71
  };
72
72
 
73
73
  const keyMap: Record<string, React.KeyboardEventHandler> = {
@@ -40,7 +40,7 @@ const checkState = (
40
40
  * https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/ownerWindow/ownerWindow.ts
41
41
  */
42
42
  const ownerWindow = (node: Node | undefined): Window => {
43
- const doc = (node && node.ownerDocument) || document;
43
+ const doc = node?.ownerDocument || document;
44
44
  return doc.defaultView || window;
45
45
  };
46
46
 
@@ -205,6 +205,7 @@ const TextareaAutosize = forwardRef<HTMLTextAreaElement, TextareaAutosizeProps>(
205
205
  syncHeight();
206
206
  });
207
207
 
208
+ // biome-ignore lint/correctness/useExhaustiveDependencies: Since value is an external prop, we want to reset the renders on every time it changes, even when it is undefined or empty.
208
209
  useEffect(() => {
209
210
  renders.current = 0;
210
211
  }, [value]);
@@ -222,7 +223,7 @@ const TextareaAutosize = forwardRef<HTMLTextAreaElement, TextareaAutosizeProps>(
222
223
  };
223
224
 
224
225
  const mainStyle: React.CSSProperties = {
225
- ["--__ac-textarea-height"]: state.outerHeightStyle + "px",
226
+ "--__ac-textarea-height": state.outerHeightStyle + "px",
226
227
  // Need a large enough difference to allow scrolling.
227
228
  // This prevents infinite rendering loop.
228
229
  overflow:
@@ -43,8 +43,9 @@ export function createContext<T>(options: CreateContextOptions<T> = {}) {
43
43
  const Provider = forwardRef<unknown, ProviderProps<T>>(
44
44
  ({ children, ...context }, ref) => {
45
45
  // Only re-memoize when prop values change
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- const value = React.useMemo(() => context, Object.values(context)) as T;
46
+
47
+ // biome-ignore lint/correctness/useExhaustiveDependencies: Object.values(context) includes all dependencies.
48
+ const value = React.useMemo(() => context, Object.values(context)) as T; // eslint-disable-line react-hooks/exhaustive-deps
48
49
 
49
50
  return (
50
51
  <Context.Provider value={ref ? { ...value, ref } : value}>
@@ -60,7 +60,7 @@ export class DescendantsManager<
60
60
  this.descendants.forEach((descendant) => {
61
61
  const index = descendants.indexOf(descendant.node);
62
62
  descendant.index = index;
63
- descendant.node.dataset["index"] = descendant.index.toString();
63
+ descendant.node.dataset.index = descendant.index.toString();
64
64
  });
65
65
  };
66
66
 
@@ -52,7 +52,7 @@ export function createDescendantContext<
52
52
 
53
53
  useClientLayoutEffect(() => {
54
54
  if (!ref.current) return;
55
- const dataIndex = Number(ref.current.dataset["index"]);
55
+ const dataIndex = Number(ref.current.dataset.index);
56
56
  if (index !== dataIndex && !Number.isNaN(dataIndex)) {
57
57
  setIndex(dataIndex);
58
58
  }