@activecollab/components 2.0.455 → 2.0.456
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/cjs/components/Button/Styles.js +32 -7
- package/dist/cjs/components/Button/Styles.js.map +1 -1
- package/dist/cjs/components/CounterButton/Styles.js +3 -3
- package/dist/cjs/components/CounterButton/Styles.js.map +1 -1
- package/dist/cjs/components/Filter/Filter.js +0 -1
- package/dist/cjs/components/Filter/Filter.js.map +1 -1
- package/dist/cjs/components/Menu/Menu.js +127 -29
- package/dist/cjs/components/Menu/Menu.js.map +1 -1
- package/dist/cjs/components/Menu/Styles.js +0 -2
- package/dist/cjs/components/Menu/Styles.js.map +1 -1
- package/dist/esm/components/Button/Styles.d.ts.map +1 -1
- package/dist/esm/components/Button/Styles.js +24 -1
- package/dist/esm/components/Button/Styles.js.map +1 -1
- package/dist/esm/components/CounterButton/Styles.d.ts.map +1 -1
- package/dist/esm/components/CounterButton/Styles.js +3 -3
- package/dist/esm/components/CounterButton/Styles.js.map +1 -1
- package/dist/esm/components/Filter/Filter.d.ts.map +1 -1
- package/dist/esm/components/Filter/Filter.js +0 -1
- package/dist/esm/components/Filter/Filter.js.map +1 -1
- package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.js +111 -30
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/Styles.js +0 -2
- package/dist/esm/components/Menu/Styles.js.map +1 -1
- package/dist/index.js +162 -42
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useRef, useState, useCallback, useEffect } from "react";
|
|
1
|
+
import React, { useRef, useState, useCallback, useEffect, useMemo } from "react";
|
|
2
2
|
import classnames from "classnames";
|
|
3
3
|
import { MenuContextProvider } from "./context";
|
|
4
4
|
import { StyledMenu } from "./Styles";
|
|
@@ -11,30 +11,87 @@ import { Window } from "../Window";
|
|
|
11
11
|
// source: https://twitter.com/mattpocockuk/status/1671908303918473217/photo/1
|
|
12
12
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
14
|
+
const isFocusVisible = element => {
|
|
15
|
+
try {
|
|
16
|
+
return Boolean(element == null ? void 0 : element.matches(":focus-visible"));
|
|
17
|
+
} catch (_unused) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const TRIGGER = 'button, [role="button"], a[href]';
|
|
22
|
+
|
|
23
|
+
// A target can wrap its button, as a div around a Tooltip or a CounterButton does.
|
|
24
|
+
const triggerOf = node => {
|
|
25
|
+
var _node$querySelector;
|
|
26
|
+
return node.matches(TRIGGER) ? node : (_node$querySelector = node.querySelector(TRIGGER)) != null ? _node$querySelector : node;
|
|
27
|
+
};
|
|
28
|
+
const visibleBoxOf = node => {
|
|
29
|
+
const rects = [node, ...Array.from(node.children)].map(element => element.getBoundingClientRect());
|
|
30
|
+
return {
|
|
31
|
+
left: Math.min(...rects.map(rect => rect.left)),
|
|
32
|
+
right: Math.max(...rects.map(rect => rect.right)),
|
|
33
|
+
top: Math.min(...rects.map(rect => rect.top)),
|
|
34
|
+
bottom: Math.max(...rects.map(rect => rect.bottom))
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// A control group pulls a wrapped button out of its wrapper by negative margins, so the menu lines up with the button.
|
|
39
|
+
const offsetToVisibleBox = node => ({
|
|
40
|
+
name: "offset",
|
|
41
|
+
options: {
|
|
42
|
+
offset: _ref => {
|
|
43
|
+
let placement = _ref.placement;
|
|
44
|
+
if (triggerOf(node) === node) {
|
|
45
|
+
return [0, 0];
|
|
46
|
+
}
|
|
47
|
+
const wrapper = node.getBoundingClientRect();
|
|
48
|
+
const box = visibleBoxOf(node);
|
|
49
|
+
const _placement$split = placement.split("-"),
|
|
50
|
+
side = _placement$split[0],
|
|
51
|
+
align = _placement$split[1];
|
|
52
|
+
const vertical = side === "top" || side === "bottom";
|
|
53
|
+
const start = vertical ? "left" : "top";
|
|
54
|
+
const end = vertical ? "right" : "bottom";
|
|
55
|
+
const skidding = align === "start" ? box[start] - wrapper[start] : align === "end" ? box[end] - wrapper[end] : (box[start] + box[end] - wrapper[start] - wrapper[end]) / 2;
|
|
56
|
+
const distance = {
|
|
57
|
+
bottom: box.bottom - wrapper.bottom,
|
|
58
|
+
top: wrapper.top - box.top,
|
|
59
|
+
right: box.right - wrapper.right,
|
|
60
|
+
left: wrapper.left - box.left
|
|
61
|
+
}[side];
|
|
62
|
+
return [skidding, distance != null ? distance : 0];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// A menu opened with the pointer hands the focus back without a focus ring, so its trigger does not stay lit.
|
|
68
|
+
const returnFocusOptions = visible => ({
|
|
69
|
+
focusVisible: visible
|
|
70
|
+
});
|
|
71
|
+
export const Menu = _ref2 => {
|
|
72
|
+
let children = _ref2.children,
|
|
73
|
+
_ref2$disableFocusLoc = _ref2.disableFocusLock,
|
|
74
|
+
disableFocusLock = _ref2$disableFocusLoc === void 0 ? false : _ref2$disableFocusLoc,
|
|
75
|
+
onMenuClick = _ref2.onMenuClick,
|
|
76
|
+
_ref2$handleScroll = _ref2.handleScroll,
|
|
77
|
+
handleScroll = _ref2$handleScroll === void 0 ? true : _ref2$handleScroll,
|
|
78
|
+
_ref2$mode = _ref2.mode,
|
|
79
|
+
mode = _ref2$mode === void 0 ? "normal" : _ref2$mode,
|
|
80
|
+
_ref2$open = _ref2.open,
|
|
81
|
+
defaultOpen = _ref2$open === void 0 ? false : _ref2$open,
|
|
82
|
+
onOpen = _ref2.onOpen,
|
|
83
|
+
onClose = _ref2.onClose,
|
|
84
|
+
onBeforeClose = _ref2.onBeforeClose,
|
|
85
|
+
_ref2$position = _ref2.position,
|
|
86
|
+
position = _ref2$position === void 0 ? "bottom-start" : _ref2$position,
|
|
87
|
+
target = _ref2.target,
|
|
88
|
+
className = _ref2.className,
|
|
89
|
+
menuClassName = _ref2.menuClassName,
|
|
90
|
+
popperClassName = _ref2.popperClassName,
|
|
91
|
+
backgroundElementClass = _ref2.backgroundElementClass,
|
|
92
|
+
_ref2$windowAbsolutel = _ref2.windowAbsolutelyPositioned,
|
|
93
|
+
windowAbsolutelyPositioned = _ref2$windowAbsolutel === void 0 ? false : _ref2$windowAbsolutel,
|
|
94
|
+
onPopperOpen = _ref2.onPopperOpen;
|
|
38
95
|
const _useState = useState(defaultOpen),
|
|
39
96
|
open = _useState[0],
|
|
40
97
|
setOpen = _useState[1];
|
|
@@ -48,12 +105,14 @@ export const Menu = _ref => {
|
|
|
48
105
|
const isOpenAtLeastOnce = useRef(false);
|
|
49
106
|
const wasOpen = useRef(open);
|
|
50
107
|
const focusBeforeOpen = useRef(null);
|
|
108
|
+
const focusWasVisible = useRef(false);
|
|
51
109
|
const returnFocusTo = useRef(null);
|
|
52
110
|
const popperRef = useRef(null);
|
|
53
111
|
|
|
54
112
|
// Read on the render that opens the menu, before the focus lock moves the focus inside it.
|
|
55
113
|
if (open && !wasOpen.current && typeof document !== "undefined") {
|
|
56
114
|
focusBeforeOpen.current = document.activeElement;
|
|
115
|
+
focusWasVisible.current = isFocusVisible(document.activeElement);
|
|
57
116
|
}
|
|
58
117
|
wasOpen.current = open;
|
|
59
118
|
useEffect(() => {
|
|
@@ -64,8 +123,29 @@ export const Menu = _ref => {
|
|
|
64
123
|
setExited(false);
|
|
65
124
|
}
|
|
66
125
|
}, [open]);
|
|
126
|
+
|
|
127
|
+
// Set on the node itself, so the trigger gets it also through a wrapper such as Tooltip.
|
|
128
|
+
const expandedTrigger = useRef(null);
|
|
129
|
+
useEffect(() => {
|
|
130
|
+
const node = elementRef.current;
|
|
131
|
+
if (!node) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const trigger = triggerOf(node);
|
|
135
|
+
if (!trigger.hasAttribute("aria-haspopup")) {
|
|
136
|
+
trigger.setAttribute("aria-haspopup", "true");
|
|
137
|
+
}
|
|
138
|
+
if (open) {
|
|
139
|
+
trigger.setAttribute("aria-expanded", "true");
|
|
140
|
+
expandedTrigger.current = trigger;
|
|
141
|
+
} else if (expandedTrigger.current) {
|
|
142
|
+
expandedTrigger.current.removeAttribute("aria-expanded");
|
|
143
|
+
expandedTrigger.current = null;
|
|
144
|
+
}
|
|
145
|
+
}, [open, childNode]);
|
|
67
146
|
const handleRefRef = useForkRef(target ? target.ref : undefined, setChildNode);
|
|
68
147
|
const handleRef = useForkRef(handleRefRef, elementRef);
|
|
148
|
+
const popperModifiers = useMemo(() => childNode instanceof HTMLElement ? [offsetToVisibleBox(childNode)] : undefined, [childNode]);
|
|
69
149
|
const handleOpen = useCallback(event => {
|
|
70
150
|
var _target$props;
|
|
71
151
|
event == null || event.preventDefault();
|
|
@@ -96,7 +176,7 @@ export const Menu = _ref => {
|
|
|
96
176
|
const previous = focusBeforeOpen.current;
|
|
97
177
|
const returnTo = previous instanceof HTMLElement && previous.isConnected ? previous : elementRef.current;
|
|
98
178
|
returnFocusTo.current = returnTo;
|
|
99
|
-
returnTo == null || returnTo.focus();
|
|
179
|
+
returnTo == null || returnTo.focus(returnFocusOptions(focusWasVisible.current));
|
|
100
180
|
isOpenAtLeastOnce.current = false;
|
|
101
181
|
}
|
|
102
182
|
}, [open]);
|
|
@@ -111,7 +191,7 @@ export const Menu = _ref => {
|
|
|
111
191
|
var _popperRef$current;
|
|
112
192
|
if ((_popperRef$current = popperRef.current) != null && _popperRef$current.contains(event.target)) {
|
|
113
193
|
var _returnFocusTo$curren;
|
|
114
|
-
(_returnFocusTo$curren = returnFocusTo.current) == null || _returnFocusTo$curren.focus();
|
|
194
|
+
(_returnFocusTo$curren = returnFocusTo.current) == null || _returnFocusTo$curren.focus(returnFocusOptions(focusWasVisible.current));
|
|
115
195
|
}
|
|
116
196
|
};
|
|
117
197
|
document.addEventListener("focusin", keepFocusOut, true);
|
|
@@ -142,10 +222,11 @@ export const Menu = _ref => {
|
|
|
142
222
|
className: popperClassName,
|
|
143
223
|
tabIndex: -1,
|
|
144
224
|
afterWrite: onPopperOpen,
|
|
225
|
+
modifiers: popperModifiers,
|
|
145
226
|
transition: true
|
|
146
|
-
},
|
|
147
|
-
let placement =
|
|
148
|
-
transitionProps =
|
|
227
|
+
}, _ref3 => {
|
|
228
|
+
let placement = _ref3.placement,
|
|
229
|
+
transitionProps = _ref3.transitionProps;
|
|
149
230
|
return /*#__PURE__*/React.createElement(Grow, {
|
|
150
231
|
placement: placement,
|
|
151
232
|
in: transitionProps == null ? void 0 : transitionProps.in,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","names":["React","useRef","useState","useCallback","useEffect","classnames","MenuContextProvider","StyledMenu","useForkRef","Overlay","Popper","Grow","Window","Menu","_ref","children","_ref$disableFocusLock","disableFocusLock","onMenuClick","_ref$handleScroll","handleScroll","_ref$mode","mode","_ref$open","open","defaultOpen","onOpen","onClose","onBeforeClose","_ref$position","position","target","className","menuClassName","popperClassName","backgroundElementClass","_ref$windowAbsolutely","windowAbsolutelyPositioned","onPopperOpen","_useState","setOpen","_useState2","exited","setExited","_useState3","childNode","setChildNode","elementRef","isOpenAtLeastOnce","wasOpen","focusBeforeOpen","returnFocusTo","popperRef","current","document","activeElement","handleRefRef","ref","undefined","handleRef","handleOpen","event","_target$props","preventDefault","stopPropagation","props","onClick","handleClose","childProps","forceClose","targetProps","previous","returnTo","HTMLElement","isConnected","focus","keepFocusOut","_popperRef$current","contains","_returnFocusTo$curren","addEventListener","removeEventListener","createElement","Fragment","cloneElement","disableScrollLock","disableCloseOnEsc","style","tabIndex","disableBackgroundColor","anchorEl","placement","afterWrite","transition","_ref2","transitionProps","in","onEnter","onExited","$mode","onMouseDown","pointerEvents","value","displayName"],"sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, {\n useRef,\n FC,\n ReactNode,\n MouseEvent,\n useState,\n useCallback,\n useEffect,\n ReactElement,\n Ref,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\n\nimport { MenuContextProvider } from \"./context\";\nimport { StyledMenu } from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Overlay } from \"../Overlay\";\nimport { Popper } from \"../Popper\";\nimport { Grow } from \"../Transitions\";\nimport { Window } from \"../Window\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\n// source: https://twitter.com/mattpocockuk/status/1671908303918473217/photo/1\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MenuMode = \"normal\" | \"wider\" | \"tiny\" | \"widest\";\n\nexport interface IMenu {\n /** Menu content */\n children:\n | ReactNode\n | ((childProps: { forceClose: () => void }) => JSX.Element);\n /** On menu element click */\n onMenuClick?: (event: MouseEvent<HTMLElement>) => void;\n /** Handle scroll bar */\n handleScroll?: boolean;\n /** Disable Focus Lock */\n disableFocusLock?: boolean;\n /** Menu width mode */\n mode?: MenuMode;\n /** Should menu be open when it's mounted */\n open?: boolean;\n /** Callback triggered when modal has been opened */\n onOpen?: () => void;\n /** Callback triggered when modal has been closed */\n onClose?: () => void;\n /** Before close callback */\n onBeforeClose?: () => boolean;\n /** Position Menu */\n position?: Placement;\n /** Target element */\n target?: ElementWithRef<Element>;\n className?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Should Window be positioned absolutely */\n windowAbsolutelyPositioned?: boolean;\n /** Popper on open */\n onPopperOpen?: (...args) => void;\n}\n\nexport const Menu: FC<IMenu> = ({\n children,\n disableFocusLock = false,\n onMenuClick,\n handleScroll = true,\n mode = \"normal\",\n open: defaultOpen = false,\n onOpen,\n onClose,\n onBeforeClose,\n position = \"bottom-start\",\n target,\n className,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n windowAbsolutelyPositioned = false,\n onPopperOpen,\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(!defaultOpen);\n const [childNode, setChildNode] = useState<Element | null>();\n const elementRef = useRef<HTMLElement | null>(null);\n const isOpenAtLeastOnce = useRef(false);\n const wasOpen = useRef(open);\n const focusBeforeOpen = useRef<Element | null>(null);\n const returnFocusTo = useRef<HTMLElement | null>(null);\n const popperRef = useRef<HTMLDivElement | null>(null);\n\n // Read on the render that opens the menu, before the focus lock moves the focus inside it.\n if (open && !wasOpen.current && typeof document !== \"undefined\") {\n focusBeforeOpen.current = document.activeElement;\n }\n wasOpen.current = open;\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (open) {\n setExited(false);\n }\n }, [open]);\n\n const handleRefRef = useForkRef(\n target ? target.ref : undefined,\n setChildNode\n );\n const handleRef = useForkRef(handleRefRef, elementRef);\n\n const handleOpen = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event?.preventDefault();\n event?.stopPropagation();\n setOpen(true);\n typeof onOpen === \"function\" && onOpen();\n typeof target?.props?.onClick === \"function\" &&\n target.props.onClick(event);\n },\n [onOpen, target?.props]\n );\n\n const handleClose = useCallback(() => {\n if (typeof onBeforeClose === \"function\" && !onBeforeClose()) {\n return;\n }\n setOpen(false);\n typeof onClose === \"function\" && onClose();\n }, [onClose, onBeforeClose]);\n\n const childProps = {\n forceClose: handleClose,\n };\n\n const targetProps = {\n open,\n ref: handleRef,\n onClick: handleOpen,\n };\n\n useEffect(() => {\n if (open) {\n isOpenAtLeastOnce.current = true;\n } else if (!open && isOpenAtLeastOnce.current) {\n const previous = focusBeforeOpen.current;\n const returnTo =\n previous instanceof HTMLElement && previous.isConnected\n ? previous\n : elementRef.current;\n\n returnFocusTo.current = returnTo;\n returnTo?.focus();\n isOpenAtLeastOnce.current = false;\n }\n }, [open]);\n\n // A fading menu is already closed. Its content can still reach for the focus, and would take it away\n // with it when it unmounts, so the focus goes straight back to where the menu returned it.\n useEffect(() => {\n if (open || exited) {\n return undefined;\n }\n\n const keepFocusOut = (event: FocusEvent) => {\n if (popperRef.current?.contains(event.target as Node)) {\n returnFocusTo.current?.focus();\n }\n };\n\n document.addEventListener(\"focusin\", keepFocusOut, true);\n\n return () => document.removeEventListener(\"focusin\", keepFocusOut, true);\n }, [open, exited]);\n\n return (\n <>\n {target && React.cloneElement(target, targetProps)}\n {open || !exited ? (\n <Window\n onClose={handleClose}\n disableScrollLock={!handleScroll}\n // The menu returns the focus itself at once, so a late returnFocus cannot undo a caller's move.\n disableFocusLock={disableFocusLock || !open}\n // A fading menu is already closed, so an escape pressed meanwhile belongs to the page behind it.\n disableCloseOnEsc={!open}\n style={{\n position: windowAbsolutelyPositioned ? \"absolute\" : \"fixed\",\n }}\n >\n {/* A closing menu must not swallow the click that lands while it fades out. */}\n {open ? (\n <Overlay\n className={backgroundElementClass}\n onClick={handleClose}\n tabIndex={-1}\n disableBackgroundColor\n />\n ) : null}\n <Popper\n ref={popperRef}\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={position}\n className={popperClassName}\n tabIndex={-1}\n afterWrite={onPopperOpen}\n transition\n >\n {({ placement, transitionProps }) => (\n <Grow\n placement={placement}\n in={transitionProps?.in}\n onEnter={transitionProps?.onEnter}\n onExited={() => {\n setExited(true);\n transitionProps?.onExited?.();\n }}\n >\n <StyledMenu\n className={classnames(\n \"c-simple-menu__paper\",\n `c-simple-menu__${mode}`,\n menuClassName,\n className\n )}\n $mode={mode}\n onMouseDown={onMenuClick}\n style={open ? undefined : { pointerEvents: \"none\" }}\n >\n <MenuContextProvider value={{ open, setOpen }}>\n {typeof children === \"function\"\n ? children(childProps)\n : children}\n </MenuContextProvider>\n </StyledMenu>\n </Grow>\n )}\n </Popper>\n </Window>\n ) : null}\n </>\n );\n};\n\nMenu.displayName = \"Menu\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["React","useRef","useState","useCallback","useEffect","useMemo","classnames","MenuContextProvider","StyledMenu","useForkRef","Overlay","Popper","Grow","Window","isFocusVisible","element","Boolean","matches","_unused","TRIGGER","triggerOf","node","_node$querySelector","querySelector","visibleBoxOf","rects","Array","from","children","map","getBoundingClientRect","left","Math","min","rect","right","max","top","bottom","offsetToVisibleBox","name","options","offset","_ref","placement","wrapper","box","_placement$split","split","side","align","vertical","start","end","skidding","distance","returnFocusOptions","visible","focusVisible","Menu","_ref2","_ref2$disableFocusLoc","disableFocusLock","onMenuClick","_ref2$handleScroll","handleScroll","_ref2$mode","mode","_ref2$open","open","defaultOpen","onOpen","onClose","onBeforeClose","_ref2$position","position","target","className","menuClassName","popperClassName","backgroundElementClass","_ref2$windowAbsolutel","windowAbsolutelyPositioned","onPopperOpen","_useState","setOpen","_useState2","exited","setExited","_useState3","childNode","setChildNode","elementRef","isOpenAtLeastOnce","wasOpen","focusBeforeOpen","focusWasVisible","returnFocusTo","popperRef","current","document","activeElement","expandedTrigger","trigger","hasAttribute","setAttribute","removeAttribute","handleRefRef","ref","undefined","handleRef","popperModifiers","HTMLElement","handleOpen","event","_target$props","preventDefault","stopPropagation","props","onClick","handleClose","childProps","forceClose","targetProps","previous","returnTo","isConnected","focus","keepFocusOut","_popperRef$current","contains","_returnFocusTo$curren","addEventListener","removeEventListener","createElement","Fragment","cloneElement","disableScrollLock","disableCloseOnEsc","style","tabIndex","disableBackgroundColor","anchorEl","afterWrite","modifiers","transition","_ref3","transitionProps","in","onEnter","onExited","$mode","onMouseDown","pointerEvents","value","displayName"],"sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, {\n useRef,\n FC,\n ReactNode,\n MouseEvent,\n useState,\n useCallback,\n useEffect,\n useMemo,\n ReactElement,\n Ref,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\n\nimport { MenuContextProvider } from \"./context\";\nimport { StyledMenu } from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Overlay } from \"../Overlay\";\nimport { Popper } from \"../Popper\";\nimport { Grow } from \"../Transitions\";\nimport { Window } from \"../Window\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\n// source: https://twitter.com/mattpocockuk/status/1671908303918473217/photo/1\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MenuMode = \"normal\" | \"wider\" | \"tiny\" | \"widest\";\n\nexport interface IMenu {\n /** Menu content */\n children:\n | ReactNode\n | ((childProps: { forceClose: () => void }) => JSX.Element);\n /** On menu element click */\n onMenuClick?: (event: MouseEvent<HTMLElement>) => void;\n /** Handle scroll bar */\n handleScroll?: boolean;\n /** Disable Focus Lock */\n disableFocusLock?: boolean;\n /** Menu width mode */\n mode?: MenuMode;\n /** Should menu be open when it's mounted */\n open?: boolean;\n /** Callback triggered when modal has been opened */\n onOpen?: () => void;\n /** Callback triggered when modal has been closed */\n onClose?: () => void;\n /** Before close callback */\n onBeforeClose?: () => boolean;\n /** Position Menu */\n position?: Placement;\n /** Target element */\n target?: ElementWithRef<Element>;\n className?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Should Window be positioned absolutely */\n windowAbsolutelyPositioned?: boolean;\n /** Popper on open */\n onPopperOpen?: (...args) => void;\n}\n\nconst isFocusVisible = (element: Element | null) => {\n try {\n return Boolean(element?.matches(\":focus-visible\"));\n } catch {\n return false;\n }\n};\n\nconst TRIGGER = 'button, [role=\"button\"], a[href]';\n\n// A target can wrap its button, as a div around a Tooltip or a CounterButton does.\nconst triggerOf = (node: HTMLElement) =>\n node.matches(TRIGGER)\n ? node\n : node.querySelector<HTMLElement>(TRIGGER) ?? node;\n\nconst visibleBoxOf = (node: HTMLElement) => {\n const rects = [node, ...Array.from(node.children)].map((element) =>\n element.getBoundingClientRect()\n );\n\n return {\n left: Math.min(...rects.map((rect) => rect.left)),\n right: Math.max(...rects.map((rect) => rect.right)),\n top: Math.min(...rects.map((rect) => rect.top)),\n bottom: Math.max(...rects.map((rect) => rect.bottom)),\n };\n};\n\n// A control group pulls a wrapped button out of its wrapper by negative margins, so the menu lines up with the button.\nconst offsetToVisibleBox = (node: HTMLElement) => ({\n name: \"offset\",\n options: {\n offset: ({ placement }: { placement: Placement }): [number, number] => {\n if (triggerOf(node) === node) {\n return [0, 0];\n }\n\n const wrapper = node.getBoundingClientRect();\n const box = visibleBoxOf(node);\n const [side, align] = placement.split(\"-\");\n const vertical = side === \"top\" || side === \"bottom\";\n const start = vertical ? \"left\" : \"top\";\n const end = vertical ? \"right\" : \"bottom\";\n const skidding =\n align === \"start\"\n ? box[start] - wrapper[start]\n : align === \"end\"\n ? box[end] - wrapper[end]\n : (box[start] + box[end] - wrapper[start] - wrapper[end]) / 2;\n const distance = {\n bottom: box.bottom - wrapper.bottom,\n top: wrapper.top - box.top,\n right: box.right - wrapper.right,\n left: wrapper.left - box.left,\n }[side];\n\n return [skidding, distance ?? 0];\n },\n },\n});\n\n// A menu opened with the pointer hands the focus back without a focus ring, so its trigger does not stay lit.\nconst returnFocusOptions = (visible: boolean) =>\n ({ focusVisible: visible } as FocusOptions);\n\nexport const Menu: FC<IMenu> = ({\n children,\n disableFocusLock = false,\n onMenuClick,\n handleScroll = true,\n mode = \"normal\",\n open: defaultOpen = false,\n onOpen,\n onClose,\n onBeforeClose,\n position = \"bottom-start\",\n target,\n className,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n windowAbsolutelyPositioned = false,\n onPopperOpen,\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(!defaultOpen);\n const [childNode, setChildNode] = useState<Element | null>();\n const elementRef = useRef<HTMLElement | null>(null);\n const isOpenAtLeastOnce = useRef(false);\n const wasOpen = useRef(open);\n const focusBeforeOpen = useRef<Element | null>(null);\n const focusWasVisible = useRef(false);\n const returnFocusTo = useRef<HTMLElement | null>(null);\n const popperRef = useRef<HTMLDivElement | null>(null);\n\n // Read on the render that opens the menu, before the focus lock moves the focus inside it.\n if (open && !wasOpen.current && typeof document !== \"undefined\") {\n focusBeforeOpen.current = document.activeElement;\n focusWasVisible.current = isFocusVisible(document.activeElement);\n }\n wasOpen.current = open;\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (open) {\n setExited(false);\n }\n }, [open]);\n\n // Set on the node itself, so the trigger gets it also through a wrapper such as Tooltip.\n const expandedTrigger = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n const node = elementRef.current;\n\n if (!node) {\n return;\n }\n\n const trigger = triggerOf(node);\n\n if (!trigger.hasAttribute(\"aria-haspopup\")) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n }\n\n if (open) {\n trigger.setAttribute(\"aria-expanded\", \"true\");\n expandedTrigger.current = trigger;\n } else if (expandedTrigger.current) {\n expandedTrigger.current.removeAttribute(\"aria-expanded\");\n expandedTrigger.current = null;\n }\n }, [open, childNode]);\n\n const handleRefRef = useForkRef(\n target ? target.ref : undefined,\n setChildNode\n );\n const handleRef = useForkRef(handleRefRef, elementRef);\n\n const popperModifiers = useMemo(\n () =>\n childNode instanceof HTMLElement\n ? [offsetToVisibleBox(childNode)]\n : undefined,\n [childNode]\n );\n\n const handleOpen = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event?.preventDefault();\n event?.stopPropagation();\n setOpen(true);\n typeof onOpen === \"function\" && onOpen();\n typeof target?.props?.onClick === \"function\" &&\n target.props.onClick(event);\n },\n [onOpen, target?.props]\n );\n\n const handleClose = useCallback(() => {\n if (typeof onBeforeClose === \"function\" && !onBeforeClose()) {\n return;\n }\n setOpen(false);\n typeof onClose === \"function\" && onClose();\n }, [onClose, onBeforeClose]);\n\n const childProps = {\n forceClose: handleClose,\n };\n\n const targetProps = {\n open,\n ref: handleRef,\n onClick: handleOpen,\n };\n\n useEffect(() => {\n if (open) {\n isOpenAtLeastOnce.current = true;\n } else if (!open && isOpenAtLeastOnce.current) {\n const previous = focusBeforeOpen.current;\n const returnTo =\n previous instanceof HTMLElement && previous.isConnected\n ? previous\n : elementRef.current;\n\n returnFocusTo.current = returnTo;\n returnTo?.focus(returnFocusOptions(focusWasVisible.current));\n isOpenAtLeastOnce.current = false;\n }\n }, [open]);\n\n // A fading menu is already closed. Its content can still reach for the focus, and would take it away\n // with it when it unmounts, so the focus goes straight back to where the menu returned it.\n useEffect(() => {\n if (open || exited) {\n return undefined;\n }\n\n const keepFocusOut = (event: FocusEvent) => {\n if (popperRef.current?.contains(event.target as Node)) {\n returnFocusTo.current?.focus(\n returnFocusOptions(focusWasVisible.current)\n );\n }\n };\n\n document.addEventListener(\"focusin\", keepFocusOut, true);\n\n return () => document.removeEventListener(\"focusin\", keepFocusOut, true);\n }, [open, exited]);\n\n return (\n <>\n {target && React.cloneElement(target, targetProps)}\n {open || !exited ? (\n <Window\n onClose={handleClose}\n disableScrollLock={!handleScroll}\n // The menu returns the focus itself at once, so a late returnFocus cannot undo a caller's move.\n disableFocusLock={disableFocusLock || !open}\n // A fading menu is already closed, so an escape pressed meanwhile belongs to the page behind it.\n disableCloseOnEsc={!open}\n style={{\n position: windowAbsolutelyPositioned ? \"absolute\" : \"fixed\",\n }}\n >\n {/* A closing menu must not swallow the click that lands while it fades out. */}\n {open ? (\n <Overlay\n className={backgroundElementClass}\n onClick={handleClose}\n tabIndex={-1}\n disableBackgroundColor\n />\n ) : null}\n <Popper\n ref={popperRef}\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={position}\n className={popperClassName}\n tabIndex={-1}\n afterWrite={onPopperOpen}\n modifiers={popperModifiers}\n transition\n >\n {({ placement, transitionProps }) => (\n <Grow\n placement={placement}\n in={transitionProps?.in}\n onEnter={transitionProps?.onEnter}\n onExited={() => {\n setExited(true);\n transitionProps?.onExited?.();\n }}\n >\n <StyledMenu\n className={classnames(\n \"c-simple-menu__paper\",\n `c-simple-menu__${mode}`,\n menuClassName,\n className\n )}\n $mode={mode}\n onMouseDown={onMenuClick}\n style={open ? undefined : { pointerEvents: \"none\" }}\n >\n <MenuContextProvider value={{ open, setOpen }}>\n {typeof children === \"function\"\n ? children(childProps)\n : children}\n </MenuContextProvider>\n </StyledMenu>\n </Grow>\n )}\n </Popper>\n </Window>\n ) : null}\n </>\n );\n};\n\nMenu.displayName = \"Menu\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,8 +6,6 @@ export const StyledMenu = styled(Bubble).withConfig({
|
|
|
6
6
|
displayName: "Styles__StyledMenu",
|
|
7
7
|
componentId: "sc-8fhkp-0"
|
|
8
8
|
})(["", " ", " ", " color:var(--color-theme-700);a:focus,a:active{outline:none;}", " ", " ", " ", ""], {
|
|
9
|
-
"marginTop": "0.25rem",
|
|
10
|
-
"marginBottom": "0.25rem",
|
|
11
9
|
"overflow": "auto",
|
|
12
10
|
"borderColor": "var(--border-primary)",
|
|
13
11
|
"backgroundColor": "var(--page-paper-main)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","Bubble","FontStyle","StyledMenu","withConfig","displayName","componentId","props","$mode","StyledMenuFooter","div","StyledMenuHeader"],"sources":["../../../../src/components/Menu/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { Bubble } from \"../Bubble\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledMenu = styled(Bubble)<{ $mode: string }>`\n ${tw`tw-bg-page-paper-main tw-border-border-primary tw-
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","Bubble","FontStyle","StyledMenu","withConfig","displayName","componentId","props","$mode","StyledMenuFooter","div","StyledMenuHeader"],"sources":["../../../../src/components/Menu/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { Bubble } from \"../Bubble\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledMenu = styled(Bubble)<{ $mode: string }>`\n ${tw`tw-bg-page-paper-main tw-border-border-primary tw-overflow-auto`}\n\n ${FontStyle}\n ${BoxSizingStyle}\n \n color: var(--color-theme-700);\n a:focus,\n a:active {\n outline: none;\n }\n\n ${(props) =>\n props.$mode === \"normal\" &&\n css`\n width: 260px;\n `}\n\n ${(props) =>\n props.$mode === \"wider\" &&\n css`\n width: 350px;\n `}\n\n ${(props) =>\n props.$mode === \"tiny\" &&\n css`\n width: 180px;\n `}\n\n ${(props) =>\n props.$mode === \"widest\" &&\n css`\n width: 590px;\n `}\n`;\nStyledMenu.displayName = \"StyledMenu\";\n\nexport const StyledMenuFooter = styled.div`\n ${tw`tw-flex tw-px-2 tw-py-1`}\n\n display: flex;\n border-top: 1px solid var(--border-primary);\n height: 32px;\n align-items: center;\n`;\nStyledMenuFooter.displayName = \"StyledMenuFooter\";\n\nexport const StyledMenuHeader = styled.div`\n ${tw`tw-flex tw-items-center tw-justify-between tw-px-2 tw-py-1`}\n\n border-bottom: 1px solid var(--border-primary);\n height: 32px;\n`;\nStyledMenuHeader.displayName = \"StyledMenuHeader\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,SAAS,QAAQ,cAAc;AAExC,OAAO,MAAMC,UAAU,GAAGL,MAAM,CAACG,MAAM,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uGAClC;EAAA;EAAA;EAAA;AAAgE,CAAC,EAEnEJ,SAAS,EACTF,cAAc,EAQbO,KAAK,IACNA,KAAK,CAACC,KAAK,KAAK,QAAQ,IACxBT,GAAG,kBAEF,EAEAQ,KAAK,IACNA,KAAK,CAACC,KAAK,KAAK,OAAO,IACvBT,GAAG,kBAEF,EAEAQ,KAAK,IACNA,KAAK,CAACC,KAAK,KAAK,MAAM,IACtBT,GAAG,kBAEF,EAEAQ,KAAK,IACNA,KAAK,CAACC,KAAK,KAAK,QAAQ,IACxBT,GAAG,kBAEF,CACJ;AACDI,UAAU,CAACE,WAAW,GAAG,YAAY;AAErC,OAAO,MAAMI,gBAAgB,GAAGX,MAAM,CAACY,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qGACpC;EAAA;EAAA;EAAA;EAAA;EAAA;AAAwB,CAAC,CAM9B;AACDG,gBAAgB,CAACJ,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMM,gBAAgB,GAAGb,MAAM,CAACY,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wEACpC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAA2D,CAAC,CAIjE;AACDK,gBAAgB,CAACN,WAAW,GAAG,kBAAkB","ignoreList":[]}
|