@flipdish/ui-library 0.34.0 → 0.34.2

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.
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ /**
6
+ * Which section the dual-tier panel lists, and whether hover, keyboard focus or the account menu
7
+ * currently holds that panel open. The panel lists the children of the current section. The active
8
+ * route seeds that section, and clicking or keyboard-activating a primary item switches it, so
9
+ * exactly one item is ever highlighted.
10
+ *
11
+ * @param options The active section label and the sections the rail can select.
12
+ * @returns The selected section, whether its panel is visible, and the pointer, focus and selection handlers.
13
+ */
14
+ const useDualTierReveal = ({ activeLabel, sections }) => {
15
+ // Track the current section by its (unique) label rather than the object, so it
16
+ // survives the consumer passing a fresh `items` array and never collides on href.
17
+ const [currentLabel, setCurrentLabel] = React.useState(activeLabel);
18
+ // Keep the selected section in sync with the active route when it changes externally
19
+ // (browser navigation, a controlled `activeUrl`, or asynchronously-loaded items).
20
+ React.useEffect(() => {
21
+ if (activeLabel !== undefined)
22
+ setCurrentLabel(activeLabel);
23
+ }, [activeLabel]);
24
+ const currentItem = sections.find((item) => item.label === currentLabel);
25
+ const [isHovering, setIsHovering] = React.useState(false);
26
+ const [isFocusWithin, setIsFocusWithin] = React.useState(false);
27
+ // The account menu popover is portaled outside the sidebar, so hovering it fires pointerleave and would flap the panel open/closed.
28
+ const [isAccountMenuOpen, setIsAccountMenuOpen] = React.useState(false);
29
+ const isSecondarySidebarVisible = (isHovering || isFocusWithin) && !isAccountMenuOpen && Boolean(currentItem?.items?.length);
30
+ // Only *keyboard* focus holds the panel open. Focus parked on a just-clicked link
31
+ // (pointer modality) must not — otherwise the panel lingers after a mouse click even
32
+ // once the pointer leaves. Gating on `:focus-visible` keeps the mouse behaviour
33
+ // identical to Untitled UI (closes on pointer-leave) while preserving keyboard reach.
34
+ const handleContainerFocus = (event) => {
35
+ setIsFocusWithin(event.target.matches(':focus-visible'));
36
+ };
37
+ const handleContainerBlur = (event) => {
38
+ if (!event.currentTarget.contains(event.relatedTarget))
39
+ setIsFocusWithin(false);
40
+ };
41
+ // `pointerenter` never fires when the pointer is already inside as the sidebar mounts (it mounts
42
+ // late, after permissions/app data load), so the first move inside counts as entering too.
43
+ // Portaled children (account menu, tooltips) bubble through React but sit outside in the DOM.
44
+ const handleContainerPointerMove = (event) => {
45
+ if (!isHovering && event.currentTarget.contains(event.target))
46
+ setIsHovering(true);
47
+ };
48
+ // A click must reveal the panel even when no `pointerenter` preceded it (see
49
+ // handleContainerPointerMove). Keyboard activation is already covered by focus-within and must not latch
50
+ // the hover flag, which only `pointerleave` clears.
51
+ const revealSection = (label, hasChildren) => {
52
+ setCurrentLabel(label);
53
+ if (hasChildren && !isFocusWithin)
54
+ setIsHovering(true);
55
+ };
56
+ const revealFromKeyboard = () => setIsFocusWithin(true);
57
+ return {
58
+ currentLabel,
59
+ setCurrentLabel,
60
+ currentItem,
61
+ isSecondarySidebarVisible,
62
+ setIsHovering,
63
+ setIsAccountMenuOpen,
64
+ handleContainerFocus,
65
+ handleContainerBlur,
66
+ handleContainerPointerMove,
67
+ revealSection,
68
+ revealFromKeyboard,
69
+ };
70
+ };
71
+
72
+ exports.useDualTierReveal = useDualTierReveal;
73
+ //# sourceMappingURL=useDualTierReveal.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDualTierReveal.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;AAiBA;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAAkC,EAAE,WAAW,EAAE,QAAQ,EAAkC,KAAI;;;IAG9H,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAqB,WAAW,CAAC;;;IAIjFC,eAAS,CAAC,MAAK;QACb,IAAI,WAAW,KAAK,SAAS;YAAE,eAAe,CAAC,WAAW,CAAC;AAC7D,IAAA,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAEjB,IAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGD,cAAQ,CAAC,KAAK,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;;IAEzD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AACjE,IAAA,MAAM,yBAAyB,GAAG,CAAC,UAAU,IAAI,aAAa,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;;;;;AAM5H,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAiC,KAAI;QACjE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC1D,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,KAAiC,KAAI;QAChE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;YAAE,gBAAgB,CAAC,KAAK,CAAC;AACjF,IAAA,CAAC;;;;AAKD,IAAA,MAAM,0BAA0B,GAAG,CAAC,KAAmC,KAAI;AACzE,QAAA,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC;AAC5F,IAAA,CAAC;;;;AAKD,IAAA,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,WAAoB,KAAI;QAC5D,eAAe,CAAC,KAAK,CAAC;QACtB,IAAI,WAAW,IAAI,CAAC,aAAa;YAAE,aAAa,CAAC,IAAI,CAAC;AACxD,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC;IAEvD,OAAO;QACL,YAAY;QACZ,eAAe;QACf,WAAW;QACX,yBAAyB;QACzB,aAAa;QACb,oBAAoB;QACpB,oBAAoB;QACpB,mBAAmB;QACnB,0BAA0B;QAC1B,aAAa;QACb,kBAAkB;KACnB;AACH;;"}
@@ -0,0 +1,35 @@
1
+ import type { FocusEvent, PointerEvent } from 'react';
2
+ interface DualTierSection {
3
+ label: string;
4
+ items?: readonly unknown[];
5
+ }
6
+ interface DualTierRevealOptions<Section extends DualTierSection> {
7
+ /** Label of the section that contains the active route, when one matches. */
8
+ activeLabel: string | undefined;
9
+ /** Primary items followed by footer items, the same list the rail highlights. */
10
+ sections: readonly Section[];
11
+ }
12
+ /**
13
+ * Which section the dual-tier panel lists, and whether hover, keyboard focus or the account menu
14
+ * currently holds that panel open. The panel lists the children of the current section. The active
15
+ * route seeds that section, and clicking or keyboard-activating a primary item switches it, so
16
+ * exactly one item is ever highlighted.
17
+ *
18
+ * @param options The active section label and the sections the rail can select.
19
+ * @returns The selected section, whether its panel is visible, and the pointer, focus and selection handlers.
20
+ */
21
+ export declare const useDualTierReveal: <Section extends DualTierSection>({ activeLabel, sections }: DualTierRevealOptions<Section>) => {
22
+ currentLabel: string | undefined;
23
+ setCurrentLabel: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
24
+ currentItem: Section | undefined;
25
+ isSecondarySidebarVisible: boolean;
26
+ setIsHovering: import("react").Dispatch<import("react").SetStateAction<boolean>>;
27
+ setIsAccountMenuOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
28
+ handleContainerFocus: (event: FocusEvent<HTMLDivElement>) => void;
29
+ handleContainerBlur: (event: FocusEvent<HTMLDivElement>) => void;
30
+ handleContainerPointerMove: (event: PointerEvent<HTMLDivElement>) => void;
31
+ revealSection: (label: string, hasChildren: boolean) => void;
32
+ revealFromKeyboard: () => void;
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=useDualTierReveal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDualTierReveal.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGtD,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC5B;AAED,UAAU,qBAAqB,CAAC,OAAO,SAAS,eAAe;IAC7D,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iFAAiF;IACjF,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,eAAe,EAAE,2BAA2B,qBAAqB,CAAC,OAAO,CAAC;;;;;;;kCAsBrF,UAAU,CAAC,cAAc,CAAC;iCAI3B,UAAU,CAAC,cAAc,CAAC;wCAOnB,YAAY,CAAC,cAAc,CAAC;2BAOzC,MAAM,eAAe,OAAO;;CAoB3D,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ /**
4
+ * Which section the dual-tier panel lists, and whether hover, keyboard focus or the account menu
5
+ * currently holds that panel open. The panel lists the children of the current section. The active
6
+ * route seeds that section, and clicking or keyboard-activating a primary item switches it, so
7
+ * exactly one item is ever highlighted.
8
+ *
9
+ * @param options The active section label and the sections the rail can select.
10
+ * @returns The selected section, whether its panel is visible, and the pointer, focus and selection handlers.
11
+ */
12
+ const useDualTierReveal = ({ activeLabel, sections }) => {
13
+ // Track the current section by its (unique) label rather than the object, so it
14
+ // survives the consumer passing a fresh `items` array and never collides on href.
15
+ const [currentLabel, setCurrentLabel] = useState(activeLabel);
16
+ // Keep the selected section in sync with the active route when it changes externally
17
+ // (browser navigation, a controlled `activeUrl`, or asynchronously-loaded items).
18
+ useEffect(() => {
19
+ if (activeLabel !== undefined)
20
+ setCurrentLabel(activeLabel);
21
+ }, [activeLabel]);
22
+ const currentItem = sections.find((item) => item.label === currentLabel);
23
+ const [isHovering, setIsHovering] = useState(false);
24
+ const [isFocusWithin, setIsFocusWithin] = useState(false);
25
+ // The account menu popover is portaled outside the sidebar, so hovering it fires pointerleave and would flap the panel open/closed.
26
+ const [isAccountMenuOpen, setIsAccountMenuOpen] = useState(false);
27
+ const isSecondarySidebarVisible = (isHovering || isFocusWithin) && !isAccountMenuOpen && Boolean(currentItem?.items?.length);
28
+ // Only *keyboard* focus holds the panel open. Focus parked on a just-clicked link
29
+ // (pointer modality) must not — otherwise the panel lingers after a mouse click even
30
+ // once the pointer leaves. Gating on `:focus-visible` keeps the mouse behaviour
31
+ // identical to Untitled UI (closes on pointer-leave) while preserving keyboard reach.
32
+ const handleContainerFocus = (event) => {
33
+ setIsFocusWithin(event.target.matches(':focus-visible'));
34
+ };
35
+ const handleContainerBlur = (event) => {
36
+ if (!event.currentTarget.contains(event.relatedTarget))
37
+ setIsFocusWithin(false);
38
+ };
39
+ // `pointerenter` never fires when the pointer is already inside as the sidebar mounts (it mounts
40
+ // late, after permissions/app data load), so the first move inside counts as entering too.
41
+ // Portaled children (account menu, tooltips) bubble through React but sit outside in the DOM.
42
+ const handleContainerPointerMove = (event) => {
43
+ if (!isHovering && event.currentTarget.contains(event.target))
44
+ setIsHovering(true);
45
+ };
46
+ // A click must reveal the panel even when no `pointerenter` preceded it (see
47
+ // handleContainerPointerMove). Keyboard activation is already covered by focus-within and must not latch
48
+ // the hover flag, which only `pointerleave` clears.
49
+ const revealSection = (label, hasChildren) => {
50
+ setCurrentLabel(label);
51
+ if (hasChildren && !isFocusWithin)
52
+ setIsHovering(true);
53
+ };
54
+ const revealFromKeyboard = () => setIsFocusWithin(true);
55
+ return {
56
+ currentLabel,
57
+ setCurrentLabel,
58
+ currentItem,
59
+ isSecondarySidebarVisible,
60
+ setIsHovering,
61
+ setIsAccountMenuOpen,
62
+ handleContainerFocus,
63
+ handleContainerBlur,
64
+ handleContainerPointerMove,
65
+ revealSection,
66
+ revealFromKeyboard,
67
+ };
68
+ };
69
+
70
+ export { useDualTierReveal };
71
+ //# sourceMappingURL=useDualTierReveal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDualTierReveal.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAiBA;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAAkC,EAAE,WAAW,EAAE,QAAQ,EAAkC,KAAI;;;IAG9H,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,WAAW,CAAC;;;IAIjF,SAAS,CAAC,MAAK;QACb,IAAI,WAAW,KAAK,SAAS;YAAE,eAAe,CAAC,WAAW,CAAC;AAC7D,IAAA,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAEjB,IAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;;IAEzD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjE,IAAA,MAAM,yBAAyB,GAAG,CAAC,UAAU,IAAI,aAAa,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;;;;;AAM5H,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAiC,KAAI;QACjE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC1D,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,KAAiC,KAAI;QAChE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;YAAE,gBAAgB,CAAC,KAAK,CAAC;AACjF,IAAA,CAAC;;;;AAKD,IAAA,MAAM,0BAA0B,GAAG,CAAC,KAAmC,KAAI;AACzE,QAAA,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC;AAC5F,IAAA,CAAC;;;;AAKD,IAAA,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,WAAoB,KAAI;QAC5D,eAAe,CAAC,KAAK,CAAC;QACtB,IAAI,WAAW,IAAI,CAAC,aAAa;YAAE,aAAa,CAAC,IAAI,CAAC;AACxD,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC;IAEvD,OAAO;QACL,YAAY;QACZ,eAAe;QACf,WAAW;QACX,yBAAyB;QACzB,aAAa;QACb,oBAAoB;QACpB,oBAAoB;QACpB,mBAAmB;QACnB,0BAA0B;QAC1B,aAAa;QACb,kBAAkB;KACnB;AACH;;"}
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var localStorageUtils = require('@flipdish/ui-library/utilities/localStorageUtils');
4
+ var react = require('motion/react');
5
+ var React = require('react');
6
+
7
+ /** One spring for the rail, the page beside it and the secondary panel, so everything that resizes moves together. */
8
+ const SIDEBAR_SPRING = { type: 'spring', damping: 26, stiffness: 220, bounce: 0 };
9
+ const INSTANT = { duration: 0 };
10
+ /**
11
+ * Collapsed state of the sidebar rail and the flags its width animation needs. Resolves controlled versus
12
+ * uncontrolled state, restores a persisted preference after hydration without animating it, and tracks whether
13
+ * the rail is between widths so labels can hold their width while it moves.
14
+ *
15
+ * @param options The collapse props of `SidebarNavigation`.
16
+ * @returns The resolved state, its setter, the two animation flags, the Motion transition for the width, and the
17
+ * callback to pass to the rail's `onAnimationComplete`.
18
+ */
19
+ const useSidebarCollapse = ({ collapsed, defaultCollapsed, onCollapsedChange, persistCollapsed }) => {
20
+ const isControlled = collapsed !== undefined;
21
+ const [internalCollapsed, setInternalCollapsed] = React.useState(defaultCollapsed);
22
+ const isCollapsed = isControlled ? collapsed : internalCollapsed;
23
+ // The stored preference is applied after hydration (reading it during render would mismatch the server markup), so
24
+ // it must not animate: a returning user would watch the rail and the page spring closed on every load. The flag makes
25
+ // that one change instant for Motion and lets the rail switch off its CSS fades.
26
+ const [isApplyingStoredPreference, setIsApplyingStoredPreference] = React.useState(false);
27
+ React.useLayoutEffect(() => {
28
+ if (isControlled || !persistCollapsed)
29
+ return;
30
+ const stored = localStorageUtils.sidebarCollapsedStorage.get();
31
+ if (stored === null || stored === defaultCollapsed)
32
+ return;
33
+ setIsApplyingStoredPreference(true);
34
+ setInternalCollapsed(stored);
35
+ }, [isControlled, persistCollapsed, defaultCollapsed]);
36
+ const setCollapsed = (next) => {
37
+ onCollapsedChange?.(next);
38
+ if (isControlled)
39
+ return;
40
+ setInternalCollapsed(next);
41
+ if (persistCollapsed)
42
+ localStorageUtils.sidebarCollapsedStorage.set(next);
43
+ };
44
+ const shouldReduceMotion = react.useReducedMotion();
45
+ const resizeTransition = shouldReduceMotion || isApplyingStoredPreference ? INSTANT : SIDEBAR_SPRING;
46
+ // While the rail is between widths its labels keep their width and get wiped by the row's edge rather than re-truncating
47
+ // every frame. Tracked from the resolved state, so a controlled toggle counts too, and cleared when the width settles.
48
+ const [isResizing, setIsResizing] = React.useState(false);
49
+ const [settledCollapsed, setSettledCollapsed] = React.useState(isCollapsed);
50
+ if (settledCollapsed !== isCollapsed) {
51
+ setSettledCollapsed(isCollapsed);
52
+ setIsResizing(true);
53
+ }
54
+ // The fades come back only after a paint: cleared any earlier, the browser would compute the collapsed styles with
55
+ // the transitions already restored and the logo and toggle would still animate from the default state. The instant
56
+ // width change has settled by then too, so the resize flag clears here rather than waiting on Motion's callback for a
57
+ // zero-duration run. In a background tab the frames wait for the tab to show, which is harmless since nothing painted.
58
+ React.useEffect(() => {
59
+ if (!isApplyingStoredPreference)
60
+ return;
61
+ let frame = requestAnimationFrame(() => {
62
+ frame = requestAnimationFrame(() => {
63
+ setIsApplyingStoredPreference(false);
64
+ setIsResizing(false);
65
+ });
66
+ });
67
+ return () => cancelAnimationFrame(frame);
68
+ }, [isApplyingStoredPreference]);
69
+ return {
70
+ isCollapsed,
71
+ setCollapsed,
72
+ /** True while the rail animates between widths. */
73
+ isResizing,
74
+ /** True for the first paint of a restored preference, while the rail must not transition anything. */
75
+ isApplyingStoredPreference,
76
+ /** The Motion transition for the rail's width and the page placeholder beside it. */
77
+ resizeTransition,
78
+ /** Pass to the rail's `onAnimationComplete`. */
79
+ onResizeComplete: () => setIsResizing(false),
80
+ };
81
+ };
82
+
83
+ exports.SIDEBAR_SPRING = SIDEBAR_SPRING;
84
+ exports.useSidebarCollapse = useSidebarCollapse;
85
+ //# sourceMappingURL=useSidebarCollapse.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSidebarCollapse.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useSidebarCollapse.ts"],"sourcesContent":[null],"names":["useState","useLayoutEffect","sidebarCollapsedStorage","useReducedMotion","useEffect"],"mappings":";;;;;;AAMA;MACa,cAAc,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAEtF,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAW;AAaxC;;;;;;;;AAQG;AACI,MAAM,kBAAkB,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAA0B,KAAI;AACjI,IAAA,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS;IAC5C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAGA,cAAQ,CAAC,gBAAgB,CAAC;IAC5E,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,iBAAiB;;;;IAKhE,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IACnFC,qBAAe,CAAC,MAAK;QACnB,IAAI,YAAY,IAAI,CAAC,gBAAgB;YAAE;AACvC,QAAA,MAAM,MAAM,GAAGC,yCAAuB,CAAC,GAAG,EAAE;AAC5C,QAAA,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,gBAAgB;YAAE;QACpD,6BAA6B,CAAC,IAAI,CAAC;QACnC,oBAAoB,CAAC,MAAM,CAAC;IAC9B,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAEtD,IAAA,MAAM,YAAY,GAAG,CAAC,IAAa,KAAI;AACrC,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,YAAY;YAAE;QAClB,oBAAoB,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,gBAAgB;AAAE,YAAAA,yCAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAGC,sBAAgB,EAAE;AAC7C,IAAA,MAAM,gBAAgB,GAAG,kBAAkB,IAAI,0BAA0B,GAAG,OAAO,GAAG,cAAc;;;IAIpG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGH,cAAQ,CAAC,KAAK,CAAC;IACnD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAQ,CAAC,WAAW,CAAC;AACrE,IAAA,IAAI,gBAAgB,KAAK,WAAW,EAAE;QACpC,mBAAmB,CAAC,WAAW,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC;IACrB;;;;;IAMAI,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,0BAA0B;YAAE;AACjC,QAAA,IAAI,KAAK,GAAG,qBAAqB,CAAC,MAAK;AACrC,YAAA,KAAK,GAAG,qBAAqB,CAAC,MAAK;gBACjC,6BAA6B,CAAC,KAAK,CAAC;gBACpC,aAAa,CAAC,KAAK,CAAC;AACtB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;IAEhC,OAAO;QACL,WAAW;QACX,YAAY;;QAEZ,UAAU;;QAEV,0BAA0B;;QAE1B,gBAAgB;;AAEhB,QAAA,gBAAgB,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC;KAC7C;AACH;;;"}
@@ -0,0 +1,47 @@
1
+ /** One spring for the rail, the page beside it and the secondary panel, so everything that resizes moves together. */
2
+ export declare const SIDEBAR_SPRING: {
3
+ readonly type: "spring";
4
+ readonly damping: 26;
5
+ readonly stiffness: 220;
6
+ readonly bounce: 0;
7
+ };
8
+ interface SidebarCollapseOptions {
9
+ /** Controlled collapsed state. When provided the parent owns the state and its persistence. */
10
+ collapsed?: boolean;
11
+ /** Initial collapsed state when uncontrolled. */
12
+ defaultCollapsed: boolean;
13
+ /** Called whenever the user toggles the rail. */
14
+ onCollapsedChange?: (collapsed: boolean) => void;
15
+ /** Persist the collapsed state to localStorage (uncontrolled mode only). */
16
+ persistCollapsed: boolean;
17
+ }
18
+ /**
19
+ * Collapsed state of the sidebar rail and the flags its width animation needs. Resolves controlled versus
20
+ * uncontrolled state, restores a persisted preference after hydration without animating it, and tracks whether
21
+ * the rail is between widths so labels can hold their width while it moves.
22
+ *
23
+ * @param options The collapse props of `SidebarNavigation`.
24
+ * @returns The resolved state, its setter, the two animation flags, the Motion transition for the width, and the
25
+ * callback to pass to the rail's `onAnimationComplete`.
26
+ */
27
+ export declare const useSidebarCollapse: ({ collapsed, defaultCollapsed, onCollapsedChange, persistCollapsed }: SidebarCollapseOptions) => {
28
+ isCollapsed: boolean;
29
+ setCollapsed: (next: boolean) => void;
30
+ /** True while the rail animates between widths. */
31
+ isResizing: boolean;
32
+ /** True for the first paint of a restored preference, while the rail must not transition anything. */
33
+ isApplyingStoredPreference: boolean;
34
+ /** The Motion transition for the rail's width and the page placeholder beside it. */
35
+ resizeTransition: {
36
+ readonly type: "spring";
37
+ readonly damping: 26;
38
+ readonly stiffness: 220;
39
+ readonly bounce: 0;
40
+ } | {
41
+ readonly duration: 0;
42
+ };
43
+ /** Pass to the rail's `onAnimationComplete`. */
44
+ onResizeComplete: () => void;
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=useSidebarCollapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSidebarCollapse.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useSidebarCollapse.ts"],"names":[],"mappings":"AAMA,sHAAsH;AACtH,eAAO,MAAM,cAAc;;;;;CAAsE,CAAC;AAIlG,UAAU,sBAAsB;IAC9B,+FAA+F;IAC/F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,4EAA4E;IAC5E,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAI,sEAAsE,sBAAsB;;yBAiBjG,OAAO;IAqCjC,mDAAmD;;IAEnD,sGAAsG;;IAEtG,qFAAqF;;;;;;;;;IAErF,gDAAgD;;CAGnD,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { sidebarCollapsedStorage } from '@flipdish/ui-library/utilities/localStorageUtils';
2
+ import { useReducedMotion } from 'motion/react';
3
+ import { useState, useLayoutEffect, useEffect } from 'react';
4
+
5
+ /** One spring for the rail, the page beside it and the secondary panel, so everything that resizes moves together. */
6
+ const SIDEBAR_SPRING = { type: 'spring', damping: 26, stiffness: 220, bounce: 0 };
7
+ const INSTANT = { duration: 0 };
8
+ /**
9
+ * Collapsed state of the sidebar rail and the flags its width animation needs. Resolves controlled versus
10
+ * uncontrolled state, restores a persisted preference after hydration without animating it, and tracks whether
11
+ * the rail is between widths so labels can hold their width while it moves.
12
+ *
13
+ * @param options The collapse props of `SidebarNavigation`.
14
+ * @returns The resolved state, its setter, the two animation flags, the Motion transition for the width, and the
15
+ * callback to pass to the rail's `onAnimationComplete`.
16
+ */
17
+ const useSidebarCollapse = ({ collapsed, defaultCollapsed, onCollapsedChange, persistCollapsed }) => {
18
+ const isControlled = collapsed !== undefined;
19
+ const [internalCollapsed, setInternalCollapsed] = useState(defaultCollapsed);
20
+ const isCollapsed = isControlled ? collapsed : internalCollapsed;
21
+ // The stored preference is applied after hydration (reading it during render would mismatch the server markup), so
22
+ // it must not animate: a returning user would watch the rail and the page spring closed on every load. The flag makes
23
+ // that one change instant for Motion and lets the rail switch off its CSS fades.
24
+ const [isApplyingStoredPreference, setIsApplyingStoredPreference] = useState(false);
25
+ useLayoutEffect(() => {
26
+ if (isControlled || !persistCollapsed)
27
+ return;
28
+ const stored = sidebarCollapsedStorage.get();
29
+ if (stored === null || stored === defaultCollapsed)
30
+ return;
31
+ setIsApplyingStoredPreference(true);
32
+ setInternalCollapsed(stored);
33
+ }, [isControlled, persistCollapsed, defaultCollapsed]);
34
+ const setCollapsed = (next) => {
35
+ onCollapsedChange?.(next);
36
+ if (isControlled)
37
+ return;
38
+ setInternalCollapsed(next);
39
+ if (persistCollapsed)
40
+ sidebarCollapsedStorage.set(next);
41
+ };
42
+ const shouldReduceMotion = useReducedMotion();
43
+ const resizeTransition = shouldReduceMotion || isApplyingStoredPreference ? INSTANT : SIDEBAR_SPRING;
44
+ // While the rail is between widths its labels keep their width and get wiped by the row's edge rather than re-truncating
45
+ // every frame. Tracked from the resolved state, so a controlled toggle counts too, and cleared when the width settles.
46
+ const [isResizing, setIsResizing] = useState(false);
47
+ const [settledCollapsed, setSettledCollapsed] = useState(isCollapsed);
48
+ if (settledCollapsed !== isCollapsed) {
49
+ setSettledCollapsed(isCollapsed);
50
+ setIsResizing(true);
51
+ }
52
+ // The fades come back only after a paint: cleared any earlier, the browser would compute the collapsed styles with
53
+ // the transitions already restored and the logo and toggle would still animate from the default state. The instant
54
+ // width change has settled by then too, so the resize flag clears here rather than waiting on Motion's callback for a
55
+ // zero-duration run. In a background tab the frames wait for the tab to show, which is harmless since nothing painted.
56
+ useEffect(() => {
57
+ if (!isApplyingStoredPreference)
58
+ return;
59
+ let frame = requestAnimationFrame(() => {
60
+ frame = requestAnimationFrame(() => {
61
+ setIsApplyingStoredPreference(false);
62
+ setIsResizing(false);
63
+ });
64
+ });
65
+ return () => cancelAnimationFrame(frame);
66
+ }, [isApplyingStoredPreference]);
67
+ return {
68
+ isCollapsed,
69
+ setCollapsed,
70
+ /** True while the rail animates between widths. */
71
+ isResizing,
72
+ /** True for the first paint of a restored preference, while the rail must not transition anything. */
73
+ isApplyingStoredPreference,
74
+ /** The Motion transition for the rail's width and the page placeholder beside it. */
75
+ resizeTransition,
76
+ /** Pass to the rail's `onAnimationComplete`. */
77
+ onResizeComplete: () => setIsResizing(false),
78
+ };
79
+ };
80
+
81
+ export { SIDEBAR_SPRING, useSidebarCollapse };
82
+ //# sourceMappingURL=useSidebarCollapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSidebarCollapse.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useSidebarCollapse.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;MACa,cAAc,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAEtF,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAW;AAaxC;;;;;;;;AAQG;AACI,MAAM,kBAAkB,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAA0B,KAAI;AACjI,IAAA,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS;IAC5C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC5E,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,iBAAiB;;;;IAKhE,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACnF,eAAe,CAAC,MAAK;QACnB,IAAI,YAAY,IAAI,CAAC,gBAAgB;YAAE;AACvC,QAAA,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,EAAE;AAC5C,QAAA,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,gBAAgB;YAAE;QACpD,6BAA6B,CAAC,IAAI,CAAC;QACnC,oBAAoB,CAAC,MAAM,CAAC;IAC9B,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAEtD,IAAA,MAAM,YAAY,GAAG,CAAC,IAAa,KAAI;AACrC,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,YAAY;YAAE;QAClB,oBAAoB,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,gBAAgB;AAAE,YAAA,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,gBAAgB,EAAE;AAC7C,IAAA,MAAM,gBAAgB,GAAG,kBAAkB,IAAI,0BAA0B,GAAG,OAAO,GAAG,cAAc;;;IAIpG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACnD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;AACrE,IAAA,IAAI,gBAAgB,KAAK,WAAW,EAAE;QACpC,mBAAmB,CAAC,WAAW,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC;IACrB;;;;;IAMA,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,0BAA0B;YAAE;AACjC,QAAA,IAAI,KAAK,GAAG,qBAAqB,CAAC,MAAK;AACrC,YAAA,KAAK,GAAG,qBAAqB,CAAC,MAAK;gBACjC,6BAA6B,CAAC,KAAK,CAAC;gBACpC,aAAa,CAAC,KAAK,CAAC;AACtB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;IAEhC,OAAO;QACL,WAAW;QACX,YAAY;;QAEZ,UAAU;;QAEV,0BAA0B;;QAE1B,gBAAgB;;AAEhB,QAAA,gBAAgB,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC;KAC7C;AACH;;"}
@@ -7,7 +7,6 @@ var UtilityButton = require('@flipdish/ui-library/components/atoms/UtilityButton
7
7
  var useBreakpoints = require('@flipdish/ui-library/hooks/useBreakpoints');
8
8
  var cx = require('@flipdish/ui-library/utilities/cx');
9
9
  var hrefUtils = require('@flipdish/ui-library/utilities/hrefUtils');
10
- var localStorageUtils = require('@flipdish/ui-library/utilities/localStorageUtils');
11
10
  var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
12
11
  var react = require('motion/react');
13
12
  var React = require('react');
@@ -20,13 +19,13 @@ var NavItem = require('./components/NavItem.cjs');
20
19
  var NavList = require('./components/NavList.cjs');
21
20
  var NavSectionToggle = require('./components/NavSectionToggle.cjs');
22
21
  var useDualTierKeyboard = require('./hooks/useDualTierKeyboard.cjs');
22
+ var useDualTierReveal = require('./hooks/useDualTierReveal.cjs');
23
+ var useSidebarCollapse = require('./hooks/useSidebarCollapse.cjs');
23
24
  var SidebarMenuButton = require('./components/SidebarMenuButton.cjs');
24
25
 
25
26
  const COLLAPSED_WIDTH = 68;
26
27
  const EXPANDED_WIDTH = 280;
27
28
  const SECONDARY_SIDEBAR_WIDTH = 256;
28
- // One spring for the rail, the page beside it and the secondary panel, so everything that resizes moves together.
29
- const SPRING = { type: 'spring', damping: 26, stiffness: 220, bounce: 0 };
30
29
  /**
31
30
  * The primary app-shell navigation rail: logo, destinations, footer links and an account card,
32
31
  * collapsible to an icon-only strip, with a hover-revealed panel for the current section's
@@ -43,9 +42,12 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
43
42
  onNavigate?.(destination);
44
43
  };
45
44
  const navItemTestId = (item) => item['data-testid'] ?? testIdUtils.joinTestId(rootTestId, `nav-item-${item.id ?? testIdUtils.slugifyTestId(item.label)}`);
46
- const isControlled = collapsed !== undefined;
47
- const [internalCollapsed, setInternalCollapsed] = React.useState(defaultCollapsed);
48
- const isCollapsed = isControlled ? collapsed : internalCollapsed;
45
+ const { isCollapsed, setCollapsed, isResizing, isApplyingStoredPreference, resizeTransition, onResizeComplete } = useSidebarCollapse.useSidebarCollapse({
46
+ collapsed,
47
+ defaultCollapsed,
48
+ onCollapsedChange,
49
+ persistCollapsed,
50
+ });
49
51
  // Mobile drawer open-state: controlled when `mobileMenuOpen` is provided, else internal.
50
52
  const isMobileMenuControlled = mobileMenuOpen !== undefined;
51
53
  const [internalMobileMenuOpen, setInternalMobileMenuOpen] = React.useState(false);
@@ -62,89 +64,18 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
62
64
  if (isDesktop && isMobileMenuOpen)
63
65
  setMobileMenuOpen(false);
64
66
  }, [isDesktop]);
65
- // The stored preference is applied after hydration (reading it during render would mismatch the server markup), so
66
- // it must not animate: a returning user would watch the rail and the page spring closed on every load. The flag makes
67
- // that one change instant; a layout effect commits it before the first paint, so neither the default state nor the
68
- // CSS fades ever show.
69
- const [isApplyingStoredPreference, setIsApplyingStoredPreference] = React.useState(false);
70
- React.useLayoutEffect(() => {
71
- if (isControlled || !persistCollapsed)
72
- return;
73
- const stored = localStorageUtils.sidebarCollapsedStorage.get();
74
- if (stored === null || stored === defaultCollapsed)
75
- return;
76
- setIsApplyingStoredPreference(true);
77
- setInternalCollapsed(stored);
78
- }, [isControlled, persistCollapsed, defaultCollapsed]);
79
- const setCollapsed = (next) => {
80
- onCollapsedChange?.(next);
81
- if (isControlled)
82
- return;
83
- setInternalCollapsed(next);
84
- if (persistCollapsed)
85
- localStorageUtils.sidebarCollapsedStorage.set(next);
86
- };
87
- const shouldReduceMotion = react.useReducedMotion();
88
- const resizeTransition = shouldReduceMotion || isApplyingStoredPreference ? { duration: 0 } : SPRING;
89
- // While the rail is between widths its labels keep their width and get wiped by the row's edge rather than re-truncating
90
- // every frame. Tracked from the resolved state, so a controlled toggle counts too, and cleared when the width settles.
91
- const [isResizing, setIsResizing] = React.useState(false);
92
- const [settledCollapsed, setSettledCollapsed] = React.useState(isCollapsed);
93
- if (settledCollapsed !== isCollapsed) {
94
- setSettledCollapsed(isCollapsed);
95
- setIsResizing(true);
96
- }
97
- // Dual-tier reveal: the secondary panel is shown whenever the
98
- // pointer is over — or focus is within — the sidebar, and it always lists the
99
- // children of `currentItem`. `currentItem` is seeded from the active route and
100
- // switched by clicking (or keyboard-activating) a primary item, which also
101
- // navigates. Only `currentItem` is highlighted, so exactly one item is ever active.
102
67
  const sections = [...items, ...footerItems];
103
68
  // One resolved href (the most specific match) so nested hrefs never yield two current pages.
104
69
  const activeHref = nav_utils.findActiveHref(sections, activeUrl);
105
- const activeItem = nav_utils.findActiveItem(sections, activeUrl);
106
- const activeLabel = activeItem?.label;
107
- // Track the current section by its (unique) label rather than the object, so it
108
- // survives the consumer passing a fresh `items` array and never collides on href.
109
- const [currentLabel, setCurrentLabel] = React.useState(activeLabel);
110
- // Keep the selected section in sync with the active route when it changes externally
111
- // (browser navigation, a controlled `activeUrl`, or asynchronously-loaded items).
112
- React.useEffect(() => {
113
- if (activeLabel !== undefined)
114
- setCurrentLabel(activeLabel);
115
- }, [activeLabel]);
116
- const currentItem = sections.find((item) => item.label === currentLabel);
117
- const [isHovering, setIsHovering] = React.useState(false);
118
- const [isFocusWithin, setIsFocusWithin] = React.useState(false);
119
- // The account menu popover is portaled outside the sidebar, so hovering it fires pointerleave and would flap the panel open/closed.
120
- const [isAccountMenuOpen, setIsAccountMenuOpen] = React.useState(false);
121
- const isSecondarySidebarVisible = (isHovering || isFocusWithin) && !isAccountMenuOpen && Boolean(currentItem?.items?.length);
70
+ const { currentLabel, setCurrentLabel, currentItem, isSecondarySidebarVisible, setIsHovering, setIsAccountMenuOpen, handleContainerFocus, handleContainerBlur, handleContainerPointerMove, revealSection, revealFromKeyboard, } = useDualTierReveal.useDualTierReveal({ activeLabel: nav_utils.findActiveItem(sections, activeUrl)?.label, sections });
122
71
  const panelId = React.useId();
123
72
  // Ties the built-in mobile toggle to the drawer it opens via `aria-controls`.
124
73
  const mobileMenuId = React.useId();
125
- // Only *keyboard* focus holds the panel open. Focus parked on a just-clicked link
126
- // (pointer modality) must not — otherwise the panel lingers after a mouse click even
127
- // once the pointer leaves. Gating on `:focus-visible` keeps the mouse behaviour
128
- // identical to Untitled UI (closes on pointer-leave) while preserving keyboard reach.
129
- const handleContainerFocus = (event) => {
130
- setIsFocusWithin(event.target.matches(':focus-visible'));
131
- };
132
- const handleContainerBlur = (event) => {
133
- if (!event.currentTarget.contains(event.relatedTarget))
134
- setIsFocusWithin(false);
135
- };
136
- // `pointerenter` never fires when the pointer is already inside as the sidebar mounts (it mounts
137
- // late, after permissions/app data load), so the first move inside counts as entering too.
138
- // Portaled children (account menu, tooltips) bubble through React but sit outside in the DOM.
139
- const handleContainerPointerMove = (event) => {
140
- if (!isHovering && event.currentTarget.contains(event.target))
141
- setIsHovering(true);
142
- };
143
74
  const { panelRef, handleTriggerKeyDown, handlePanelKeyDown } = useDualTierKeyboard.useDualTierKeyboard({
144
75
  isPanelVisible: isSecondarySidebarVisible,
145
76
  currentLabel,
146
77
  onSelectSection: setCurrentLabel,
147
- onReveal: () => setIsFocusWithin(true),
78
+ onReveal: revealFromKeyboard,
148
79
  });
149
80
  const renderPrimaryItems = (list) => list.map((item) => {
150
81
  const hasChildren = Boolean(item.items?.length);
@@ -160,12 +91,7 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
160
91
  'aria-controls': isOpen ? panelId : undefined,
161
92
  };
162
93
  const selectSection = () => {
163
- setCurrentLabel(item.label);
164
- // A click must reveal the panel even when no `pointerenter` preceded it (see the wrapper's
165
- // pointermove). Keyboard activation is already covered by focus-within and must not latch
166
- // the hover flag, which only `pointerleave` clears.
167
- if (hasChildren && !isFocusWithin)
168
- setIsHovering(true);
94
+ revealSection(item.label, hasChildren);
169
95
  if (!hasChildren && item.href !== undefined)
170
96
  reportNavigation(item.href);
171
97
  };
@@ -178,10 +104,9 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
178
104
  // initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
179
105
  , {
180
106
  // initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
181
- initial: false, animate: { width: isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, transition: resizeTransition, onAnimationComplete: () => {
182
- setIsResizing(false);
183
- setIsApplyingStoredPreference(false);
184
- }, className: cx.cx('flex h-full max-h-full flex-col justify-between overflow-x-hidden overflow-y-auto bg-secondary', !hideBorder && 'border-r border-secondary'), children: [jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsxs("div", { className: "relative flex h-18 items-center px-5", children: [jsxRuntime.jsx("div", { inert: isCollapsed, className: cx.cx('flex transition-opacity motion-reduce:transition-none', isCollapsed ? 'opacity-0 duration-150' : 'delay-150 duration-150'), children: jsxRuntime.jsx(LogoLink.LogoLink, { href: homeHref, size: "md", onClick: () => reportNavigation(homeHref), "data-testid": testIdUtils.joinTestId(rootTestId, 'logo') }) }), jsxRuntime.jsx("div", { className: cx.cx('absolute top-5 transition-[right] duration-300 ease-out motion-reduce:transition-none', isCollapsed ? 'right-4.5' : 'right-4'), children: jsxRuntime.jsx(UtilityButton.ButtonUtility, { size: "sm", color: "tertiary", tooltip: isCollapsed ? 'Expand' : 'Collapse', "aria-label": isCollapsed ? 'Expand navigation' : 'Collapse navigation', icon: isCollapsed ? uiIcons.ChevronRightDouble : uiIcons.ChevronLeftDouble, "data-testid": testIdUtils.joinTestId(rootTestId, isCollapsed ? 'expand' : 'collapse'), onClick: () => setCollapsed(!isCollapsed) }) })] }), jsxRuntime.jsx("nav", { "aria-label": "Main", children: jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5 px-4 pt-1", children: renderPrimaryItems(items) }) })] }), jsxRuntime.jsxs("div", { className: "mt-auto flex flex-col gap-3 px-4 py-4", children: [footerItems.length > 0 && (jsxRuntime.jsx("nav", { "aria-label": "Footer", children: jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5", children: renderPrimaryItems(footerItems) }) })), account && (jsxRuntime.jsx(NavAccountCard.NavAccountCard, { account: account.account, menuItems: account.menuItems, bottomMenuItems: account.bottomMenuItems, collapsed: isCollapsed, resizing: isResizing, onOpenChange: setIsAccountMenuOpen, "data-testid": account['data-testid'] }))] })] }));
107
+ initial: false, animate: { width: isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, transition: resizeTransition, onAnimationComplete: onResizeComplete, className: cx.cx('flex h-full max-h-full flex-col justify-between overflow-x-hidden overflow-y-auto bg-secondary', !hideBorder && 'border-r border-secondary',
108
+ // Every fade and slide in the rail is a CSS transition; the stored preference must land without any of them.
109
+ isApplyingStoredPreference && '**:transition-none!'), children: [jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsxs("div", { className: "relative flex h-18 items-center px-5", children: [jsxRuntime.jsx("div", { inert: isCollapsed, className: cx.cx('flex transition-opacity motion-reduce:transition-none', isCollapsed ? 'opacity-0 duration-150' : 'delay-150 duration-150'), children: jsxRuntime.jsx(LogoLink.LogoLink, { href: homeHref, size: "md", onClick: () => reportNavigation(homeHref), "data-testid": testIdUtils.joinTestId(rootTestId, 'logo') }) }), jsxRuntime.jsx("div", { className: cx.cx('absolute top-5 transition-[right] duration-300 ease-out motion-reduce:transition-none', isCollapsed ? 'right-4.5' : 'right-4'), children: jsxRuntime.jsx(UtilityButton.ButtonUtility, { size: "sm", color: "tertiary", tooltip: isCollapsed ? 'Expand' : 'Collapse', "aria-label": isCollapsed ? 'Expand navigation' : 'Collapse navigation', icon: isCollapsed ? uiIcons.ChevronRightDouble : uiIcons.ChevronLeftDouble, "data-testid": testIdUtils.joinTestId(rootTestId, isCollapsed ? 'expand' : 'collapse'), onClick: () => setCollapsed(!isCollapsed) }) })] }), jsxRuntime.jsx("nav", { "aria-label": "Main", children: jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5 px-4 pt-1", children: renderPrimaryItems(items) }) })] }), jsxRuntime.jsxs("div", { className: "mt-auto flex flex-col gap-3 px-4 py-4", children: [footerItems.length > 0 && (jsxRuntime.jsx("nav", { "aria-label": "Footer", children: jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5", children: renderPrimaryItems(footerItems) }) })), account && (jsxRuntime.jsx(NavAccountCard.NavAccountCard, { account: account.account, menuItems: account.menuItems, bottomMenuItems: account.bottomMenuItems, collapsed: isCollapsed, resizing: isResizing, onOpenChange: setIsAccountMenuOpen, "data-testid": account['data-testid'] }))] })] }));
185
110
  const handleMobileNavigate = (href) => {
186
111
  const destination = hrefUtils.safeHref(href);
187
112
  if (destination === undefined)
@@ -195,7 +120,7 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
195
120
  onClick?.();
196
121
  };
197
122
  const withMobileMenuClose = (menuItems) => menuItems?.map((item) => ({ ...item, onClick: closeMobileMenuThen(item.onClick) }));
198
- const secondarySidebar = currentItem && (jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: isSecondarySidebarVisible && (jsxRuntime.jsx(react.motion.div, { ref: panelRef, id: panelId, onKeyDown: handlePanelKeyDown, role: "group", "aria-label": `${currentItem.label} pages`, initial: { width: 0, borderColor: 'var(--color-border-secondary)' }, animate: { width: SECONDARY_SIDEBAR_WIDTH, borderColor: 'var(--color-border-secondary)' }, exit: { width: 0, borderColor: 'rgba(0,0,0,0)', transition: { borderColor: { type: 'tween', delay: 0.05 } } }, transition: SPRING, className: cx.cx('relative h-full overflow-x-hidden overflow-y-auto bg-primary', !(hideBorder || hideRightBorder) && 'box-content border-r border-secondary'), children: jsxRuntime.jsxs("div", { style: { width: SECONDARY_SIDEBAR_WIDTH }, className: "flex h-full flex-col px-4 pt-6", children: [jsxRuntime.jsx("h3", { className: "px-2 text-sm font-semibold text-tertiary", children: currentItem.label }), jsxRuntime.jsx("ul", { className: "py-2", children: currentItem.items?.map((item) => (jsxRuntime.jsx("li", { className: "py-px", children: jsxRuntime.jsx(NavItem.NavItemBase, { type: "link", current: item.href === activeHref, href: item.href, icon: item.icon, badge: item.badge, onClick: () => reportNavigation(item.href), "data-testid": item['data-testid'] ?? testIdUtils.joinTestId(navItemTestId(currentItem), `sub-item-${item.id ?? testIdUtils.slugifyTestId(item.label)}`), children: item.label }) }, item.label))) }), currentItem.toggle && (jsxRuntime.jsx(NavSectionToggle.NavSectionToggleRow, { toggle: currentItem.toggle, testIdPrefix: navItemTestId(currentItem), className: "mt-auto mb-4" }))] }) })) }));
123
+ const secondarySidebar = currentItem && (jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: isSecondarySidebarVisible && (jsxRuntime.jsx(react.motion.div, { ref: panelRef, id: panelId, onKeyDown: handlePanelKeyDown, role: "group", "aria-label": `${currentItem.label} pages`, initial: { width: 0, borderColor: 'var(--color-border-secondary)' }, animate: { width: SECONDARY_SIDEBAR_WIDTH, borderColor: 'var(--color-border-secondary)' }, exit: { width: 0, borderColor: 'rgba(0,0,0,0)', transition: { borderColor: { type: 'tween', delay: 0.05 } } }, transition: useSidebarCollapse.SIDEBAR_SPRING, className: cx.cx('relative h-full overflow-x-hidden overflow-y-auto bg-primary', !(hideBorder || hideRightBorder) && 'box-content border-r border-secondary'), children: jsxRuntime.jsxs("div", { style: { width: SECONDARY_SIDEBAR_WIDTH }, className: "flex h-full flex-col px-4 pt-6", children: [jsxRuntime.jsx("h3", { className: "px-2 text-sm font-semibold text-tertiary", children: currentItem.label }), jsxRuntime.jsx("ul", { className: "py-2", children: currentItem.items?.map((item) => (jsxRuntime.jsx("li", { className: "py-px", children: jsxRuntime.jsx(NavItem.NavItemBase, { type: "link", current: item.href === activeHref, href: item.href, icon: item.icon, badge: item.badge, onClick: () => reportNavigation(item.href), "data-testid": item['data-testid'] ?? testIdUtils.joinTestId(navItemTestId(currentItem), `sub-item-${item.id ?? testIdUtils.slugifyTestId(item.label)}`), children: item.label }) }, item.label))) }), currentItem.toggle && (jsxRuntime.jsx(NavSectionToggle.NavSectionToggleRow, { toggle: currentItem.toggle, testIdPrefix: navItemTestId(currentItem), className: "mt-auto mb-4" }))] }) })) }));
199
124
  return (jsxRuntime.jsxs(testIdUtils.TestIdProvider, { value: rootTestId, children: [jsxRuntime.jsxs("div", { className: "z-40 hidden lg:fixed lg:inset-y-0 lg:left-0 lg:flex", onPointerEnter: () => setIsHovering(true), onPointerMove: handleContainerPointerMove, onPointerLeave: () => setIsHovering(false), onFocus: handleContainerFocus, onBlur: handleContainerBlur, children: [mainSidebar, secondarySidebar] }), jsxRuntime.jsx(react.motion.div, { initial: false, animate: { paddingLeft: isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, transition: resizeTransition, className: "invisible hidden lg:sticky lg:top-0 lg:bottom-0 lg:left-0 lg:block" }), showMobileHeader && (jsxRuntime.jsx(MobileHeader.MobileNavigationHeader, { isOpen: isMobileMenuOpen, onOpenChange: setMobileMenuOpen, controls: mobileMenuId, homeHref: homeHref, onHomePress: () => reportNavigation(homeHref), logoTestId: testIdUtils.joinTestId(rootTestId, 'mobile-logo'), "data-testid": testIdUtils.joinTestId(rootTestId, 'mobile-toggle') })), jsxRuntime.jsx(MobileHeader.MobileNavigationDrawer, { id: mobileMenuId, isOpen: isMobileMenuOpen, onOpenChange: setMobileMenuOpen, "data-testid": testIdUtils.joinTestId(rootTestId, 'mobile-close'), children: jsxRuntime.jsxs("aside", { className: "group flex h-full max-h-full w-full max-w-full flex-col justify-between overflow-y-auto bg-secondary pt-4", children: [jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-7 px-4", children: [jsxRuntime.jsx(LogoLink.LogoLink, { href: homeHref, size: "sm", onClick: () => handleMobileNavigate(homeHref), "data-testid": testIdUtils.joinTestId(rootTestId, 'drawer-logo') }), search && (jsxRuntime.jsx(SearchTrigger.SearchTrigger, { size: "md", placeholder: search.placeholder ?? 'Search', label: search.label ?? 'Search', onPress: closeMobileMenuThen(search.onPress), className: "w-full", "data-testid": search['data-testid'] ?? testIdUtils.joinTestId(rootTestId, 'search') }))] }), jsxRuntime.jsx("nav", { "aria-label": "Main", children: jsxRuntime.jsx(NavList.NavList, { activeUrl: activeUrl, items: items, onNavigate: handleMobileNavigate, testIdPrefix: rootTestId }) }), jsxRuntime.jsxs("div", { className: "mt-auto flex flex-col gap-3 p-4", children: [footerItems.length > 0 && (jsxRuntime.jsx("nav", { "aria-label": "Footer", children: jsxRuntime.jsx(NavList.NavList, { activeUrl: activeUrl, items: footerItems, onNavigate: handleMobileNavigate, testIdPrefix: rootTestId, className: "px-0 pt-0" }) })), account && (jsxRuntime.jsx(NavAccountCard.NavAccountCard, { account: account.account, menuItems: withMobileMenuClose(account.menuItems), bottomMenuItems: withMobileMenuClose(account.bottomMenuItems), "data-testid": account['data-testid'] }))] })] }) })] }));
200
125
  };
201
126
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/SidebarNavigation/index.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","safeHref","joinTestId","slugifyTestId","useState","useBreakpoints","useEffect","useLayoutEffect","sidebarCollapsedStorage","useReducedMotion","findActiveHref","findActiveItem","useId","useDualTierKeyboard","_jsx","Tooltip","NavItemBase","_jsxs","motion","cx","LogoLink","ButtonUtility","ChevronRightDouble","ChevronLeftDouble","NavAccountCard","AnimatePresence","NavSectionToggleRow","TestIdProvider","MobileNavigationHeader","MobileNavigationDrawer","SearchTrigger","NavList"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/SidebarNavigation/index.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","safeHref","joinTestId","slugifyTestId","useSidebarCollapse","useState","useBreakpoints","useEffect","findActiveHref","useDualTierReveal","findActiveItem","useId","useDualTierKeyboard","_jsx","Tooltip","NavItemBase","_jsxs","motion","cx","LogoLink","ButtonUtility","ChevronRightDouble","ChevronLeftDouble","NavAccountCard","AnimatePresence","SIDEBAR_SPRING","NavSectionToggleRow","TestIdProvider","MobileNavigationHeader","MobileNavigationDrawer","SearchTrigger","NavList"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,MAAM,eAAe,GAAG,EAAE;AAC1B,MAAM,cAAc,GAAG,GAAG;AAC1B,MAAM,uBAAuB,GAAG,GAAG;AAEnC;;;;;;AAMG;AACI,MAAM,iBAAiB,GAAG,CAAC,EAChC,SAAS,EACT,KAAK,EACL,WAAW,GAAG,EAAE,EAChB,OAAO,EACP,UAAU,EACV,SAAS,EACT,gBAAgB,GAAG,KAAK,EACxB,iBAAiB,EACjB,gBAAgB,GAAG,IAAI,EACvB,UAAU,EACV,eAAe,EACf,gBAAgB,GAAG,IAAI,EACvB,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,QAAQ,GAAG,GAAG,EACd,aAAa,EAAE,UAAU,GACF,KAAI;AAC3B,IAAA,MAAM,UAAU,GAAGA,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;;AAE3H,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAY,KAAI;AACxC,QAAA,MAAM,WAAW,GAAGC,kBAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,WAAW,KAAK,SAAS;AAAE,YAAA,UAAU,GAAG,WAAW,CAAC;AAC1D,IAAA,CAAC;AACD,IAAA,MAAM,aAAa,GAAG,CAAC,IAAoB,KAAK,IAAI,CAAC,aAAa,CAAC,IAAIC,sBAAU,CAAC,UAAU,EAAE,CAAA,SAAA,EAAY,IAAI,CAAC,EAAE,IAAIC,yBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAE,CAAC;AAEjJ,IAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAGC,qCAAkB,CAAC;QACnI,SAAS;QACT,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;AACjB,KAAA,CAAC;;AAGF,IAAA,MAAM,sBAAsB,GAAG,cAAc,KAAK,SAAS;IAC3D,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;IAC3E,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,cAAc,GAAG,sBAAsB;AACzF,IAAA,MAAM,iBAAiB,GAAG,CAAC,IAAa,KAAI;AAC1C,QAAA,sBAAsB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,sBAAsB;YAAE,yBAAyB,CAAC,IAAI,CAAC;AAC9D,IAAA,CAAC;;AAGD,IAAA,MAAM,SAAS,GAAGC,6BAAc,CAAC,IAAI,CAAC;;IAEtCC,eAAS,CAAC,MAAK;QACb,IAAI,SAAS,IAAI,gBAAgB;YAAE,iBAAiB,CAAC,KAAK,CAAC;AAC7D,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,WAAW,CAAC;;IAE3C,MAAM,UAAU,GAAGC,wBAAc,CAAC,QAAQ,EAAE,SAAS,CAAC;AACtD,IAAA,MAAM,EACJ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,yBAAyB,EACzB,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,GACnB,GAAGC,mCAAiB,CAAC,EAAE,WAAW,EAAEC,wBAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAE5F,IAAA,MAAM,OAAO,GAAGC,WAAK,EAAE;;AAEvB,IAAA,MAAM,YAAY,GAAGA,WAAK,EAAE;IAE5B,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAGC,uCAAmB,CAAC;AACjF,QAAA,cAAc,EAAE,yBAAyB;QACzC,YAAY;AACZ,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,QAAQ,EAAE,kBAAkB;AAC7B,KAAA,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,CAAC,IAAsB,KAChD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;QAChB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;;;;AAI/C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;AACzE,QAAA,MAAM,UAAU,GAAG,YAAY,KAAK,IAAI,CAAC,KAAK;AAC9C,QAAA,MAAM,MAAM,GAAG,WAAW,IAAI,UAAU,IAAI,yBAAyB;;AAErE,QAAA,MAAM,UAAU,GAAG;YACjB,eAAe,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;YACjD,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;SAC9C;QACD,MAAM,aAAa,GAAG,MAAK;AACzB,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;AACtC,YAAA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;AAAE,gBAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1E,QAAA,CAAC;AACD,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC;;;QAItC,QACEC,cAAA,CAAA,IAAA,EAAA,EAAqB,SAAS,EAAC,OAAO,EAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,EAAA,QAAA,EAC7FA,cAAA,CAACC,eAAO,EAAA,EAAC,UAAU,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAC,OAAO,EAAA,QAAA,EACrED,cAAA,CAACE,mBAAW,EAAA,EACV,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,MAAM,EACzC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,EACzC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,aAAa,EAAA,aAAA,EACT,UAAU,EAAA,GACnB,UAAU,EAAA,QAAA,EAEb,IAAI,CAAC,KAAK,EAAA,CACC,EAAA,CACN,EAAA,EAlBH,IAAI,CAAC,KAAK,CAmBd;AAET,IAAA,CAAC,CAAC;AAEJ,IAAA,MAAM,WAAW,IACfC,eAAA,CAACC,YAAM,CAAC;;;;AAEN,QAAA,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,cAAc,EAAE,EAClE,UAAU,EAAE,gBAAgB,EAC5B,mBAAmB,EAAE,gBAAgB,EACrC,SAAS,EAAEC,KAAE,CACX,gGAAgG,EAChG,CAAC,UAAU,IAAI,2BAA2B;;QAE1C,0BAA0B,IAAI,qBAAqB,CACpD,EAAA,QAAA,EAAA,CAEDF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,CAE5BA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAA,CAEnDH,cAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,WAAW,EAClB,SAAS,EAAEK,KAAE,CAAC,uDAAuD,EAAE,WAAW,GAAG,wBAAwB,GAAG,wBAAwB,CAAC,EAAA,QAAA,EAEzIL,cAAA,CAACM,iBAAQ,EAAA,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAA,aAAA,EAAejB,sBAAU,CAAC,UAAU,EAAE,MAAM,CAAC,EAAA,CAAI,EAAA,CAC1H,EACNW,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEK,KAAE,CACX,uFAAuF,EACvF,WAAW,GAAG,WAAW,GAAG,SAAS,CACtC,EAAA,QAAA,EAEDL,cAAA,CAACO,2BAAa,EAAA,EACZ,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,EAAA,YAAA,EAChC,WAAW,GAAG,mBAAmB,GAAG,qBAAqB,EACrE,IAAI,EAAE,WAAW,GAAGC,0BAAkB,GAAGC,yBAAiB,EAAA,aAAA,EAC7CpB,sBAAU,CAAC,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxE,OAAO,EAAE,MAAM,YAAY,CAAC,CAAC,WAAW,CAAC,EAAA,CACzC,EAAA,CACE,CAAA,EAAA,CACF,EAENW,cAAA,CAAA,KAAA,EAAA,EAAA,YAAA,EAAgB,MAAM,EAAA,QAAA,EACpBA,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,iCAAiC,EAAA,QAAA,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAA,CAAM,EAAA,CAC5E,CAAA,EAAA,CACF,EAENG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uCAAuC,EAAA,QAAA,EAAA,CACnD,WAAW,CAAC,MAAM,GAAG,CAAC,KACrBH,sCAAgB,QAAQ,EAAA,QAAA,EACtBA,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAA,CAAM,EAAA,CACxE,CACP,EAEA,OAAO,KACNA,cAAA,CAACU,6BAAc,EAAA,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,oBAAoB,EAAA,aAAA,EACrB,OAAO,CAAC,aAAa,CAAC,EAAA,CACnC,CACH,CAAA,EAAA,CACG,CAAA,EAAA,CACO,CAChB;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,IAAY,KAAI;AAC5C,QAAA,MAAM,WAAW,GAAGtB,kBAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,WAAW,KAAK,SAAS;YAAE;QAC/B,iBAAiB,CAAC,KAAK,CAAC;AACxB,QAAA,UAAU,GAAG,WAAW,CAAC;AAC3B,IAAA,CAAC;;IAGD,MAAM,mBAAmB,GAAG,CAAC,OAAoB,KAAK,MAAK;QACzD,iBAAiB,CAAC,KAAK,CAAC;QACxB,OAAO,IAAI;AACb,IAAA,CAAC;AACD,IAAA,MAAM,mBAAmB,GAAG,CAAC,SAAuC,KAClE,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAErF,IAAA,MAAM,gBAAgB,GAAG,WAAW,KAClCY,cAAA,CAACW,qBAAe,EAAA,EAAC,OAAO,EAAE,KAAK,EAAA,QAAA,EAC5B,yBAAyB,KACxBX,cAAA,CAACI,YAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAC,OAAO,EAAA,YAAA,EACA,CAAA,EAAG,WAAW,CAAC,KAAK,CAAA,MAAA,CAAQ,EACxC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,EACnE,OAAO,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,+BAA+B,EAAE,EACzF,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAC7G,UAAU,EAAEQ,iCAAc,EAC1B,SAAS,EAAEP,KAAE,CACX,8DAA8D,EAC9D,EAAE,UAAU,IAAI,eAAe,CAAC,IAAI,uCAAuC,CAC5E,EAAA,QAAA,EAEDF,eAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAA,CACxFH,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAE,WAAW,CAAC,KAAK,EAAA,CAAM,EACjFA,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,MAAM,EAAA,QAAA,EACjB,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,MAC3BA,cAAA,CAAA,IAAA,EAAA,EAAqB,SAAS,EAAC,OAAO,EAAA,QAAA,EACpCA,cAAA,CAACE,mBAAW,EAAA,EACV,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,EACjC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAC7B,IAAI,CAAC,aAAa,CAAC,IAAIb,sBAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAA,SAAA,EAAY,IAAI,CAAC,EAAE,IAAIC,yBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAE,CAAC,YAE7H,IAAI,CAAC,KAAK,EAAA,CACC,EAAA,EAXP,IAAI,CAAC,KAAK,CAYd,CACN,CAAC,EAAA,CACC,EAGJ,WAAW,CAAC,MAAM,KACjBU,cAAA,CAACa,oCAAmB,EAAA,EAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,SAAS,EAAC,cAAc,EAAA,CAAG,CACvH,CAAA,EAAA,CACG,EAAA,CACK,CACd,EAAA,CACe,CACnB;AAED,IAAA,QACEV,eAAA,CAACW,0BAAc,IAAC,KAAK,EAAE,UAAU,EAAA,QAAA,EAAA,CAK/BX,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,qDAAqD,EAC/D,cAAc,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EACzC,aAAa,EAAE,0BAA0B,EACzC,cAAc,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAC1C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,mBAAmB,aAE1B,WAAW,EACX,gBAAgB,CAAA,EAAA,CACb,EAKNH,eAACI,YAAM,CAAC,GAAG,EAAA,EACT,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,eAAe,GAAG,cAAc,EAAE,EACxE,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAC,oEAAoE,EAAA,CAC9E,EAID,gBAAgB,KACfJ,cAAA,CAACe,mCAAsB,IACrB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,iBAAiB,EAC/B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAC7C,UAAU,EAAE1B,sBAAU,CAAC,UAAU,EAAE,aAAa,CAAC,EAAA,aAAA,EACpCA,sBAAU,CAAC,UAAU,EAAE,eAAe,CAAC,EAAA,CACpD,CACH,EACDW,eAACgB,mCAAsB,EAAA,EACrB,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,iBAAiB,iBAClB3B,sBAAU,CAAC,UAAU,EAAE,cAAc,CAAC,EAAA,QAAA,EAEnDc,2BAAO,SAAS,EAAC,2GAA2G,EAAA,QAAA,EAAA,CAC1HA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sCAAsC,aACnDH,cAAA,CAACM,iBAAQ,IAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,MAAM,oBAAoB,CAAC,QAAQ,CAAC,EAAA,aAAA,EAAejB,sBAAU,CAAC,UAAU,EAAE,aAAa,CAAC,GAAI,EAExI,MAAM,KACLW,cAAA,CAACiB,2BAAa,EAAA,EACZ,IAAI,EAAC,IAAI,EACT,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,QAAQ,EAC3C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,QAAQ,EAC/B,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,EAC5C,SAAS,EAAC,QAAQ,EAAA,aAAA,EACL,MAAM,CAAC,aAAa,CAAC,IAAI5B,sBAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAA,CACtE,CACH,CAAA,EAAA,CACG,EAENW,sCAAgB,MAAM,EAAA,QAAA,EACpBA,eAACkB,eAAO,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAA,CAAI,EAAA,CACvG,EAENf,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA,QAAA,EAAA,CAE7C,WAAW,CAAC,MAAM,GAAG,CAAC,KACrBH,cAAA,CAAA,KAAA,EAAA,EAAA,YAAA,EAAgB,QAAQ,EAAA,QAAA,EACtBA,cAAA,CAACkB,eAAO,EAAA,EACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,oBAAoB,EAChC,YAAY,EAAE,UAAU,EACxB,SAAS,EAAC,WAAW,EAAA,CACrB,EAAA,CACE,CACP,EAEA,OAAO,KACNlB,eAACU,6BAAc,EAAA,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,EACjD,eAAe,EAAE,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAA,aAAA,EAChD,OAAO,CAAC,aAAa,CAAC,GACnC,CACH,CAAA,EAAA,CACG,IACA,EAAA,CACe,CAAA,EAAA,CACV;AAErB;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/SidebarNavigation/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,EAA4B,MAAM,OAAO,CAAC;AAM1D,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAKlF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAChG,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,KAAK,cAAc,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,uCAAuC;IACvC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,sHAAsH;IACtH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,8GAA8G;IAC9G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4FAA4F;IAC5F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,+PAkB/B,sBAAsB,gCA2YxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/SidebarNavigation/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAOlF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAChG,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,KAAK,cAAc,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,uCAAuC;IACvC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,sHAAsH;IACtH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,8GAA8G;IAC9G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4FAA4F;IAC5F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,+PAkB/B,sBAAsB,gCA4UxB,CAAC"}
@@ -5,10 +5,9 @@ import { ButtonUtility } from '@flipdish/ui-library/components/atoms/UtilityButt
5
5
  import { useBreakpoints } from '@flipdish/ui-library/hooks/useBreakpoints';
6
6
  import { cx } from '@flipdish/ui-library/utilities/cx';
7
7
  import { safeHref } from '@flipdish/ui-library/utilities/hrefUtils';
8
- import { sidebarCollapsedStorage } from '@flipdish/ui-library/utilities/localStorageUtils';
9
8
  import { useResolvedTestId, joinTestId, slugifyTestId, TestIdProvider } from '@flipdish/ui-library/utilities/testIdUtils';
10
- import { useReducedMotion, motion, AnimatePresence } from 'motion/react';
11
- import { useState, useEffect, useLayoutEffect, useId } from 'react';
9
+ import { motion, AnimatePresence } from 'motion/react';
10
+ import { useState, useEffect, useId } from 'react';
12
11
  import { findActiveHref, findActiveItem } from '../../__internal__/navigation/nav.utils.js';
13
12
  import { SearchTrigger } from '../ApplicationHeader/components/SearchTrigger.js';
14
13
  import { LogoLink } from './components/LogoLink.js';
@@ -19,13 +18,13 @@ import { NavItemBase } from './components/NavItem.js';
19
18
  import { NavList } from './components/NavList.js';
20
19
  import { NavSectionToggleRow } from './components/NavSectionToggle.js';
21
20
  import { useDualTierKeyboard } from './hooks/useDualTierKeyboard.js';
21
+ import { useDualTierReveal } from './hooks/useDualTierReveal.js';
22
+ import { useSidebarCollapse, SIDEBAR_SPRING } from './hooks/useSidebarCollapse.js';
22
23
  export { SidebarMenuButton } from './components/SidebarMenuButton.js';
23
24
 
24
25
  const COLLAPSED_WIDTH = 68;
25
26
  const EXPANDED_WIDTH = 280;
26
27
  const SECONDARY_SIDEBAR_WIDTH = 256;
27
- // One spring for the rail, the page beside it and the secondary panel, so everything that resizes moves together.
28
- const SPRING = { type: 'spring', damping: 26, stiffness: 220, bounce: 0 };
29
28
  /**
30
29
  * The primary app-shell navigation rail: logo, destinations, footer links and an account card,
31
30
  * collapsible to an icon-only strip, with a hover-revealed panel for the current section's
@@ -42,9 +41,12 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
42
41
  onNavigate?.(destination);
43
42
  };
44
43
  const navItemTestId = (item) => item['data-testid'] ?? joinTestId(rootTestId, `nav-item-${item.id ?? slugifyTestId(item.label)}`);
45
- const isControlled = collapsed !== undefined;
46
- const [internalCollapsed, setInternalCollapsed] = useState(defaultCollapsed);
47
- const isCollapsed = isControlled ? collapsed : internalCollapsed;
44
+ const { isCollapsed, setCollapsed, isResizing, isApplyingStoredPreference, resizeTransition, onResizeComplete } = useSidebarCollapse({
45
+ collapsed,
46
+ defaultCollapsed,
47
+ onCollapsedChange,
48
+ persistCollapsed,
49
+ });
48
50
  // Mobile drawer open-state: controlled when `mobileMenuOpen` is provided, else internal.
49
51
  const isMobileMenuControlled = mobileMenuOpen !== undefined;
50
52
  const [internalMobileMenuOpen, setInternalMobileMenuOpen] = useState(false);
@@ -61,89 +63,18 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
61
63
  if (isDesktop && isMobileMenuOpen)
62
64
  setMobileMenuOpen(false);
63
65
  }, [isDesktop]);
64
- // The stored preference is applied after hydration (reading it during render would mismatch the server markup), so
65
- // it must not animate: a returning user would watch the rail and the page spring closed on every load. The flag makes
66
- // that one change instant; a layout effect commits it before the first paint, so neither the default state nor the
67
- // CSS fades ever show.
68
- const [isApplyingStoredPreference, setIsApplyingStoredPreference] = useState(false);
69
- useLayoutEffect(() => {
70
- if (isControlled || !persistCollapsed)
71
- return;
72
- const stored = sidebarCollapsedStorage.get();
73
- if (stored === null || stored === defaultCollapsed)
74
- return;
75
- setIsApplyingStoredPreference(true);
76
- setInternalCollapsed(stored);
77
- }, [isControlled, persistCollapsed, defaultCollapsed]);
78
- const setCollapsed = (next) => {
79
- onCollapsedChange?.(next);
80
- if (isControlled)
81
- return;
82
- setInternalCollapsed(next);
83
- if (persistCollapsed)
84
- sidebarCollapsedStorage.set(next);
85
- };
86
- const shouldReduceMotion = useReducedMotion();
87
- const resizeTransition = shouldReduceMotion || isApplyingStoredPreference ? { duration: 0 } : SPRING;
88
- // While the rail is between widths its labels keep their width and get wiped by the row's edge rather than re-truncating
89
- // every frame. Tracked from the resolved state, so a controlled toggle counts too, and cleared when the width settles.
90
- const [isResizing, setIsResizing] = useState(false);
91
- const [settledCollapsed, setSettledCollapsed] = useState(isCollapsed);
92
- if (settledCollapsed !== isCollapsed) {
93
- setSettledCollapsed(isCollapsed);
94
- setIsResizing(true);
95
- }
96
- // Dual-tier reveal: the secondary panel is shown whenever the
97
- // pointer is over — or focus is within — the sidebar, and it always lists the
98
- // children of `currentItem`. `currentItem` is seeded from the active route and
99
- // switched by clicking (or keyboard-activating) a primary item, which also
100
- // navigates. Only `currentItem` is highlighted, so exactly one item is ever active.
101
66
  const sections = [...items, ...footerItems];
102
67
  // One resolved href (the most specific match) so nested hrefs never yield two current pages.
103
68
  const activeHref = findActiveHref(sections, activeUrl);
104
- const activeItem = findActiveItem(sections, activeUrl);
105
- const activeLabel = activeItem?.label;
106
- // Track the current section by its (unique) label rather than the object, so it
107
- // survives the consumer passing a fresh `items` array and never collides on href.
108
- const [currentLabel, setCurrentLabel] = useState(activeLabel);
109
- // Keep the selected section in sync with the active route when it changes externally
110
- // (browser navigation, a controlled `activeUrl`, or asynchronously-loaded items).
111
- useEffect(() => {
112
- if (activeLabel !== undefined)
113
- setCurrentLabel(activeLabel);
114
- }, [activeLabel]);
115
- const currentItem = sections.find((item) => item.label === currentLabel);
116
- const [isHovering, setIsHovering] = useState(false);
117
- const [isFocusWithin, setIsFocusWithin] = useState(false);
118
- // The account menu popover is portaled outside the sidebar, so hovering it fires pointerleave and would flap the panel open/closed.
119
- const [isAccountMenuOpen, setIsAccountMenuOpen] = useState(false);
120
- const isSecondarySidebarVisible = (isHovering || isFocusWithin) && !isAccountMenuOpen && Boolean(currentItem?.items?.length);
69
+ const { currentLabel, setCurrentLabel, currentItem, isSecondarySidebarVisible, setIsHovering, setIsAccountMenuOpen, handleContainerFocus, handleContainerBlur, handleContainerPointerMove, revealSection, revealFromKeyboard, } = useDualTierReveal({ activeLabel: findActiveItem(sections, activeUrl)?.label, sections });
121
70
  const panelId = useId();
122
71
  // Ties the built-in mobile toggle to the drawer it opens via `aria-controls`.
123
72
  const mobileMenuId = useId();
124
- // Only *keyboard* focus holds the panel open. Focus parked on a just-clicked link
125
- // (pointer modality) must not — otherwise the panel lingers after a mouse click even
126
- // once the pointer leaves. Gating on `:focus-visible` keeps the mouse behaviour
127
- // identical to Untitled UI (closes on pointer-leave) while preserving keyboard reach.
128
- const handleContainerFocus = (event) => {
129
- setIsFocusWithin(event.target.matches(':focus-visible'));
130
- };
131
- const handleContainerBlur = (event) => {
132
- if (!event.currentTarget.contains(event.relatedTarget))
133
- setIsFocusWithin(false);
134
- };
135
- // `pointerenter` never fires when the pointer is already inside as the sidebar mounts (it mounts
136
- // late, after permissions/app data load), so the first move inside counts as entering too.
137
- // Portaled children (account menu, tooltips) bubble through React but sit outside in the DOM.
138
- const handleContainerPointerMove = (event) => {
139
- if (!isHovering && event.currentTarget.contains(event.target))
140
- setIsHovering(true);
141
- };
142
73
  const { panelRef, handleTriggerKeyDown, handlePanelKeyDown } = useDualTierKeyboard({
143
74
  isPanelVisible: isSecondarySidebarVisible,
144
75
  currentLabel,
145
76
  onSelectSection: setCurrentLabel,
146
- onReveal: () => setIsFocusWithin(true),
77
+ onReveal: revealFromKeyboard,
147
78
  });
148
79
  const renderPrimaryItems = (list) => list.map((item) => {
149
80
  const hasChildren = Boolean(item.items?.length);
@@ -159,12 +90,7 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
159
90
  'aria-controls': isOpen ? panelId : undefined,
160
91
  };
161
92
  const selectSection = () => {
162
- setCurrentLabel(item.label);
163
- // A click must reveal the panel even when no `pointerenter` preceded it (see the wrapper's
164
- // pointermove). Keyboard activation is already covered by focus-within and must not latch
165
- // the hover flag, which only `pointerleave` clears.
166
- if (hasChildren && !isFocusWithin)
167
- setIsHovering(true);
93
+ revealSection(item.label, hasChildren);
168
94
  if (!hasChildren && item.href !== undefined)
169
95
  reportNavigation(item.href);
170
96
  };
@@ -177,10 +103,9 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
177
103
  // initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
178
104
  , {
179
105
  // initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
180
- initial: false, animate: { width: isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, transition: resizeTransition, onAnimationComplete: () => {
181
- setIsResizing(false);
182
- setIsApplyingStoredPreference(false);
183
- }, className: cx('flex h-full max-h-full flex-col justify-between overflow-x-hidden overflow-y-auto bg-secondary', !hideBorder && 'border-r border-secondary'), children: [jsxs("div", { className: "flex flex-col", children: [jsxs("div", { className: "relative flex h-18 items-center px-5", children: [jsx("div", { inert: isCollapsed, className: cx('flex transition-opacity motion-reduce:transition-none', isCollapsed ? 'opacity-0 duration-150' : 'delay-150 duration-150'), children: jsx(LogoLink, { href: homeHref, size: "md", onClick: () => reportNavigation(homeHref), "data-testid": joinTestId(rootTestId, 'logo') }) }), jsx("div", { className: cx('absolute top-5 transition-[right] duration-300 ease-out motion-reduce:transition-none', isCollapsed ? 'right-4.5' : 'right-4'), children: jsx(ButtonUtility, { size: "sm", color: "tertiary", tooltip: isCollapsed ? 'Expand' : 'Collapse', "aria-label": isCollapsed ? 'Expand navigation' : 'Collapse navigation', icon: isCollapsed ? ChevronRightDouble : ChevronLeftDouble, "data-testid": joinTestId(rootTestId, isCollapsed ? 'expand' : 'collapse'), onClick: () => setCollapsed(!isCollapsed) }) })] }), jsx("nav", { "aria-label": "Main", children: jsx("ul", { className: "flex flex-col gap-0.5 px-4 pt-1", children: renderPrimaryItems(items) }) })] }), jsxs("div", { className: "mt-auto flex flex-col gap-3 px-4 py-4", children: [footerItems.length > 0 && (jsx("nav", { "aria-label": "Footer", children: jsx("ul", { className: "flex flex-col gap-0.5", children: renderPrimaryItems(footerItems) }) })), account && (jsx(NavAccountCard, { account: account.account, menuItems: account.menuItems, bottomMenuItems: account.bottomMenuItems, collapsed: isCollapsed, resizing: isResizing, onOpenChange: setIsAccountMenuOpen, "data-testid": account['data-testid'] }))] })] }));
106
+ initial: false, animate: { width: isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, transition: resizeTransition, onAnimationComplete: onResizeComplete, className: cx('flex h-full max-h-full flex-col justify-between overflow-x-hidden overflow-y-auto bg-secondary', !hideBorder && 'border-r border-secondary',
107
+ // Every fade and slide in the rail is a CSS transition; the stored preference must land without any of them.
108
+ isApplyingStoredPreference && '**:transition-none!'), children: [jsxs("div", { className: "flex flex-col", children: [jsxs("div", { className: "relative flex h-18 items-center px-5", children: [jsx("div", { inert: isCollapsed, className: cx('flex transition-opacity motion-reduce:transition-none', isCollapsed ? 'opacity-0 duration-150' : 'delay-150 duration-150'), children: jsx(LogoLink, { href: homeHref, size: "md", onClick: () => reportNavigation(homeHref), "data-testid": joinTestId(rootTestId, 'logo') }) }), jsx("div", { className: cx('absolute top-5 transition-[right] duration-300 ease-out motion-reduce:transition-none', isCollapsed ? 'right-4.5' : 'right-4'), children: jsx(ButtonUtility, { size: "sm", color: "tertiary", tooltip: isCollapsed ? 'Expand' : 'Collapse', "aria-label": isCollapsed ? 'Expand navigation' : 'Collapse navigation', icon: isCollapsed ? ChevronRightDouble : ChevronLeftDouble, "data-testid": joinTestId(rootTestId, isCollapsed ? 'expand' : 'collapse'), onClick: () => setCollapsed(!isCollapsed) }) })] }), jsx("nav", { "aria-label": "Main", children: jsx("ul", { className: "flex flex-col gap-0.5 px-4 pt-1", children: renderPrimaryItems(items) }) })] }), jsxs("div", { className: "mt-auto flex flex-col gap-3 px-4 py-4", children: [footerItems.length > 0 && (jsx("nav", { "aria-label": "Footer", children: jsx("ul", { className: "flex flex-col gap-0.5", children: renderPrimaryItems(footerItems) }) })), account && (jsx(NavAccountCard, { account: account.account, menuItems: account.menuItems, bottomMenuItems: account.bottomMenuItems, collapsed: isCollapsed, resizing: isResizing, onOpenChange: setIsAccountMenuOpen, "data-testid": account['data-testid'] }))] })] }));
184
109
  const handleMobileNavigate = (href) => {
185
110
  const destination = safeHref(href);
186
111
  if (destination === undefined)
@@ -194,7 +119,7 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
194
119
  onClick?.();
195
120
  };
196
121
  const withMobileMenuClose = (menuItems) => menuItems?.map((item) => ({ ...item, onClick: closeMobileMenuThen(item.onClick) }));
197
- const secondarySidebar = currentItem && (jsx(AnimatePresence, { initial: false, children: isSecondarySidebarVisible && (jsx(motion.div, { ref: panelRef, id: panelId, onKeyDown: handlePanelKeyDown, role: "group", "aria-label": `${currentItem.label} pages`, initial: { width: 0, borderColor: 'var(--color-border-secondary)' }, animate: { width: SECONDARY_SIDEBAR_WIDTH, borderColor: 'var(--color-border-secondary)' }, exit: { width: 0, borderColor: 'rgba(0,0,0,0)', transition: { borderColor: { type: 'tween', delay: 0.05 } } }, transition: SPRING, className: cx('relative h-full overflow-x-hidden overflow-y-auto bg-primary', !(hideBorder || hideRightBorder) && 'box-content border-r border-secondary'), children: jsxs("div", { style: { width: SECONDARY_SIDEBAR_WIDTH }, className: "flex h-full flex-col px-4 pt-6", children: [jsx("h3", { className: "px-2 text-sm font-semibold text-tertiary", children: currentItem.label }), jsx("ul", { className: "py-2", children: currentItem.items?.map((item) => (jsx("li", { className: "py-px", children: jsx(NavItemBase, { type: "link", current: item.href === activeHref, href: item.href, icon: item.icon, badge: item.badge, onClick: () => reportNavigation(item.href), "data-testid": item['data-testid'] ?? joinTestId(navItemTestId(currentItem), `sub-item-${item.id ?? slugifyTestId(item.label)}`), children: item.label }) }, item.label))) }), currentItem.toggle && (jsx(NavSectionToggleRow, { toggle: currentItem.toggle, testIdPrefix: navItemTestId(currentItem), className: "mt-auto mb-4" }))] }) })) }));
122
+ const secondarySidebar = currentItem && (jsx(AnimatePresence, { initial: false, children: isSecondarySidebarVisible && (jsx(motion.div, { ref: panelRef, id: panelId, onKeyDown: handlePanelKeyDown, role: "group", "aria-label": `${currentItem.label} pages`, initial: { width: 0, borderColor: 'var(--color-border-secondary)' }, animate: { width: SECONDARY_SIDEBAR_WIDTH, borderColor: 'var(--color-border-secondary)' }, exit: { width: 0, borderColor: 'rgba(0,0,0,0)', transition: { borderColor: { type: 'tween', delay: 0.05 } } }, transition: SIDEBAR_SPRING, className: cx('relative h-full overflow-x-hidden overflow-y-auto bg-primary', !(hideBorder || hideRightBorder) && 'box-content border-r border-secondary'), children: jsxs("div", { style: { width: SECONDARY_SIDEBAR_WIDTH }, className: "flex h-full flex-col px-4 pt-6", children: [jsx("h3", { className: "px-2 text-sm font-semibold text-tertiary", children: currentItem.label }), jsx("ul", { className: "py-2", children: currentItem.items?.map((item) => (jsx("li", { className: "py-px", children: jsx(NavItemBase, { type: "link", current: item.href === activeHref, href: item.href, icon: item.icon, badge: item.badge, onClick: () => reportNavigation(item.href), "data-testid": item['data-testid'] ?? joinTestId(navItemTestId(currentItem), `sub-item-${item.id ?? slugifyTestId(item.label)}`), children: item.label }) }, item.label))) }), currentItem.toggle && (jsx(NavSectionToggleRow, { toggle: currentItem.toggle, testIdPrefix: navItemTestId(currentItem), className: "mt-auto mb-4" }))] }) })) }));
198
123
  return (jsxs(TestIdProvider, { value: rootTestId, children: [jsxs("div", { className: "z-40 hidden lg:fixed lg:inset-y-0 lg:left-0 lg:flex", onPointerEnter: () => setIsHovering(true), onPointerMove: handleContainerPointerMove, onPointerLeave: () => setIsHovering(false), onFocus: handleContainerFocus, onBlur: handleContainerBlur, children: [mainSidebar, secondarySidebar] }), jsx(motion.div, { initial: false, animate: { paddingLeft: isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, transition: resizeTransition, className: "invisible hidden lg:sticky lg:top-0 lg:bottom-0 lg:left-0 lg:block" }), showMobileHeader && (jsx(MobileNavigationHeader, { isOpen: isMobileMenuOpen, onOpenChange: setMobileMenuOpen, controls: mobileMenuId, homeHref: homeHref, onHomePress: () => reportNavigation(homeHref), logoTestId: joinTestId(rootTestId, 'mobile-logo'), "data-testid": joinTestId(rootTestId, 'mobile-toggle') })), jsx(MobileNavigationDrawer, { id: mobileMenuId, isOpen: isMobileMenuOpen, onOpenChange: setMobileMenuOpen, "data-testid": joinTestId(rootTestId, 'mobile-close'), children: jsxs("aside", { className: "group flex h-full max-h-full w-full max-w-full flex-col justify-between overflow-y-auto bg-secondary pt-4", children: [jsxs("div", { className: "flex flex-col items-start gap-7 px-4", children: [jsx(LogoLink, { href: homeHref, size: "sm", onClick: () => handleMobileNavigate(homeHref), "data-testid": joinTestId(rootTestId, 'drawer-logo') }), search && (jsx(SearchTrigger, { size: "md", placeholder: search.placeholder ?? 'Search', label: search.label ?? 'Search', onPress: closeMobileMenuThen(search.onPress), className: "w-full", "data-testid": search['data-testid'] ?? joinTestId(rootTestId, 'search') }))] }), jsx("nav", { "aria-label": "Main", children: jsx(NavList, { activeUrl: activeUrl, items: items, onNavigate: handleMobileNavigate, testIdPrefix: rootTestId }) }), jsxs("div", { className: "mt-auto flex flex-col gap-3 p-4", children: [footerItems.length > 0 && (jsx("nav", { "aria-label": "Footer", children: jsx(NavList, { activeUrl: activeUrl, items: footerItems, onNavigate: handleMobileNavigate, testIdPrefix: rootTestId, className: "px-0 pt-0" }) })), account && (jsx(NavAccountCard, { account: account.account, menuItems: withMobileMenuClose(account.menuItems), bottomMenuItems: withMobileMenuClose(account.bottomMenuItems), "data-testid": account['data-testid'] }))] })] }) })] }));
199
124
  };
200
125
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/SidebarNavigation/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/SidebarNavigation/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flipdish/ui-library",
3
- "version": "0.34.0",
3
+ "version": "0.34.2",
4
4
  "description": "Flipdish Design System — atomic-design component library (Tailwind v4 + UntitledUI + React Aria).",
5
5
  "type": "module",
6
6
  "imports": {