@vuu-ui/vuu-popups 0.8.21 → 0.8.22-debug

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/esm/index.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/vuu-popups/src/dialog/Dialog.tsx", "../../../packages/vuu-popups/src/dialog-header/DialogHeader.tsx", "../../../packages/vuu-popups/src/popup/popup-service.ts", "../../../packages/vuu-popups/src/portal-deprecated/render-portal.tsx", "../../../packages/vuu-popups/src/popup/Popup.tsx", "../../../packages/vuu-popups/src/popup/useAnchoredPosition.ts", "../../../packages/vuu-popups/src/dialog/useDialog.tsx", "../../../packages/vuu-popups/src/menu/ContextMenu.tsx", "../../../packages/vuu-popups/src/portal/Portal.tsx", "../../../packages/vuu-popups/src/menu/MenuList.tsx", "../../../packages/vuu-popups/src/menu/use-items-with-ids-next.ts", "../../../packages/vuu-popups/src/menu/use-keyboard-navigation.ts", "../../../packages/vuu-popups/src/menu/utils.ts", "../../../packages/vuu-popups/src/menu/key-code.ts", "../../../packages/vuu-popups/src/menu/use-cascade.ts", "../../../packages/vuu-popups/src/menu/list-dom-utils.ts", "../../../packages/vuu-popups/src/menu/context-menu-provider.tsx", "../../../packages/vuu-popups/src/menu/useContextMenu.tsx", "../../../packages/vuu-popups/src/popup-menu/PopupMenu.tsx", "../../../packages/vuu-popups/src/prompt/Prompt.tsx", "../../../packages/vuu-popups/src/tooltip/useAnchoredPosition.ts", "../../../packages/vuu-popups/src/tooltip/Tooltip.tsx", "../../../packages/vuu-popups/src/tooltip/useTooltip.ts", "../../../packages/vuu-popups/src/notifications/NotificationsProvider.tsx"],
4
4
  "sourcesContent": ["import cx from \"clsx\";\nimport { useThemeAttributes } from \"@vuu-ui/vuu-utils\";\nimport { HTMLAttributes, useCallback, useLayoutEffect, useRef } from \"react\";\nimport { DialogHeader } from \"../dialog-header\";\n\nimport \"./Dialog.css\";\nimport { PopupComponentProps, useAnchoredPosition } from \"../popup\";\n\nconst classBase = \"vuuDialog\";\n\nconst AnchorBody = { current: document.body };\nconst EMPTY_PROPS = {};\n\nexport interface DialogProps extends HTMLAttributes<HTMLDialogElement> {\n PopupProps?: Partial<PopupComponentProps>;\n isOpen?: boolean;\n onClose?: () => void;\n hideCloseButton?: boolean;\n}\n\nexport const Dialog = ({\n PopupProps = EMPTY_PROPS,\n children,\n className,\n isOpen = false,\n onClose,\n style,\n title,\n hideCloseButton = false,\n ...htmlAttributes\n}: DialogProps) => {\n const {\n anchorElement = AnchorBody,\n offsetLeft = 0,\n offsetTop = 0,\n placement = \"auto\",\n } = PopupProps;\n\n const rootRef = useRef<HTMLDialogElement>(null);\n const portalRef = useRef<HTMLDivElement>(null);\n const [themeClass, densityClass, dataMode] = useThemeAttributes();\n const { position } = useAnchoredPosition({\n anchorElement,\n offsetLeft,\n offsetTop,\n placement,\n });\n\n const close = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n // if (!isOpen) {\n // return null;\n // }\n\n useLayoutEffect(() => {\n if (rootRef.current) {\n if (isOpen) {\n rootRef.current.showModal();\n\n const { left, top } = rootRef.current.getBoundingClientRect();\n if (portalRef.current) {\n portalRef.current.style.cssText = `left:-${left}px;position:absolute;top:-${top}px;`;\n }\n } else {\n rootRef.current.close();\n }\n if (placement.endsWith(\"center\")) {\n const { width } = rootRef.current.getBoundingClientRect();\n rootRef.current.style.marginLeft = `-${width / 2}px`;\n }\n }\n }, [isOpen, placement]);\n\n return (\n <dialog\n {...htmlAttributes}\n className={cx(classBase, themeClass)}\n data-mode={dataMode}\n onClose={close}\n id=\"vuu-dialog\"\n ref={rootRef}\n style={{ ...style, ...position }}\n >\n <DialogHeader\n hideCloseButton={hideCloseButton}\n onClose={close}\n title={title}\n />\n <div className={`${classBase}-body`}>{children}</div>\n <div id=\"vuu-dialog-portal-root\" ref={portalRef} />\n </dialog>\n );\n};\n", "import { Button, Text } from \"@salt-ds/core\";\nimport { HTMLAttributes } from \"react\";\nimport cx from \"clsx\";\n\nimport \"./DialogHeader.css\";\n\nconst classBase = \"vuuDialogHeader\";\n\nexport interface DialogHeaderProps extends HTMLAttributes<HTMLDivElement> {\n hideCloseButton?: boolean;\n onClose: () => void;\n}\n\nexport const DialogHeader = ({\n hideCloseButton = false,\n title,\n onClose,\n ...htmlAttributes\n}: DialogHeaderProps) => {\n return (\n <div {...htmlAttributes} className={cx(classBase, \"vuuToolbarProxy\")}>\n <Text className=\"dialogHeader\">{title}</Text>\n {!hideCloseButton && (\n <Button\n key=\"close\"\n onClick={onClose}\n data-align=\"end\"\n data-icon=\"close\"\n variant=\"secondary\"\n />\n )}\n </div>\n );\n};\n", "import cx from \"clsx\";\nimport React, {\n createElement,\n CSSProperties,\n HTMLAttributes,\n ReactElement,\n} from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { ContextMenuOptions } from \"../menu\";\nimport { renderPortal } from \"../portal-deprecated\";\n\nimport \"./popup-service.css\";\n\nlet _dialogOpen = false;\nconst _popups: string[] = [];\n\nexport type PopupCloseCallback = (reason?: PopupCloseReason) => void;\n\nexport type ClickAwayClosePopup = {\n type: \"click-away\";\n mouseEvt: MouseEvent;\n};\n\nexport type EscapeClosePopup = {\n type: \"escape\";\n event: KeyboardEvent;\n};\n\nexport type MenuActionClosePopup = {\n menuId: string;\n options: ContextMenuOptions;\n type: \"menu-action\";\n};\n\nexport type PopupCloseReason =\n | ClickAwayClosePopup\n | EscapeClosePopup\n | MenuActionClosePopup;\n\nexport const reasonIsMenuAction = (\n reason?: PopupCloseReason\n): reason is MenuActionClosePopup => reason?.type === \"menu-action\";\n\nexport const reasonIsClickAway = (\n reason?: PopupCloseReason\n): reason is ClickAwayClosePopup => reason?.type === \"click-away\";\n\nfunction specialKeyHandler(e: KeyboardEvent) {\n if (e.key === \"Esc\") {\n if (_popups.length) {\n closeAllPopups();\n } else if (_dialogOpen) {\n const dialogRoot = document.body.querySelector(\".vuuDialog\");\n if (dialogRoot) {\n ReactDOM.unmountComponentAtNode(dialogRoot);\n }\n }\n }\n}\n\nfunction outsideClickHandler(e: MouseEvent) {\n if (_popups.length) {\n const popupContainers = document.body.querySelectorAll(\n \".vuuPopup,#vuu-portal-root\"\n );\n for (let i = 0; i < popupContainers.length; i++) {\n if (popupContainers[i].contains(e.target as HTMLElement)) {\n return;\n }\n }\n closeAllPopups({ mouseEvt: e, type: \"click-away\" });\n }\n}\n\nfunction closeAllPopups(reason?: PopupCloseReason) {\n if (_popups.length === 1) {\n PopupService.hidePopup(reason, \"anon\", \"all\");\n } else if (_popups.length) {\n // onsole.log(`closeAllPopups`);\n const popupContainers = document.body.querySelectorAll(\".vuuPopup\");\n for (let i = 0; i < popupContainers.length; i++) {\n ReactDOM.unmountComponentAtNode(popupContainers[i]);\n }\n popupClosed(\"*\");\n }\n}\n\nfunction dialogOpened() {\n if (_dialogOpen === false) {\n _dialogOpen = true;\n window.addEventListener(\"keydown\", specialKeyHandler, true);\n }\n}\n\nfunction dialogClosed() {\n if (_dialogOpen) {\n _dialogOpen = false;\n window.removeEventListener(\"keydown\", specialKeyHandler, true);\n }\n}\n\nfunction popupOpened(name: string) {\n if (_popups.indexOf(name) === -1) {\n _popups.push(name);\n //onsole.log('PopupService, popup opened ' + name + ' popups : ' + _popups);\n if (_dialogOpen === false) {\n window.addEventListener(\"keydown\", specialKeyHandler, true);\n window.addEventListener(\"click\", outsideClickHandler, true);\n }\n }\n}\n\nfunction popupClosed(name: string /*, group=null*/) {\n if (_popups.length) {\n if (name === \"*\") {\n _popups.length = 0;\n } else {\n const pos = _popups.indexOf(name);\n if (pos !== -1) {\n _popups.splice(pos, 1);\n }\n }\n //onsole.log('PopupService, popup closed ' + name + ' popups : ' + _popups);\n if (_popups.length === 0 && _dialogOpen === false) {\n window.removeEventListener(\"keydown\", specialKeyHandler, true);\n window.removeEventListener(\"click\", outsideClickHandler, true);\n }\n }\n}\n\nconst PopupComponent = ({\n children,\n position,\n style,\n}: HTMLAttributes<HTMLDivElement> & {\n position?: \"above\" | \"below\" | \"\";\n style?: CSSProperties;\n}) => {\n const className = cx(\"hwPopup\", \"hwPopupContainer\", position);\n return createElement(\"div\", { className, style }, children);\n};\n\nlet incrementingKey = 1;\n\nexport interface ShowPopupProps {\n depth?: number;\n /**\n * if true, focus will be invoked on first focusable element\n */\n focus?: boolean;\n name?: string;\n group?: string;\n position?: \"above\" | \"below\" | \"\";\n left?: number;\n right?: \"auto\" | number;\n top?: number;\n component: ReactElement;\n width?: number | \"auto\";\n}\n\nexport class PopupService {\n static onClose: PopupCloseCallback | undefined;\n static showPopup({\n group = \"all\",\n name = \"anon\",\n left = 0,\n position = \"\",\n right = \"auto\",\n top = 0,\n width = \"auto\",\n component,\n }: ShowPopupProps) {\n if (!component) {\n throw Error(`PopupService showPopup, no component supplied`);\n }\n\n if (typeof component.props.onClose === \"function\") {\n PopupService.onClose = component.props.onClose;\n } else {\n PopupService.onClose = undefined;\n }\n\n popupOpened(name);\n\n document.addEventListener(\"keydown\", PopupService.escapeKeyListener, true);\n\n let el = document.body.querySelector(\".vuuPopup.\" + group) as HTMLElement;\n if (el === null) {\n el = document.createElement(\"div\") as HTMLElement;\n el.className = \"vuuPopup \" + group;\n document.body.appendChild(el);\n }\n\n const style = { width };\n\n renderPortal(\n createElement(\n PopupComponent,\n { key: incrementingKey++, position, style },\n component\n ),\n el,\n left,\n top,\n () => {\n PopupService.keepWithinThePage(el, right);\n }\n );\n }\n\n static escapeKeyListener(evt: KeyboardEvent) {\n if (evt.key === \"Escape\") {\n PopupService.hidePopup({ type: \"escape\", event: evt });\n }\n }\n\n static hidePopup(reason?: PopupCloseReason, name = \"anon\", group = \"all\") {\n if (_popups.indexOf(name) !== -1) {\n popupClosed(name);\n const popupRoot = document.body.querySelector(`.vuuPopup.${group}`);\n if (popupRoot) {\n ReactDOM.unmountComponentAtNode(popupRoot);\n }\n }\n document.removeEventListener(\n \"keydown\",\n PopupService.escapeKeyListener,\n true\n );\n\n PopupService?.onClose?.(reason);\n }\n\n static keepWithinThePage(el: HTMLElement, right: number | \"auto\" = \"auto\") {\n const target = el.querySelector(\".vuuPopupContainer > *\") as HTMLElement;\n if (target) {\n const {\n top,\n left,\n width,\n height,\n right: currentRight,\n } = target.getBoundingClientRect();\n\n const w = window.innerWidth;\n const h = window.innerHeight;\n\n const overflowH = h - (top + height);\n if (overflowH < 0) {\n target.style.top = Math.round(top) + overflowH + \"px\";\n }\n\n const overflowW = w - (left + width);\n if (overflowW < 0) {\n target.style.left = Math.round(left) + overflowW + \"px\";\n }\n\n if (typeof right === \"number\" && right !== currentRight) {\n const adjustment = right - currentRight;\n target.style.left = left + adjustment + \"px\";\n }\n }\n }\n}\n\nexport class DialogService {\n static showDialog(dialog: ReactElement) {\n const containerEl = \".vuuDialog\";\n const onClose = dialog.props.onClose;\n\n dialogOpened();\n\n ReactDOM.render(\n React.cloneElement(dialog, {\n container: containerEl,\n onClose: () => {\n DialogService.closeDialog();\n if (onClose) {\n onClose();\n }\n },\n }),\n document.body.querySelector(containerEl)\n );\n }\n\n static closeDialog() {\n dialogClosed();\n const dialogRoot = document.body.querySelector(\".vuuDialog\");\n if (dialogRoot) {\n ReactDOM.unmountComponentAtNode(dialogRoot);\n }\n }\n}\n", "import * as ReactDOM from \"react-dom\";\nimport { ReactElement } from \"react\";\nimport cx from \"clsx\";\n\nlet containerId = 1;\n\nconst getPortalContainer = ({\n className,\n dataMode,\n x = 0,\n y = 0,\n win = window,\n}: HTMLContainerProps) => {\n const el = win.document.createElement(\"div\");\n el.className = cx(`vuuPopup ${containerId++}`, className);\n el.style.cssText = `left:${x}px; top:${y}px;`;\n if (dataMode) {\n el.dataset.mode = dataMode;\n }\n win.document.body.appendChild(el);\n return el;\n};\n\nexport interface HTMLContainerProps {\n className?: string;\n dataMode?: string;\n x?: number;\n y?: number;\n win?: typeof globalThis;\n}\n\nexport const createContainer = (props: HTMLContainerProps) =>\n getPortalContainer(props);\n\nexport const renderPortal = (\n component: ReactElement,\n container: HTMLElement,\n x: number,\n y: number,\n onRender?: () => void\n) => {\n // check this first to see if position has changed\n container.style.cssText = `left:${x}px; top:${y}px;position: absolute;`;\n\n ReactDOM.render(component, container, onRender);\n};\n", "import cx from \"clsx\";\nimport { HTMLAttributes, RefObject } from \"react\";\nimport { Position, useAnchoredPosition } from \"./useAnchoredPosition\";\n\nimport \"./Popup.css\";\n\nexport type PopupPlacement =\n | \"absolute\"\n | \"auto\"\n | \"below\"\n | \"below-center\"\n | \"below-right\"\n | \"below-full-width\"\n | \"center\"\n | \"right\";\n\nexport interface PopupComponentProps extends HTMLAttributes<HTMLDivElement> {\n anchorElement: RefObject<HTMLElement>;\n minWidth?: number | string;\n offsetLeft?: number;\n offsetTop?: number;\n placement: PopupPlacement;\n position?: Position;\n}\n\nexport const PopupComponent = ({\n children,\n className,\n anchorElement,\n minWidth,\n placement,\n position: positionProp,\n}: PopupComponentProps) => {\n const { popupRef, position } = useAnchoredPosition({\n anchorElement,\n minWidth,\n placement,\n position: positionProp,\n });\n return position === undefined ? null : (\n <div className={cx(`vuuPortal`, className)} ref={popupRef} style={position}>\n {children}\n </div>\n );\n};\n", "import { useCallback, useLayoutEffect, useRef, useState } from \"react\";\nimport { PopupComponentProps, PopupPlacement } from \"./Popup\";\n\nexport type AnchoredPositionHookProps = Pick<\n PopupComponentProps,\n | \"anchorElement\"\n | \"minWidth\"\n | \"offsetLeft\"\n | \"offsetTop\"\n | \"placement\"\n | \"position\"\n>;\n\nexport type Visibility = \"hidden\" | \"visible\";\n\nconst getPositionRelativeToAnchor = (\n anchorElement: HTMLElement,\n placement: PopupPlacement,\n offsetLeft: number,\n offsetTop: number,\n minWidth?: number | string,\n dimensions?: { height: number; width: number }\n): {\n left: number;\n minWidth?: number | string;\n top: number;\n visibility?: Visibility;\n width?: number;\n} => {\n const { bottom, height, left, right, top, width } =\n anchorElement.getBoundingClientRect();\n switch (placement) {\n case \"below\":\n return { left: left + offsetLeft, top: bottom + offsetTop };\n case \"right\":\n return { left: right + offsetLeft, top: top + offsetTop };\n case \"below-center\":\n return { left: left + width / 2 + offsetLeft, top: bottom + offsetTop };\n case \"below-right\":\n return { left: left, minWidth, top: bottom + offsetTop };\n case \"below-full-width\":\n return {\n left: left + offsetLeft,\n minWidth,\n top: bottom + offsetTop,\n width,\n };\n case \"center\":\n if (dimensions) {\n return {\n left: width / 2 - dimensions.width / 2 + offsetLeft,\n top: height / 2 - dimensions.height / 2 + offsetTop,\n visibility: \"visible\",\n };\n } else {\n return {\n left: width / 2 + offsetLeft,\n top: height / 2 + offsetTop,\n visibility: \"hidden\",\n };\n }\n default:\n throw Error(\n \"Popup getPositionRelativeToAnchor only supported placement values are below and right\"\n );\n }\n};\n\nexport type Position = {\n left: number;\n minWidth?: number | string;\n top: number;\n visibility?: Visibility;\n width?: number;\n};\n\nexport const useAnchoredPosition = ({\n anchorElement,\n minWidth,\n offsetLeft = 0,\n offsetTop = 0,\n placement,\n position: positionProp,\n}: AnchoredPositionHookProps) => {\n const popupRef = useRef<HTMLElement | null>(null);\n const [position, setPosition] = useState<Position | undefined>(positionProp);\n\n // maybe better as useMemo ?\n useLayoutEffect(() => {\n if (placement === \"absolute\" && positionProp) {\n setPosition(positionProp);\n } else if (anchorElement.current && placement !== \"auto\") {\n const dimensions =\n popupRef.current === null\n ? undefined\n : popupRef.current.getBoundingClientRect();\n const position = getPositionRelativeToAnchor(\n anchorElement.current,\n placement,\n offsetLeft,\n offsetTop,\n minWidth,\n dimensions\n );\n setPosition(position);\n }\n }, [anchorElement, minWidth, offsetLeft, offsetTop, placement, positionProp]);\n\n const popupCallbackRef = useCallback(\n (el: HTMLDivElement | null) => {\n popupRef.current = el;\n if (el && placement === \"center\" && anchorElement.current) {\n const { height, width } = el.getBoundingClientRect();\n setPosition(\n getPositionRelativeToAnchor(\n anchorElement.current,\n placement,\n offsetLeft,\n offsetTop,\n undefined,\n { height, width }\n )\n );\n }\n },\n [anchorElement, offsetLeft, offsetTop, placement]\n );\n\n return {\n position,\n popupRef: placement === \"center\" ? popupCallbackRef : undefined,\n };\n};\n", "import { ReactElement, useCallback, useState } from \"react\";\nimport { Dialog } from \"./Dialog\";\n\nexport type DialogState = {\n content: ReactElement;\n title: string;\n hideCloseButton?: boolean;\n};\n\nexport type SetDialog = (dialogState?: DialogState) => void;\n\nexport const useDialog = () => {\n const [dialogState, setDialogState] = useState<DialogState>();\n\n const handleClose = useCallback(() => {\n setDialogState(undefined);\n }, []);\n\n const dialog = dialogState ? (\n <Dialog\n className=\"vuDialog\"\n isOpen={true}\n onClose={handleClose}\n style={{ maxHeight: 500 }}\n title={dialogState.title}\n hideCloseButton={dialogState.hideCloseButton}\n >\n {dialogState.content}\n </Dialog>\n ) : null;\n\n return {\n dialog,\n setDialogState,\n };\n};\n", "import { useId } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useRef } from \"react\";\nimport { PopupCloseCallback, PopupComponent } from \"../popup\";\nimport { Portal, PortalProps } from \"../portal\";\nimport { MenuList, MenuListProps } from \"./MenuList\";\nimport { useCascade } from \"./use-cascade\";\nimport { useItemsWithIdsNext } from \"./use-items-with-ids-next\";\nimport { ContextMenuOptions } from \"./useContextMenu\";\n\nexport interface ContextMenuProps extends Omit<MenuListProps, \"onCloseMenu\"> {\n PortalProps?: Partial<PortalProps>;\n onClose?: PopupCloseCallback;\n position?: { x: number; y: number };\n withPortal?: boolean;\n}\n\nconst noop = () => undefined;\n\nexport const ContextMenu = ({\n PortalProps,\n activatedByKeyboard,\n children: childrenProp,\n className,\n id: idProp,\n onClose = () => undefined,\n position = { x: 0, y: 0 },\n style,\n ...menuListProps\n}: ContextMenuProps) => {\n const closeHandlerRef = useRef<ContextMenuProps[\"onClose\"]>(onClose);\n closeHandlerRef.current = onClose;\n\n const id = useId(idProp);\n const closeMenuRef = useRef<(location?: string) => void>(noop);\n const [menus, actions] = useItemsWithIdsNext(childrenProp, id);\n const navigatingWithKeyboard = useRef(activatedByKeyboard);\n const handleMouseEnterItem = useCallback(() => {\n navigatingWithKeyboard.current = false;\n }, []);\n\n const handleActivate = useCallback(\n (menuItemId: string) => {\n const actionId = menuItemId.slice(9);\n const { action, options } = actions[actionId];\n closeMenuRef.current(id);\n onClose({\n type: \"menu-action\",\n menuId: action,\n options: options as ContextMenuOptions,\n });\n },\n [actions, id, onClose]\n );\n\n const {\n closeMenu,\n listItemProps,\n openMenu: onOpenMenu,\n openMenus,\n handleRender,\n } = useCascade({\n // FIXME\n id: `${id}`,\n onActivate: handleActivate,\n onMouseEnterItem: handleMouseEnterItem,\n position,\n });\n closeMenuRef.current = closeMenu;\n\n const handleCloseMenu = () => {\n navigatingWithKeyboard.current = true;\n closeMenu();\n };\n\n const handleHighlightMenuItem = () => {\n // console.log(`highlight ${idx}`);\n };\n\n const lastMenu = openMenus.length - 1;\n\n const getChildMenuId = (i: number) => {\n if (i >= lastMenu) {\n return undefined;\n } else {\n const { id } = openMenus[i + 1];\n return id;\n }\n };\n\n return (\n <>\n {openMenus.map(({ id: menuId, left, top }, i, all) => {\n const childMenuId = getChildMenuId(i);\n return (\n <Portal {...PortalProps} key={i} onRender={handleRender}>\n <PopupComponent\n anchorElement={{ current: document.body }}\n placement=\"absolute\"\n position={{ left, top }}\n >\n <MenuList\n {...menuListProps}\n activatedByKeyboard={navigatingWithKeyboard.current}\n childMenuShowing={childMenuId}\n className={className}\n id={menuId}\n isRoot={i === 0}\n key={i}\n listItemProps={listItemProps}\n onActivate={handleActivate}\n onHighlightMenuItem={handleHighlightMenuItem}\n onCloseMenu={handleCloseMenu}\n openMenu={onOpenMenu}\n style={style}\n tabIndex={i === all.length - 1 ? 0 : undefined}\n >\n {menus[menuId]}\n </MenuList>\n </PopupComponent>\n </Portal>\n );\n })}\n </>\n );\n};\n\nContextMenu.displayName = \"ContextMenu\";\n", "import { ThemeAttributes, useThemeAttributes } from \"@vuu-ui/vuu-utils\";\nimport { ReactNode, useLayoutEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport \"./Portal.css\";\n\nexport interface PortalProps {\n /**\n * The children to render into the `container`.\n */\n children?: ReactNode;\n /**\n * An HTML element, component instance, or function that returns either.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container?: Element | (() => Element | null) | null;\n /**\n * Id of element into which portal will be rendered. If this node does not exist on the document,\n * it will be created for you. If more than one value is provided, the first element found will\n * be used.\n */\n id?: string | string[];\n /**\n * Callback invoked immediately after render (in layoutEffect). Can be\n * used to check position vis-a-vis viewport and adjust if out of bounds\n */\n onRender?: () => void;\n /**\n * Allow conditional rendering of this Portal, if false, will render nothing.\n * Defaults to true\n */\n open?: boolean;\n /**\n * ThemeAttributes can be passed in for cases where ContextMenu is\n * rendered via popup-service showPopup, outside the Context hierarchy.\n */\n themeAttributes?: ThemeAttributes;\n}\n\nfunction getContainer(container: PortalProps[\"container\"]) {\n return typeof container === \"function\" ? container() : container;\n}\n\nconst DEFAULT_ID = [\"vuu-dialog-portal-root\", \"vuu-portal-root\"];\n\nconst getFirstAvailableElementById = (id: string | string[]) => {\n if (Array.isArray(id)) {\n for (const i of id) {\n const element = document.getElementById(i);\n if (element) {\n return element;\n }\n }\n } else {\n return document.getElementById(id);\n }\n return null;\n};\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\nexport const Portal = ({\n children,\n container: containerProp = document.body,\n id = DEFAULT_ID,\n onRender,\n open = true,\n themeAttributes,\n}: PortalProps) => {\n const [mounted, setMounted] = useState(false);\n const portalRef = useRef<HTMLElement | null>(null);\n const container = getContainer(containerProp) ?? document.body;\n const [themeClass, densityClass, dataMode] =\n useThemeAttributes(themeAttributes);\n\n useLayoutEffect(() => {\n const root = getFirstAvailableElementById(id);\n if (root) {\n portalRef.current = root;\n } else {\n portalRef.current = document.createElement(\"div\");\n portalRef.current.id =\n typeof id === \"string\"\n ? id\n : id.length > 0\n ? (id.at(-1) as string)\n : \"vuu-portal-root\";\n }\n const el = portalRef.current;\n if (!container.contains(el)) {\n container.appendChild(el);\n }\n el.classList.add(themeClass, densityClass);\n el.dataset.mode = dataMode;\n setMounted(true);\n }, [id, container, themeClass, densityClass, dataMode]);\n\n useLayoutEffect(() => {\n requestAnimationFrame(() => {\n onRender?.();\n });\n }, [onRender]);\n\n if (open && mounted && portalRef.current && children) {\n return createPortal(children, portalRef.current);\n }\n\n return null;\n};\n", "import cx from \"clsx\";\nimport React, {\n FC,\n HTMLAttributes,\n ReactElement,\n ReactNode,\n useLayoutEffect,\n useMemo,\n useRef,\n} from \"react\";\n//TODO do we want this dependency ?\nimport { useId } from \"@vuu-ui/vuu-utils\";\nimport { isMenuItemGroup } from \"./use-items-with-ids-next\";\nimport { useKeyboardNavigation } from \"./use-keyboard-navigation\";\n\nimport \"./MenuList.css\";\n\nconst classBase = \"vuuMenuList\";\n\nexport const Separator = () => <li className=\"vuuMenuItem-divider\" />;\n\nexport interface MenuItemGroupProps {\n children:\n | ReactElement<MenuItemProps>[]\n | [ReactElement<MenuItemLabelProps>, ...ReactElement<MenuItemProps>[]];\n label?: string;\n}\n\nexport interface MenuItemProps extends HTMLAttributes<HTMLDivElement> {\n action?: string;\n idx?: number;\n options?: unknown;\n}\n\n// Purely used as markers, props will be extracted\nexport const MenuItemGroup: FC<MenuItemGroupProps> = () => null;\n// eslint-disable-next-line no-unused-vars\nexport const MenuItem = ({\n children,\n idx,\n options,\n ...props\n}: MenuItemProps) => {\n return <div {...props}>{children}</div>;\n};\n\nexport interface MenuItemLabelProps {\n children: ReactNode;\n}\nconst MenuItemLabel = ({ children }: { children: ReactNode }) => (\n <>{children}</>\n);\nMenuItemLabel.displayName = \"MenuItemLabel\";\nMenuItem.Label = MenuItemLabel;\n\nconst getDisplayName = (item: ReactNode) =>\n React.isValidElement(item) &&\n typeof item.type !== \"string\" &&\n \"displayName\" in item.type\n ? item.type.displayName\n : undefined;\n\nexport const isMenuItemLabel = (\n item: ReactNode\n): item is ReactElement<MenuItemLabelProps> =>\n getDisplayName(item) === \"MenuItemLabel\";\n\nconst hasIcon = (child: ReactElement) => child.props[\"data-icon\"];\n\nexport type MenuOpenHandler = (\n menuItemEl: HTMLElement,\n immediate?: boolean\n) => void;\nexport interface MenuListProps extends HTMLAttributes<HTMLDivElement> {\n activatedByKeyboard?: boolean;\n children: ReactElement[];\n childMenuShowing?: string;\n defaultHighlightedIdx?: number;\n highlightedIdx?: number;\n isRoot?: boolean;\n listItemProps?: Partial<MenuItemProps>;\n onActivate?: (menuId: string) => void;\n onCloseMenu: (idx: number) => void;\n openMenu?: MenuOpenHandler;\n onHighlightMenuItem?: (idx: number) => void;\n}\n\nexport const MenuList = ({\n activatedByKeyboard,\n childMenuShowing,\n children,\n className,\n defaultHighlightedIdx,\n highlightedIdx: highlightedIdxProp,\n id: idProp,\n isRoot,\n listItemProps,\n onHighlightMenuItem,\n onActivate,\n onCloseMenu,\n openMenu: onOpenMenu,\n ...props\n}: MenuListProps) => {\n const id = useId(idProp);\n const root = useRef<HTMLDivElement>(null);\n\n // The id generation be,ongs in useIttemsWithIds\n const mapIdxToId = useMemo(() => new Map(), []);\n\n const handleActivate = (idx: number) => {\n const el = root.current?.querySelector(`:scope > [data-index='${idx}']`);\n el?.id && onActivate?.(el.id);\n };\n\n const { focusVisible, highlightedIndex, listProps } = useKeyboardNavigation({\n count: React.Children.count(children),\n defaultHighlightedIdx,\n highlightedIndex: highlightedIdxProp,\n onActivate: handleActivate,\n onHighlight: onHighlightMenuItem,\n onOpenMenu,\n onCloseMenu,\n });\n\n const appliedFocusVisible = childMenuShowing == undefined ? focusVisible : -1;\n\n useLayoutEffect(() => {\n if (childMenuShowing === undefined && activatedByKeyboard) {\n root.current?.focus();\n }\n }, [activatedByKeyboard, childMenuShowing]);\n\n const getActiveDescendant = () =>\n highlightedIndex === undefined || highlightedIndex === -1\n ? undefined\n : mapIdxToId.get(highlightedIndex);\n\n function renderContent() {\n const propsCommonToAllListItems = {\n ...listItemProps,\n role: \"menuitem\",\n };\n\n const maybeIcon = (\n childElement: ReactElement,\n withIcon: boolean,\n iconName?: string\n ) =>\n withIcon\n ? [\n <span\n className=\"vuuIconContainer\"\n data-icon={iconName}\n key=\"icon\"\n />,\n ].concat(childElement)\n : childElement;\n\n function addClonedChild(\n list: ReactElement[],\n child: ReactElement,\n idx: number,\n withIcon: boolean\n ) {\n const {\n children,\n className,\n \"data-icon\": iconName,\n id: itemId,\n hasSeparator,\n label,\n ...props\n } = child.props;\n const hasSubMenu = isMenuItemGroup(child);\n const subMenuShowing = hasSubMenu && childMenuShowing === itemId;\n const ariaControls = subMenuShowing ? `${id}-${itemId}` : undefined;\n\n list.push(\n <MenuItem\n {...props}\n {...propsCommonToAllListItems}\n {...getMenuItemProps(\n itemId,\n idx,\n child.key ?? itemId,\n highlightedIndex,\n appliedFocusVisible,\n className,\n hasSeparator\n )}\n aria-controls={ariaControls}\n aria-haspopup={hasSubMenu || undefined}\n aria-expanded={subMenuShowing || undefined}\n >\n {hasSubMenu\n ? maybeIcon(label ?? children, withIcon, iconName)\n : maybeIcon(children, withIcon, iconName)}\n </MenuItem>\n );\n // mapIdxToId.set(idx, itemId);\n }\n\n const listItems: ReactElement[] = [];\n\n if (children.length > 0) {\n const withIcon = children.some(hasIcon);\n children.forEach((child, idx) => {\n addClonedChild(listItems, child, idx, withIcon);\n });\n }\n\n return listItems;\n }\n\n return (\n <div\n {...props}\n {...listProps}\n aria-activedescendant={getActiveDescendant()}\n className={cx(classBase, className, {\n [`${classBase}-childMenuShowing`]: childMenuShowing !== undefined,\n })}\n data-root={isRoot || undefined}\n id={id}\n ref={root}\n role=\"menu\"\n >\n {renderContent()}\n </div>\n );\n};\n\nconst getMenuItemProps = (\n itemId: string,\n idx: number,\n key: string,\n highlightedIdx: number,\n focusVisible: number,\n className: string,\n hasSeparator: boolean\n) => ({\n id: `menuitem-${itemId}`,\n key: key ?? idx,\n \"data-index\": idx,\n \"data-highlighted\": idx === highlightedIdx || undefined,\n className: cx(\"vuuMenuItem\", className, {\n \"vuuMenuItem-separator\": hasSeparator,\n focusVisible: focusVisible === idx,\n }),\n});\n\nMenuList.displayName = \"MenuList\";\n", "import React, { ReactElement, ReactNode, useCallback, useMemo } from \"react\";\nimport { isMenuItemLabel, MenuItemGroup, Separator } from \"./MenuList\";\n\nexport const isMenuItemGroup = (child: ReactElement) =>\n child.type === MenuItemGroup || !!child.props[\"data-group\"];\n\ntype Menus = { [key: string]: ReactElement[] };\ntype Actions = { [key: string]: { action: string; options?: unknown } };\n\nconst getLabelFromChildren = (children: ReactNode) => {\n if (Array.isArray(children) && isMenuItemLabel(children[0])) {\n return children[0];\n }\n};\n\nconst assignId = (\n child: ReactElement,\n path: string,\n group: boolean,\n hasSeparator = false\n) => {\n const {\n props: { children },\n } = child;\n // If we have a leaf MenuItem, any children will be label etc\n // if we have a GroupMenuItem, firet item mat be Label\n return {\n childWithId: React.cloneElement(child, {\n hasSeparator,\n id: `${path}`,\n key: path,\n children: group ? getLabelFromChildren(children) : children,\n }),\n grandChildren: group ? children : undefined,\n };\n};\n\nexport const useItemsWithIdsNext = (\n childrenProp: ReactElement[],\n rootId: string\n): [Menus, Actions] => {\n const normalizeChildren = useCallback(() => {\n const collectChildren = (\n children: ReactElement[],\n path = rootId,\n menus: Menus = {},\n actions: Actions = {}\n ) => {\n const list: ReactElement[] = (menus[path] = []);\n let idx = 0;\n let hasSeparator = false;\n\n React.Children.forEach(children, (child) => {\n if (isMenuItemLabel(child)) {\n // do nothing\n } else if (child.type === Separator) {\n hasSeparator = true;\n } else {\n const hasChildItems = isMenuItemGroup(child);\n const childPath = `${path}-${idx}`;\n const {\n props: { action, options },\n } = child;\n\n const { childWithId, grandChildren } = assignId(\n child,\n childPath,\n hasChildItems,\n hasSeparator\n );\n list.push(childWithId);\n if (grandChildren) {\n collectChildren(grandChildren, childPath, menus, actions);\n } else {\n actions[childPath] = { action, options };\n }\n idx += 1;\n hasSeparator = false;\n }\n });\n return [menus, actions];\n };\n\n return collectChildren(childrenProp);\n }, [rootId, childrenProp]);\n\n const [menus, actions] = useMemo(\n () => normalizeChildren(),\n [normalizeChildren]\n );\n\n return [menus, actions] as [Menus, Actions];\n};\n", "import {\n FocusEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { hasPopup, isRoot } from \"./utils\";\nimport { isNavigationKey } from \"./key-code\";\nimport { isValidNumber } from \"@vuu-ui/vuu-utils\";\nimport { MenuOpenHandler } from \"./MenuList\";\n\nexport interface KeyboardNavigationProps {\n autoHighlightFirstItem?: boolean;\n count: number;\n defaultHighlightedIdx?: number;\n highlightedIndex?: number;\n onActivate: (idx: number) => void;\n onHighlight?: (idx: number) => void;\n onCloseMenu: (idx: number) => void;\n onOpenMenu?: MenuOpenHandler;\n}\n\nexport interface KeyboardHookListProps {\n // onBlur: (evt: FocusEvent) => void;\n onFocus: (evt: FocusEvent) => void;\n onKeyDown: (evt: KeyboardEvent) => void;\n onMouseDownCapture: () => void;\n onMouseMove: () => void;\n onMouseLeave: () => void;\n}\n\nexport interface NavigationHookResult {\n focusVisible: number;\n controlledHighlighting: boolean;\n highlightedIndex: number;\n setHighlightedIndex: (idx: number) => void;\n // keyboardNavigation: RefObject<boolean>;\n listProps: KeyboardHookListProps;\n setIgnoreFocus: (ignoreFocus: boolean) => void;\n}\n\n// we need a way to set highlightedIdx when selection changes\nexport const useKeyboardNavigation = ({\n autoHighlightFirstItem = false,\n count,\n defaultHighlightedIdx,\n highlightedIndex: highlightedIndexProp,\n onActivate,\n onHighlight,\n // onKeyDown,\n onCloseMenu,\n onOpenMenu,\n}: KeyboardNavigationProps): NavigationHookResult => {\n if (\n isValidNumber(highlightedIndexProp) &&\n isValidNumber(defaultHighlightedIdx)\n ) {\n throw Error(\n \"useKeyboardNavigation do not pass values for both highlightedIndex and defaultHighlightedIdx\"\n );\n }\n\n const controlledHighlighting = isValidNumber(highlightedIndexProp);\n const highlightedIndexRef = useRef(\n defaultHighlightedIdx ??\n highlightedIndexProp ??\n (autoHighlightFirstItem ? 0 : -1)\n );\n const [, forceRender] = useState<unknown>(null);\n\n const setHighlightedIdx = useCallback(\n (idx) => {\n highlightedIndexRef.current = idx;\n onHighlight?.(idx);\n forceRender({});\n },\n [onHighlight]\n );\n\n const setHighlightedIndex = useCallback(\n (idx) => {\n if (idx !== highlightedIndexRef.current) {\n if (!controlledHighlighting) {\n setHighlightedIdx(idx);\n }\n }\n },\n [controlledHighlighting, setHighlightedIdx]\n );\n\n // does this belong here or should it be a method passed in?\n const keyBoardNavigation = useRef(true);\n const ignoreFocus = useRef(false);\n const setIgnoreFocus = (value: boolean) => (ignoreFocus.current = value);\n\n const highlightedIndex = controlledHighlighting\n ? highlightedIndexProp\n : highlightedIndexRef.current;\n\n const navigateChildldItems = useCallback(\n (e: KeyboardEvent) => {\n const nextIdx = nextItemIdx(count, e.key, highlightedIndexRef.current);\n if (nextIdx !== highlightedIndexRef.current) {\n setHighlightedIndex(nextIdx);\n }\n },\n [count, setHighlightedIndex]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (isNavigationKey(e)) {\n e.preventDefault();\n e.stopPropagation();\n keyBoardNavigation.current = true;\n navigateChildldItems(e);\n } else if (\n (e.key === \"ArrowRight\" || e.key === \"Enter\") &&\n hasPopup(e.target as HTMLElement, highlightedIndex)\n ) {\n const menuEl = e.target as HTMLElement;\n const menuItemEl = menuEl.querySelector(\n `:scope > [data-index='${highlightedIndex}']`\n ) as HTMLElement;\n\n if (menuItemEl) {\n onOpenMenu?.(menuItemEl, true);\n }\n } else if (e.key === \"ArrowLeft\" && !isRoot(e.target as HTMLElement)) {\n onCloseMenu(highlightedIndex);\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n onActivate && onActivate(highlightedIndex);\n } else if (e.key === \"Tab\") {\n onCloseMenu(-1);\n }\n },\n [\n highlightedIndex,\n navigateChildldItems,\n onActivate,\n onCloseMenu,\n onOpenMenu,\n ]\n );\n\n const listProps: KeyboardHookListProps = useMemo(\n () => ({\n onFocus: () => {\n if (highlightedIndex === -1) {\n setHighlightedIdx(0);\n }\n },\n onKeyDown: handleKeyDown,\n onMouseDownCapture: () => {\n keyBoardNavigation.current = false;\n setIgnoreFocus(true);\n },\n\n // onMouseEnter would seem less expensive but it misses some cases\n onMouseMove: () => {\n if (keyBoardNavigation.current) {\n keyBoardNavigation.current = false;\n }\n },\n onMouseLeave: () => {\n // label === 'ParsedInput' && console.log(`%c[useKeyboardNavigationHook]<${label}> onMouseLeave`,'color:brown')\n keyBoardNavigation.current = true;\n setIgnoreFocus(false);\n setHighlightedIndex(-1);\n },\n }),\n [handleKeyDown, highlightedIndex, setHighlightedIdx, setHighlightedIndex]\n );\n\n return {\n focusVisible: keyBoardNavigation.current ? highlightedIndex : -1,\n controlledHighlighting,\n highlightedIndex,\n setHighlightedIndex: setHighlightedIndex,\n // keyBoardNavigation,\n listProps,\n setIgnoreFocus,\n };\n};\n\n// need to be able to accommodate disabled items\nfunction nextItemIdx(count: number, key: string, idx: number) {\n if (key === \"ArrowUp\") {\n if (idx > 0) {\n return idx - 1;\n } else {\n return idx;\n }\n } else {\n if (idx === null) {\n return 0;\n } else if (idx === count - 1) {\n return idx;\n } else {\n return idx + 1;\n }\n }\n}\n", "export const isRoot = (el: HTMLElement) =>\n el.closest(`[data-root='true']`) !== null;\n\nexport const hasPopup = (el: HTMLElement, idx: number) =>\n (el.ariaHasPopup === \"true\" && el.dataset?.idx === `${idx}`) ||\n el.querySelector(`:scope > [data-index='${idx}'][aria-haspopup='true']`) !==\n null;\n", "function union(set1: Set<string>, ...sets: Set<string>[]) {\n const result = new Set(set1);\n for (const set of sets) {\n for (const element of set) {\n result.add(element);\n }\n }\n return result;\n}\n\nexport const ArrowUp = \"ArrowUp\";\nexport const ArrowDown = \"ArrowDown\";\nexport const ArrowLeft = \"ArrowLeft\";\nexport const Backspace = \"Backspace\";\nexport const ArrowRight = \"ArrowRight\";\nexport const Enter = \"Enter\";\nexport const Escape = \"Escape\";\nexport const Delete = \"Delete\";\n\nconst actionKeys = new Set([Enter, Delete]);\nconst focusKeys = new Set([\"Tab\"]);\n// const navigationKeys = new Set([\"Home\", \"End\", \"ArrowRight\", \"ArrowLeft\",\"ArrowDown\", \"ArrowUp\"]);\nconst arrowLeftRightKeys = new Set([\"ArrowRight\", \"ArrowLeft\"]);\nconst verticalNavigationKeys = new Set([\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\"]);\nconst horizontalNavigationKeys = new Set([\n \"Home\",\n \"End\",\n \"ArrowRight\",\n \"ArrowLeft\",\n]);\nconst functionKeys = new Set([\n \"F1\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"F10\",\n \"F11\",\n \"F12\",\n]);\nconst specialKeys = union(\n actionKeys,\n horizontalNavigationKeys,\n verticalNavigationKeys,\n arrowLeftRightKeys,\n functionKeys,\n focusKeys\n);\nexport const isCharacterKey = (evt: KeyboardEvent) => {\n if (specialKeys.has(evt.key)) {\n return false;\n }\n if (typeof evt.which === \"number\" && evt.which > 0) {\n return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which !== 8;\n }\n};\n\nexport const isNavigationKey = (\n { key }: { key: string },\n orientation = \"vertical\"\n) => {\n const navigationKeys =\n orientation === \"vertical\"\n ? verticalNavigationKeys\n : horizontalNavigationKeys;\n return navigationKeys.has(key);\n};\n", "import {\n MouseEvent,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { closestListItem } from \"./list-dom-utils\";\nimport { MenuItemProps, MenuOpenHandler } from \"./MenuList\";\n// import {mousePosition} from './aim/utils';\n// import {aiming} from './aim/aim';\n\nconst nudge = (\n menus: RuntimeMenuDescriptor[],\n distance: number,\n pos: \"left\" | \"top\"\n) => {\n return menus.map((m, i) =>\n i === menus.length - 1\n ? {\n ...m,\n [pos]: m[pos] - distance,\n }\n : m\n );\n};\nconst nudgeLeft = (menus: RuntimeMenuDescriptor[], distance: number) =>\n nudge(menus, distance, \"left\");\nconst nudgeUp = (menus: RuntimeMenuDescriptor[], distance: number) =>\n nudge(menus, distance, \"top\");\n\nconst flipSides = (id: string, menus: RuntimeMenuDescriptor[]) => {\n const [parentMenu, menu] = menus.slice(-2);\n const el = document.getElementById(`${id}-${menu.id}`);\n if (el === null) {\n throw Error(`useCascade.flipSides element with id ${menu.id} not found`);\n }\n const { width } = el.getBoundingClientRect();\n return menus.map((m) =>\n m === menu\n ? {\n ...m,\n left: parentMenu.left - (width - 2),\n }\n : m\n );\n};\n\n// const closedNode = (el: HTMLElement) =>\n// el.ariaHasPopup === \"true\" && el.ariaExpanded !== \"true\";\nconst getPosition = (el: HTMLElement, openMenus: RuntimeMenuDescriptor[]) => {\n const [{ left, top: menuTop }] = openMenus.slice(-1);\n // const {top, right, bottom, left} = el.getBoundingClientRect();\n // this will not work for MenuList within window, we need the\n // const {offsetLeft: left, offsetTop: menuTop} = el.closest('.vuuMenuList');\n const { offsetWidth: width, offsetTop: top } = el;\n return { left: left + width, top: top + menuTop };\n};\n\nexport type RuntimeMenuDescriptor = {\n id: string;\n left: number;\n top: number;\n};\n\n/** menuitem-vuu-1-0 vuu-1 */\nexport const getHostMenuId = (id: string, rootId: string) => {\n const pos = id.lastIndexOf(\"-\");\n if (id.startsWith(\"menuitem\")) {\n return pos > -1 ? id.slice(9, pos) : rootId;\n } else {\n return pos > -1 ? id.slice(0, pos) : rootId;\n }\n};\n\nconst getTargetMenuId = (id: string) => id.slice(9);\n\nconst getMenuItemDetails = (\n { ariaExpanded, ariaHasPopup, id }: HTMLElement,\n rootId: string\n) => {\n if (id.startsWith(\"menuitem\")) {\n return {\n hostMenuId: getHostMenuId(id, rootId),\n targetMenuId: getTargetMenuId(id),\n menuItemId: id,\n isGroup: ariaHasPopup === \"true\",\n isOpen: ariaExpanded === \"true\",\n };\n } else {\n throw Error(`getMenuItemDetails #${id} is not a menuitem`);\n }\n};\n\nexport interface CascadeHookProps {\n id: string;\n onActivate: (menuId: string) => void;\n onMouseEnterItem: (evt: MouseEvent, itemId: string) => void;\n position: { x: number; y: number };\n}\n\nexport interface CascadeHooksResult {\n closeMenu: () => void;\n handleRender: () => void;\n listItemProps: Partial<MenuItemProps>;\n openMenu: MenuOpenHandler;\n openMenus: RuntimeMenuDescriptor[];\n}\n\ntype MenuStatus = \"no-popup\" | \"popup-open\" | \"pending-close\" | \"popup-pending\";\ntype MenuState = { [key: string]: MenuStatus };\n\nexport const useCascade = ({\n id: rootId,\n onActivate,\n onMouseEnterItem,\n position: { x: posX, y: posY },\n}: CascadeHookProps): CascadeHooksResult => {\n const [, forceRefresh] = useState({});\n const openMenus = useRef<RuntimeMenuDescriptor[]>([\n { id: rootId, left: posX, top: posY },\n ]);\n\n const menuIsOpen = useCallback(\n (menuId: string) =>\n openMenus.current.findIndex((menu) => menu.id === menuId) !== -1,\n []\n );\n\n const getOpenMenuStatus = useCallback((menuId: string) => {\n const state = menuState.current[menuId];\n if (state === undefined) {\n throw Error(`getOpenMenuState no entry for menu ${menuId}`);\n }\n return state;\n }, []);\n\n const setOpenMenus = useCallback((menus: RuntimeMenuDescriptor[]) => {\n openMenus.current = menus;\n forceRefresh({});\n }, []);\n\n const menuOpenPendingTimeout = useRef<number | undefined>();\n const menuClosePendingTimeout = useRef<number | undefined>();\n const menuState = useRef<MenuState>({ [rootId]: \"no-popup\" });\n // const prevLevel = useRef(0);\n\n // const prevAim = useRef({mousePos: null, distance: true});\n\n const openMenu = useCallback(\n (hostMenuId = rootId, targetMenuId: string, itemId = null) => {\n if (hostMenuId === rootId && itemId === null) {\n setOpenMenus([{ id: rootId, left: posX, top: posY }]);\n } else {\n menuState.current[hostMenuId] = \"popup-open\";\n const el = document.getElementById(itemId) as HTMLElement;\n if (el !== null) {\n const { left, top } = getPosition(el, openMenus.current);\n setOpenMenus(\n openMenus.current.concat({ id: targetMenuId, left, top })\n );\n } else {\n throw Error(`openMenu no menuItem ${itemId}`);\n }\n }\n },\n [rootId, posX, posY, setOpenMenus]\n );\n\n const closeMenu = useCallback(\n (menuId?: string) => {\n if (menuId === rootId) {\n setOpenMenus([]);\n } else {\n const menus = openMenus.current.slice();\n const lastMenu = menus.pop() as RuntimeMenuDescriptor;\n menuState.current[lastMenu.id] = \"no-popup\";\n const parentMenu = menus.at(-1);\n if (parentMenu) {\n menuState.current[parentMenu.id] = \"no-popup\";\n }\n setOpenMenus(menus);\n }\n },\n [rootId, setOpenMenus]\n );\n\n const closeMenus = useCallback(\n (menuItemId) => {\n const menus = openMenus.current.slice();\n const menuItemMenuId = menuItemId.slice(9);\n let { id: lastMenuId } = menus.at(-1) as RuntimeMenuDescriptor;\n while (menus.length > 1 && !menuItemMenuId.startsWith(lastMenuId)) {\n const parentMenuId = getHostMenuId(lastMenuId, rootId);\n menus.pop();\n menuState.current[lastMenuId] = \"no-popup\";\n menuState.current[parentMenuId] = \"no-popup\";\n ({ id: lastMenuId } = menus[menus.length - 1]);\n }\n if (menus.length < openMenus.current.length) {\n setOpenMenus(menus);\n }\n },\n [rootId, setOpenMenus]\n );\n\n const clearAnyScheduledOpenTasks = useCallback(() => {\n if (menuOpenPendingTimeout.current) {\n clearTimeout(menuOpenPendingTimeout.current);\n menuOpenPendingTimeout.current = undefined;\n }\n }, []);\n\n const scheduleOpen = useCallback(\n (\n hostMenuId: string,\n targetMenuId: string,\n menuItemId: string,\n delay = 300\n ) => {\n clearAnyScheduledOpenTasks();\n // do we need to set target state to pending-open ?s\n\n menuOpenPendingTimeout.current = window.setTimeout(() => {\n // console.log(\n // `scheduleOpen<timeout> opening menu ${targetMenuId} from menu ${hostMenuId} via menuitem ${menuItemId}`\n // );\n closeMenus(menuItemId);\n menuState.current[hostMenuId] = \"popup-open\";\n menuState.current[targetMenuId] = \"no-popup\";\n openMenu(hostMenuId, targetMenuId, menuItemId);\n }, delay);\n },\n [clearAnyScheduledOpenTasks, closeMenus, openMenu]\n );\n\n const scheduleClose = useCallback(\n (hostMenuId: string, openMenuId: string, itemId: string) => {\n // console.log(\n // `scheduleClose openMenuId ${openMenuId} from parent menu ${hostMenuId} itemId ${itemId}`\n // );\n menuState.current[openMenuId] = \"pending-close\";\n menuClosePendingTimeout.current = window.setTimeout(() => {\n // console.log(`call closeMenus from scheduleClose`);\n closeMenus(itemId);\n }, 400);\n },\n [closeMenus]\n );\n\n const handleRender = useCallback(() => {\n const { current: menus } = openMenus;\n const menu = menus.at(-1);\n const el = menu ? document.getElementById(menu.id) : undefined;\n if (el) {\n const { right, bottom } = el.getBoundingClientRect();\n const { clientHeight, clientWidth } = document.body;\n if (right > clientWidth) {\n const newMenus =\n menus.length > 1\n ? flipSides(rootId, menus)\n : nudgeLeft(menus, right - clientWidth);\n setOpenMenus(newMenus);\n } else if (bottom > clientHeight) {\n const newMenus = nudgeUp(menus, bottom - clientHeight);\n setOpenMenus(newMenus);\n }\n\n if (typeof el.tabIndex === \"number\") {\n el.focus();\n }\n }\n }, [rootId, setOpenMenus]);\n\n // TODO introduce a delay parameter that allows click to requeat an immediate render\n const triggerChildMenu = useCallback<MenuOpenHandler>(\n (menuItemEl, immediate = false) => {\n const { hostMenuId, targetMenuId, menuItemId, isGroup, isOpen } =\n getMenuItemDetails(menuItemEl, rootId);\n const {\n current: { [hostMenuId]: state },\n } = menuState;\n\n const delay = immediate ? 0 : undefined;\n\n // console.log(\n // `%ctriggerChildMenu\n // rootId ${rootId}\n // menuItem ${menuItemId}\n // host menu: ${hostMenuId}\n // target menu: ${targetMenuId}\n // item index: ${menuItemId}\n // state ${state}\n // isGroup ${isGroup} isOpen ${isOpen}\n // openMenus: ${JSON.stringify(openMenus.current)}\n // full state='${JSON.stringify(menuState.current)}`,\n // \"color: green; font-weight: bold;\"\n // );\n\n if (state === \"no-popup\" && isGroup) {\n menuState.current[hostMenuId] = \"popup-pending\";\n scheduleOpen(hostMenuId, targetMenuId, menuItemId, delay);\n } else if (state === \"popup-pending\" && !isGroup) {\n menuState.current[hostMenuId] = \"no-popup\";\n clearTimeout(menuOpenPendingTimeout.current);\n menuOpenPendingTimeout.current = undefined;\n } else if (state === \"popup-pending\" && isGroup) {\n clearTimeout(menuOpenPendingTimeout.current);\n scheduleOpen(hostMenuId, targetMenuId, menuItemId, delay);\n } else if (state === \"popup-open\") {\n if (menuIsOpen(targetMenuId)) {\n const menuStatus = getOpenMenuStatus(targetMenuId);\n // Close any child menus of the target menu. This can happen if we have\n // opened child menus, then moused out of the menu entirely, to re-enter\n // at a higher level\n closeMenus(menuItemId);\n\n switch (menuStatus) {\n case \"pending-close\":\n // cancel the close\n clearTimeout(menuClosePendingTimeout.current);\n menuClosePendingTimeout.current = undefined;\n menuState.current[targetMenuId] = \"no-popup\";\n clearAnyScheduledOpenTasks();\n break;\n default:\n }\n } else {\n // TODO review the below, suspectb it's over complicating things\n const [parentOfLastOpenedMenu, lastOpenedMenu] =\n openMenus.current.slice(-2);\n if (\n parentOfLastOpenedMenu.id === hostMenuId &&\n menuState.current[lastOpenedMenu.id] !== \"pending-close\" /*&&\n sameLevel*/\n ) {\n scheduleClose(hostMenuId, lastOpenedMenu.id, menuItemId);\n if (isGroup && !isOpen) {\n scheduleOpen(hostMenuId, targetMenuId, menuItemId, delay);\n }\n } else if (\n parentOfLastOpenedMenu.id === hostMenuId &&\n isGroup &&\n menuItemId !== lastOpenedMenu.id &&\n menuState.current[lastOpenedMenu.id] === \"pending-close\"\n ) {\n // if there is already an item queued for opening cancel it\n scheduleOpen(hostMenuId, targetMenuId, menuItemId, delay);\n } else if (isGroup) {\n // closeMenus(menuId, itemId);\n scheduleOpen(hostMenuId, targetMenuId, menuItemId, delay);\n } else if (\n !(\n (menuState.current[lastOpenedMenu.id] === \"pending-close\") /*&&\n sameLevel*/\n )\n ) {\n closeMenus(menuItemId);\n }\n }\n }\n\n if (state === \"pending-close\") {\n clearAnyScheduledOpenTasks();\n clearTimeout(menuClosePendingTimeout.current);\n menuClosePendingTimeout.current = undefined;\n menuState.current[hostMenuId] = \"popup-open\";\n }\n },\n [\n clearAnyScheduledOpenTasks,\n closeMenus,\n getOpenMenuStatus,\n menuIsOpen,\n rootId,\n scheduleClose,\n scheduleOpen,\n ]\n );\n\n const listItemProps: Partial<MenuItemProps> = useMemo(\n () => ({\n onMouseEnter: (evt: MouseEvent) => {\n const menuItemEl = closestListItem(evt.target as HTMLElement);\n triggerChildMenu(menuItemEl);\n onMouseEnterItem(evt, menuItemEl.id);\n },\n\n onClick: (evt: SyntheticEvent) => {\n const listItemEl = closestListItem(evt.target as HTMLElement);\n const { isGroup, menuItemId } = getMenuItemDetails(listItemEl, rootId);\n if (isGroup) {\n triggerChildMenu(listItemEl);\n } else {\n onActivate(menuItemId);\n }\n },\n }),\n [onActivate, onMouseEnterItem, rootId, triggerChildMenu]\n );\n\n return {\n closeMenu,\n handleRender,\n listItemProps,\n openMenu: triggerChildMenu,\n openMenus: openMenus.current,\n };\n};\n", "export function listItemIndex(listItemEl: HTMLElement) {\n if (listItemEl) {\n const idx = listItemEl.dataset.index;\n if (idx) {\n return parseInt(idx, 10);\n // eslint-disable-next-line no-cond-assign\n } else if (listItemEl.ariaPosInSet) {\n return parseInt(listItemEl.ariaPosInSet, 10) - 1;\n }\n }\n}\n\nconst listItemId = (el: HTMLElement | null | undefined) => el?.id;\n\nexport const closestListItem = (el: HTMLElement | null | undefined) =>\n el?.closest(\"[data-index],[aria-posinset]\") as HTMLElement;\n\nexport const closestListItemId = (el: HTMLElement) =>\n listItemId(closestListItem(el));\n\nexport const closestListItemIndex = (el: HTMLElement) =>\n listItemIndex(closestListItem(el));\n", "import type {\n ContextMenuContextType,\n MenuActionHandler,\n MenuBuilder,\n} from \"@vuu-ui/vuu-data-types\";\nimport { createContext, ReactNode, useCallback, useMemo } from \"react\";\n\nexport const ContextMenuContext = createContext<ContextMenuContextType | null>(\n null\n);\n\nexport interface ContextMenuConfiguration {\n menuActionHandler?: MenuActionHandler;\n menuBuilder: MenuBuilder;\n}\n\nexport interface ContextMenuProviderProps extends ContextMenuConfiguration {\n children: ReactNode;\n label?: string;\n}\n\ninterface ProviderProps extends ContextMenuProviderProps {\n context: ContextMenuContextType | null;\n}\n\nconst Provider = ({\n children,\n context,\n menuActionHandler,\n menuBuilder,\n}: ProviderProps) => {\n const menuBuilders = useMemo(() => {\n if (context?.menuBuilders && menuBuilder) {\n return context.menuBuilders.concat(menuBuilder);\n } else if (menuBuilder) {\n return [menuBuilder];\n } else {\n return context?.menuBuilders || [];\n }\n }, [context, menuBuilder]);\n\n const handleMenuAction = useCallback(\n (reason) => {\n if (menuActionHandler?.(reason)) {\n return true;\n }\n\n if (context?.menuActionHandler?.(reason)) {\n return true;\n }\n },\n [context, menuActionHandler]\n );\n\n return (\n <ContextMenuContext.Provider\n value={{\n menuActionHandler: handleMenuAction,\n menuBuilders,\n }}\n >\n {children}\n </ContextMenuContext.Provider>\n );\n};\n\n// Need an option for local menu to override higher-level menu, rather than extend\nexport const ContextMenuProvider = ({\n children,\n label,\n menuActionHandler,\n menuBuilder,\n}: ContextMenuProviderProps) => {\n return (\n <ContextMenuContext.Consumer>\n {(parentContext) => (\n <Provider\n context={parentContext}\n label={label}\n menuActionHandler={menuActionHandler}\n menuBuilder={menuBuilder}\n >\n {children}\n </Provider>\n )}\n </ContextMenuContext.Consumer>\n );\n};\n", "import {\n ContextMenuItemDescriptor,\n MenuActionHandler,\n MenuBuilder,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n isGroupMenuItemDescriptor,\n useThemeAttributes,\n} from \"@vuu-ui/vuu-utils\";\nimport { cloneElement, useCallback, useContext, useMemo } from \"react\";\nimport {\n MenuActionClosePopup,\n PopupCloseReason,\n PopupService,\n reasonIsMenuAction,\n} from \"../popup\";\nimport { ContextMenu, ContextMenuProps } from \"./ContextMenu\";\nimport { MenuItem, MenuItemGroup } from \"./MenuList\";\nimport { ContextMenuContext } from \"./context-menu-provider\";\n\nexport type ContextMenuOptions = {\n [key: string]: unknown;\n contextMenu?: JSX.Element;\n ContextMenuProps?: Partial<ContextMenuProps> & {\n className?: string;\n };\n controlledComponentId?: string;\n};\n\nexport type EventLike = {\n clientX: number;\n clientY: number;\n preventDefault?: () => void;\n stopPropagation?: () => void;\n};\n\nexport type ShowContextMenu = (\n e: EventLike,\n location: string,\n options: ContextMenuOptions\n) => void;\n\n// The argument allows a top-level menuBuilder to operate outside the Context\nexport const useContextMenu = (\n menuBuilder?: MenuBuilder,\n menuActionHandler?: MenuActionHandler\n): [ShowContextMenu, () => void] => {\n const ctx = useContext(ContextMenuContext);\n\n const [themeClass, densityClass, dataMode] = useThemeAttributes();\n const themeAttributes = useMemo(\n () => ({\n themeClass,\n densityClass,\n dataMode,\n }),\n [dataMode, densityClass, themeClass]\n );\n\n const buildMenuOptions = useCallback(\n (menuBuilders: MenuBuilder[], location, options) => {\n let results: ContextMenuItemDescriptor[] = [];\n for (const menuBuilder of menuBuilders) {\n // Maybe we should leave the concatenation to the menuBuilder, then it can control menuItem order\n results = results.concat(menuBuilder(location, options));\n }\n return results;\n },\n []\n );\n\n const handleShowContextMenu = useCallback<ShowContextMenu>(\n (e, location, { ContextMenuProps, contextMenu, ...options }) => {\n e.stopPropagation?.();\n e.preventDefault?.();\n\n if (contextMenu) {\n return showContextMenuComponent(\n {\n x: e.clientX,\n y: e.clientY,\n },\n contextMenu\n );\n }\n\n const menuBuilders: MenuBuilder[] = [];\n if (menuBuilder) {\n menuBuilders.push(menuBuilder);\n }\n if (\n ctx &&\n Array.isArray(ctx?.menuBuilders) &&\n ctx.menuBuilders.length > 0\n ) {\n menuBuilders.push(...ctx.menuBuilders);\n }\n\n if (menuBuilders.length > 0) {\n const menuItemDescriptors = buildMenuOptions(\n menuBuilders,\n location,\n options\n );\n\n // const menuHandler = menuActionHandler ?? ctx?.menuActionHandler;\n const menuHandler: MenuActionHandler = (\n action: MenuActionClosePopup\n ) => {\n if (menuActionHandler?.(action) === true) {\n return true;\n } else {\n return ctx?.menuActionHandler(action);\n }\n };\n\n if (menuItemDescriptors.length && menuHandler) {\n // because showPopup is going to be used to render the context menu, it will not\n // have access to the ContextMenuContext. Pass the theme attributes here\n showContextMenu(e, menuItemDescriptors, menuHandler, {\n PortalProps: {\n themeAttributes,\n },\n ...ContextMenuProps,\n });\n }\n } else {\n console.warn(\n \"useContextMenu, no menuBuilders configured. These should be supplied via the ContextMenuProvider(s)\"\n );\n }\n },\n [buildMenuOptions, ctx, menuActionHandler, menuBuilder, themeAttributes]\n );\n\n const hideContextMenu = useCallback(() => {\n console.log(\"hide context menu\");\n }, []);\n\n return [handleShowContextMenu, hideContextMenu];\n};\n\nconst NO_OPTIONS = {};\n\nconst showContextMenuComponent = (\n position: { x: number; y: number },\n contextMenu: JSX.Element\n) => {\n PopupService.showPopup({\n focus: true,\n left: 0,\n top: 0,\n component: cloneElement(contextMenu, { position }),\n });\n};\n\nconst showContextMenu = (\n e: EventLike,\n menuDescriptors: ContextMenuItemDescriptor[],\n handleContextMenuAction: MenuActionHandler,\n {\n position: positionProp,\n ...contextMenuProps\n }: ContextMenuOptions[\"ContextMenuProps\"] = NO_OPTIONS\n) => {\n const menuItems = (menuDescriptors: ContextMenuItemDescriptor[]) => {\n const fromDescriptor = (menuItem: ContextMenuItemDescriptor, i: number) =>\n isGroupMenuItemDescriptor(menuItem) ? (\n <MenuItemGroup key={i} label={menuItem.label}>\n {menuItem.children.map(fromDescriptor)}\n </MenuItemGroup>\n ) : (\n <MenuItem\n key={i}\n action={menuItem.action}\n className={menuItem.className}\n data-icon={menuItem.icon}\n options={menuItem.options}\n >\n {menuItem.label}\n </MenuItem>\n );\n\n return menuDescriptors.map(fromDescriptor);\n };\n\n const handleClose = (reason?: PopupCloseReason) => {\n if (reasonIsMenuAction(reason)) {\n handleContextMenuAction(reason);\n // TODO this results in onClose being called twice on component\n // cant simply be removed, some refactoring work needed\n PopupService.hidePopup();\n }\n contextMenuProps?.onClose?.(reason);\n };\n\n const position = positionProp ?? {\n x: e.clientX,\n y: e.clientY,\n };\n\n const component = (\n <ContextMenu\n {...contextMenuProps}\n onClose={handleClose}\n position={position}\n >\n {menuItems(menuDescriptors)}\n </ContextMenu>\n );\n PopupService.showPopup({ left: 0, top: 0, component, focus: true });\n};\n", "import { MenuActionHandler, MenuBuilder } from \"@vuu-ui/vuu-data-types\";\nimport { useId } from \"@vuu-ui/vuu-utils\";\nimport { Button } from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { MenuOpenHandler, useContextMenu } from \"../menu\";\nimport {\n PopupCloseCallback,\n PopupCloseReason,\n reasonIsClickAway,\n} from \"../popup/popup-service\";\n\nimport \"./PopupMenu.css\";\n\nconst classBase = \"vuuPopupMenu\";\n\nexport interface PopupMenuProps extends HTMLAttributes<HTMLButtonElement> {\n icon?: string;\n label?: string;\n menuActionHandler?: MenuActionHandler;\n menuBuilder?: MenuBuilder;\n menuLocation?: string;\n menuOptions?: { [key: string]: unknown };\n onMenuClose?: (reason?: PopupCloseReason) => void;\n}\n\nconst getPosition = (element: HTMLElement | null) => {\n if (element) {\n const { bottom, left } = element.getBoundingClientRect();\n return { x: left, y: bottom + 6 };\n }\n};\n\nexport const PopupMenu = ({\n className,\n label,\n icon = label ? \"chevron-down\" : \"more-vert\",\n id: idProp,\n menuActionHandler,\n menuBuilder,\n menuLocation = \"header\",\n menuOptions,\n onMenuClose,\n tabIndex = 0,\n ...htmlAttributes\n}: PopupMenuProps) => {\n const rootRef = useRef<HTMLButtonElement>(null);\n const suppressShowMenuRef = useRef(false);\n const [menuOpen, setMenuOpen] = useState(false);\n const id = useId(idProp);\n const [showContextMenu] = useContextMenu(menuBuilder, menuActionHandler);\n\n const handleOpenMenu = useCallback<MenuOpenHandler>((el) => {\n console.log(`menu Open `, {\n el,\n });\n }, []);\n\n const handleMenuClose = useCallback<PopupCloseCallback>(\n (reason?: PopupCloseReason) => {\n setMenuOpen(false);\n // If user has clicked the MenuButton whilst menu is open, we want to close it.\n // The PopupService will close it for us as a 'click-away' event. We don't want\n // that click on the button to re-open it.\n if (reasonIsClickAway(reason)) {\n const target = reason.mouseEvt.target as HTMLElement;\n if (target === rootRef.current) {\n suppressShowMenuRef.current = true;\n }\n } else {\n requestAnimationFrame(() => {\n onMenuClose?.(reason);\n if (tabIndex !== -1) {\n rootRef.current?.focus();\n }\n });\n }\n },\n [onMenuClose, tabIndex]\n );\n\n const showMenu = useCallback(\n (e: MouseEvent<HTMLElement>) => {\n if (suppressShowMenuRef.current) {\n suppressShowMenuRef.current = false;\n } else {\n setMenuOpen(true);\n showContextMenu(e, menuLocation, {\n ContextMenuProps: {\n id: `${id}-menu`,\n onClose: handleMenuClose,\n openMenu: handleOpenMenu,\n position: getPosition(rootRef.current),\n },\n ...menuOptions,\n });\n }\n },\n [\n handleMenuClose,\n handleOpenMenu,\n id,\n menuLocation,\n menuOptions,\n showContextMenu,\n ]\n );\n\n return (\n <Button\n {...htmlAttributes}\n aria-controls={`${id}-menu-root`}\n aria-expanded={menuOpen}\n aria-haspopup=\"menu\"\n className={cx(classBase, className, {\n [`${classBase}-withCaption`]: label !== undefined,\n [`${classBase}-open`]: menuOpen,\n })}\n data-icon={icon}\n id={id}\n onClick={showMenu}\n ref={rootRef}\n tabIndex={tabIndex}\n variant=\"secondary\"\n >\n {label}\n </Button>\n );\n};\n", "import { useThemeAttributes } from \"@vuu-ui/vuu-utils\";\nimport { Button } from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, useLayoutEffect, useRef } from \"react\";\nimport { PopupComponentProps, useAnchoredPosition } from \"../popup\";\n\nimport \"./Prompt.css\";\n\nconst classBase = \"vuuPrompt\";\n\nconst AnchorBody = { current: document.body };\n\nconst EMPTY_PROPS = {};\n\nexport interface PromptProps extends HTMLAttributes<HTMLDialogElement> {\n PopupProps?: Partial<PopupComponentProps>;\n cancelButtonLabel?: string;\n confirmButtonLabel?: string;\n onCancel: () => void;\n onConfirm: () => void;\n icon?: string;\n text: string;\n variant?: \"warn\" | \"error\" | \"info\";\n}\n\nexport const Prompt = ({\n PopupProps = EMPTY_PROPS,\n cancelButtonLabel = \"Cancel\",\n confirmButtonLabel = \"Confirm\",\n icon,\n onCancel,\n onConfirm,\n style,\n text,\n title,\n variant = \"info\",\n ...htmlAttributes\n}: PromptProps) => {\n const {\n anchorElement = AnchorBody,\n offsetLeft = 0,\n offsetTop = 0,\n placement = \"below\",\n } = PopupProps;\n const [themeClass, densityClass, dataMode] = useThemeAttributes();\n const { position } = useAnchoredPosition({\n anchorElement,\n offsetLeft,\n offsetTop,\n placement,\n });\n const rootRef = useRef<HTMLDialogElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n\n useLayoutEffect(() => {\n if (rootRef.current) {\n rootRef.current.showModal();\n if (confirmRef.current) {\n confirmRef.current.focus();\n }\n if (placement.endsWith(\"center\")) {\n const { width } = rootRef.current.getBoundingClientRect();\n rootRef.current.style.marginLeft = `-${width / 2}px`;\n }\n }\n }, [placement]);\n\n return (\n <dialog\n {...htmlAttributes}\n className={cx(classBase, `${classBase}-${variant}`, themeClass)}\n data-mode={dataMode}\n ref={rootRef}\n style={{ ...style, ...position }}\n >\n <form className={`${classBase}-form`}>\n <div className={`${classBase}-header`} data-icon={icon}>\n {title}\n </div>\n <div className={`${classBase}-text`}>{text}</div>\n <div className={`${classBase}-buttonBar`}>\n <Button onClick={onCancel} variant=\"secondary\">\n {cancelButtonLabel}\n </Button>\n <Button onClick={onConfirm} ref={confirmRef} value=\"default\">\n {confirmButtonLabel}\n </Button>\n </div>\n </form>\n </dialog>\n );\n};\n", "// TODO merge with Popup\n\nimport { RefObject, useLayoutEffect, useState } from \"react\";\n\nexport type TooltipPlacement = \"above\" | \"right\" | \"below\" | \"left\";\n\nexport interface AnchoredPositionHookProps {\n anchorElement: RefObject<HTMLElement>;\n offsetLeft?: number;\n offsetTop?: number;\n placement: TooltipPlacement;\n}\n\nconst getPositionRelativeToAnchor = (\n anchorElement: HTMLElement,\n placement: TooltipPlacement,\n offsetLeft: number,\n offsetTop: number\n): { left: number; top: number } => {\n const { bottom, height, left, right, top, width } =\n anchorElement.getBoundingClientRect();\n const midX = left + width / 2;\n const midY = top + height / 2;\n\n switch (placement) {\n case \"above\":\n return { left: midX + offsetLeft, top: top + offsetTop };\n case \"below\":\n return { left: midX + offsetLeft, top: bottom + offsetTop };\n case \"right\":\n return { left: right + offsetLeft, top: midY + offsetLeft };\n // case \"below-center\":\n // return { left: left + width / 2 + offsetLeft, top: bottom + offsetTop };\n case \"left\":\n return { left: left + offsetLeft, top: midY + offsetLeft };\n default:\n throw Error(\n \"Tooltip getPositionRelativeToAnchor only supported placement values are left, right, below and right\"\n );\n }\n};\n\nexport const useAnchoredPosition = ({\n anchorElement,\n offsetLeft = 0,\n offsetTop = 0,\n placement,\n}: AnchoredPositionHookProps) => {\n const [position, setPosition] = useState<\n { left: number; top: number } | undefined\n >();\n\n // maybe better as useMemo ?\n useLayoutEffect(() => {\n if (anchorElement.current) {\n const position = getPositionRelativeToAnchor(\n anchorElement.current,\n placement,\n offsetLeft,\n offsetTop\n );\n setPosition(position);\n }\n }, [anchorElement, offsetLeft, offsetTop, placement]);\n\n return position;\n};\n", "import { CSSProperties, MouseEventHandler, ReactNode, RefObject } from \"react\";\nimport { Portal } from \"../portal\";\nimport { TooltipPlacement, useAnchoredPosition } from \"./useAnchoredPosition\";\nimport cx from \"clsx\";\n\nimport \"./Tooltip.css\";\n\nconst classBase = \"vuuTooltip\";\n\nexport type TooltipStatus = \"warning\" | \"error\" | \"info\";\nexport interface TooltipProps {\n anchorElement: RefObject<HTMLElement>;\n children: ReactNode;\n id?: string;\n onMouseEnter: MouseEventHandler;\n onMouseLeave: MouseEventHandler;\n placement: TooltipPlacement;\n status?: TooltipStatus;\n style?: CSSProperties;\n}\n\nexport const Tooltip = ({\n anchorElement,\n children,\n id,\n onMouseEnter,\n onMouseLeave,\n placement,\n status,\n style: styleProp,\n}: TooltipProps) => {\n const position = useAnchoredPosition({ anchorElement, placement });\n if (position === undefined) {\n return null;\n }\n return (\n <Portal>\n <div\n className={cx(classBase, {\n [`${classBase}-error`]: status === \"error\",\n })}\n data-align={placement}\n id={id}\n style={{ ...styleProp, ...position }}\n >\n <span\n className={`${classBase}-content`}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </span>\n </div>\n </Portal>\n );\n};\n", "import { useId } from \"@vuu-ui/vuu-utils\";\nimport { MouseEvent, ReactNode, useCallback, useRef, useState } from \"react\";\nimport { TooltipProps } from \"./Tooltip\";\nimport { TooltipPlacement } from \"./useAnchoredPosition\";\n\nexport interface TooltipHookProps {\n id: string;\n placement?: TooltipPlacement;\n tooltipContent: ReactNode;\n}\n\nexport const useTooltip = ({\n id: idProp,\n placement = \"right\",\n tooltipContent,\n}: TooltipHookProps) => {\n const hideTooltipRef = useRef<() => void>();\n const anchorElementRef = useRef<HTMLElement | null>(null);\n const mouseEnterTimerRef = useRef<number | undefined>();\n const mouseLeaveTimerRef = useRef<number | undefined>();\n const [tooltipProps, setTooltipProps] = useState<TooltipProps | undefined>();\n\n const id = useId(idProp);\n\n const escapeListener = useCallback((evt: KeyboardEvent) => {\n if (evt.key === \"Escape\") {\n hideTooltipRef.current?.();\n }\n }, []);\n\n hideTooltipRef.current = useCallback(() => {\n setTooltipProps(undefined);\n document.removeEventListener(\"keydown\", escapeListener);\n }, [escapeListener]);\n\n const handleMouseEnterTooltip = useCallback(() => {\n window.clearTimeout(mouseLeaveTimerRef.current);\n }, []);\n\n const handleMouseLeaveTooltip = useCallback(() => {\n hideTooltipRef.current?.();\n }, []);\n\n const showTooltip = useCallback(() => {\n const { current: anchorEl } = anchorElementRef;\n if (anchorEl) {\n setTooltipProps({\n anchorElement: anchorElementRef,\n children: tooltipContent,\n id: `${id}-tooltip`,\n onMouseEnter: handleMouseEnterTooltip,\n onMouseLeave: handleMouseLeaveTooltip,\n placement: placement,\n });\n // register ESC listener\n document.addEventListener(\"keydown\", escapeListener);\n }\n mouseEnterTimerRef.current = undefined;\n }, [\n escapeListener,\n handleMouseEnterTooltip,\n handleMouseLeaveTooltip,\n id,\n placement,\n tooltipContent,\n ]);\n\n const handleMouseEnter = useCallback(\n (evt: MouseEvent) => {\n const el = evt.target as HTMLElement;\n if (el) {\n anchorElementRef.current = el;\n mouseEnterTimerRef.current = window.setTimeout(showTooltip, 800);\n }\n },\n [showTooltip]\n );\n\n const handleMouseLeave = useCallback(() => {\n if (anchorElementRef.current)\n if (mouseEnterTimerRef.current) {\n window.clearTimeout(mouseEnterTimerRef.current);\n mouseEnterTimerRef.current = undefined;\n } else {\n if (hideTooltipRef.current) {\n mouseLeaveTimerRef.current = window.setTimeout(\n hideTooltipRef.current,\n 200\n );\n }\n }\n }, []);\n\n const anchorProps = {\n \"aria-describedby\": `${id}-tooltip`,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n };\n\n return {\n anchorProps,\n tooltipProps,\n };\n};\n", "import React, { useState, useContext, useCallback, useEffect } from \"react\";\nimport classNames from \"clsx\";\nimport { getUniqueId } from \"@vuu-ui/vuu-utils\";\n\nimport \"./notifications.css\";\nimport { Portal } from \"../portal\";\n\n// animation times in milliseconds\nconst toastOffsetTop = 60;\nconst toastDisplayDuration = 6000;\nconst horizontalTransitionDuration = 1000;\nconst verticalTransitionDuration = 300;\n\n// toast size in pixels\nconst toastHeight = 56;\nconst toastWidth = 300;\nconst toastContainerContentGap = 10;\nconst toastContainerLeftPadding = 10;\n// rightPadding is used together with the toastWidth to compute the toast position\n// at the beginning and at the end of the animation\nconst toastContainerRightPadding = 50;\n\nconst classBase = \"vuuToastNotifications\";\n\nexport enum NotificationLevel {\n Info = \"info\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\ntype Notification = {\n type: NotificationLevel;\n header: string;\n body: string;\n id: string;\n};\n\nexport const NotificationsContext = React.createContext<{\n notify: (notification: Omit<Notification, \"id\">) => void;\n}>({\n notify: () => \"have you forgotten to provide a NotificationProvider?\",\n});\n\nexport const NotificationsProvider = (props: {\n children: JSX.Element | JSX.Element[];\n}) => {\n const [notifications, setNotifications] = useState<Notification[]>([]);\n\n const notify = useCallback((notification: Omit<Notification, \"id\">) => {\n const newNotification = { ...notification, id: getUniqueId() };\n\n setNotifications((prev) => [...prev, newNotification]);\n\n setTimeout(() => {\n setNotifications((prev) => prev.filter((n) => n !== newNotification));\n }, toastDisplayDuration + horizontalTransitionDuration * 2);\n }, []);\n\n return (\n <NotificationsContext.Provider value={{ notify }}>\n <div\n style={{\n width:\n toastWidth + toastContainerRightPadding + toastContainerLeftPadding,\n }}\n >\n {notifications.map((notification, i) => (\n <ToastNotification\n top={toastOffsetTop + (toastHeight + toastContainerContentGap) * i}\n notification={notification}\n key={notification.id}\n />\n ))}\n </div>\n {props.children}\n </NotificationsContext.Provider>\n );\n};\n\nexport const useNotifications = () => useContext(NotificationsContext);\n\ntype ToastNotificationProps = {\n top: number;\n notification: Notification;\n animated?: boolean;\n};\n\n// Only exported for use in individual toast examples. Normal usage will be through the provider\nexport const ToastNotification = (props: ToastNotificationProps) => {\n const { top, notification, animated = true } = props;\n\n const [right, setRight] = useState(-toastWidth - toastContainerRightPadding);\n\n useEffect(() => {\n setTimeout(() => setRight(toastContainerRightPadding));\n\n if (animated) {\n setTimeout(\n () => setRight(-toastWidth - toastContainerRightPadding),\n toastDisplayDuration + horizontalTransitionDuration\n );\n }\n }, [animated]);\n\n return (\n <Portal>\n <div\n className={classNames(`${classBase}-toast`, notification.type)}\n style={{\n height: toastHeight,\n right,\n width: toastWidth,\n top,\n transition: animated\n ? `right ${horizontalTransitionDuration}ms, top ${verticalTransitionDuration}ms `\n : \"none\",\n }}\n >\n <div\n className={classNames(\n `${classBase}-toastIcon`,\n `${notification.type}-icon`\n )}\n />\n <div className={`${classBase}-toastContent`}>\n <strong className={`${classBase}-toastHeader`}>\n {notification.header}\n </strong>\n <div>{notification.body}</div>\n </div>\n </div>\n </Portal>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["cx", "useThemeAttributes", "useCallback", "useLayoutEffect", "useRef", "Button", "Text", "cx", "jsx", "jsxs", "classBase", "DialogHeader", "hideCloseButton", "title", "onClose", "htmlAttributes", "cx", "Text", "Button", "cx", "React", "createElement", "ReactDOM", "ReactDOM", "cx", "containerId", "getPortalContainer", "className", "dataMode", "x", "y", "win", "el", "createContainer", "props", "renderPortal", "component", "container", "onRender", "_dialogOpen", "_popups", "reasonIsMenuAction", "reason", "reasonIsClickAway", "specialKeyHandler", "closeAllPopups", "dialogRoot", "ReactDOM", "outsideClickHandler", "popupContainers", "i", "PopupService", "popupClosed", "dialogOpened", "dialogClosed", "popupOpened", "name", "pos", "PopupComponent", "children", "position", "style", "className", "cx", "createElement", "incrementingKey", "_PopupService", "group", "left", "right", "top", "width", "component", "el", "renderPortal", "evt", "_a", "popupRoot", "target", "height", "currentRight", "w", "overflowH", "overflowW", "adjustment", "DialogService", "_DialogService", "dialog", "containerEl", "onClose", "React", "cx", "useCallback", "useLayoutEffect", "useRef", "useState", "getPositionRelativeToAnchor", "anchorElement", "placement", "offsetLeft", "offsetTop", "minWidth", "dimensions", "bottom", "height", "left", "right", "top", "width", "useAnchoredPosition", "positionProp", "popupRef", "position", "setPosition", "popupCallbackRef", "el", "jsx", "PopupComponent", "children", "className", "anchorElement", "minWidth", "placement", "positionProp", "popupRef", "position", "useAnchoredPosition", "cx", "jsx", "jsxs", "classBase", "AnchorBody", "EMPTY_PROPS", "Dialog", "PopupProps", "children", "className", "isOpen", "onClose", "style", "title", "hideCloseButton", "htmlAttributes", "anchorElement", "offsetLeft", "offsetTop", "placement", "rootRef", "useRef", "portalRef", "themeClass", "densityClass", "dataMode", "useThemeAttributes", "position", "useAnchoredPosition", "close", "useCallback", "useLayoutEffect", "left", "top", "width", "cx", "DialogHeader", "useCallback", "useState", "jsx", "useDialog", "dialogState", "setDialogState", "useState", "handleClose", "useCallback", "Dialog", "useId", "useCallback", "useRef", "useThemeAttributes", "useLayoutEffect", "useRef", "useState", "createPortal", "getContainer", "container", "DEFAULT_ID", "getFirstAvailableElementById", "id", "i", "element", "Portal", "children", "containerProp", "onRender", "open", "themeAttributes", "_a", "mounted", "setMounted", "useState", "portalRef", "useRef", "themeClass", "densityClass", "dataMode", "useThemeAttributes", "useLayoutEffect", "root", "el", "createPortal", "cx", "React", "useLayoutEffect", "useMemo", "useRef", "useId", "React", "useCallback", "useMemo", "isMenuItemGroup", "child", "MenuItemGroup", "getLabelFromChildren", "children", "isMenuItemLabel", "assignId", "path", "group", "hasSeparator", "React", "useItemsWithIdsNext", "childrenProp", "rootId", "normalizeChildren", "useCallback", "collectChildren", "menus", "actions", "list", "idx", "Separator", "hasChildItems", "childPath", "action", "options", "childWithId", "grandChildren", "useMemo", "useCallback", "useMemo", "useRef", "useState", "isRoot", "el", "hasPopup", "idx", "_a", "union", "set1", "sets", "result", "set", "element", "Enter", "Delete", "actionKeys", "Enter", "focusKeys", "arrowLeftRightKeys", "verticalNavigationKeys", "horizontalNavigationKeys", "functionKeys", "specialKeys", "union", "isNavigationKey", "key", "orientation", "verticalNavigationKeys", "horizontalNavigationKeys", "isValidNumber", "useKeyboardNavigation", "autoHighlightFirstItem", "count", "defaultHighlightedIdx", "highlightedIndexProp", "onActivate", "onHighlight", "onCloseMenu", "onOpenMenu", "_a", "controlledHighlighting", "highlightedIndexRef", "useRef", "forceRender", "useState", "setHighlightedIdx", "useCallback", "idx", "setHighlightedIndex", "keyBoardNavigation", "ignoreFocus", "setIgnoreFocus", "value", "highlightedIndex", "navigateChildldItems", "e", "nextIdx", "nextItemIdx", "handleKeyDown", "isNavigationKey", "hasPopup", "menuItemEl", "isRoot", "listProps", "useMemo", "key", "Fragment", "jsx", "classBase", "Separator", "MenuItemGroup", "MenuItem", "children", "idx", "options", "props", "MenuItemLabel", "getDisplayName", "item", "React", "isMenuItemLabel", "hasIcon", "child", "MenuList", "activatedByKeyboard", "childMenuShowing", "className", "defaultHighlightedIdx", "highlightedIdxProp", "idProp", "isRoot", "listItemProps", "onHighlightMenuItem", "onActivate", "onCloseMenu", "onOpenMenu", "id", "useId", "root", "useRef", "mapIdxToId", "useMemo", "handleActivate", "_a", "el", "focusVisible", "highlightedIndex", "listProps", "useKeyboardNavigation", "appliedFocusVisible", "useLayoutEffect", "getActiveDescendant", "renderContent", "propsCommonToAllListItems", "maybeIcon", "childElement", "withIcon", "iconName", "addClonedChild", "list", "itemId", "hasSeparator", "label", "hasSubMenu", "isMenuItemGroup", "subMenuShowing", "ariaControls", "getMenuItemProps", "listItems", "cx", "key", "highlightedIdx", "useCallback", "useMemo", "useRef", "useState", "closestListItem", "el", "nudge", "menus", "distance", "pos", "m", "i", "nudgeLeft", "nudgeUp", "flipSides", "id", "parentMenu", "menu", "el", "width", "getPosition", "openMenus", "left", "menuTop", "top", "getHostMenuId", "rootId", "getTargetMenuId", "getMenuItemDetails", "ariaExpanded", "ariaHasPopup", "useCascade", "onActivate", "onMouseEnterItem", "posX", "posY", "forceRefresh", "useState", "useRef", "menuIsOpen", "useCallback", "menuId", "getOpenMenuStatus", "state", "menuState", "setOpenMenus", "menuOpenPendingTimeout", "menuClosePendingTimeout", "openMenu", "hostMenuId", "targetMenuId", "itemId", "closeMenu", "lastMenu", "closeMenus", "menuItemId", "menuItemMenuId", "lastMenuId", "parentMenuId", "clearAnyScheduledOpenTasks", "scheduleOpen", "delay", "scheduleClose", "openMenuId", "handleRender", "right", "bottom", "clientHeight", "clientWidth", "newMenus", "triggerChildMenu", "menuItemEl", "immediate", "isGroup", "isOpen", "menuStatus", "parentOfLastOpenedMenu", "lastOpenedMenu", "listItemProps", "useMemo", "evt", "closestListItem", "listItemEl", "Fragment", "jsx", "createElement", "noop", "ContextMenu", "PortalProps", "activatedByKeyboard", "childrenProp", "className", "idProp", "onClose", "position", "style", "menuListProps", "closeHandlerRef", "useRef", "id", "useId", "closeMenuRef", "menus", "actions", "useItemsWithIdsNext", "navigatingWithKeyboard", "handleMouseEnterItem", "useCallback", "handleActivate", "menuItemId", "actionId", "action", "options", "closeMenu", "listItemProps", "onOpenMenu", "openMenus", "handleRender", "useCascade", "handleCloseMenu", "handleHighlightMenuItem", "lastMenu", "getChildMenuId", "i", "menuId", "left", "top", "all", "childMenuId", "Portal", "PopupComponent", "MenuList", "createContext", "useCallback", "useMemo", "jsx", "ContextMenuContext", "Provider", "children", "context", "menuActionHandler", "menuBuilder", "menuBuilders", "handleMenuAction", "reason", "_a", "ContextMenuProvider", "label", "parentContext", "isGroupMenuItemDescriptor", "useThemeAttributes", "cloneElement", "useCallback", "useContext", "useMemo", "jsx", "useContextMenu", "menuBuilder", "menuActionHandler", "ctx", "useContext", "ContextMenuContext", "themeClass", "densityClass", "dataMode", "useThemeAttributes", "themeAttributes", "useMemo", "buildMenuOptions", "useCallback", "menuBuilders", "location", "options", "results", "handleShowContextMenu", "e", "ContextMenuProps", "contextMenu", "_a", "_b", "showContextMenuComponent", "menuItemDescriptors", "menuHandler", "action", "showContextMenu", "hideContextMenu", "NO_OPTIONS", "position", "PopupService", "cloneElement", "menuDescriptors", "handleContextMenuAction", "positionProp", "contextMenuProps", "menuItems", "fromDescriptor", "menuItem", "i", "isGroupMenuItemDescriptor", "MenuItemGroup", "MenuItem", "handleClose", "reason", "reasonIsMenuAction", "component", "ContextMenu", "useId", "Button", "cx", "useCallback", "useRef", "useState", "jsx", "classBase", "getPosition", "element", "bottom", "left", "PopupMenu", "className", "label", "icon", "idProp", "menuActionHandler", "menuBuilder", "menuLocation", "menuOptions", "onMenuClose", "tabIndex", "htmlAttributes", "rootRef", "useRef", "suppressShowMenuRef", "menuOpen", "setMenuOpen", "useState", "id", "useId", "showContextMenu", "useContextMenu", "handleOpenMenu", "useCallback", "el", "handleMenuClose", "reason", "reasonIsClickAway", "_a", "showMenu", "e", "Button", "cx", "useThemeAttributes", "Button", "cx", "useLayoutEffect", "useRef", "jsx", "jsxs", "classBase", "AnchorBody", "EMPTY_PROPS", "Prompt", "PopupProps", "cancelButtonLabel", "confirmButtonLabel", "icon", "onCancel", "onConfirm", "style", "text", "title", "variant", "htmlAttributes", "anchorElement", "offsetLeft", "offsetTop", "placement", "themeClass", "densityClass", "dataMode", "useThemeAttributes", "position", "useAnchoredPosition", "rootRef", "useRef", "confirmRef", "useLayoutEffect", "width", "cx", "Button", "useLayoutEffect", "useState", "getPositionRelativeToAnchor", "anchorElement", "placement", "offsetLeft", "offsetTop", "bottom", "height", "left", "right", "top", "width", "midX", "midY", "useAnchoredPosition", "position", "setPosition", "cx", "jsx", "classBase", "Tooltip", "anchorElement", "children", "id", "onMouseEnter", "onMouseLeave", "placement", "status", "styleProp", "position", "useAnchoredPosition", "Portal", "cx", "useId", "useCallback", "useRef", "useState", "useTooltip", "idProp", "placement", "tooltipContent", "hideTooltipRef", "anchorElementRef", "mouseEnterTimerRef", "mouseLeaveTimerRef", "tooltipProps", "setTooltipProps", "id", "escapeListener", "evt", "_a", "handleMouseEnterTooltip", "handleMouseLeaveTooltip", "showTooltip", "anchorEl", "handleMouseEnter", "el", "handleMouseLeave", "React", "useState", "useContext", "useCallback", "useEffect", "classNames", "getUniqueId", "jsx", "jsxs", "toastOffsetTop", "toastDisplayDuration", "horizontalTransitionDuration", "verticalTransitionDuration", "toastHeight", "toastWidth", "toastContainerContentGap", "toastContainerLeftPadding", "toastContainerRightPadding", "classBase", "NotificationLevel", "NotificationsContext", "React", "NotificationsProvider", "props", "notifications", "setNotifications", "useState", "notify", "useCallback", "notification", "newNotification", "getUniqueId", "prev", "n", "ToastNotification", "useNotifications", "useContext", "top", "animated", "right", "setRight", "useEffect", "Portal", "classNames"]
5
+ "mappings": "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",
6
+ "names": ["cx", "useCallback", "useLayoutEffect", "useRef", "cx", "ReactDOM", "cx", "ReactDOM", "cx", "cx", "position", "jsx", "PopupComponent", "cx", "jsx", "jsxs", "classBase", "useRef", "useCallback", "useLayoutEffect", "cx", "useCallback", "useState", "jsx", "useState", "useCallback", "useId", "useCallback", "useRef", "useThemeAttributes", "useLayoutEffect", "useRef", "useState", "useState", "useRef", "useThemeAttributes", "useLayoutEffect", "cx", "React", "useLayoutEffect", "useMemo", "useRef", "React", "useCallback", "React", "useCallback", "menus", "actions", "useCallback", "useMemo", "useRef", "useState", "useRef", "useState", "useCallback", "useMemo", "jsx", "classBase", "React", "isRoot", "useRef", "useMemo", "useLayoutEffect", "children", "className", "props", "cx", "useCallback", "useMemo", "useRef", "useState", "useState", "useRef", "useCallback", "useMemo", "Fragment", "jsx", "createElement", "PortalProps", "useRef", "useId", "useCallback", "id", "PopupComponent", "useCallback", "useMemo", "jsx", "useThemeAttributes", "useCallback", "useMemo", "jsx", "useThemeAttributes", "useMemo", "useCallback", "menuBuilder", "ContextMenuProps", "menuDescriptors", "useId", "Button", "cx", "useCallback", "useRef", "useState", "jsx", "classBase", "getPosition", "useRef", "useState", "useId", "showContextMenu", "useCallback", "Button", "cx", "useThemeAttributes", "Button", "cx", "useLayoutEffect", "useRef", "jsx", "jsxs", "classBase", "AnchorBody", "EMPTY_PROPS", "useThemeAttributes", "useRef", "useLayoutEffect", "cx", "Button", "useLayoutEffect", "useState", "getPositionRelativeToAnchor", "useAnchoredPosition", "position", "cx", "jsx", "classBase", "useAnchoredPosition", "cx", "useId", "useCallback", "useRef", "useState", "React", "useState", "useContext", "useCallback", "jsx", "jsxs", "classBase", "NotificationLevel", "React", "useState", "useCallback", "useContext"]
7
7
  }