@navikt/ds-react 7.30.1 → 7.32.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.
- package/cjs/chat/Chat.d.ts +1 -1
- package/cjs/chat/Chat.js.map +1 -1
- package/cjs/copybutton/CopyButton.js +1 -1
- package/cjs/copybutton/CopyButton.js.map +1 -1
- package/cjs/form/checkbox/Checkbox.js +1 -1
- package/cjs/form/checkbox/Checkbox.js.map +1 -1
- package/cjs/form/combobox/Combobox.js +15 -13
- package/cjs/form/combobox/Combobox.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +53 -3
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
- package/cjs/form/combobox/Input/Input.context.d.ts +2 -2
- package/cjs/form/combobox/Input/InputController.js +15 -14
- package/cjs/form/combobox/Input/InputController.js.map +1 -1
- package/cjs/form/file-upload/useFileUpload.d.ts +1 -1
- package/cjs/form/radio/Radio.js +1 -1
- package/cjs/form/radio/Radio.js.map +1 -1
- package/cjs/form/useFormField.js.map +1 -1
- package/cjs/modal/ModalUtils.d.ts +2 -2
- package/cjs/modal/ModalUtils.js.map +1 -1
- package/cjs/overlays/dismissablelayer/DismissableLayer.d.ts +1 -1
- package/cjs/overlays/floating/Floating.d.ts +11 -0
- package/cjs/overlays/floating/Floating.js +32 -8
- package/cjs/overlays/floating/Floating.js.map +1 -1
- package/cjs/overlays/overlay/hooks/useAnimationsFinished.d.ts +27 -0
- package/cjs/overlays/overlay/hooks/useAnimationsFinished.js +138 -0
- package/cjs/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -0
- package/cjs/overlays/overlay/hooks/useEventCallback.d.ts +6 -0
- package/cjs/overlays/overlay/hooks/useEventCallback.js +89 -0
- package/cjs/overlays/overlay/hooks/useEventCallback.js.map +1 -0
- package/cjs/overlays/overlay/hooks/useLatestRef.d.ts +5 -0
- package/cjs/overlays/overlay/hooks/useLatestRef.js +23 -0
- package/cjs/overlays/overlay/hooks/useLatestRef.js.map +1 -0
- package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.d.ts +31 -0
- package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.js +35 -0
- package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.js.map +1 -0
- package/cjs/overlays/overlay/hooks/useRefWithInit.d.ts +7 -0
- package/cjs/overlays/overlay/hooks/useRefWithInit.js +14 -0
- package/cjs/overlays/overlay/hooks/useRefWithInit.js.map +1 -0
- package/cjs/overlays/overlay/hooks/useTransitionStatus.d.ts +38 -0
- package/cjs/overlays/overlay/hooks/useTransitionStatus.js +118 -0
- package/cjs/overlays/overlay/hooks/useTransitionStatus.js.map +1 -0
- package/cjs/progress-bar/ProgressBar.js +1 -1
- package/cjs/progress-bar/ProgressBar.js.map +1 -1
- package/cjs/read-more/ReadMore.d.ts +2 -9
- package/cjs/read-more/ReadMore.js +1 -8
- package/cjs/read-more/ReadMore.js.map +1 -1
- package/cjs/table/AnimateHeight.js +2 -2
- package/cjs/table/AnimateHeight.js.map +1 -1
- package/cjs/table/ExpandableRow.d.ts +1 -1
- package/cjs/table/ExpandableRow.js +2 -10
- package/cjs/table/ExpandableRow.js.map +1 -1
- package/cjs/table/Row.d.ts +7 -0
- package/cjs/table/Row.js +13 -2
- package/cjs/table/Row.js.map +1 -1
- package/cjs/table/Table.utils.d.ts +9 -0
- package/cjs/table/Table.utils.js +57 -0
- package/cjs/table/Table.utils.js.map +1 -0
- package/cjs/tabs/Tabs.context.d.ts +1 -1
- package/cjs/tabs/parts/tab/useTab.d.ts +1 -1
- package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
- package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -1
- package/cjs/toggle-group/ToggleGroup.context.d.ts +1 -1
- package/cjs/toggle-group/parts/useToggleItem.d.ts +1 -1
- package/cjs/util/hooks/descendants/useDescendant.d.ts +1 -1
- package/cjs/util/hooks/useMergeRefs.d.ts +3 -3
- package/cjs/util/hooks/useMergeRefs.js +3 -3
- package/cjs/util/hooks/useMergeRefs.js.map +1 -1
- package/cjs/util/renderStoriesForChromatic.d.ts +2 -2
- package/cjs/util/renderStoriesForChromatic.js +2 -2
- package/cjs/util/renderStoriesForChromatic.js.map +1 -1
- package/cjs/util/virtualfocus/Context.d.ts +1 -1
- package/esm/chat/Chat.d.ts +1 -1
- package/esm/chat/Chat.js.map +1 -1
- package/esm/copybutton/CopyButton.js +1 -1
- package/esm/copybutton/CopyButton.js.map +1 -1
- package/esm/form/checkbox/Checkbox.js +1 -1
- package/esm/form/checkbox/Checkbox.js.map +1 -1
- package/esm/form/combobox/Combobox.js +15 -13
- package/esm/form/combobox/Combobox.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js +21 -4
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
- package/esm/form/combobox/Input/Input.context.d.ts +2 -2
- package/esm/form/combobox/Input/InputController.js +15 -14
- package/esm/form/combobox/Input/InputController.js.map +1 -1
- package/esm/form/file-upload/useFileUpload.d.ts +1 -1
- package/esm/form/radio/Radio.js +1 -1
- package/esm/form/radio/Radio.js.map +1 -1
- package/esm/form/useFormField.js.map +1 -1
- package/esm/modal/ModalUtils.d.ts +2 -2
- package/esm/modal/ModalUtils.js.map +1 -1
- package/esm/overlays/dismissablelayer/DismissableLayer.d.ts +1 -1
- package/esm/overlays/floating/Floating.d.ts +11 -0
- package/esm/overlays/floating/Floating.js +32 -8
- package/esm/overlays/floating/Floating.js.map +1 -1
- package/esm/overlays/overlay/hooks/useAnimationsFinished.d.ts +27 -0
- package/esm/overlays/overlay/hooks/useAnimationsFinished.js +99 -0
- package/esm/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -0
- package/esm/overlays/overlay/hooks/useEventCallback.d.ts +6 -0
- package/esm/overlays/overlay/hooks/useEventCallback.js +53 -0
- package/esm/overlays/overlay/hooks/useEventCallback.js.map +1 -0
- package/esm/overlays/overlay/hooks/useLatestRef.d.ts +5 -0
- package/esm/overlays/overlay/hooks/useLatestRef.js +20 -0
- package/esm/overlays/overlay/hooks/useLatestRef.js.map +1 -0
- package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.d.ts +31 -0
- package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.js +32 -0
- package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.js.map +1 -0
- package/esm/overlays/overlay/hooks/useRefWithInit.d.ts +7 -0
- package/esm/overlays/overlay/hooks/useRefWithInit.js +12 -0
- package/esm/overlays/overlay/hooks/useRefWithInit.js.map +1 -0
- package/esm/overlays/overlay/hooks/useTransitionStatus.d.ts +38 -0
- package/esm/overlays/overlay/hooks/useTransitionStatus.js +113 -0
- package/esm/overlays/overlay/hooks/useTransitionStatus.js.map +1 -0
- package/esm/progress-bar/ProgressBar.js +1 -1
- package/esm/progress-bar/ProgressBar.js.map +1 -1
- package/esm/read-more/ReadMore.d.ts +2 -9
- package/esm/read-more/ReadMore.js +1 -8
- package/esm/read-more/ReadMore.js.map +1 -1
- package/esm/table/AnimateHeight.js +2 -2
- package/esm/table/AnimateHeight.js.map +1 -1
- package/esm/table/ExpandableRow.d.ts +1 -1
- package/esm/table/ExpandableRow.js +2 -10
- package/esm/table/ExpandableRow.js.map +1 -1
- package/esm/table/Row.d.ts +7 -0
- package/esm/table/Row.js +13 -2
- package/esm/table/Row.js.map +1 -1
- package/esm/table/Table.utils.d.ts +9 -0
- package/esm/table/Table.utils.js +55 -0
- package/esm/table/Table.utils.js.map +1 -0
- package/esm/tabs/Tabs.context.d.ts +1 -1
- package/esm/tabs/parts/tab/useTab.d.ts +1 -1
- package/esm/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
- package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -1
- package/esm/toggle-group/ToggleGroup.context.d.ts +1 -1
- package/esm/toggle-group/parts/useToggleItem.d.ts +1 -1
- package/esm/util/hooks/descendants/useDescendant.d.ts +1 -1
- package/esm/util/hooks/useMergeRefs.d.ts +3 -3
- package/esm/util/hooks/useMergeRefs.js +3 -3
- package/esm/util/hooks/useMergeRefs.js.map +1 -1
- package/esm/util/renderStoriesForChromatic.d.ts +2 -2
- package/esm/util/renderStoriesForChromatic.js +2 -2
- package/esm/util/renderStoriesForChromatic.js.map +1 -1
- package/esm/util/virtualfocus/Context.d.ts +1 -1
- package/package.json +4 -4
- package/src/chat/Chat.tsx +3 -3
- package/src/copybutton/CopyButton.tsx +1 -1
- package/src/form/checkbox/Checkbox.tsx +5 -3
- package/src/form/combobox/Combobox.tsx +44 -41
- package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +29 -4
- package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +1 -0
- package/src/form/combobox/Input/Input.context.tsx +2 -2
- package/src/form/combobox/Input/InputController.tsx +33 -29
- package/src/form/radio/Radio.tsx +5 -3
- package/src/form/useFormField.ts +1 -1
- package/src/modal/ModalUtils.ts +2 -2
- package/src/overlays/action-menu/ActionMenu.tsx +1 -1
- package/src/overlays/floating/Floating.tsx +110 -59
- package/src/overlays/overlay/hooks/useAnimationsFinished.ts +117 -0
- package/src/overlays/overlay/hooks/useEventCallback.ts +73 -0
- package/src/overlays/overlay/hooks/useLatestRef.ts +25 -0
- package/src/overlays/overlay/hooks/useOpenChangeAnimationComplete.ts +66 -0
- package/src/overlays/overlay/hooks/useRefWithInit.ts +25 -0
- package/src/overlays/overlay/hooks/useTransitionStatus.ts +145 -0
- package/src/progress-bar/ProgressBar.tsx +1 -1
- package/src/read-more/ReadMore.tsx +4 -11
- package/src/table/AnimateHeight.tsx +2 -2
- package/src/table/ExpandableRow.tsx +4 -17
- package/src/table/Row.tsx +33 -1
- package/src/table/Table.utils.ts +65 -0
- package/src/tabs/parts/tablist/useScrollButtons.ts +3 -1
- package/src/util/hooks/useMergeRefs.ts +5 -5
- package/src/util/link-anchor/LinkAnchor.tsx +1 -1
- package/src/util/renderStoriesForChromatic.tsx +4 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOpenChangeAnimationComplete.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useOpenChangeAnimationComplete.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAyB9C;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAoD;IAEpD,MAAM,EACJ,OAAO,GAAG,IAAI,EACd,IAAI,EACJ,GAAG,GAAG,IAAI,EACV,UAAU,EAAE,eAAe,GAC5B,GAAG,UAAU,CAAC;IAEf,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED;;;WAGG;QACH,uBAAuB,CAAC,GAAG,EAAE;YAC3B,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC7B,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* useRef initialized with a function on mount.
|
|
4
|
+
*/
|
|
5
|
+
declare function useRefWithInit<T>(init: () => T): React.RefObject<T>;
|
|
6
|
+
declare function useRefWithInit<T, U>(init: (arg: U) => T, initArg: U): React.RefObject<T>;
|
|
7
|
+
export { useRefWithInit };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useRef } from "react";
|
|
3
|
+
const UNINITIALIZED = {};
|
|
4
|
+
function useRefWithInit(init, initArg) {
|
|
5
|
+
const ref = useRef(UNINITIALIZED);
|
|
6
|
+
if (ref.current === UNINITIALIZED) {
|
|
7
|
+
ref.current = init(initArg);
|
|
8
|
+
}
|
|
9
|
+
return ref;
|
|
10
|
+
}
|
|
11
|
+
export { useRefWithInit };
|
|
12
|
+
//# sourceMappingURL=useRefWithInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRefWithInit.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useRefWithInit.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,aAAa,GAAG,EAAE,CAAC;AAUzB,SAAS,cAAc,CAAC,IAAgC,EAAE,OAAiB;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,aAAoB,CAAC,CAAC;IAEzC,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
type TransitionStatus = "entering" | "exiting" | "idle" | undefined;
|
|
2
|
+
/**
|
|
3
|
+
* Transition status state machine for components that animate between an
|
|
4
|
+
* `open` boolean and actual mount/unmount. Keeps the element mounted while
|
|
5
|
+
* exit animations run and introduces an optional stable `idle` phase.
|
|
6
|
+
*
|
|
7
|
+
* Adapted from MUI Base + Floating UI examples:
|
|
8
|
+
* - Source: https://github.com/mui/base-ui/blob/6fd69008d83561dbe75ff89acf270f0fac3e0049/packages/react/src/utils/useTransitionStatus.ts
|
|
9
|
+
* - Originally based on https://github.com/floating-ui/floating-ui/blob/7c33a3d0198a9b523d54ae2c37cedb315a309452/packages/react/src/hooks/useTransition.ts
|
|
10
|
+
*
|
|
11
|
+
* States (transitionStatus):
|
|
12
|
+
* - "entering" : just entered (initial frame of enter) OR re-entering to reach "idle".
|
|
13
|
+
* - "idle" : stable open (only when `enableIdleState === true`).
|
|
14
|
+
* - "exiting" : exit animation is running; element still mounted.
|
|
15
|
+
* - undefined : closed (unmounted) OR stable open when idle state is disabled.
|
|
16
|
+
* When `enableIdleState` is false we clear the label after
|
|
17
|
+
* the first frame so styling can rely purely on `mounted`.
|
|
18
|
+
*
|
|
19
|
+
* Distinction:
|
|
20
|
+
* - `mounted` tells you whether to render DOM.
|
|
21
|
+
* - `transitionStatus` tells you which phase-specific classes to apply.
|
|
22
|
+
*
|
|
23
|
+
* Frame separation: state changes that must trigger CSS transitions are
|
|
24
|
+
* scheduled with `requestAnimationFrame` so the browser sees distinct style
|
|
25
|
+
* mutations across frames (avoids missed transitions due to batching).
|
|
26
|
+
*
|
|
27
|
+
* @param open Controls visibility lifecycle.
|
|
28
|
+
* @param enableIdleState Insert a persistent "idle" phase after entering.
|
|
29
|
+
* @param deferExitingState Delay entering the exit phase by one frame to allow
|
|
30
|
+
* measurement / layout work before applying exit styles.
|
|
31
|
+
*/
|
|
32
|
+
declare function useTransitionStatus(open: boolean, enableIdleState?: boolean, deferExitingState?: boolean): {
|
|
33
|
+
mounted: boolean;
|
|
34
|
+
setMounted: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
35
|
+
transitionStatus: TransitionStatus;
|
|
36
|
+
};
|
|
37
|
+
export { useTransitionStatus };
|
|
38
|
+
export type { TransitionStatus };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import ReactDOM from "react-dom";
|
|
4
|
+
import { useClientLayoutEffect } from "../../../util/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Transition status state machine for components that animate between an
|
|
7
|
+
* `open` boolean and actual mount/unmount. Keeps the element mounted while
|
|
8
|
+
* exit animations run and introduces an optional stable `idle` phase.
|
|
9
|
+
*
|
|
10
|
+
* Adapted from MUI Base + Floating UI examples:
|
|
11
|
+
* - Source: https://github.com/mui/base-ui/blob/6fd69008d83561dbe75ff89acf270f0fac3e0049/packages/react/src/utils/useTransitionStatus.ts
|
|
12
|
+
* - Originally based on https://github.com/floating-ui/floating-ui/blob/7c33a3d0198a9b523d54ae2c37cedb315a309452/packages/react/src/hooks/useTransition.ts
|
|
13
|
+
*
|
|
14
|
+
* States (transitionStatus):
|
|
15
|
+
* - "entering" : just entered (initial frame of enter) OR re-entering to reach "idle".
|
|
16
|
+
* - "idle" : stable open (only when `enableIdleState === true`).
|
|
17
|
+
* - "exiting" : exit animation is running; element still mounted.
|
|
18
|
+
* - undefined : closed (unmounted) OR stable open when idle state is disabled.
|
|
19
|
+
* When `enableIdleState` is false we clear the label after
|
|
20
|
+
* the first frame so styling can rely purely on `mounted`.
|
|
21
|
+
*
|
|
22
|
+
* Distinction:
|
|
23
|
+
* - `mounted` tells you whether to render DOM.
|
|
24
|
+
* - `transitionStatus` tells you which phase-specific classes to apply.
|
|
25
|
+
*
|
|
26
|
+
* Frame separation: state changes that must trigger CSS transitions are
|
|
27
|
+
* scheduled with `requestAnimationFrame` so the browser sees distinct style
|
|
28
|
+
* mutations across frames (avoids missed transitions due to batching).
|
|
29
|
+
*
|
|
30
|
+
* @param open Controls visibility lifecycle.
|
|
31
|
+
* @param enableIdleState Insert a persistent "idle" phase after entering.
|
|
32
|
+
* @param deferExitingState Delay entering the exit phase by one frame to allow
|
|
33
|
+
* measurement / layout work before applying exit styles.
|
|
34
|
+
*/
|
|
35
|
+
function useTransitionStatus(open, enableIdleState = false, deferExitingState = false) {
|
|
36
|
+
const [mounted, setMounted] = useState(open);
|
|
37
|
+
const [transitionStatus, setTransitionStatus] = useState(open && enableIdleState ? "idle" : undefined);
|
|
38
|
+
/* Opening: mount immediately and label as "entering" for the first frame. */
|
|
39
|
+
if (open && !mounted) {
|
|
40
|
+
setMounted(true);
|
|
41
|
+
setTransitionStatus("entering");
|
|
42
|
+
}
|
|
43
|
+
/* Closing (no defer): begin exit animation right away. */
|
|
44
|
+
if (!open &&
|
|
45
|
+
mounted &&
|
|
46
|
+
transitionStatus !== "exiting" &&
|
|
47
|
+
!deferExitingState) {
|
|
48
|
+
setTransitionStatus("exiting");
|
|
49
|
+
}
|
|
50
|
+
/* Cleanup: after unmount post-exit ensure status returns to undefined. */
|
|
51
|
+
if (!open && !mounted && transitionStatus === "exiting") {
|
|
52
|
+
setTransitionStatus(undefined);
|
|
53
|
+
}
|
|
54
|
+
/* Deferred closing: provide one frame to measure / flush layout before exit styles. */
|
|
55
|
+
useClientLayoutEffect(() => {
|
|
56
|
+
if (!open &&
|
|
57
|
+
mounted &&
|
|
58
|
+
transitionStatus !== "exiting" &&
|
|
59
|
+
deferExitingState) {
|
|
60
|
+
const frame = requestAnimationFrame(() => {
|
|
61
|
+
setTransitionStatus("exiting");
|
|
62
|
+
});
|
|
63
|
+
return () => {
|
|
64
|
+
cancelAnimationFrame(frame);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}, [open, mounted, transitionStatus, deferExitingState]);
|
|
69
|
+
/* Enter (no idle): hold "entering" for one frame, then clear label (stable open). */
|
|
70
|
+
useClientLayoutEffect(() => {
|
|
71
|
+
if (!open || enableIdleState) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
const frame = requestAnimationFrame(() => {
|
|
75
|
+
ReactDOM.flushSync(() => {
|
|
76
|
+
setTransitionStatus(undefined);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
return () => {
|
|
80
|
+
cancelAnimationFrame(frame);
|
|
81
|
+
};
|
|
82
|
+
}, [enableIdleState, open]);
|
|
83
|
+
useClientLayoutEffect(() => {
|
|
84
|
+
if (!open || !enableIdleState) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
/*
|
|
88
|
+
* We can enter this state by re-opening before exiting-state was finished
|
|
89
|
+
* (open → close → open in quick succession).
|
|
90
|
+
*/
|
|
91
|
+
if (open && mounted && transitionStatus !== "idle") {
|
|
92
|
+
setTransitionStatus("entering");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Next frame, after "entering", switch to persistent "idle" state.
|
|
96
|
+
* By delaying to the next frame we ensure any "entering" styles are
|
|
97
|
+
* applied and the transition can run.
|
|
98
|
+
*/
|
|
99
|
+
const frame = requestAnimationFrame(() => {
|
|
100
|
+
setTransitionStatus("idle");
|
|
101
|
+
});
|
|
102
|
+
return () => {
|
|
103
|
+
cancelAnimationFrame(frame);
|
|
104
|
+
};
|
|
105
|
+
}, [enableIdleState, open, mounted, setTransitionStatus, transitionStatus]);
|
|
106
|
+
return useMemo(() => ({
|
|
107
|
+
mounted,
|
|
108
|
+
setMounted,
|
|
109
|
+
transitionStatus,
|
|
110
|
+
}), [mounted, transitionStatus]);
|
|
111
|
+
}
|
|
112
|
+
export { useTransitionStatus };
|
|
113
|
+
//# sourceMappingURL=useTransitionStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransitionStatus.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useTransitionStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ export const ProgressBar = forwardRef((_a, ref) => {
|
|
|
35
35
|
var { size = "medium", value = 0, valueMax = 100, "aria-labelledby": ariaLabelledBy, "aria-label": ariaLabel, className, simulated } = _a, rest = __rest(_a, ["size", "value", "valueMax", "aria-labelledby", "aria-label", "className", "simulated"]);
|
|
36
36
|
const { cn } = useRenameCSS();
|
|
37
37
|
const translateX = 100 - (Math.round(value) / valueMax) * 100;
|
|
38
|
-
const onTimeoutRef = useRef();
|
|
38
|
+
const onTimeoutRef = useRef(undefined);
|
|
39
39
|
onTimeoutRef.current = simulated === null || simulated === void 0 ? void 0 : simulated.onTimeout;
|
|
40
40
|
const translate = useI18n("ProgressBar");
|
|
41
41
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/progress-bar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AA4DlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,CACE,EASC,EACD,GAAG,EACH,EAAE;QAXF,EACE,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,CAAC,EACT,QAAQ,GAAG,GAAG,EACd,iBAAiB,EAAE,cAAc,EACjC,YAAY,EAAE,SAAS,EACvB,SAAS,EACT,SAAS,OAEV,EADI,IAAI,cART,wFASC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;IAC9D,MAAM,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/progress-bar/ProgressBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -19,11 +19,11 @@ export interface ReadMoreProps extends React.ButtonHTMLAttributes<HTMLButtonElem
|
|
|
19
19
|
*/
|
|
20
20
|
defaultOpen?: boolean;
|
|
21
21
|
/**
|
|
22
|
-
* Callback for current open-state
|
|
22
|
+
* Callback for current open-state.
|
|
23
23
|
*/
|
|
24
24
|
onOpenChange?: (open: boolean) => void;
|
|
25
25
|
/**
|
|
26
|
-
* Changes
|
|
26
|
+
* Changes font size for content.
|
|
27
27
|
* @default "medium"
|
|
28
28
|
*/
|
|
29
29
|
size?: "large" | "medium" | "small";
|
|
@@ -34,14 +34,7 @@ export interface ReadMoreProps extends React.ButtonHTMLAttributes<HTMLButtonElem
|
|
|
34
34
|
* @see 🏷️ {@link ReadMoreProps}
|
|
35
35
|
*
|
|
36
36
|
* @example
|
|
37
|
-
* // Default
|
|
38
37
|
* <ReadMore header="Dette regnes som helsemessige begrensninger">
|
|
39
|
-
* Med helsemessige begrensninger mener vi funksjonshemming, sykdom...
|
|
40
|
-
* </ReadMore>
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* // Litt mindre versjon
|
|
44
|
-
* <ReadMore size="small" header="Dette regnes som helsemessige begrensninger">
|
|
45
38
|
* Med helsemessige begrensninger mener vi funksjonshemming, sykdom...
|
|
46
39
|
* </ReadMore>
|
|
47
40
|
*/
|
|
@@ -21,14 +21,7 @@ import { useControllableState } from "../util/hooks/useControllableState.js";
|
|
|
21
21
|
* @see 🏷️ {@link ReadMoreProps}
|
|
22
22
|
*
|
|
23
23
|
* @example
|
|
24
|
-
* // Default
|
|
25
24
|
* <ReadMore header="Dette regnes som helsemessige begrensninger">
|
|
26
|
-
* Med helsemessige begrensninger mener vi funksjonshemming, sykdom...
|
|
27
|
-
* </ReadMore>
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* // Litt mindre versjon
|
|
31
|
-
* <ReadMore size="small" header="Dette regnes som helsemessige begrensninger">
|
|
32
25
|
* Med helsemessige begrensninger mener vi funksjonshemming, sykdom...
|
|
33
26
|
* </ReadMore>
|
|
34
27
|
*/
|
|
@@ -47,7 +40,7 @@ export const ReadMore = forwardRef((_a, ref) => {
|
|
|
47
40
|
}), onClick: composeEventHandlers(onClick, () => _setOpen((x) => !x)), "aria-expanded": _open, "data-state": _open ? "open" : "closed" }),
|
|
48
41
|
React.createElement(ChevronDownIcon, { className: cn("navds-read-more__expand-icon"), "aria-hidden": true }),
|
|
49
42
|
React.createElement("span", null, header)),
|
|
50
|
-
React.createElement(BodyLong, { as: "div",
|
|
43
|
+
React.createElement(BodyLong, { as: "div", tabIndex: 0, className: cn("navds-read-more__content", {
|
|
51
44
|
"navds-read-more__content--closed": !_open,
|
|
52
45
|
}), size: typoSize, "data-state": _open ? "open" : "closed" }, children)));
|
|
53
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadMore.js","sourceRoot":"","sources":["../../src/read-more/ReadMore.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAiC1E
|
|
1
|
+
{"version":3,"file":"ReadMore.js","sourceRoot":"","sources":["../../src/read-more/ReadMore.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAiC1E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EAUgB,EAChB,GAAG,EACH,EAAE;QAZF,EACE,SAAS,EACT,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,YAAY,OAEE,EADX,IAAI,cATT,6FAUC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC;QAC7C,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvD,OAAO,CACL,6BACE,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,oBAAoB,IAAI,EAAE,EAC1B,SAAS,EACT,EAAE,uBAAuB,EAAE,KAAK,EAAE,CACnC,iBACW,KAAK;QAEjB,gDACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE;gBAC3D,yBAAyB,EAAE,IAAI,KAAK,OAAO;aAC5C,CAAC,EACF,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAClD,KAAK,gBACR,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAErC,oBAAC,eAAe,IACd,SAAS,EAAE,EAAE,CAAC,8BAA8B,CAAC,wBAE7C;YACF,kCAAO,MAAM,CAAQ,CACd;QAET,oBAAC,QAAQ,IACP,EAAE,EAAC,KAAK,EACR,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE;gBACxC,kCAAkC,EAAE,CAAC,KAAK;aAC3C,CAAC,EACF,IAAI,EAAE,QAAQ,gBACF,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAEpC,QAAQ,CACA,CACP,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -46,8 +46,8 @@ const AnimateHeight = (_a) => {
|
|
|
46
46
|
// ------------------ Initialization
|
|
47
47
|
const prevHeight = useRef(height);
|
|
48
48
|
const contentElement = useRef(null);
|
|
49
|
-
const animationClassesTimeoutID = useRef();
|
|
50
|
-
const timeoutID = useRef();
|
|
49
|
+
const animationClassesTimeoutID = useRef(undefined);
|
|
50
|
+
const timeoutID = useRef(undefined);
|
|
51
51
|
const initialHeight = useRef(height);
|
|
52
52
|
const initialOverflow = useRef("visible");
|
|
53
53
|
const duration = prefersReducedMotion ? 0 : userDuration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimateHeight.js","sourceRoot":"","sources":["../../src/table/AnimateHeight.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,EAAiB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,6BAA6B;AAE7B,MAAM,oBAAoB,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU;IACjD,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO;IACnE,CAAC,CAAC,KAAK,CAAC;AAEV,SAAS,QAAQ,CAAC,CAAS;IACzB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,oBAAoB;IACpB,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;QACjC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,OAA8B,EAAE,MAAc;IACjE,yFAAyF;IACzF,2EAA2E;IAC3E,IAAI,MAAM,KAAK,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAA8B,EAAE,MAAc;IACjE,yFAAyF;IACzF,2EAA2E;IAC3E,IAAI,MAAM,KAAK,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAiBD,MAAM,aAAa,GAAiC,CAAC,EAQpD,EAAE,EAAE;QARgD,EACnD,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EAAE,YAAY,GAAG,GAAG,EAC5B,MAAM,GAAG,MAAM,EACf,MAAM,OAEP,EADI,KAAK,cAP2C,2EAQpD,CADS;IAER,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9B,oCAAoC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAS,MAAM,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEpD,MAAM,yBAAyB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"AnimateHeight.js","sourceRoot":"","sources":["../../src/table/AnimateHeight.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { RowProps } from "./Row.js";
|
|
3
|
-
export interface ExpandableRowProps extends Omit<RowProps, "content"> {
|
|
3
|
+
export interface ExpandableRowProps extends Omit<RowProps, "content" | "onRowClick"> {
|
|
4
4
|
/**
|
|
5
5
|
* Content of the expanded row
|
|
6
6
|
*/
|
|
@@ -19,6 +19,7 @@ import { useI18n } from "../util/i18n/i18n.hooks.js";
|
|
|
19
19
|
import AnimateHeight from "./AnimateHeight.js";
|
|
20
20
|
import DataCell from "./DataCell.js";
|
|
21
21
|
import Row from "./Row.js";
|
|
22
|
+
import { isElementInteractiveTarget } from "./Table.utils.js";
|
|
22
23
|
export const ExpandableRow = forwardRef((_a, ref) => {
|
|
23
24
|
var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false, expandOnRowClick = false, colSpan = 999, contentGutter, onClick } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled", "expandOnRowClick", "colSpan", "contentGutter", "onClick"]);
|
|
24
25
|
const { cn } = useRenameCSS();
|
|
@@ -36,7 +37,7 @@ export const ExpandableRow = forwardRef((_a, ref) => {
|
|
|
36
37
|
const handleRowClick = (event) => {
|
|
37
38
|
expandOnRowClick &&
|
|
38
39
|
!expansionDisabled &&
|
|
39
|
-
!
|
|
40
|
+
!isElementInteractiveTarget(event.target) &&
|
|
40
41
|
expansionHandler(event);
|
|
41
42
|
};
|
|
42
43
|
return (React.createElement(React.Fragment, null,
|
|
@@ -55,14 +56,5 @@ export const ExpandableRow = forwardRef((_a, ref) => {
|
|
|
55
56
|
React.createElement("td", { colSpan: colSpan, className: cn("navds-table__expanded-row-cell") },
|
|
56
57
|
React.createElement(AnimateHeight, { className: cn("navds-table__expanded-row-collapse"), innerClassName: cn(`navds-table__expanded-row-content navds-table__expanded-row-content--gutter-${contentGutter !== null && contentGutter !== void 0 ? contentGutter : togglePlacement}`), height: _open ? "auto" : 0, duration: 150, easing: "cubic-bezier(0.39,0.57,0.56,1)" }, content)))));
|
|
57
58
|
});
|
|
58
|
-
function isInteractiveTarget(elm) {
|
|
59
|
-
if (elm.nodeName === "TD" || elm.nodeName === "TH" || !elm.parentElement) {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
if (["BUTTON", "DETAILS", "LABEL", "SELECT", "TEXTAREA", "INPUT", "A"].includes(elm.nodeName)) {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
return isInteractiveTarget(elm.parentElement);
|
|
66
|
-
}
|
|
67
59
|
export default ExpandableRow;
|
|
68
60
|
//# sourceMappingURL=ExpandableRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,GAAiB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":"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"}
|
package/esm/table/Row.d.ts
CHANGED
|
@@ -10,6 +10,13 @@ export interface RowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
|
10
10
|
* @default true
|
|
11
11
|
*/
|
|
12
12
|
shadeOnHover?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Click handler for row. This differs from onClick by not being called
|
|
15
|
+
* when clicking on interactive elements within the row (buttons, links, inputs etc).
|
|
16
|
+
*
|
|
17
|
+
* **Warning:** This will not be accessible by keyboard! Provide an alternative way to select the row, e.g. a checkbox or a button.
|
|
18
|
+
*/
|
|
19
|
+
onRowClick?: (event: React.MouseEvent<HTMLTableRowElement>) => void;
|
|
13
20
|
}
|
|
14
21
|
export type RowType = React.ForwardRefExoticComponent<RowProps & React.RefAttributes<HTMLTableRowElement>>;
|
|
15
22
|
export declare const Row: RowType;
|
package/esm/table/Row.js
CHANGED
|
@@ -11,13 +11,24 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import React, { forwardRef } from "react";
|
|
13
13
|
import { useRenameCSS } from "../theme/Theme.js";
|
|
14
|
+
import { composeEventHandlers } from "../util/composeEventHandlers.js";
|
|
15
|
+
import { isElementInteractiveTarget } from "./Table.utils.js";
|
|
14
16
|
export const Row = forwardRef((_a, ref) => {
|
|
15
|
-
var { className, selected = false, shadeOnHover = true } = _a, rest = __rest(_a, ["className", "selected", "shadeOnHover"]);
|
|
17
|
+
var { className, selected = false, shadeOnHover = true, onClick, onRowClick } = _a, rest = __rest(_a, ["className", "selected", "shadeOnHover", "onClick", "onRowClick"]);
|
|
16
18
|
const { cn } = useRenameCSS();
|
|
19
|
+
const handleRowClick = (event) => {
|
|
20
|
+
if (!onRowClick) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (isElementInteractiveTarget(event.target)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
onRowClick(event);
|
|
27
|
+
};
|
|
17
28
|
return (React.createElement("tr", Object.assign({}, rest, { ref: ref, className: cn("navds-table__row", className, {
|
|
18
29
|
"navds-table__row--selected": selected,
|
|
19
30
|
"navds-table__row--shade-on-hover": shadeOnHover,
|
|
20
|
-
}) })));
|
|
31
|
+
}), onClick: composeEventHandlers(onClick, handleRowClick), "data-interactive": !!onRowClick })));
|
|
21
32
|
});
|
|
22
33
|
export default Row;
|
|
23
34
|
//# sourceMappingURL=Row.js.map
|
package/esm/table/Row.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.js","sourceRoot":"","sources":["../../src/table/Row.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Row.js","sourceRoot":"","sources":["../../src/table/Row.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AA0B3D,MAAM,CAAC,MAAM,GAAG,GAAY,UAAU,CACpC,CACE,EAOC,EACD,GAAG,EACH,EAAE;QATF,EACE,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,IAAI,EACnB,OAAO,EACP,UAAU,OAEX,EADI,IAAI,cANT,kEAOC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,CAAC,KAA4C,EAAE,EAAE;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,0BAA0B,CAAC,KAAK,CAAC,MAAqB,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CACL,4CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE;YAC3C,4BAA4B,EAAE,QAAQ;YACtC,kCAAkC,EAAE,YAAY;SACjD,CAAC,EACF,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,sBACpC,CAAC,CAAC,UAAU,IAC9B,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walks up from the event target until TR/TH (row / header) or root.
|
|
3
|
+
* Returns true if any ancestor is inherently interactive, explicitly focusable,
|
|
4
|
+
* or has an interactive ARIA role.
|
|
5
|
+
* Used to decide whether a row click should be treated as a row selection
|
|
6
|
+
* or ignored because the user interacted with an embedded control.
|
|
7
|
+
*/
|
|
8
|
+
declare function isElementInteractiveTarget(element: HTMLElement | null): boolean;
|
|
9
|
+
export { isElementInteractiveTarget };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const INTERACTIVE_TAGS = new Set([
|
|
2
|
+
"BUTTON",
|
|
3
|
+
"A",
|
|
4
|
+
"INPUT",
|
|
5
|
+
"SELECT",
|
|
6
|
+
"TEXTAREA",
|
|
7
|
+
"DETAILS",
|
|
8
|
+
"SUMMARY",
|
|
9
|
+
"LABEL",
|
|
10
|
+
]);
|
|
11
|
+
const INTERACTIVE_ROLES = new Set([
|
|
12
|
+
"button",
|
|
13
|
+
"link",
|
|
14
|
+
"checkbox",
|
|
15
|
+
"radio",
|
|
16
|
+
"switch",
|
|
17
|
+
"menuitem",
|
|
18
|
+
"option",
|
|
19
|
+
"tab",
|
|
20
|
+
"textbox",
|
|
21
|
+
"combobox",
|
|
22
|
+
"spinbutton",
|
|
23
|
+
"slider",
|
|
24
|
+
]);
|
|
25
|
+
/**
|
|
26
|
+
* Walks up from the event target until TR/TH (row / header) or root.
|
|
27
|
+
* Returns true if any ancestor is inherently interactive, explicitly focusable,
|
|
28
|
+
* or has an interactive ARIA role.
|
|
29
|
+
* Used to decide whether a row click should be treated as a row selection
|
|
30
|
+
* or ignored because the user interacted with an embedded control.
|
|
31
|
+
*/
|
|
32
|
+
function isElementInteractiveTarget(element) {
|
|
33
|
+
for (let node = element; node && node.nodeName !== "TR" && node.nodeName !== "TH"; node = node.parentElement) {
|
|
34
|
+
const tag = node.nodeName;
|
|
35
|
+
/* Native interactive tag */
|
|
36
|
+
if (INTERACTIVE_TAGS.has(tag)) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
/* Explicit interactive role */
|
|
40
|
+
const role = node.getAttribute("role");
|
|
41
|
+
if (role && INTERACTIVE_ROLES.has(role)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
/* Focusable via tabindex (exclude -1) */
|
|
45
|
+
if (node.hasAttribute("tabindex")) {
|
|
46
|
+
const ti = node.getAttribute("tabindex");
|
|
47
|
+
if (ti !== "-1") {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
export { isElementInteractiveTarget };
|
|
55
|
+
//# sourceMappingURL=Table.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.utils.js","sourceRoot":"","sources":["../../src/table/Table.utils.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,QAAQ;IACR,GAAG;IACH,OAAO;IACP,QAAQ;IACR,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,KAAK;IACL,SAAS;IACT,UAAU;IACV,YAAY;IACZ,QAAQ;CACT,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAS,0BAA0B,CAAC,OAA2B;IAC7D,KACE,IAAI,IAAI,GAAuB,OAAO,EACtC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EACxD,IAAI,GAAG,IAAI,CAAC,aAAa,EACzB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE1B,4BAA4B;QAC5B,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -16,7 +16,7 @@ export declare const TabsDescendantsProvider: import("react").Provider<import(".
|
|
|
16
16
|
}>;
|
|
17
17
|
index: number;
|
|
18
18
|
enabledIndex: number;
|
|
19
|
-
register: (instance: HTMLButtonElement | null) => void
|
|
19
|
+
register: (instance: HTMLButtonElement | null) => void;
|
|
20
20
|
};
|
|
21
21
|
type TabsProviderProps = ReturnType<typeof useTabs> & Pick<TabsProps, "selectionFollowsFocus" | "loop" | "size" | "iconPosition" | "fill">;
|
|
22
22
|
export declare const TabsProvider: import("react").ForwardRefExoticComponent<{
|
|
@@ -9,7 +9,7 @@ export interface UseTabProps {
|
|
|
9
9
|
value: string;
|
|
10
10
|
}
|
|
11
11
|
export declare function useTab<P extends UseTabProps>({ value, disabled, onFocus: _onFocus, onClick }: P, ref: React.ForwardedRef<HTMLButtonElement>): {
|
|
12
|
-
ref: (instance: HTMLButtonElement | null) => void
|
|
12
|
+
ref: (instance: HTMLButtonElement | null) => void;
|
|
13
13
|
isSelected: boolean;
|
|
14
14
|
isFocused: boolean;
|
|
15
15
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollButtons.js","sourceRoot":"","sources":["../../../../src/tabs/parts/tablist/useScrollButtons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useScrollButtons.js","sourceRoot":"","sources":["../../../../src/tabs/parts/tablist/useScrollButtons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,gBAAgB,CAC9B,OAA+C;IAE/C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC;QACjD,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,OAAO,CACrC,GAAG,EAAE,CACH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;YAAE,OAAO;QAC9B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC9C,6DAA6D;QAC7D,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;QAEjE,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpC,eAAe,KAAK,gBAAgB,CAAC,KAAK;YAC1C,aAAa,KAAK,gBAAgB,CAAC,GAAG;YACpC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,CACnD,CAAC;IACJ,CAAC,CAAC,EACJ,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;;QACb,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,aAAa,mCAAI,QAAQ,mCAAI,MAAM,CAAC;QACjE,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE7C,IAAI,cAA8B,CAAC;QAEnC,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7D,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChD,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,EAAE,CAAC;YAC7B,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,uBAAuB,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,uBAAuB;QAC/B,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,KAAK;QAC9C,UAAU,EAAE,GAAG,EAAE;YACf,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YACpC,CAAC;QACH,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YACpC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -20,7 +20,7 @@ export declare const ToggleGroupDescendantsProvider: import("react").Provider<im
|
|
|
20
20
|
}>;
|
|
21
21
|
index: number;
|
|
22
22
|
enabledIndex: number;
|
|
23
|
-
register: (instance: HTMLButtonElement | null) => void
|
|
23
|
+
register: (instance: HTMLButtonElement | null) => void;
|
|
24
24
|
};
|
|
25
25
|
type ToggleGroupProviderProps = ReturnType<typeof useToggleGroup> & Pick<ToggleGroupProps, "size">;
|
|
26
26
|
export declare const ToggleGroupProvider: import("react").ForwardRefExoticComponent<{
|
|
@@ -10,7 +10,7 @@ export interface UseToggleItemProps {
|
|
|
10
10
|
value: string;
|
|
11
11
|
}
|
|
12
12
|
export declare function useToggleItem<P extends UseToggleItemProps>({ value, disabled, onFocus: _onFocus, onClick, onKeyDown: _onKeyDown, }: P, ref: React.ForwardedRef<HTMLButtonElement>): {
|
|
13
|
-
ref: (instance: HTMLButtonElement | null) => void
|
|
13
|
+
ref: (instance: HTMLButtonElement | null) => void;
|
|
14
14
|
isSelected: boolean;
|
|
15
15
|
isFocused: boolean;
|
|
16
16
|
onClick: (event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
@@ -10,5 +10,5 @@ export declare function createDescendantContext<T extends HTMLElement = HTMLElem
|
|
|
10
10
|
descendants: DescendantsManager<T, K>;
|
|
11
11
|
index: number;
|
|
12
12
|
enabledIndex: number;
|
|
13
|
-
register: (instance: T | null) => void
|
|
13
|
+
register: (instance: T | null) => void;
|
|
14
14
|
}];
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
type PossibleRef<T> = React.
|
|
2
|
+
type PossibleRef<T> = React.Ref<T> | undefined;
|
|
3
3
|
/**
|
|
4
4
|
* Use `useMergeRefs`
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
export declare function mergeRefs<T>(refs: PossibleRef<T>[]):
|
|
7
|
+
export declare function mergeRefs<T>(refs: PossibleRef<T>[]): (instance: T | null) => void;
|
|
8
8
|
/**
|
|
9
9
|
* Merges refs within useCallback
|
|
10
10
|
* @internal
|
|
11
11
|
* @param ...refs: React.Ref<T> | undefined
|
|
12
12
|
* @returns React.useCallback(mergeRefs(refs), refs)
|
|
13
13
|
*/
|
|
14
|
-
export declare function useMergeRefs<T>(...refs: PossibleRef<T>[]): (instance: T | null) => void
|
|
14
|
+
export declare function useMergeRefs<T>(...refs: PossibleRef<T>[]): (instance: T | null) => void;
|
|
15
15
|
export {};
|
|
@@ -6,13 +6,13 @@ import React from "react";
|
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
8
|
export function mergeRefs(refs) {
|
|
9
|
-
return (
|
|
9
|
+
return (instance) => {
|
|
10
10
|
refs.forEach((ref) => {
|
|
11
11
|
if (typeof ref === "function") {
|
|
12
|
-
ref(
|
|
12
|
+
ref(instance);
|
|
13
13
|
}
|
|
14
14
|
else if (ref !== null && ref !== undefined) {
|
|
15
|
-
ref.current =
|
|
15
|
+
ref.current = instance;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../../src/util/hooks/useMergeRefs.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,gDAAgD;AAChD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,IAAsB;IACjD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../../src/util/hooks/useMergeRefs.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,gDAAgD;AAChD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,IAAsB;IACjD,OAAO,CAAC,QAAkB,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC5C,GAAwC,CAAC,OAAO,GAAG,QAAQ,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAI,GAAG,IAAsB;IACvD,uDAAuD;IACvD,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC"}
|