@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.
- package/cjs/dropdown/Menu/index.js +1 -1
- package/cjs/dropdown/Menu/index.js.map +1 -1
- package/cjs/form/checkbox/useCheckbox.js +3 -2
- package/cjs/form/checkbox/useCheckbox.js.map +1 -1
- package/cjs/form/combobox/ComboboxProvider.js +4 -1
- package/cjs/form/combobox/ComboboxProvider.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +3 -1
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +1 -1
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/useVirtualFocus.d.ts +3 -0
- package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js +33 -10
- package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
- package/cjs/form/combobox/Input/Input.context.js +1 -1
- package/cjs/form/combobox/Input/Input.context.js.map +1 -1
- package/cjs/form/combobox/Input/Input.js +23 -10
- package/cjs/form/combobox/Input/Input.js.map +1 -1
- package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js +2 -1
- package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
- package/cjs/form/combobox/customOptionsContext.js +2 -2
- package/cjs/form/combobox/customOptionsContext.js.map +1 -1
- package/cjs/form/file-upload/index.d.ts +4 -4
- package/cjs/form/file-upload/index.js +5 -5
- package/cjs/form/file-upload/index.js.map +1 -1
- package/cjs/form/radio/useRadio.js +3 -2
- package/cjs/form/radio/useRadio.js.map +1 -1
- package/cjs/form/search/Search.js +1 -1
- package/cjs/form/search/Search.js.map +1 -1
- package/cjs/form/switch/Switch.js +2 -1
- package/cjs/form/switch/Switch.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +2 -2
- package/cjs/index.js.map +1 -1
- package/cjs/list/List.js +7 -2
- package/cjs/list/List.js.map +1 -1
- package/cjs/list/types.d.ts +1 -1
- package/cjs/modal/Modal.js +2 -2
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/overlays/dismissablelayer/DismissableLayer.js +2 -0
- package/cjs/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
- package/cjs/overlays/floating-menu/parts/RovingFocus.js +4 -4
- package/cjs/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
- package/cjs/progress-bar/ProgressBar.js +6 -2
- package/cjs/progress-bar/ProgressBar.js.map +1 -1
- package/cjs/table/AnimateHeight.js +12 -14
- package/cjs/table/AnimateHeight.js.map +1 -1
- package/cjs/tabs/parts/tablist/useScrollButtons.js +1 -1
- package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -1
- package/cjs/tabs/parts/tablist/useTabList.js +4 -4
- package/cjs/tabs/parts/tablist/useTabList.js.map +1 -1
- package/cjs/timeline/TimelineRow.js +9 -10
- package/cjs/timeline/TimelineRow.js.map +1 -1
- package/cjs/toggle-group/parts/useToggleItem.js +4 -4
- package/cjs/toggle-group/parts/useToggleItem.js.map +1 -1
- package/cjs/util/TextareaAutoSize.js +3 -2
- package/cjs/util/TextareaAutoSize.js.map +1 -1
- package/cjs/util/create-context.js +3 -3
- package/cjs/util/create-context.js.map +1 -1
- package/cjs/util/hooks/descendants/descendant.js +1 -1
- package/cjs/util/hooks/descendants/descendant.js.map +1 -1
- package/cjs/util/hooks/descendants/useDescendant.js +1 -1
- package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
- package/esm/dropdown/Menu/index.js +1 -1
- package/esm/dropdown/Menu/index.js.map +1 -1
- package/esm/form/checkbox/useCheckbox.js +3 -2
- package/esm/form/checkbox/useCheckbox.js.map +1 -1
- package/esm/form/combobox/ComboboxProvider.js +4 -1
- package/esm/form/combobox/ComboboxProvider.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js +3 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +1 -1
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.d.ts +3 -0
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.js +34 -11
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
- package/esm/form/combobox/Input/Input.context.js +1 -1
- package/esm/form/combobox/Input/Input.context.js.map +1 -1
- package/esm/form/combobox/Input/Input.js +23 -10
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js +2 -1
- package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
- package/esm/form/combobox/customOptionsContext.js +2 -2
- package/esm/form/combobox/customOptionsContext.js.map +1 -1
- package/esm/form/file-upload/index.d.ts +4 -4
- package/esm/form/file-upload/index.js +4 -4
- package/esm/form/file-upload/index.js.map +1 -1
- package/esm/form/radio/useRadio.js +3 -2
- package/esm/form/radio/useRadio.js.map +1 -1
- package/esm/form/search/Search.js +1 -1
- package/esm/form/search/Search.js.map +1 -1
- package/esm/form/switch/Switch.js +2 -1
- package/esm/form/switch/Switch.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/list/List.js +7 -2
- package/esm/list/List.js.map +1 -1
- package/esm/list/types.d.ts +1 -1
- package/esm/modal/Modal.js +2 -2
- package/esm/modal/Modal.js.map +1 -1
- package/esm/overlays/dismissablelayer/DismissableLayer.js +2 -0
- package/esm/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
- package/esm/overlays/floating-menu/parts/RovingFocus.js +4 -4
- package/esm/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
- package/esm/progress-bar/ProgressBar.js +6 -2
- package/esm/progress-bar/ProgressBar.js.map +1 -1
- package/esm/table/AnimateHeight.js +12 -14
- package/esm/table/AnimateHeight.js.map +1 -1
- package/esm/tabs/parts/tablist/useScrollButtons.js +1 -1
- package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -1
- package/esm/tabs/parts/tablist/useTabList.js +4 -4
- package/esm/tabs/parts/tablist/useTabList.js.map +1 -1
- package/esm/timeline/TimelineRow.js +9 -10
- package/esm/timeline/TimelineRow.js.map +1 -1
- package/esm/toggle-group/parts/useToggleItem.js +4 -4
- package/esm/toggle-group/parts/useToggleItem.js.map +1 -1
- package/esm/util/TextareaAutoSize.js +3 -2
- package/esm/util/TextareaAutoSize.js.map +1 -1
- package/esm/util/create-context.js +3 -3
- package/esm/util/create-context.js.map +1 -1
- package/esm/util/hooks/descendants/descendant.js +1 -1
- package/esm/util/hooks/descendants/descendant.js.map +1 -1
- package/esm/util/hooks/descendants/useDescendant.js +1 -1
- package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
- package/package.json +5 -5
- package/src/dropdown/Menu/index.tsx +1 -1
- package/src/form/checkbox/useCheckbox.ts +2 -2
- package/src/form/combobox/ComboboxProvider.tsx +9 -1
- package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +1 -0
- package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +1 -1
- package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +42 -11
- package/src/form/combobox/Input/Input.context.tsx +1 -1
- package/src/form/combobox/Input/Input.tsx +19 -10
- package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +2 -1
- package/src/form/combobox/__tests__/combobox.test.tsx +36 -0
- package/src/form/combobox/customOptionsContext.tsx +2 -2
- package/src/form/file-upload/index.ts +4 -4
- package/src/form/radio/useRadio.ts +2 -2
- package/src/form/search/Search.tsx +1 -1
- package/src/form/switch/Switch.tsx +1 -1
- package/src/index.ts +1 -1
- package/src/list/List.tsx +12 -6
- package/src/list/types.ts +1 -1
- package/src/modal/Modal.tsx +2 -2
- package/src/overlays/dismissablelayer/DismissableLayer.tsx +3 -0
- package/src/overlays/floating-menu/parts/RovingFocus.tsx +4 -4
- package/src/progress-bar/ProgressBar.tsx +2 -0
- package/src/table/AnimateHeight.tsx +15 -16
- package/src/tabs/parts/tablist/useScrollButtons.ts +1 -1
- package/src/tabs/parts/tablist/useTabList.ts +4 -4
- package/src/timeline/TimelineRow.tsx +20 -21
- package/src/toggle-group/parts/useToggleItem.ts +4 -4
- package/src/util/TextareaAutoSize.tsx +3 -2
- package/src/util/create-context.tsx +3 -2
- package/src/util/hooks/descendants/descendant.ts +1 -1
- 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
|
-
|
|
96
|
-
|
|
97
|
-
<
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
|
58
|
+
next?.node?.focus();
|
|
59
59
|
};
|
|
60
60
|
const prevTab = () => {
|
|
61
61
|
const prev = descendants.prevEnabled(idx, false);
|
|
62
|
-
prev
|
|
62
|
+
prev?.node?.focus();
|
|
63
63
|
};
|
|
64
64
|
const firstTab = () => {
|
|
65
65
|
const first = descendants.firstEnabled();
|
|
66
|
-
first
|
|
66
|
+
first?.node?.focus();
|
|
67
67
|
};
|
|
68
68
|
const lastTab = () => {
|
|
69
69
|
const last = descendants.lastEnabled();
|
|
70
|
-
last
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
47
|
-
|
|
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
|
|
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
|
|
55
|
+
const dataIndex = Number(ref.current.dataset.index);
|
|
56
56
|
if (index !== dataIndex && !Number.isNaN(dataIndex)) {
|
|
57
57
|
setIndex(dataIndex);
|
|
58
58
|
}
|