@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.
@@ -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
- export const Menu = _ref => {
15
- let children = _ref.children,
16
- _ref$disableFocusLock = _ref.disableFocusLock,
17
- disableFocusLock = _ref$disableFocusLock === void 0 ? false : _ref$disableFocusLock,
18
- onMenuClick = _ref.onMenuClick,
19
- _ref$handleScroll = _ref.handleScroll,
20
- handleScroll = _ref$handleScroll === void 0 ? true : _ref$handleScroll,
21
- _ref$mode = _ref.mode,
22
- mode = _ref$mode === void 0 ? "normal" : _ref$mode,
23
- _ref$open = _ref.open,
24
- defaultOpen = _ref$open === void 0 ? false : _ref$open,
25
- onOpen = _ref.onOpen,
26
- onClose = _ref.onClose,
27
- onBeforeClose = _ref.onBeforeClose,
28
- _ref$position = _ref.position,
29
- position = _ref$position === void 0 ? "bottom-start" : _ref$position,
30
- target = _ref.target,
31
- className = _ref.className,
32
- menuClassName = _ref.menuClassName,
33
- popperClassName = _ref.popperClassName,
34
- backgroundElementClass = _ref.backgroundElementClass,
35
- _ref$windowAbsolutely = _ref.windowAbsolutelyPositioned,
36
- windowAbsolutelyPositioned = _ref$windowAbsolutely === void 0 ? false : _ref$windowAbsolutely,
37
- onPopperOpen = _ref.onPopperOpen;
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
- }, _ref2 => {
147
- let placement = _ref2.placement,
148
- transitionProps = _ref2.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-my-1 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;EAAA;EAAA;AAAwE,CAAC,EAE3EJ,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":[]}
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":[]}