@flipdish/ui-library 0.43.0 → 0.43.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.
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.cjs +5 -3
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.d.ts +7 -3
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.js +5 -3
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierReveal.cjs +5 -3
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierReveal.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierReveal.d.ts +5 -3
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierReveal.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierReveal.js +5 -3
- package/dist/components/organisms/SidebarNavigation/hooks/useDualTierReveal.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/hooks/useRailBounds.cjs +48 -0
- package/dist/components/organisms/SidebarNavigation/hooks/useRailBounds.cjs.map +1 -0
- package/dist/components/organisms/SidebarNavigation/hooks/useRailBounds.d.ts +19 -0
- package/dist/components/organisms/SidebarNavigation/hooks/useRailBounds.d.ts.map +1 -0
- package/dist/components/organisms/SidebarNavigation/hooks/useRailBounds.js +46 -0
- package/dist/components/organisms/SidebarNavigation/hooks/useRailBounds.js.map +1 -0
- package/dist/components/organisms/SidebarNavigation/index.cjs +19 -6
- package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.js +20 -7
- package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
- package/dist/providers/UIProvider/hooks/usePortalAnchor.cjs +10 -9
- package/dist/providers/UIProvider/hooks/usePortalAnchor.cjs.map +1 -1
- package/dist/providers/UIProvider/hooks/usePortalAnchor.d.ts +5 -4
- package/dist/providers/UIProvider/hooks/usePortalAnchor.d.ts.map +1 -1
- package/dist/providers/UIProvider/hooks/usePortalAnchor.js +10 -9
- package/dist/providers/UIProvider/hooks/usePortalAnchor.js.map +1 -1
- package/dist/utilities/__internal__/viewportUtils/viewport.utils.cjs +37 -0
- package/dist/utilities/__internal__/viewportUtils/viewport.utils.cjs.map +1 -0
- package/dist/utilities/__internal__/viewportUtils/viewport.utils.d.ts +17 -0
- package/dist/utilities/__internal__/viewportUtils/viewport.utils.d.ts.map +1 -0
- package/dist/utilities/__internal__/viewportUtils/viewport.utils.js +34 -0
- package/dist/utilities/__internal__/viewportUtils/viewport.utils.js.map +1 -0
- package/package.json +2 -1
|
@@ -7,9 +7,11 @@ var React = require('react');
|
|
|
7
7
|
* only by hover or by tabbing past every primary item, so `ArrowRight` on a parent
|
|
8
8
|
* jumps focus straight into its panel and `ArrowLeft`/`Escape` returns focus to the
|
|
9
9
|
* parent that opened it.
|
|
10
|
+
*
|
|
11
|
+
* @param options The panel ref, its visibility and section, and the callbacks that select and reveal a section.
|
|
12
|
+
* @returns The keydown handlers for a primary item and for the panel.
|
|
10
13
|
*/
|
|
11
|
-
const useDualTierKeyboard = ({ isPanelVisible, currentLabel, onSelectSection, onReveal }) => {
|
|
12
|
-
const panelRef = React.useRef(null);
|
|
14
|
+
const useDualTierKeyboard = ({ panelRef, isPanelVisible, currentLabel, onSelectSection, onReveal }) => {
|
|
13
15
|
// The primary item that opened the panel, so ArrowLeft/Escape can restore focus.
|
|
14
16
|
const triggerRef = React.useRef(null);
|
|
15
17
|
// Set when a keyboard action should move focus into the panel once it renders.
|
|
@@ -54,7 +56,7 @@ const useDualTierKeyboard = ({ isPanelVisible, currentLabel, onSelectSection, on
|
|
|
54
56
|
trigger.focus();
|
|
55
57
|
}
|
|
56
58
|
};
|
|
57
|
-
return {
|
|
59
|
+
return { handleTriggerKeyDown, handlePanelKeyDown };
|
|
58
60
|
};
|
|
59
61
|
|
|
60
62
|
exports.useDualTierKeyboard = useDualTierKeyboard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDualTierKeyboard.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.ts"],"sourcesContent":[null],"names":["useRef","useEffect"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"useDualTierKeyboard.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.ts"],"sourcesContent":[null],"names":["useRef","useEffect"],"mappings":";;;;AAkBA;;;;;;;;AAQG;AACI,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAA2B,KAAI;;AAEpI,IAAA,MAAM,UAAU,GAAGA,YAAM,CAAqB,IAAI,CAAC;;AAEnD,IAAA,MAAM,gBAAgB,GAAGA,YAAM,CAAC,KAAK,CAAC;AAEtC,IAAA,MAAM,mBAAmB,GAAG,MAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAc,+EAA+E,CAAC,EAAE,KAAK,EAAE;;;;IAKxIC,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9C,YAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK;AAChC,YAAA,mBAAmB,EAAE;QACvB;AACF,IAAA,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAElC;;;AAGG;AACH,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAE,WAAoB,KAAK,CAAC,KAAmC,KAAI;AAC5G,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,WAAW;YAAE;QAChD,KAAK,CAAC,cAAc,EAAE;QACtB,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAc,WAAW,CAAC;AAChF,QAAA,IAAI,cAAc,IAAI,YAAY,KAAK,KAAK,EAAE;AAC5C,YAAA,mBAAmB,EAAE;QACvB;aAAO;AACL,YAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;YAC/B,eAAe,CAAC,KAAK,CAAC;AACtB,YAAA,QAAQ,EAAE;QACZ;AACF,IAAA,CAAC;;AAGD,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAoC,KAAI;QAClE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE;QACzD,KAAK,CAAC,cAAc,EAAE;;;AAGtB,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO;QAClC,IAAI,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzC,OAAO,CAAC,KAAK,EAAE;QACjB;AACF,IAAA,CAAC;AAED,IAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE;AACrD;;"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { KeyboardEvent } from 'react';
|
|
1
|
+
import type { KeyboardEvent, RefObject } from 'react';
|
|
2
2
|
interface DualTierKeyboardOptions {
|
|
3
|
+
/** The rendered panel, which is portaled out of the rail, so the hook reaches its links by ref rather than by DOM order. */
|
|
4
|
+
panelRef: RefObject<HTMLDivElement | null>;
|
|
3
5
|
/** Whether the secondary sub-navigation panel is currently visible. */
|
|
4
6
|
isPanelVisible: boolean;
|
|
5
7
|
/** Label of the section whose children the panel currently shows. */
|
|
@@ -14,9 +16,11 @@ interface DualTierKeyboardOptions {
|
|
|
14
16
|
* only by hover or by tabbing past every primary item, so `ArrowRight` on a parent
|
|
15
17
|
* jumps focus straight into its panel and `ArrowLeft`/`Escape` returns focus to the
|
|
16
18
|
* parent that opened it.
|
|
19
|
+
*
|
|
20
|
+
* @param options The panel ref, its visibility and section, and the callbacks that select and reveal a section.
|
|
21
|
+
* @returns The keydown handlers for a primary item and for the panel.
|
|
17
22
|
*/
|
|
18
|
-
export declare const useDualTierKeyboard: ({ isPanelVisible, currentLabel, onSelectSection, onReveal }: DualTierKeyboardOptions) => {
|
|
19
|
-
panelRef: import("react").RefObject<HTMLDivElement | null>;
|
|
23
|
+
export declare const useDualTierKeyboard: ({ panelRef, isPanelVisible, currentLabel, onSelectSection, onReveal }: DualTierKeyboardOptions) => {
|
|
20
24
|
handleTriggerKeyDown: (label: string, hasChildren: boolean) => (event: KeyboardEvent<HTMLLIElement>) => void;
|
|
21
25
|
handlePanelKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;
|
|
22
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDualTierKeyboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useDualTierKeyboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,UAAU,uBAAuB;IAC/B,4HAA4H;IAC5H,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC3C,uEAAuE;IACvE,cAAc,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qFAAqF;IACrF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,uEAAuE,uBAAuB;kCAuB3F,MAAM,eAAe,OAAO,MAAM,OAAO,aAAa,CAAC,aAAa,CAAC;gCAcvE,aAAa,CAAC,cAAc,CAAC;CAYjE,CAAC"}
|
|
@@ -5,9 +5,11 @@ import { useRef, useEffect } from 'react';
|
|
|
5
5
|
* only by hover or by tabbing past every primary item, so `ArrowRight` on a parent
|
|
6
6
|
* jumps focus straight into its panel and `ArrowLeft`/`Escape` returns focus to the
|
|
7
7
|
* parent that opened it.
|
|
8
|
+
*
|
|
9
|
+
* @param options The panel ref, its visibility and section, and the callbacks that select and reveal a section.
|
|
10
|
+
* @returns The keydown handlers for a primary item and for the panel.
|
|
8
11
|
*/
|
|
9
|
-
const useDualTierKeyboard = ({ isPanelVisible, currentLabel, onSelectSection, onReveal }) => {
|
|
10
|
-
const panelRef = useRef(null);
|
|
12
|
+
const useDualTierKeyboard = ({ panelRef, isPanelVisible, currentLabel, onSelectSection, onReveal }) => {
|
|
11
13
|
// The primary item that opened the panel, so ArrowLeft/Escape can restore focus.
|
|
12
14
|
const triggerRef = useRef(null);
|
|
13
15
|
// Set when a keyboard action should move focus into the panel once it renders.
|
|
@@ -52,7 +54,7 @@ const useDualTierKeyboard = ({ isPanelVisible, currentLabel, onSelectSection, on
|
|
|
52
54
|
trigger.focus();
|
|
53
55
|
}
|
|
54
56
|
};
|
|
55
|
-
return {
|
|
57
|
+
return { handleTriggerKeyDown, handlePanelKeyDown };
|
|
56
58
|
};
|
|
57
59
|
|
|
58
60
|
export { useDualTierKeyboard };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDualTierKeyboard.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useDualTierKeyboard.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierKeyboard.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAkBA;;;;;;;;AAQG;AACI,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAA2B,KAAI;;AAEpI,IAAA,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC;;AAEnD,IAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;AAEtC,IAAA,MAAM,mBAAmB,GAAG,MAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAc,+EAA+E,CAAC,EAAE,KAAK,EAAE;;;;IAKxI,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9C,YAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK;AAChC,YAAA,mBAAmB,EAAE;QACvB;AACF,IAAA,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAElC;;;AAGG;AACH,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAE,WAAoB,KAAK,CAAC,KAAmC,KAAI;AAC5G,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,WAAW;YAAE;QAChD,KAAK,CAAC,cAAc,EAAE;QACtB,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAc,WAAW,CAAC;AAChF,QAAA,IAAI,cAAc,IAAI,YAAY,KAAK,KAAK,EAAE;AAC5C,YAAA,mBAAmB,EAAE;QACvB;aAAO;AACL,YAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;YAC/B,eAAe,CAAC,KAAK,CAAC;AACtB,YAAA,QAAQ,EAAE;QACZ;AACF,IAAA,CAAC;;AAGD,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAoC,KAAI;QAClE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE;QACzD,KAAK,CAAC,cAAc,EAAE;;;AAGtB,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO;QAClC,IAAI,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzC,OAAO,CAAC,KAAK,EAAE;QACjB;AACF,IAAA,CAAC;AAED,IAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE;AACrD;;"}
|
|
@@ -8,10 +8,10 @@ var React = require('react');
|
|
|
8
8
|
* route seeds that section, and clicking or keyboard-activating a primary item switches it, so
|
|
9
9
|
* exactly one item is ever highlighted.
|
|
10
10
|
*
|
|
11
|
-
* @param options The active section label
|
|
11
|
+
* @param options The active section label, the sections the rail can select, and the ref of the portaled panel.
|
|
12
12
|
* @returns The selected section, whether its panel is visible, and the pointer, focus and selection handlers.
|
|
13
13
|
*/
|
|
14
|
-
const useDualTierReveal = ({ activeLabel, sections }) => {
|
|
14
|
+
const useDualTierReveal = ({ activeLabel, sections, panelRef }) => {
|
|
15
15
|
// Track the current section by its (unique) label rather than the object, so it
|
|
16
16
|
// survives the consumer passing a fresh `items` array and never collides on href.
|
|
17
17
|
const [currentLabel, setCurrentLabel] = React.useState(activeLabel);
|
|
@@ -34,8 +34,10 @@ const useDualTierReveal = ({ activeLabel, sections }) => {
|
|
|
34
34
|
const handleContainerFocus = (event) => {
|
|
35
35
|
setIsFocusWithin(event.target.matches(':focus-visible'));
|
|
36
36
|
};
|
|
37
|
+
// The portaled panel's blur bubbles here, but `contains` on the rail alone would treat focus arriving in it as leaving.
|
|
37
38
|
const handleContainerBlur = (event) => {
|
|
38
|
-
|
|
39
|
+
const next = event.relatedTarget;
|
|
40
|
+
if (!event.currentTarget.contains(next) && !panelRef.current?.contains(next))
|
|
39
41
|
setIsFocusWithin(false);
|
|
40
42
|
};
|
|
41
43
|
// `pointerenter` never fires when the pointer is already inside as the sidebar mounts (it mounts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDualTierReveal.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"useDualTierReveal.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;AAmBA;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAAkC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAkC,KAAI;;;IAGxI,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;;AAGD,IAAA,MAAM,mBAAmB,GAAG,CAAC,KAAiC,KAAI;AAChE,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;YAAE,gBAAgB,CAAC,KAAK,CAAC;AACvG,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;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FocusEvent, PointerEvent } from 'react';
|
|
1
|
+
import type { FocusEvent, PointerEvent, RefObject } from 'react';
|
|
2
2
|
interface DualTierSection {
|
|
3
3
|
label: string;
|
|
4
4
|
items?: readonly unknown[];
|
|
@@ -8,6 +8,8 @@ interface DualTierRevealOptions<Section extends DualTierSection> {
|
|
|
8
8
|
activeLabel: string | undefined;
|
|
9
9
|
/** Primary items followed by footer items, the same list the rail highlights. */
|
|
10
10
|
sections: readonly Section[];
|
|
11
|
+
/** The rendered panel. It is portaled out of the rail, so focus moving into it must not count as leaving. */
|
|
12
|
+
panelRef: RefObject<HTMLElement | null>;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* Which section the dual-tier panel lists, and whether hover, keyboard focus or the account menu
|
|
@@ -15,10 +17,10 @@ interface DualTierRevealOptions<Section extends DualTierSection> {
|
|
|
15
17
|
* route seeds that section, and clicking or keyboard-activating a primary item switches it, so
|
|
16
18
|
* exactly one item is ever highlighted.
|
|
17
19
|
*
|
|
18
|
-
* @param options The active section label
|
|
20
|
+
* @param options The active section label, the sections the rail can select, and the ref of the portaled panel.
|
|
19
21
|
* @returns The selected section, whether its panel is visible, and the pointer, focus and selection handlers.
|
|
20
22
|
*/
|
|
21
|
-
export declare const useDualTierReveal: <Section extends DualTierSection>({ activeLabel, sections }: DualTierRevealOptions<Section>) => {
|
|
23
|
+
export declare const useDualTierReveal: <Section extends DualTierSection>({ activeLabel, sections, panelRef }: DualTierRevealOptions<Section>) => {
|
|
22
24
|
currentLabel: string | undefined;
|
|
23
25
|
setCurrentLabel: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
|
|
24
26
|
currentItem: Section | undefined;
|
|
@@ -1 +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;
|
|
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,SAAS,EAAE,MAAM,OAAO,CAAC;AAGjE,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;IAC7B,6GAA6G;IAC7G,QAAQ,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,eAAe,EAAE,qCAAqC,qBAAqB,CAAC,OAAO,CAAC;;;;;;;kCAsB/F,UAAU,CAAC,cAAc,CAAC;iCAK3B,UAAU,CAAC,cAAc,CAAC;wCAQnB,YAAY,CAAC,cAAc,CAAC;2BAOzC,MAAM,eAAe,OAAO;;CAoB3D,CAAC"}
|
|
@@ -6,10 +6,10 @@ import { useState, useEffect } from 'react';
|
|
|
6
6
|
* route seeds that section, and clicking or keyboard-activating a primary item switches it, so
|
|
7
7
|
* exactly one item is ever highlighted.
|
|
8
8
|
*
|
|
9
|
-
* @param options The active section label
|
|
9
|
+
* @param options The active section label, the sections the rail can select, and the ref of the portaled panel.
|
|
10
10
|
* @returns The selected section, whether its panel is visible, and the pointer, focus and selection handlers.
|
|
11
11
|
*/
|
|
12
|
-
const useDualTierReveal = ({ activeLabel, sections }) => {
|
|
12
|
+
const useDualTierReveal = ({ activeLabel, sections, panelRef }) => {
|
|
13
13
|
// Track the current section by its (unique) label rather than the object, so it
|
|
14
14
|
// survives the consumer passing a fresh `items` array and never collides on href.
|
|
15
15
|
const [currentLabel, setCurrentLabel] = useState(activeLabel);
|
|
@@ -32,8 +32,10 @@ const useDualTierReveal = ({ activeLabel, sections }) => {
|
|
|
32
32
|
const handleContainerFocus = (event) => {
|
|
33
33
|
setIsFocusWithin(event.target.matches(':focus-visible'));
|
|
34
34
|
};
|
|
35
|
+
// The portaled panel's blur bubbles here, but `contains` on the rail alone would treat focus arriving in it as leaving.
|
|
35
36
|
const handleContainerBlur = (event) => {
|
|
36
|
-
|
|
37
|
+
const next = event.relatedTarget;
|
|
38
|
+
if (!event.currentTarget.contains(next) && !panelRef.current?.contains(next))
|
|
37
39
|
setIsFocusWithin(false);
|
|
38
40
|
};
|
|
39
41
|
// `pointerenter` never fires when the pointer is already inside as the sidebar mounts (it mounts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDualTierReveal.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useDualTierReveal.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useDualTierReveal.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAmBA;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAAkC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAkC,KAAI;;;IAGxI,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;;AAGD,IAAA,MAAM,mBAAmB,GAAG,CAAC,KAAiC,KAAI;AAChE,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;YAAE,gBAAgB,CAAC,KAAK,CAAC;AACvG,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,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var useResizeObserver = require('@flipdish/ui-library/hooks/useResizeObserver');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var scroll_utils = require('../../../../utilities/__internal__/scrollUtils/scroll.utils.cjs');
|
|
6
|
+
var viewport_utils = require('../../../../utilities/__internal__/viewportUtils/viewport.utils.cjs');
|
|
7
|
+
|
|
8
|
+
const isSame = (a, b) => a?.top === b?.top && a?.left === b?.left && a?.height === b?.height;
|
|
9
|
+
/**
|
|
10
|
+
* Measures the rail's box in the viewport so the portaled panel can sit flush with the rail's right edge and span
|
|
11
|
+
* exactly its height. The rail is `fixed inset-y-0 left-0` inside its own layer, which a host may push below a top
|
|
12
|
+
* strip, inset from the left or turn into a containing block, so its box is observed rather than assumed to be the viewport.
|
|
13
|
+
*
|
|
14
|
+
* @param ref The rail element.
|
|
15
|
+
* @param track Whether to re-measure every frame as well. On while the panel is open, so a host moving the rail without
|
|
16
|
+
* resizing or scrolling it (a transform, a restyled ancestor) is still followed; off otherwise, since it costs a measurement per frame.
|
|
17
|
+
* @returns Its `top`, `left` and `height` in the viewport, or `undefined` while the rail is not laid out (below `lg`).
|
|
18
|
+
*/
|
|
19
|
+
const useRailBounds = (ref, track) => {
|
|
20
|
+
const [bounds, setBounds] = React.useState();
|
|
21
|
+
const measure = React.useCallback(() => {
|
|
22
|
+
const rect = ref.current?.getBoundingClientRect();
|
|
23
|
+
// A rail hidden below `lg` measures 0×0; the panel is hidden there too, so the viewport default stands.
|
|
24
|
+
const next = rect && rect.height > 0 ? { top: Math.round(rect.top), left: Math.round(rect.left), height: Math.round(rect.height) } : undefined;
|
|
25
|
+
setBounds((current) => (isSame(current, next) ? current : next));
|
|
26
|
+
}, [ref]);
|
|
27
|
+
// Before paint, on mount and again as the panel opens, so a reveal never paints at a stale position and then jumps.
|
|
28
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: `track` is the trigger, not an input; the panel opening is what needs a fresh box
|
|
29
|
+
React.useLayoutEffect(measure, [track, measure]);
|
|
30
|
+
useResizeObserver.useResizeObserver({ ref, onResize: measure });
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
const rail = ref.current;
|
|
33
|
+
if (!rail)
|
|
34
|
+
return;
|
|
35
|
+
// A viewport resize moves a rail measured against it, and a scrolling ancestor is what moves a rail inside a containing block.
|
|
36
|
+
const unsubscribeResize = viewport_utils.subscribeToViewportResize(measure);
|
|
37
|
+
const unsubscribeScroll = scroll_utils.subscribeToAncestorScroll(rail, measure);
|
|
38
|
+
return () => {
|
|
39
|
+
unsubscribeResize();
|
|
40
|
+
unsubscribeScroll();
|
|
41
|
+
};
|
|
42
|
+
}, [ref, measure]);
|
|
43
|
+
React.useEffect(() => (track ? viewport_utils.subscribeToAnimationFrames(measure) : undefined), [track, measure]);
|
|
44
|
+
return bounds;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
exports.useRailBounds = useRailBounds;
|
|
48
|
+
//# sourceMappingURL=useRailBounds.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRailBounds.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useRailBounds.ts"],"sourcesContent":[null],"names":["useState","useCallback","useLayoutEffect","useResizeObserver","useEffect","subscribeToViewportResize","subscribeToAncestorScroll","subscribeToAnimationFrames"],"mappings":";;;;;;;AAeA,MAAM,MAAM,GAAG,CAAC,CAAyB,EAAE,CAAyB,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE,MAAM;AAE5I;;;;;;;;;AASG;MACU,aAAa,GAAG,CAAC,GAAkC,EAAE,KAAc,KAA4B;IAC1G,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,EAAc;AAElD,IAAA,MAAM,OAAO,GAAGC,iBAAW,CAAC,MAAK;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE;;QAEjD,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS;QAC9I,SAAS,CAAC,CAAC,OAAO,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAClE,IAAA,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;;;IAITC,qBAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1CC,mCAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7CC,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AACxB,QAAA,IAAI,CAAC,IAAI;YAAE;;AAEX,QAAA,MAAM,iBAAiB,GAAGC,wCAAyB,CAAC,OAAO,CAAC;QAC5D,MAAM,iBAAiB,GAAGC,sCAAyB,CAAC,IAAI,EAAE,OAAO,CAAC;AAClE,QAAA,OAAO,MAAK;AACV,YAAA,iBAAiB,EAAE;AACnB,YAAA,iBAAiB,EAAE;AACrB,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClBF,eAAS,CAAC,OAAO,KAAK,GAAGG,yCAA0B,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAE5F,IAAA,OAAO,MAAM;AACf;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
/** The rail's box in the viewport, in whole pixels. */
|
|
3
|
+
export interface RailBounds {
|
|
4
|
+
top: number;
|
|
5
|
+
left: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Measures the rail's box in the viewport so the portaled panel can sit flush with the rail's right edge and span
|
|
10
|
+
* exactly its height. The rail is `fixed inset-y-0 left-0` inside its own layer, which a host may push below a top
|
|
11
|
+
* strip, inset from the left or turn into a containing block, so its box is observed rather than assumed to be the viewport.
|
|
12
|
+
*
|
|
13
|
+
* @param ref The rail element.
|
|
14
|
+
* @param track Whether to re-measure every frame as well. On while the panel is open, so a host moving the rail without
|
|
15
|
+
* resizing or scrolling it (a transform, a restyled ancestor) is still followed; off otherwise, since it costs a measurement per frame.
|
|
16
|
+
* @returns Its `top`, `left` and `height` in the viewport, or `undefined` while the rail is not laid out (below `lg`).
|
|
17
|
+
*/
|
|
18
|
+
export declare const useRailBounds: (ref: RefObject<HTMLElement | null>, track: boolean) => RailBounds | undefined;
|
|
19
|
+
//# sourceMappingURL=useRailBounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRailBounds.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useRailBounds.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,OAAO,OAAO,KAAG,UAAU,GAAG,SA4B/F,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useResizeObserver } from '@flipdish/ui-library/hooks/useResizeObserver';
|
|
2
|
+
import { useState, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
3
|
+
import { subscribeToAncestorScroll } from '../../../../utilities/__internal__/scrollUtils/scroll.utils.js';
|
|
4
|
+
import { subscribeToViewportResize, subscribeToAnimationFrames } from '../../../../utilities/__internal__/viewportUtils/viewport.utils.js';
|
|
5
|
+
|
|
6
|
+
const isSame = (a, b) => a?.top === b?.top && a?.left === b?.left && a?.height === b?.height;
|
|
7
|
+
/**
|
|
8
|
+
* Measures the rail's box in the viewport so the portaled panel can sit flush with the rail's right edge and span
|
|
9
|
+
* exactly its height. The rail is `fixed inset-y-0 left-0` inside its own layer, which a host may push below a top
|
|
10
|
+
* strip, inset from the left or turn into a containing block, so its box is observed rather than assumed to be the viewport.
|
|
11
|
+
*
|
|
12
|
+
* @param ref The rail element.
|
|
13
|
+
* @param track Whether to re-measure every frame as well. On while the panel is open, so a host moving the rail without
|
|
14
|
+
* resizing or scrolling it (a transform, a restyled ancestor) is still followed; off otherwise, since it costs a measurement per frame.
|
|
15
|
+
* @returns Its `top`, `left` and `height` in the viewport, or `undefined` while the rail is not laid out (below `lg`).
|
|
16
|
+
*/
|
|
17
|
+
const useRailBounds = (ref, track) => {
|
|
18
|
+
const [bounds, setBounds] = useState();
|
|
19
|
+
const measure = useCallback(() => {
|
|
20
|
+
const rect = ref.current?.getBoundingClientRect();
|
|
21
|
+
// A rail hidden below `lg` measures 0×0; the panel is hidden there too, so the viewport default stands.
|
|
22
|
+
const next = rect && rect.height > 0 ? { top: Math.round(rect.top), left: Math.round(rect.left), height: Math.round(rect.height) } : undefined;
|
|
23
|
+
setBounds((current) => (isSame(current, next) ? current : next));
|
|
24
|
+
}, [ref]);
|
|
25
|
+
// Before paint, on mount and again as the panel opens, so a reveal never paints at a stale position and then jumps.
|
|
26
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: `track` is the trigger, not an input; the panel opening is what needs a fresh box
|
|
27
|
+
useLayoutEffect(measure, [track, measure]);
|
|
28
|
+
useResizeObserver({ ref, onResize: measure });
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const rail = ref.current;
|
|
31
|
+
if (!rail)
|
|
32
|
+
return;
|
|
33
|
+
// A viewport resize moves a rail measured against it, and a scrolling ancestor is what moves a rail inside a containing block.
|
|
34
|
+
const unsubscribeResize = subscribeToViewportResize(measure);
|
|
35
|
+
const unsubscribeScroll = subscribeToAncestorScroll(rail, measure);
|
|
36
|
+
return () => {
|
|
37
|
+
unsubscribeResize();
|
|
38
|
+
unsubscribeScroll();
|
|
39
|
+
};
|
|
40
|
+
}, [ref, measure]);
|
|
41
|
+
useEffect(() => (track ? subscribeToAnimationFrames(measure) : undefined), [track, measure]);
|
|
42
|
+
return bounds;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { useRailBounds };
|
|
46
|
+
//# sourceMappingURL=useRailBounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRailBounds.js","sources":["../../../../../src/components/organisms/SidebarNavigation/hooks/useRailBounds.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAeA,MAAM,MAAM,GAAG,CAAC,CAAyB,EAAE,CAAyB,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE,MAAM;AAE5I;;;;;;;;;AASG;MACU,aAAa,GAAG,CAAC,GAAkC,EAAE,KAAc,KAA4B;IAC1G,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAc;AAElD,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,MAAK;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE;;QAEjD,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS;QAC9I,SAAS,CAAC,CAAC,OAAO,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAClE,IAAA,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;;;IAIT,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7C,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AACxB,QAAA,IAAI,CAAC,IAAI;YAAE;;AAEX,QAAA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC;QAC5D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC;AAClE,QAAA,OAAO,MAAK;AACV,YAAA,iBAAiB,EAAE;AACnB,YAAA,iBAAiB,EAAE;AACrB,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClB,SAAS,CAAC,OAAO,KAAK,GAAG,0BAA0B,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAE5F,IAAA,OAAO,MAAM;AACf;;"}
|
|
@@ -10,6 +10,7 @@ var hrefUtils = require('@flipdish/ui-library/utilities/hrefUtils');
|
|
|
10
10
|
var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
|
|
11
11
|
var react = require('motion/react');
|
|
12
12
|
var React = require('react');
|
|
13
|
+
var reactAria = require('react-aria');
|
|
13
14
|
var nav_utils = require('../../__internal__/navigation/nav.utils.cjs');
|
|
14
15
|
var SearchTrigger = require('../ApplicationHeader/components/SearchTrigger.cjs');
|
|
15
16
|
var LogoLink = require('./components/LogoLink.cjs');
|
|
@@ -20,6 +21,7 @@ var NavList = require('./components/NavList.cjs');
|
|
|
20
21
|
var NavSectionToggle = require('./components/NavSectionToggle.cjs');
|
|
21
22
|
var useDualTierKeyboard = require('./hooks/useDualTierKeyboard.cjs');
|
|
22
23
|
var useDualTierReveal = require('./hooks/useDualTierReveal.cjs');
|
|
24
|
+
var useRailBounds = require('./hooks/useRailBounds.cjs');
|
|
23
25
|
var useSidebarCollapse = require('./hooks/useSidebarCollapse.cjs');
|
|
24
26
|
var SidebarMenuButton = require('./components/SidebarMenuButton.cjs');
|
|
25
27
|
|
|
@@ -67,11 +69,17 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
|
|
|
67
69
|
const sections = [...items, ...footerItems];
|
|
68
70
|
// One resolved href (the most specific match) so nested hrefs never yield two current pages.
|
|
69
71
|
const activeHref = nav_utils.findActiveHref(sections, activeUrl);
|
|
70
|
-
|
|
72
|
+
// The panel renders through the overlay portal, outside the rail in the DOM, so both hooks reach it by ref.
|
|
73
|
+
const panelRef = React.useRef(null);
|
|
74
|
+
const { currentLabel, setCurrentLabel, currentItem, isSecondarySidebarVisible, setIsHovering, setIsAccountMenuOpen, handleContainerFocus, handleContainerBlur, handleContainerPointerMove, revealSection, revealFromKeyboard, } = useDualTierReveal.useDualTierReveal({ activeLabel: nav_utils.findActiveItem(sections, activeUrl)?.label, sections, panelRef });
|
|
71
75
|
const panelId = React.useId();
|
|
76
|
+
// The panel is positioned from the rail's own box, not the viewport: a host may place the rail below a top strip or inset it.
|
|
77
|
+
const railRef = React.useRef(null);
|
|
78
|
+
const railBounds = useRailBounds.useRailBounds(railRef, isSecondarySidebarVisible);
|
|
72
79
|
// Ties the built-in mobile toggle to the drawer it opens via `aria-controls`.
|
|
73
80
|
const mobileMenuId = React.useId();
|
|
74
|
-
const {
|
|
81
|
+
const { handleTriggerKeyDown, handlePanelKeyDown } = useDualTierKeyboard.useDualTierKeyboard({
|
|
82
|
+
panelRef,
|
|
75
83
|
isPanelVisible: isSecondarySidebarVisible,
|
|
76
84
|
currentLabel,
|
|
77
85
|
onSelectSection: setCurrentLabel,
|
|
@@ -100,9 +108,7 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
|
|
|
100
108
|
// The same item serves both rail widths: collapsed it shrinks to its icon and shows its label as a tooltip instead.
|
|
101
109
|
return (jsxRuntime.jsx("li", { className: "py-px", onKeyDown: handleTriggerKeyDown(item.label, hasChildren), children: jsxRuntime.jsx(Tooltip.Tooltip, { isDisabled: !isCollapsed, title: item.label, placement: "right", children: jsxRuntime.jsx(NavItem.NavItemBase, { type: hasChildren ? 'disclosure' : 'link', current: isCurrentPage, selected: isSelected, href: hasChildren ? undefined : item.href, icon: item.icon, badge: item.badge, hasSubmenu: hasChildren, collapsed: isCollapsed, resizing: isResizing, onClick: selectSection, "data-testid": itemTestId, ...disclosure, children: item.label }) }) }, item.label));
|
|
102
110
|
});
|
|
103
|
-
const mainSidebar = (jsxRuntime.jsxs(react.motion.aside
|
|
104
|
-
// initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
|
|
105
|
-
, {
|
|
111
|
+
const mainSidebar = (jsxRuntime.jsxs(react.motion.aside, { ref: railRef,
|
|
106
112
|
// initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
|
|
107
113
|
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
114
|
// Every fade and slide in the rail is a CSS transition; the stored preference must land without any of them.
|
|
@@ -120,7 +126,14 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
|
|
|
120
126
|
onClick?.();
|
|
121
127
|
};
|
|
122
128
|
const withMobileMenuClose = (menuItems) => menuItems?.map((item) => ({ ...item, onClick: closeMobileMenuThen(item.onClick) }));
|
|
123
|
-
|
|
129
|
+
// Portaled one tier above the overlay root: inside the rail it painted under a page's SlideoutMenu or Popover, and at the
|
|
130
|
+
// overlays' own z-50 it lost to an embedded app's anchor when a host keeps the rail on `body`; the token's fallback is that z-50.
|
|
131
|
+
// React Aria places tooltips and menus at 100000, so they still win; a hover latched before another tree's modal opens shows it over the backdrop.
|
|
132
|
+
// The rail's measured left edge plus its target width, so the spring still carries the panel through a collapse.
|
|
133
|
+
const panelLeft = (railBounds?.left ?? 0) + (isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH);
|
|
134
|
+
const secondarySidebar = currentItem && (jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: isSecondarySidebarVisible && (jsxRuntime.jsx(reactAria.Overlay, { children: jsxRuntime.jsx(react.motion.div, { ref: panelRef, id: panelId, "data-testid": testIdUtils.joinTestId(rootTestId, 'panel'), onKeyDown: handlePanelKeyDown, role: "group", "aria-label": `${currentItem.label} pages`, initial: { width: 0, left: panelLeft, borderColor: 'var(--color-border-secondary)' }, animate: { width: SECONDARY_SIDEBAR_WIDTH, left: panelLeft, 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, left: resizeTransition },
|
|
135
|
+
// Inline `top` and `height` beat `inset-y-0`: with all three set, CSS drops `bottom`. Unset below `lg`, where the rail is hidden.
|
|
136
|
+
style: railBounds && { top: railBounds.top, height: railBounds.height }, className: cx.cx('fixed inset-y-0 z-[calc(var(--z-index-overlay-root,50)+1)] hidden overflow-x-hidden overflow-y-auto bg-primary lg:block', !(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" }))] }) }) }, "dual-tier-panel")) }));
|
|
124
137
|
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'] }))] })] }) })] }));
|
|
125
138
|
};
|
|
126
139
|
|
|
@@ -1 +1 @@
|
|
|
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":"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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","useRef","useDualTierReveal","findActiveItem","useId","useRailBounds","useDualTierKeyboard","_jsx","Tooltip","NavItemBase","_jsxs","motion","cx","LogoLink","ButtonUtility","ChevronRightDouble","ChevronLeftDouble","NavAccountCard","AnimatePresence","Overlay","SIDEBAR_SPRING","NavSectionToggleRow","TestIdProvider","MobileNavigationHeader","MobileNavigationDrawer","SearchTrigger","NavList"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAOhC,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAQlF,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,gCA4VxB,CAAC"}
|
|
@@ -7,7 +7,8 @@ import { cx } from '@flipdish/ui-library/utilities/cx';
|
|
|
7
7
|
import { safeHref } from '@flipdish/ui-library/utilities/hrefUtils';
|
|
8
8
|
import { useResolvedTestId, joinTestId, slugifyTestId, TestIdProvider } from '@flipdish/ui-library/utilities/testIdUtils';
|
|
9
9
|
import { motion, AnimatePresence } from 'motion/react';
|
|
10
|
-
import { useState, useEffect, useId } from 'react';
|
|
10
|
+
import { useState, useEffect, useRef, useId } from 'react';
|
|
11
|
+
import { Overlay } from 'react-aria';
|
|
11
12
|
import { findActiveHref, findActiveItem } from '../../__internal__/navigation/nav.utils.js';
|
|
12
13
|
import { SearchTrigger } from '../ApplicationHeader/components/SearchTrigger.js';
|
|
13
14
|
import { LogoLink } from './components/LogoLink.js';
|
|
@@ -19,6 +20,7 @@ import { NavList } from './components/NavList.js';
|
|
|
19
20
|
import { NavSectionToggleRow } from './components/NavSectionToggle.js';
|
|
20
21
|
import { useDualTierKeyboard } from './hooks/useDualTierKeyboard.js';
|
|
21
22
|
import { useDualTierReveal } from './hooks/useDualTierReveal.js';
|
|
23
|
+
import { useRailBounds } from './hooks/useRailBounds.js';
|
|
22
24
|
import { useSidebarCollapse, SIDEBAR_SPRING } from './hooks/useSidebarCollapse.js';
|
|
23
25
|
export { SidebarMenuButton } from './components/SidebarMenuButton.js';
|
|
24
26
|
|
|
@@ -66,11 +68,17 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
|
|
|
66
68
|
const sections = [...items, ...footerItems];
|
|
67
69
|
// One resolved href (the most specific match) so nested hrefs never yield two current pages.
|
|
68
70
|
const activeHref = findActiveHref(sections, activeUrl);
|
|
69
|
-
|
|
71
|
+
// The panel renders through the overlay portal, outside the rail in the DOM, so both hooks reach it by ref.
|
|
72
|
+
const panelRef = useRef(null);
|
|
73
|
+
const { currentLabel, setCurrentLabel, currentItem, isSecondarySidebarVisible, setIsHovering, setIsAccountMenuOpen, handleContainerFocus, handleContainerBlur, handleContainerPointerMove, revealSection, revealFromKeyboard, } = useDualTierReveal({ activeLabel: findActiveItem(sections, activeUrl)?.label, sections, panelRef });
|
|
70
74
|
const panelId = useId();
|
|
75
|
+
// The panel is positioned from the rail's own box, not the viewport: a host may place the rail below a top strip or inset it.
|
|
76
|
+
const railRef = useRef(null);
|
|
77
|
+
const railBounds = useRailBounds(railRef, isSecondarySidebarVisible);
|
|
71
78
|
// Ties the built-in mobile toggle to the drawer it opens via `aria-controls`.
|
|
72
79
|
const mobileMenuId = useId();
|
|
73
|
-
const {
|
|
80
|
+
const { handleTriggerKeyDown, handlePanelKeyDown } = useDualTierKeyboard({
|
|
81
|
+
panelRef,
|
|
74
82
|
isPanelVisible: isSecondarySidebarVisible,
|
|
75
83
|
currentLabel,
|
|
76
84
|
onSelectSection: setCurrentLabel,
|
|
@@ -99,9 +107,7 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
|
|
|
99
107
|
// The same item serves both rail widths: collapsed it shrinks to its icon and shows its label as a tooltip instead.
|
|
100
108
|
return (jsx("li", { className: "py-px", onKeyDown: handleTriggerKeyDown(item.label, hasChildren), children: jsx(Tooltip, { isDisabled: !isCollapsed, title: item.label, placement: "right", children: jsx(NavItemBase, { type: hasChildren ? 'disclosure' : 'link', current: isCurrentPage, selected: isSelected, href: hasChildren ? undefined : item.href, icon: item.icon, badge: item.badge, hasSubmenu: hasChildren, collapsed: isCollapsed, resizing: isResizing, onClick: selectSection, "data-testid": itemTestId, ...disclosure, children: item.label }) }) }, item.label));
|
|
101
109
|
});
|
|
102
|
-
const mainSidebar = (jsxs(motion.aside
|
|
103
|
-
// initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
|
|
104
|
-
, {
|
|
110
|
+
const mainSidebar = (jsxs(motion.aside, { ref: railRef,
|
|
105
111
|
// initial={false} starts at the `animate` value; without it Motion reads the DOM and springs from there on mount.
|
|
106
112
|
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
113
|
// Every fade and slide in the rail is a CSS transition; the stored preference must land without any of them.
|
|
@@ -119,7 +125,14 @@ const SidebarNavigation = ({ activeUrl, items, footerItems = [], account, onNavi
|
|
|
119
125
|
onClick?.();
|
|
120
126
|
};
|
|
121
127
|
const withMobileMenuClose = (menuItems) => menuItems?.map((item) => ({ ...item, onClick: closeMobileMenuThen(item.onClick) }));
|
|
122
|
-
|
|
128
|
+
// Portaled one tier above the overlay root: inside the rail it painted under a page's SlideoutMenu or Popover, and at the
|
|
129
|
+
// overlays' own z-50 it lost to an embedded app's anchor when a host keeps the rail on `body`; the token's fallback is that z-50.
|
|
130
|
+
// React Aria places tooltips and menus at 100000, so they still win; a hover latched before another tree's modal opens shows it over the backdrop.
|
|
131
|
+
// The rail's measured left edge plus its target width, so the spring still carries the panel through a collapse.
|
|
132
|
+
const panelLeft = (railBounds?.left ?? 0) + (isCollapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH);
|
|
133
|
+
const secondarySidebar = currentItem && (jsx(AnimatePresence, { initial: false, children: isSecondarySidebarVisible && (jsx(Overlay, { children: jsx(motion.div, { ref: panelRef, id: panelId, "data-testid": joinTestId(rootTestId, 'panel'), onKeyDown: handlePanelKeyDown, role: "group", "aria-label": `${currentItem.label} pages`, initial: { width: 0, left: panelLeft, borderColor: 'var(--color-border-secondary)' }, animate: { width: SECONDARY_SIDEBAR_WIDTH, left: panelLeft, borderColor: 'var(--color-border-secondary)' }, exit: { width: 0, borderColor: 'rgba(0,0,0,0)', transition: { borderColor: { type: 'tween', delay: 0.05 } } }, transition: { ...SIDEBAR_SPRING, left: resizeTransition },
|
|
134
|
+
// Inline `top` and `height` beat `inset-y-0`: with all three set, CSS drops `bottom`. Unset below `lg`, where the rail is hidden.
|
|
135
|
+
style: railBounds && { top: railBounds.top, height: railBounds.height }, className: cx('fixed inset-y-0 z-[calc(var(--z-index-overlay-root,50)+1)] hidden overflow-x-hidden overflow-y-auto bg-primary lg:block', !(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" }))] }) }) }, "dual-tier-panel")) }));
|
|
123
136
|
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'] }))] })] }) })] }));
|
|
124
137
|
};
|
|
125
138
|
|
|
@@ -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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"}
|
|
@@ -27,10 +27,11 @@ const portalToBody = () => document.body;
|
|
|
27
27
|
*/
|
|
28
28
|
const resolvePortalContainer = (portalContainer, scopeId) => portalContainer === undefined && scopeId ? portalToBody : (portalContainer ?? null);
|
|
29
29
|
/**
|
|
30
|
-
* Builds the anchor overlays portal into. On `body` it is a zero-
|
|
31
|
-
* footprint
|
|
32
|
-
*
|
|
33
|
-
*
|
|
30
|
+
* Builds the anchor overlays portal into. On `body` it is a zero-size block fixed at the viewport origin: no
|
|
31
|
+
* layout footprint, a stacking context the host's `z-index` layers cannot beat, and the containing block React
|
|
32
|
+
* Aria positions popovers from, so a popover lands beside its trigger. Anywhere else it is `display: contents`,
|
|
33
|
+
* so it cannot disturb a flex or grid host. It carries `data-theme` and, with a scope, `data-mfe-scope`, which
|
|
34
|
+
* is what lets the app's scoped CSS reach an overlay rendered outside its tree.
|
|
34
35
|
*
|
|
35
36
|
* @param container The element the anchor is appended to.
|
|
36
37
|
* @param options The scope to stamp, if any, the resolved theme mode, and the stacking tier for a `body` anchor.
|
|
@@ -39,13 +40,13 @@ const resolvePortalContainer = (portalContainer, scopeId) => portalContainer ===
|
|
|
39
40
|
const createPortalAnchor = (container, { scopeId, resolvedMode, zIndex = OVERLAY_ROOT_Z_INDEX_FALLBACK }) => {
|
|
40
41
|
const anchor = document.createElement('div');
|
|
41
42
|
if (container === document.body) {
|
|
42
|
-
anchor
|
|
43
|
+
// An in-flow anchor after the app sits at the document's end, and React Aria clamps popovers to it, so menus opened below the viewport.
|
|
44
|
+
anchor.style.position = 'fixed';
|
|
45
|
+
anchor.style.top = '0';
|
|
46
|
+
anchor.style.left = '0';
|
|
47
|
+
anchor.style.width = '0';
|
|
43
48
|
anchor.style.height = '0';
|
|
44
49
|
anchor.style.zIndex = String(zIndex);
|
|
45
|
-
// A flex or grid body must not stretch the block or give it a share of the space; a `gap` still applies.
|
|
46
|
-
anchor.style.flex = '0 0 auto';
|
|
47
|
-
anchor.style.alignSelf = 'flex-start';
|
|
48
|
-
anchor.style.margin = '0';
|
|
49
50
|
}
|
|
50
51
|
else {
|
|
51
52
|
anchor.style.display = 'contents';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePortalAnchor.cjs","sources":["../../../../src/providers/UIProvider/hooks/usePortalAnchor.ts"],"sourcesContent":[null],"names":["useMemo","useState","useRef","useLayoutEffect","useCallback"],"mappings":";;;;AAOA;AACO,MAAM,6BAA6B,GAAG;AAE7C;;;;;;;AAOG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA6B,KAAY;AACzE,IAAA,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG;AAClI,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,6BAA6B;AACvE;AAEA,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI;AAExC;;;;;;;AAOG;AACI,MAAM,sBAAsB,GAAG,CAAC,eAAoC,EAAE,OAA2B,KACtG,eAAe,KAAK,SAAS,IAAI,OAAO,GAAG,YAAY,IAAI,eAAe,IAAI,IAAI;AAEpF
|
|
1
|
+
{"version":3,"file":"usePortalAnchor.cjs","sources":["../../../../src/providers/UIProvider/hooks/usePortalAnchor.ts"],"sourcesContent":[null],"names":["useMemo","useState","useRef","useLayoutEffect","useCallback"],"mappings":";;;;AAOA;AACO,MAAM,6BAA6B,GAAG;AAE7C;;;;;;;AAOG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA6B,KAAY;AACzE,IAAA,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG;AAClI,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,6BAA6B;AACvE;AAEA,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI;AAExC;;;;;;;AAOG;AACI,MAAM,sBAAsB,GAAG,CAAC,eAAoC,EAAE,OAA2B,KACtG,eAAe,KAAK,SAAS,IAAI,OAAO,GAAG,YAAY,IAAI,eAAe,IAAI,IAAI;AAEpF;;;;;;;;;;AAUG;AACI,MAAM,kBAAkB,GAAG,CAChC,SAAsB,EACtB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,6BAA6B,EAAyE,KACzH;IACf,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5C,IAAA,IAAI,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE;;AAE/B,QAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC/B,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACtB,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACvB,QAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;AACxB,QAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QACzB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC;SAAO;AACL,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU;IACnC;AACA,IAAA,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC;AAC/C,IAAA,IAAI,OAAO;AAAE,QAAA,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC;AAC3D,IAAA,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7B,IAAA,OAAO,MAAM;AACf;AAaA;;;;;;;;;AASG;AACI,MAAM,eAAe,GAAG,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAA0B,KAAgC;IAC3I,MAAM,gBAAgB,GAAGA,aAAO,CAAC,MAAM,sBAAsB,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAAqB,IAAI,CAAC;AAC1E,IAAA,MAAM,gBAAgB,GAAGC,YAAM,CAAqB,IAAI,CAAC;AACzD,IAAA,MAAM,qBAAqB,GAAGA,YAAM,CAAqB,IAAI,CAAC;;;IAI9DC,qBAAe,CAAC,MAAK;AACnB,QAAA,MAAM,QAAQ,GAAG,gBAAgB,IAAI,IAAI,IAAI;AAC7C,QAAA,IAAI,QAAQ,KAAK,qBAAqB,CAAC,OAAO,EAAE;YAC9C;QACF;AAEA,QAAA,qBAAqB,CAAC,OAAO,GAAG,QAAQ;AACxC,QAAA,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE;AAClC,QAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;QAE/B,IAAI,CAAC,QAAQ,EAAE;YACb,eAAe,CAAC,IAAI,CAAC;YACrB;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5G,QAAA,gBAAgB,CAAC,OAAO,GAAG,MAAM;QACjC,eAAe,CAAC,MAAM,CAAC;AACzB,IAAA,CAAC,CAAC;AAEF,IAAAA,qBAAe,CACb,MAAM,MAAK;AACT,QAAA,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE;AAClC,QAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;;;AAG/B,QAAA,qBAAqB,CAAC,OAAO,GAAG,IAAI;IACtC,CAAC,EACD,EAAE,CACH;IAEDA,qBAAe,CAAC,MAAK;QACnB,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC;AACpE,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElBA,qBAAe,CAAC,MAAK;AACnB,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO;AACvC,QAAA,IAAI,CAAC,MAAM;YAAE;AACb,QAAA,IAAI,OAAO;AAAE,YAAA,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC;;AACtD,YAAA,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC;AAC/C,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;;;IAIbA,qBAAe,CAAC,MAAK;QACnB,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI;YAAE;AACnE,QAAA,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAClE,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;;;IAI7B,OAAOC,iBAAW,CAAC,MAAK;AACtB,QAAA,MAAM,QAAQ,GAAG,gBAAgB,IAAI,IAAI,IAAI;QAC7C,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,QAAQ,KAAK,qBAAqB,CAAC,OAAO,GAAG,YAAY,GAAG,IAAI;QACzE;QACA,IAAI,gBAAgB,EAAE;AACpB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,SAAS;IAClB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACjD;;;;;;"}
|
|
@@ -21,10 +21,11 @@ export declare const readOverlayZIndex: (themeRoot: HTMLElement | null) => numbe
|
|
|
21
21
|
*/
|
|
22
22
|
export declare const resolvePortalContainer: (portalContainer: PortalContainerProp, scopeId: string | undefined) => (() => HTMLElement | null) | null;
|
|
23
23
|
/**
|
|
24
|
-
* Builds the anchor overlays portal into. On `body` it is a zero-
|
|
25
|
-
* footprint
|
|
26
|
-
*
|
|
27
|
-
*
|
|
24
|
+
* Builds the anchor overlays portal into. On `body` it is a zero-size block fixed at the viewport origin: no
|
|
25
|
+
* layout footprint, a stacking context the host's `z-index` layers cannot beat, and the containing block React
|
|
26
|
+
* Aria positions popovers from, so a popover lands beside its trigger. Anywhere else it is `display: contents`,
|
|
27
|
+
* so it cannot disturb a flex or grid host. It carries `data-theme` and, with a scope, `data-mfe-scope`, which
|
|
28
|
+
* is what lets the app's scoped CSS reach an overlay rendered outside its tree.
|
|
28
29
|
*
|
|
29
30
|
* @param container The element the anchor is appended to.
|
|
30
31
|
* @param options The scope to stamp, if any, the resolved theme mode, and the stacking tier for a `body` anchor.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePortalAnchor.d.ts","sourceRoot":"","sources":["../../../../src/providers/UIProvider/hooks/usePortalAnchor.ts"],"names":[],"mappings":"AAIA,0GAA0G;AAC1G,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhF,+GAA+G;AAC/G,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,WAAW,GAAG,IAAI,KAAG,MAGjE,CAAC;AAIF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,iBAAiB,mBAAmB,EAAE,SAAS,MAAM,GAAG,SAAS,KAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,IACnD,CAAC;AAEtF
|
|
1
|
+
{"version":3,"file":"usePortalAnchor.d.ts","sourceRoot":"","sources":["../../../../src/providers/UIProvider/hooks/usePortalAnchor.ts"],"names":[],"mappings":"AAIA,0GAA0G;AAC1G,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhF,+GAA+G;AAC/G,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,WAAW,GAAG,IAAI,KAAG,MAGjE,CAAC;AAIF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,iBAAiB,mBAAmB,EAAE,SAAS,MAAM,GAAG,SAAS,KAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,IACnD,CAAC;AAEtF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,WAAW,EACtB,mCAAmE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KACvI,WAiBF,CAAC;AAEF,UAAU,sBAAsB;IAC9B,wDAAwD;IACxD,eAAe,EAAE,mBAAmB,CAAC;IACrC,gDAAgD;IAChD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,6DAA6D;IAC7D,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,2EAA2E;IAC3E,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,uDAAuD,sBAAsB,KAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAqExI,CAAC"}
|
|
@@ -25,10 +25,11 @@ const portalToBody = () => document.body;
|
|
|
25
25
|
*/
|
|
26
26
|
const resolvePortalContainer = (portalContainer, scopeId) => portalContainer === undefined && scopeId ? portalToBody : (portalContainer ?? null);
|
|
27
27
|
/**
|
|
28
|
-
* Builds the anchor overlays portal into. On `body` it is a zero-
|
|
29
|
-
* footprint
|
|
30
|
-
*
|
|
31
|
-
*
|
|
28
|
+
* Builds the anchor overlays portal into. On `body` it is a zero-size block fixed at the viewport origin: no
|
|
29
|
+
* layout footprint, a stacking context the host's `z-index` layers cannot beat, and the containing block React
|
|
30
|
+
* Aria positions popovers from, so a popover lands beside its trigger. Anywhere else it is `display: contents`,
|
|
31
|
+
* so it cannot disturb a flex or grid host. It carries `data-theme` and, with a scope, `data-mfe-scope`, which
|
|
32
|
+
* is what lets the app's scoped CSS reach an overlay rendered outside its tree.
|
|
32
33
|
*
|
|
33
34
|
* @param container The element the anchor is appended to.
|
|
34
35
|
* @param options The scope to stamp, if any, the resolved theme mode, and the stacking tier for a `body` anchor.
|
|
@@ -37,13 +38,13 @@ const resolvePortalContainer = (portalContainer, scopeId) => portalContainer ===
|
|
|
37
38
|
const createPortalAnchor = (container, { scopeId, resolvedMode, zIndex = OVERLAY_ROOT_Z_INDEX_FALLBACK }) => {
|
|
38
39
|
const anchor = document.createElement('div');
|
|
39
40
|
if (container === document.body) {
|
|
40
|
-
anchor
|
|
41
|
+
// An in-flow anchor after the app sits at the document's end, and React Aria clamps popovers to it, so menus opened below the viewport.
|
|
42
|
+
anchor.style.position = 'fixed';
|
|
43
|
+
anchor.style.top = '0';
|
|
44
|
+
anchor.style.left = '0';
|
|
45
|
+
anchor.style.width = '0';
|
|
41
46
|
anchor.style.height = '0';
|
|
42
47
|
anchor.style.zIndex = String(zIndex);
|
|
43
|
-
// A flex or grid body must not stretch the block or give it a share of the space; a `gap` still applies.
|
|
44
|
-
anchor.style.flex = '0 0 auto';
|
|
45
|
-
anchor.style.alignSelf = 'flex-start';
|
|
46
|
-
anchor.style.margin = '0';
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
50
|
anchor.style.display = 'contents';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePortalAnchor.js","sources":["../../../../src/providers/UIProvider/hooks/usePortalAnchor.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAOA;AACO,MAAM,6BAA6B,GAAG;AAE7C;;;;;;;AAOG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA6B,KAAY;AACzE,IAAA,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG;AAClI,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,6BAA6B;AACvE;AAEA,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI;AAExC;;;;;;;AAOG;AACI,MAAM,sBAAsB,GAAG,CAAC,eAAoC,EAAE,OAA2B,KACtG,eAAe,KAAK,SAAS,IAAI,OAAO,GAAG,YAAY,IAAI,eAAe,IAAI,IAAI;AAEpF
|
|
1
|
+
{"version":3,"file":"usePortalAnchor.js","sources":["../../../../src/providers/UIProvider/hooks/usePortalAnchor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Subscribes to the viewport resizing. Element sizes are better observed with `useResizeObserver`; this is for
|
|
5
|
+
* boxes that move with the viewport without resizing, such as a fixed element measured against it.
|
|
6
|
+
*
|
|
7
|
+
* @param onResize Called once per viewport resize.
|
|
8
|
+
* @returns Removes the subscription.
|
|
9
|
+
*/
|
|
10
|
+
const subscribeToViewportResize = (onResize) => {
|
|
11
|
+
window.addEventListener('resize', onResize);
|
|
12
|
+
return () => window.removeEventListener('resize', onResize);
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Calls back on every animation frame until unsubscribed. For a box that can move without any event reporting it, such
|
|
16
|
+
* as a host restyling an ancestor; keep the subscription short-lived, since it costs a measurement per frame.
|
|
17
|
+
*
|
|
18
|
+
* @param onFrame Called once per frame.
|
|
19
|
+
* @returns Cancels the pending frame and stops the loop.
|
|
20
|
+
*/
|
|
21
|
+
const subscribeToAnimationFrames = (onFrame) => {
|
|
22
|
+
// Cancelling only the pending frame is not enough: an unsubscribe from inside `onFrame` lands while that frame runs.
|
|
23
|
+
let active = true;
|
|
24
|
+
let frame = window.requestAnimationFrame(function tick() {
|
|
25
|
+
onFrame();
|
|
26
|
+
if (active)
|
|
27
|
+
frame = window.requestAnimationFrame(tick);
|
|
28
|
+
});
|
|
29
|
+
return () => {
|
|
30
|
+
active = false;
|
|
31
|
+
window.cancelAnimationFrame(frame);
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports.subscribeToAnimationFrames = subscribeToAnimationFrames;
|
|
36
|
+
exports.subscribeToViewportResize = subscribeToViewportResize;
|
|
37
|
+
//# sourceMappingURL=viewport.utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.utils.cjs","sources":["../../../../src/utilities/__internal__/viewportUtils/viewport.utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;AAMG;AACI,MAAM,yBAAyB,GAAG,CAAC,QAAoB,KAAkB;AAC9E,IAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC3C,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC7D;AAEA;;;;;;AAMG;AACI,MAAM,0BAA0B,GAAG,CAAC,OAAmB,KAAkB;;IAE9E,IAAI,MAAM,GAAG,IAAI;AACjB,IAAA,IAAI,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,IAAI,GAAA;AACpD,QAAA,OAAO,EAAE;AACT,QAAA,IAAI,MAAM;AAAE,YAAA,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;AACxD,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,MAAK;QACV,MAAM,GAAG,KAAK;AACd,QAAA,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACpC,IAAA,CAAC;AACH;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscribes to the viewport resizing. Element sizes are better observed with `useResizeObserver`; this is for
|
|
3
|
+
* boxes that move with the viewport without resizing, such as a fixed element measured against it.
|
|
4
|
+
*
|
|
5
|
+
* @param onResize Called once per viewport resize.
|
|
6
|
+
* @returns Removes the subscription.
|
|
7
|
+
*/
|
|
8
|
+
export declare const subscribeToViewportResize: (onResize: () => void) => (() => void);
|
|
9
|
+
/**
|
|
10
|
+
* Calls back on every animation frame until unsubscribed. For a box that can move without any event reporting it, such
|
|
11
|
+
* as a host restyling an ancestor; keep the subscription short-lived, since it costs a measurement per frame.
|
|
12
|
+
*
|
|
13
|
+
* @param onFrame Called once per frame.
|
|
14
|
+
* @returns Cancels the pending frame and stops the loop.
|
|
15
|
+
*/
|
|
16
|
+
export declare const subscribeToAnimationFrames: (onFrame: () => void) => (() => void);
|
|
17
|
+
//# sourceMappingURL=viewport.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.utils.d.ts","sourceRoot":"","sources":["../../../../src/utilities/__internal__/viewportUtils/viewport.utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAG3E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAW3E,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscribes to the viewport resizing. Element sizes are better observed with `useResizeObserver`; this is for
|
|
3
|
+
* boxes that move with the viewport without resizing, such as a fixed element measured against it.
|
|
4
|
+
*
|
|
5
|
+
* @param onResize Called once per viewport resize.
|
|
6
|
+
* @returns Removes the subscription.
|
|
7
|
+
*/
|
|
8
|
+
const subscribeToViewportResize = (onResize) => {
|
|
9
|
+
window.addEventListener('resize', onResize);
|
|
10
|
+
return () => window.removeEventListener('resize', onResize);
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Calls back on every animation frame until unsubscribed. For a box that can move without any event reporting it, such
|
|
14
|
+
* as a host restyling an ancestor; keep the subscription short-lived, since it costs a measurement per frame.
|
|
15
|
+
*
|
|
16
|
+
* @param onFrame Called once per frame.
|
|
17
|
+
* @returns Cancels the pending frame and stops the loop.
|
|
18
|
+
*/
|
|
19
|
+
const subscribeToAnimationFrames = (onFrame) => {
|
|
20
|
+
// Cancelling only the pending frame is not enough: an unsubscribe from inside `onFrame` lands while that frame runs.
|
|
21
|
+
let active = true;
|
|
22
|
+
let frame = window.requestAnimationFrame(function tick() {
|
|
23
|
+
onFrame();
|
|
24
|
+
if (active)
|
|
25
|
+
frame = window.requestAnimationFrame(tick);
|
|
26
|
+
});
|
|
27
|
+
return () => {
|
|
28
|
+
active = false;
|
|
29
|
+
window.cancelAnimationFrame(frame);
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { subscribeToAnimationFrames, subscribeToViewportResize };
|
|
34
|
+
//# sourceMappingURL=viewport.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.utils.js","sources":["../../../../src/utilities/__internal__/viewportUtils/viewport.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;AAMG;AACI,MAAM,yBAAyB,GAAG,CAAC,QAAoB,KAAkB;AAC9E,IAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC3C,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC7D;AAEA;;;;;;AAMG;AACI,MAAM,0BAA0B,GAAG,CAAC,OAAmB,KAAkB;;IAE9E,IAAI,MAAM,GAAG,IAAI;AACjB,IAAA,IAAI,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,IAAI,GAAA;AACpD,QAAA,OAAO,EAAE;AACT,QAAA,IAAI,MAAM;AAAE,YAAA,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;AACxD,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,MAAK;QACV,MAAM,GAAG,KAAK;AACd,QAAA,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACpC,IAAA,CAAC;AACH;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flipdish/ui-library",
|
|
3
|
-
"version": "0.43.
|
|
3
|
+
"version": "0.43.2",
|
|
4
4
|
"description": "Flipdish Design System — atomic-design component library (Tailwind v4 + UntitledUI + React Aria).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
@@ -284,6 +284,7 @@
|
|
|
284
284
|
"build:web": "rollup -c && tsc -p tsconfig.build.json",
|
|
285
285
|
"build:native": "rollup -c rollup.native.config.js && tsc -p tsconfig.build.native.json && node scripts/finalise-native-types.mjs && node scripts/emit-native-stubs.mjs",
|
|
286
286
|
"lint:imports": "node scripts/check-deep-imports.mjs",
|
|
287
|
+
"lint:utilities": "node scripts/check-utilities.mjs --from-styles",
|
|
287
288
|
"typecheck": "tsc --noEmit",
|
|
288
289
|
"test": "vitest run --project unit",
|
|
289
290
|
"test:watch": "vitest --project unit",
|