@tamagui/create-menu 3.0.0-beta.669.1 → 3.0.0-beta.719.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/createBaseMenu.cjs +0 -1
- package/dist/cjs/createBaseMenu.native.cjs +3 -2
- package/dist/cjs/createBaseMenu.native.js +3 -2
- package/dist/cjs/createBaseMenu.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/createNativeMenu.cjs +0 -1
- package/dist/cjs/createNativeMenu/createNativeMenu.native.cjs +0 -1
- package/dist/cjs/createNativeMenu/createNativeMenu.native.js +0 -1
- package/dist/cjs/createNativeMenu/createNativeMenu.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.cjs +0 -1
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.cjs +0 -1
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js +0 -1
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/utils.cjs +0 -1
- package/dist/cjs/createNativeMenu/utils.native.cjs +0 -1
- package/dist/cjs/createNativeMenu/utils.native.js +0 -1
- package/dist/cjs/createNativeMenu/utils.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/withNativeMenu.cjs +0 -1
- package/dist/cjs/createNativeMenu/withNativeMenu.native.cjs +0 -1
- package/dist/cjs/createNativeMenu/withNativeMenu.native.js +0 -1
- package/dist/cjs/createNativeMenu/withNativeMenu.native.js.map +1 -1
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/index.native.cjs +0 -1
- package/dist/cjs/index.native.js +0 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/createBaseMenu.mjs.map +1 -1
- package/dist/esm/createBaseMenu.native.js +3 -1
- package/dist/esm/createBaseMenu.native.js.map +1 -1
- package/dist/esm/createNativeMenu/createNativeMenu.mjs.map +1 -1
- package/dist/esm/createNativeMenu/createNativeMenu.native.js.map +1 -1
- package/dist/esm/createNativeMenu/utils.mjs.map +1 -1
- package/dist/esm/createNativeMenu/utils.native.js.map +1 -1
- package/dist/jsx/createBaseMenu.mjs.map +1 -1
- package/dist/jsx/createBaseMenu.native.cjs +3 -2
- package/dist/jsx/createBaseMenu.native.js +3 -2
- package/dist/jsx/createBaseMenu.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/createNativeMenu.mjs.map +1 -1
- package/dist/jsx/createNativeMenu/createNativeMenu.native.cjs +0 -1
- package/dist/jsx/createNativeMenu/createNativeMenu.native.js +0 -1
- package/dist/jsx/createNativeMenu/createNativeMenu.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.cjs +0 -1
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js +0 -1
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/utils.mjs.map +1 -1
- package/dist/jsx/createNativeMenu/utils.native.cjs +0 -1
- package/dist/jsx/createNativeMenu/utils.native.js +0 -1
- package/dist/jsx/createNativeMenu/utils.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/withNativeMenu.native.cjs +0 -1
- package/dist/jsx/createNativeMenu/withNativeMenu.native.js +0 -1
- package/dist/jsx/createNativeMenu/withNativeMenu.native.js.map +1 -1
- package/dist/jsx/index.native.cjs +0 -1
- package/dist/jsx/index.native.js +0 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/package.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBaseMenu.native.js","names":["TamaguiImage","PortalPrimitive","_Fragment","DismissableLayer","Presence","Portal"],"sources":["esm/createBaseMenu.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { createStyledHOC, createRefComponent } from \"@tamagui/core\";\nimport { Animate } from \"@tamagui/animate\";\nimport { AnimatePresence as Presence } from \"@tamagui/animate-presence\";\nimport { createCollection } from \"@tamagui/collection\";\nimport { Dismissable as DismissableLayer, dispatchDiscreteCustomEvent } from \"@tamagui/dismissable\";\nimport { useFocusGuards } from \"@tamagui/focus-guard\";\nimport { FocusScope } from \"@tamagui/focus-scope\";\nimport { Image as TamaguiImage } from \"@tamagui/image\";\nimport * as PopperPrimitive from \"@tamagui/popper\";\nimport { needsPortalRepropagation, Portal as PortalPrimitive } from \"@tamagui/portal\";\nimport { RemoveScroll } from \"@tamagui/remove-scroll\";\nimport { RovingFocusGroup } from \"@tamagui/roving-focus\";\nimport { useCallbackRef } from \"@tamagui/use-callback-ref\";\nimport { useDirection } from \"@tamagui/use-direction\";\nimport { composeEventHandlers, composeRefs, createStyledContext, isWeb, styled, Text, Theme, useComposedRefs, useIsTouchDevice, useThemeName, View, withStaticProperties } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { useId } from \"react\";\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction whenMouse(handler) {\n return function(event) {\n return event.pointerType === \"mouse\" ? handler(event) : void 0;\n };\n}\nvar SELECTION_KEYS = [\n \"Enter\",\n \" \"\n];\nvar FIRST_KEYS = [\n \"ArrowDown\",\n \"PageUp\",\n \"Home\"\n];\nvar LAST_KEYS = [\n \"ArrowUp\",\n \"PageDown\",\n \"End\"\n];\nvar FIRST_LAST_KEYS = [\n ...FIRST_KEYS,\n ...LAST_KEYS\n];\nvar SUB_OPEN_KEYS = {\n ltr: [\n ...SELECTION_KEYS,\n \"ArrowRight\"\n ],\n rtl: [\n ...SELECTION_KEYS,\n \"ArrowLeft\"\n ]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\n \"ArrowLeft\"\n ],\n rtl: [\n \"ArrowRight\"\n ]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection] = createCollection(MENU_NAME);\nvar { Provider: MenuProvider, useStyledContext: useMenuContext } = createStyledContext();\nvar { Provider: MenuRootProvider, useStyledContext: useMenuRootContext } = createStyledContext();\nvar MENU_CONTEXT = \"MenuContext\";\nvar MenuImageFrame = styled(TamaguiImage, {\n displayName: \"MenuItemImage\"\n});\nfunction createBaseMenu() {\n var MenuComp = function(props) {\n var direction = useDirection(props.dir);\n var defaultPlacement = direction === \"rtl\" ? \"bottom-end\" : \"bottom-start\";\n var { scope = MENU_CONTEXT, open = false, children, dir, onOpenChange, modal = true, allowFlip = {\n padding: 10\n }, stayInFrame = {\n padding: 10\n }, placement = defaultPlacement, resize = true, offset = 10, ...rest } = props;\n var [content, setContent] = React.useState(null);\n var isUsingKeyboardRef = React.useRef(false);\n var handleOpenChange = useCallbackRef(onOpenChange);\n if (isWeb) {\n React.useEffect(function() {\n var handleKeyDown = function() {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, {\n capture: true,\n once: true\n });\n document.addEventListener(\"pointermove\", handlePointer, {\n capture: true,\n once: true\n });\n };\n var handlePointer = function() {\n return isUsingKeyboardRef.current = false;\n };\n document.addEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n return function() {\n document.removeEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n document.removeEventListener(\"pointerdown\", handlePointer, {\n capture: true\n });\n document.removeEventListener(\"pointermove\", handlePointer, {\n capture: true\n });\n };\n }, []);\n }\n return /* @__PURE__ */ _jsx(PopperPrimitive.Popper, {\n scope,\n open,\n placement,\n allowFlip,\n stayInFrame,\n resize,\n offset,\n ...rest,\n children: /* @__PURE__ */ _jsx(MenuProvider, {\n scope,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ _jsx(MenuRootProvider, {\n scope,\n open,\n onClose: React.useCallback(function() {\n return handleOpenChange(false);\n }, [\n handleOpenChange\n ]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children: (\n /** this provider is just to avoid crashing when using useSubMenuContext() inside MenuPortal */\n /* @__PURE__ */ _jsx(MenuSubProvider, {\n scope,\n children\n })\n )\n })\n })\n });\n };\n var RepropagateMenuAndMenuRootProvider = function(props) {\n var { scope = MENU_CONTEXT, menuContext, rootContext, popperContext, menuSubContext, children } = props;\n return /* @__PURE__ */ _jsx(PopperPrimitive.PopperProvider, {\n ...popperContext,\n scope,\n children: /* @__PURE__ */ _jsx(MenuProvider, {\n scope,\n ...menuContext,\n children: /* @__PURE__ */ _jsx(MenuRootProvider, {\n scope,\n ...rootContext,\n children: menuSubContext ? /* @__PURE__ */ _jsx(MenuSubProvider, {\n scope,\n ...menuSubContext,\n children\n }) : children\n })\n })\n });\n };\n MenuComp.displayName = MENU_NAME;\n var ANCHOR_NAME = \"MenuAnchor\";\n var MenuAnchor = function(props) {\n return /* @__PURE__ */ _jsx(PopperPrimitive.PopperAnchor, {\n scope: MENU_CONTEXT,\n ...props\n });\n };\n MenuAnchor.displayName = ANCHOR_NAME;\n var PORTAL_NAME = \"MenuPortal\";\n var { Provider: PortalProvider, useStyledContext: usePortalContext } = createStyledContext(void 0, \"Portal\");\n var MenuPortal = function(props) {\n var { scope = MENU_CONTEXT, forceMount, zIndex, children } = props;\n var menuContext = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var menuSubContext = useMenuSubContext(scope);\n var themeName = useThemeName();\n var themedChildren = /* @__PURE__ */ _jsx(Theme, {\n forceClassName: true,\n name: themeName,\n children\n });\n var content = needsPortalRepropagation() ? /* @__PURE__ */ _jsx(RepropagateMenuAndMenuRootProvider, {\n menuContext,\n rootContext,\n popperContext,\n menuSubContext,\n scope,\n children: themedChildren\n }) : themedChildren;\n var isPresent = forceMount || rootContext.open && menuContext.open;\n return /* @__PURE__ */ _jsx(Animate, {\n type: \"presence\",\n present: isPresent,\n children: /* @__PURE__ */ _jsx(PortalPrimitive, {\n stackZIndex: true,\n children: /* @__PURE__ */ _jsx(_Fragment, {\n children: /* @__PURE__ */ _jsx(PortalProvider, {\n scope,\n forceMount,\n children: /* @__PURE__ */ _jsxs(View, {\n zIndex: zIndex || 100,\n inset: 0,\n position: \"absolute\",\n children: [\n !!menuContext.open && !isWeb && /* @__PURE__ */ _jsx(View, {\n inset: 0,\n position: \"absolute\",\n onPress: function() {\n return menuContext.onOpenChange(!menuContext.open);\n }\n }),\n content\n ]\n })\n })\n })\n })\n });\n };\n MenuPortal.displayName = PORTAL_NAME;\n var CONTENT_NAME = \"MenuContent\";\n var { Provider: MenuContentProvider, useStyledContext: useMenuContentContext } = createStyledContext();\n var MenuContentFrame = styled(PopperPrimitive.PopperContentFrame, {\n displayName: CONTENT_NAME\n });\n var MenuContent = createStyledHOC(MenuContentFrame, function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var portalContext = usePortalContext(scope);\n var { forceMount = portalContext.forceMount, ...contentProps } = props;\n var rootContext = useMenuRootContext(scope);\n return /* @__PURE__ */ _jsx(Collection.Provider, {\n scope,\n children: /* @__PURE__ */ _jsx(Collection.Slot, {\n scope,\n children: rootContext.modal ? /* @__PURE__ */ _jsx(MenuRootContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ _jsx(MenuRootContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n })\n });\n });\n var MenuRootContentModal = createRefComponent(function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var context = useMenuContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ _jsx(MenuContentImpl, {\n ...props,\n scope,\n ref: composedRefs,\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus: context.open,\n // make sure to only disable pointer events when open\n // this avoids blocking interactions while animating out\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: false,\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside: composeEventHandlers(props.onFocusOutside, function(event) {\n return event.cancel();\n }, {\n checkDefaultPrevented: false\n }),\n onDismiss: function() {\n return context.onOpenChange(false);\n }\n });\n });\n var MenuRootContentNonModal = createRefComponent(function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var context = useMenuContext(scope);\n return /* @__PURE__ */ _jsx(MenuContentImpl, {\n ...props,\n scope,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: function() {\n return context.onOpenChange(false);\n }\n });\n });\n var MenuContentImpl = createRefComponent(function(props, forwardedRef) {\n var { scope = MENU_CONTEXT, loop = false, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEntryFocus, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, disableOutsideScroll, disableDismissOnScroll = false, ...contentProps } = props;\n var context = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var getItems = useCollection(scope);\n var [currentItemId, setCurrentItemId] = React.useState(null);\n var contentRef = React.useRef(null);\n var focusableContentRef = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n var timerRef = React.useRef(0);\n var searchRef = React.useRef(\"\");\n var pointerGraceTimerRef = React.useRef(0);\n var pointerGraceIntentRef = React.useRef(null);\n var pointerDirRef = React.useRef(\"right\");\n var lastPointerXRef = React.useRef(0);\n var handleTypeaheadSearch = function(key) {\n var _items_find, _items_find1;\n var search = searchRef.current + key;\n var items = getItems().filter(function(item) {\n return !item.disabled;\n });\n var currentItem = document.activeElement;\n var currentMatch = (_items_find = items.find(function(item) {\n return item.ref.current === currentItem;\n })) === null || _items_find === void 0 ? void 0 : _items_find.textValue;\n var values = items.map(function(item) {\n return item.textValue;\n });\n var nextMatch = getNextMatch(values, search, currentMatch);\n var newItem = (_items_find1 = items.find(function(item) {\n return item.textValue === nextMatch;\n })) === null || _items_find1 === void 0 ? void 0 : _items_find1.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = setTimeout(function() {\n return updateSearch(\"\");\n }, 1e3);\n })(search);\n if (newItem) {\n setTimeout(function() {\n return newItem.focus();\n });\n }\n };\n React.useEffect(function() {\n return function() {\n return clearTimeout(timerRef.current);\n };\n }, []);\n React.useEffect(function() {\n if (!isWeb || !context.open) return;\n var frame = requestAnimationFrame(function() {\n var container = contentRef.current;\n var el = container === null || container === void 0 ? void 0 : container.querySelector(\"[data-tamagui-menu-content]\");\n if (el) focusableContentRef.current = el;\n });\n return function() {\n return cancelAnimationFrame(frame);\n };\n }, [\n context.open\n ]);\n React.useEffect(function() {\n if (!isWeb || disableDismissOnScroll || !context.open) return;\n var handleScroll = function(event) {\n var _popperContext_refs_reference, _popperContext_refs;\n var scrolled = event.target;\n if (!scrolled) return;\n var content2 = contentRef.current;\n if (content2 === null || content2 === void 0 ? void 0 : content2.contains(scrolled)) return;\n var reference = (_popperContext_refs = popperContext.refs) === null || _popperContext_refs === void 0 ? void 0 : (_popperContext_refs_reference = _popperContext_refs.reference) === null || _popperContext_refs_reference === void 0 ? void 0 : _popperContext_refs_reference.current;\n var _reference_contextElement;\n var anchor = _instanceof(reference, Element) ? reference : (_reference_contextElement = reference === null || reference === void 0 ? void 0 : reference.contextElement) !== null && _reference_contextElement !== void 0 ? _reference_contextElement : null;\n if (anchor && !scrolled.contains(anchor)) return;\n context.onOpenChange(false);\n };\n window.addEventListener(\"scroll\", handleScroll, {\n capture: true,\n passive: true\n });\n return function() {\n window.removeEventListener(\"scroll\", handleScroll, {\n capture: true\n });\n };\n }, [\n disableDismissOnScroll,\n context.open,\n context.onOpenChange,\n popperContext.refs\n ]);\n if (isWeb) {\n useFocusGuards();\n }\n var isPointerMovingToSubmenu = React.useCallback(function(event) {\n var _pointerGraceIntentRef_current, _pointerGraceIntentRef_current1;\n var isMovingTowards = pointerDirRef.current === ((_pointerGraceIntentRef_current = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current === void 0 ? void 0 : _pointerGraceIntentRef_current.side);\n var inArea = isPointerInGraceArea(event, (_pointerGraceIntentRef_current1 = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current1 === void 0 ? void 0 : _pointerGraceIntentRef_current1.area);\n return isMovingTowards && inArea;\n }, []);\n var content = /* @__PURE__ */ _jsx(PopperPrimitive.PopperContent, {\n role: \"menu\",\n // tabIndex allows the content to be focusable so that onItemLeave can\n // focus the content frame and properly blur the previously focused item\n tabIndex: -1,\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-tamagui-menu-content\": \"\",\n // TODO\n // @ts-ignore\n dir: rootContext.dir,\n scope: scope || MENU_CONTEXT,\n ...contentProps,\n ref: composedRefs,\n className: contentProps.transition ? void 0 : contentProps.className,\n ...isWeb ? {\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, function(event) {\n var target = event.target;\n var isKeyDownInside = target.closest(\"[data-tamagui-menu-content]\") === event.currentTarget;\n var isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n var isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n var isOnContentFrame = event.target.hasAttribute(\"data-tamagui-menu-content\");\n if (!isKeyDownInside || !isOnContentFrame) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n var items = getItems().filter(function(item) {\n return !item.disabled;\n });\n var candidateNodes = items.map(function(item) {\n return item.ref.current;\n });\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes, {\n focusVisible: true\n });\n }),\n // TODO\n // @ts-ignore\n onBlur: composeEventHandlers(props.onBlur, function(event) {\n var _event_currentTarget;\n if (!((_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.contains(event.target))) {\n clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n // TODO\n onPointerMove: composeEventHandlers(props.onPointerMove, function(event) {\n var _event_currentTarget;\n if (event.pointerType !== \"mouse\") return;\n var target = event.target;\n var pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (((_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.contains(target)) && pointerXHasChanged) {\n var newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n } : {}\n });\n return /* @__PURE__ */ _jsx(MenuContentProvider, {\n scope,\n searchRef,\n onItemEnter: React.useCallback(function(event) {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n onItemLeave: React.useCallback(function(event) {\n var _focusableContentRef_current;\n if (isPointerMovingToSubmenu(event)) return;\n (_focusableContentRef_current = focusableContentRef.current) === null || _focusableContentRef_current === void 0 ? void 0 : _focusableContentRef_current.focus();\n setCurrentItemId(null);\n }, [\n isPointerMovingToSubmenu\n ]),\n onTriggerLeave: React.useCallback(function(event) {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback(function(intent) {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ _jsx(RemoveScroll, {\n enabled: disableOutsideScroll,\n children: /* @__PURE__ */ _jsx(FocusScope, {\n asChild: false,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, function(event) {\n event.cancel();\n var content2 = document.querySelector(\"[data-tamagui-menu-content]\");\n content2 === null || content2 === void 0 ? void 0 : content2.focus({\n preventScroll: true\n });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ _jsx(DismissableLayer, {\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n asChild: true,\n children: /* @__PURE__ */ _jsx(RovingFocusGroup, {\n asChild: true,\n __scopeRovingFocusGroup: scope || MENU_CONTEXT,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, function(event) {\n if (!rootContext.isUsingKeyboardRef.current) {\n event.cancel();\n }\n }),\n children: content\n })\n })\n })\n })\n });\n });\n MenuContent.displayName = CONTENT_NAME;\n var ITEM_NAME = \"MenuItem\";\n var ITEM_SELECT = \"menu.itemSelect\";\n var MenuItem = createStyledHOC(View, function(props, forwardedRef) {\n var {\n disabled = false,\n onSelect,\n preventCloseOnSelect,\n children,\n scope = MENU_CONTEXT,\n // filter out native-only props that shouldn't reach the DOM\n // @ts-ignore\n destructive,\n // @ts-ignore\n hidden,\n // @ts-ignore\n androidIconName,\n ...itemProps\n } = props;\n var ref = React.useRef(null);\n var rootContext = useMenuRootContext(scope);\n var contentContext = useMenuContentContext(scope);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var isPointerDownRef = React.useRef(false);\n var handleSelect = function() {\n var menuItem = ref.current;\n if (!disabled && menuItem) {\n if (isWeb) {\n var menuItemEl = menuItem;\n var itemSelectEvent = new CustomEvent(ITEM_SELECT, {\n bubbles: true,\n cancelable: true\n });\n menuItemEl.addEventListener(ITEM_SELECT, function(event) {\n return onSelect === null || onSelect === void 0 ? void 0 : onSelect(event);\n }, {\n once: true\n });\n dispatchDiscreteCustomEvent(menuItemEl, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented || preventCloseOnSelect) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect({\n target: menuItem\n });\n isPointerDownRef.current = false;\n if (!preventCloseOnSelect) {\n rootContext.onClose();\n }\n }\n }\n };\n var content = typeof children === \"string\" ? /* @__PURE__ */ _jsx(Text, {\n children\n }) : children;\n return /* @__PURE__ */ _jsx(MenuItemImpl, {\n ...itemProps,\n scope,\n // @ts-ignore\n ref: composedRefs,\n disabled,\n onPress: composeEventHandlers(props.onPress, handleSelect),\n onPointerDown: function(event) {\n var _props_onPointerDown;\n (_props_onPointerDown = props.onPointerDown) === null || _props_onPointerDown === void 0 ? void 0 : _props_onPointerDown.call(props, event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, function(event) {\n if (isWeb) {\n var _event_currentTarget;\n if (!isPointerDownRef.current) (_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.click();\n }\n }),\n ...isWeb ? {\n onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {\n var isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n var _event_currentTarget;\n (_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.click();\n event.preventDefault();\n }\n })\n } : {},\n children: content\n });\n });\n var MenuItemImpl = createRefComponent(function(props, forwardedRef) {\n var { scope = MENU_CONTEXT, className, disabled = false, textValue, ...itemProps } = props;\n var contentContext = useMenuContentContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var [isFocused, setIsFocused] = React.useState(false);\n var [textContent, setTextContent] = React.useState(\"\");\n if (isWeb) {\n React.useEffect(function() {\n var menuItem = ref.current;\n if (menuItem) {\n var _menuItem_textContent;\n setTextContent(((_menuItem_textContent = menuItem.textContent) !== null && _menuItem_textContent !== void 0 ? _menuItem_textContent : \"\").trim());\n }\n }, [\n itemProps.children\n ]);\n }\n return /* @__PURE__ */ _jsx(Collection.ItemSlot, {\n scope,\n disabled,\n textValue: textValue !== null && textValue !== void 0 ? textValue : textContent,\n children: /* @__PURE__ */ _jsx(RovingFocusGroup.Item, {\n asChild: true,\n __scopeRovingFocusGroup: scope,\n tabIndex: disabled ? -1 : 0,\n children: /* @__PURE__ */ _jsx(View, {\n className: `is_${ITEM_NAME} ${className || \"\"}`.trim(),\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n /**\n * We focus items on `pointerMove` to achieve the following:\n *\n * - Mouse over an item (it focuses)\n * - Leave mouse where it is and use keyboard to focus a different item\n * - Wiggle mouse without it leaving previously focused item\n * - Previously focused item should re-focus\n *\n * If we used `mouseOver`/`mouseEnter` it would not re-focus when the mouse\n * wiggles. This is to match native menu implementation.\n */\n onPointerMove: composeEventHandlers(props.onPointerMove, function(event) {\n if (event.pointerType !== \"mouse\") return;\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n var item = event.currentTarget;\n item.focus({\n preventScroll: true,\n focusVisible: false\n });\n }\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, function(event) {\n contentContext.onItemLeave(event);\n }),\n onFocus: composeEventHandlers(props.onFocus, function() {\n return setIsFocused(true);\n }),\n onBlur: composeEventHandlers(props.onBlur, function() {\n return setIsFocused(false);\n })\n })\n })\n });\n });\n MenuItem.displayName = ITEM_NAME;\n var ITEM_TITLE_NAME = \"MenuItemTitle\";\n var MenuItemTitle = createStyledHOC(Text, function(props, forwardedRef) {\n return /* @__PURE__ */ _jsx(Text, {\n ...props,\n ref: forwardedRef\n });\n });\n MenuItemTitle.displayName = ITEM_TITLE_NAME;\n var ITEM_SUB_TITLE_NAME = \"MenuItemSubTitle\";\n var MenuItemSubTitle = createStyledHOC(Text, function(props, forwardedRef) {\n return /* @__PURE__ */ _jsx(Text, {\n ...props,\n ref: forwardedRef\n });\n });\n MenuItemSubTitle.displayName = ITEM_SUB_TITLE_NAME;\n var ITEM_IMAGE = \"MenuItemImage\";\n var MenuItemImage = createRefComponent(function(props, forwardedRef) {\n var {\n // @ts-ignore - native menu ios config\n ios,\n // @ts-ignore\n androidIconName,\n ...rest\n } = props;\n return /* @__PURE__ */ _jsx(MenuImageFrame, {\n ...rest,\n ref: forwardedRef\n });\n });\n MenuItemImage.displayName = ITEM_IMAGE;\n var ITEM_ICON = \"MenuItemIcon\";\n var MenuItemIcon = createStyledHOC(View, function(props, forwardedRef) {\n var {\n // @ts-ignore\n ios,\n // @ts-ignore\n android,\n // @ts-ignore\n androidIconName,\n ...rest\n } = props;\n return /* @__PURE__ */ _jsx(View, {\n ...rest,\n ref: forwardedRef\n });\n });\n MenuItemIcon.displayName = ITEM_ICON;\n var CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\n var MenuCheckboxItem = createStyledHOC(View, function(props, forwardedRef) {\n var {\n checked = false,\n onCheckedChange,\n scope = MENU_CONTEXT,\n // filter out native-only props\n // @ts-ignore - native menu value state\n value,\n // @ts-ignore - native menu value change handler\n onValueChange,\n className,\n ...checkboxItemProps\n } = props;\n return /* @__PURE__ */ _jsx(ItemIndicatorProvider, {\n scope,\n checked,\n children: /* @__PURE__ */ _jsx(MenuItem, {\n className: `is_${CHECKBOX_ITEM_NAME} ${className || \"\"}`.trim(),\n role: isWeb ? \"menuitemcheckbox\" : \"menuitem\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n scope,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(checkboxItemProps.onSelect, function() {\n return onCheckedChange === null || onCheckedChange === void 0 ? void 0 : onCheckedChange(isIndeterminate(checked) ? true : !checked);\n }, {\n checkDefaultPrevented: false\n })\n })\n });\n });\n MenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n var RADIO_GROUP_NAME = \"MenuRadioGroup\";\n var { Provider: RadioGroupProvider, useStyledContext: useRadioGroupContext } = createStyledContext();\n var MenuRadioGroup = createStyledHOC(View, function(props, forwardedRef) {\n var { value, onValueChange, scope = MENU_CONTEXT, className, ...groupProps } = props;\n var handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ _jsx(RadioGroupProvider, {\n scope,\n value,\n onValueChange: handleValueChange,\n children: /* @__PURE__ */ _jsx(View, {\n className: `is_${RADIO_GROUP_NAME} ${className || \"\"}`.trim(),\n ...groupProps,\n ref: forwardedRef\n })\n });\n });\n MenuRadioGroup.displayName = RADIO_GROUP_NAME;\n var RADIO_ITEM_NAME = \"MenuRadioItem\";\n var MenuRadioItem = createStyledHOC(View, function(props, forwardedRef) {\n var { value, scope = MENU_CONTEXT, className, ...radioItemProps } = props;\n var context = useRadioGroupContext(scope);\n var checked = value === context.value;\n return /* @__PURE__ */ _jsx(ItemIndicatorProvider, {\n scope,\n checked,\n children: /* @__PURE__ */ _jsx(MenuItem, {\n className: `is_${RADIO_ITEM_NAME} ${className || \"\"}`.trim(),\n ...radioItemProps,\n scope,\n \"aria-checked\": checked,\n ref: forwardedRef,\n role: isWeb ? \"menuitemradio\" : \"menuitem\",\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(radioItemProps.onSelect, function() {\n var _context_onValueChange;\n return (_context_onValueChange = context.onValueChange) === null || _context_onValueChange === void 0 ? void 0 : _context_onValueChange.call(context, value);\n }, {\n checkDefaultPrevented: false\n })\n })\n });\n });\n MenuRadioItem.displayName = RADIO_ITEM_NAME;\n var ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\n var { Provider: ItemIndicatorProvider, useStyledContext: useItemIndicatorContext } = createStyledContext();\n var MenuItemIndicator = createStyledHOC(View, function(props, forwardedRef) {\n var { scope = MENU_CONTEXT, className, forceMount, ...itemIndicatorProps } = props;\n var indicatorContext = useItemIndicatorContext(scope);\n return /* @__PURE__ */ _jsx(Presence, {\n children: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true ? /* @__PURE__ */ _jsx(View, {\n className: `is_${ITEM_INDICATOR_NAME} ${className || \"\"}`.trim(),\n render: \"span\",\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }) : null\n });\n });\n MenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\n var MenuArrow = createRefComponent(function MenuArrow2(props, forwardedRef) {\n var { scope = MENU_CONTEXT, className, ...rest } = props;\n return /* @__PURE__ */ _jsx(PopperPrimitive.PopperArrow, {\n scope,\n className: `is_PopperArrow ${className || \"\"}`.trim(),\n ...rest,\n ref: forwardedRef\n });\n });\n var SUB_NAME = \"MenuSub\";\n var { Provider: MenuSubProvider, useStyledContext: useMenuSubContext } = createStyledContext();\n var MenuSub = function(props) {\n var _parentPopperContext_placement;\n var isTouchDevice = useIsTouchDevice();\n var { scope = MENU_CONTEXT } = props;\n var rootContext = useMenuRootContext(scope);\n var parentPopperContext = PopperPrimitive.usePopperContext(scope);\n var parentSide = (_parentPopperContext_placement = parentPopperContext.placement) === null || _parentPopperContext_placement === void 0 ? void 0 : _parentPopperContext_placement.split(\"-\")[0];\n var isNestedSubmenu = parentSide === \"left\" || parentSide === \"right\";\n var defaultPlacement = isTouchDevice ? \"bottom\" : isNestedSubmenu ? `${parentSide}-start` : rootContext.dir === \"rtl\" ? \"left-start\" : \"right-start\";\n var { children, open = false, onOpenChange, allowFlip: allowFlipProp = {\n padding: 10\n }, stayInFrame = {\n padding: 10\n }, placement = defaultPlacement, ...rest } = props;\n var allowFlip = React.useMemo(function() {\n if (!isNestedSubmenu || typeof allowFlipProp === \"boolean\") return allowFlipProp;\n if (allowFlipProp.fallbackPlacements) return allowFlipProp;\n var side = placement.split(\"-\")[0];\n var align = placement.split(\"-\")[1] || \"start\";\n var otherAlign = align === \"start\" ? \"end\" : \"start\";\n if (side === \"left\" || side === \"right\") {\n var oppositeSide = side === \"right\" ? \"left\" : \"right\";\n return {\n ...(typeof allowFlipProp === \"undefined\" ? \"undefined\" : _type_of(allowFlipProp)) === \"object\" ? allowFlipProp : {},\n fallbackPlacements: [\n `${side}-${otherAlign}`,\n `${oppositeSide}-${align}`,\n `${oppositeSide}-${otherAlign}`\n ]\n };\n }\n return allowFlipProp;\n }, [\n isNestedSubmenu,\n allowFlipProp,\n placement\n ]);\n var parentMenuContext = useMenuContext(scope);\n var [trigger, setTrigger] = React.useState(null);\n var [content, setContent] = React.useState(null);\n var handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(function() {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return function() {\n return handleOpenChange(false);\n };\n }, [\n parentMenuContext.open,\n handleOpenChange\n ]);\n return /* @__PURE__ */ _jsx(PopperPrimitive.Popper, {\n open,\n placement,\n allowFlip,\n stayInFrame,\n ...rest,\n scope,\n children: /* @__PURE__ */ _jsx(MenuProvider, {\n scope,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ _jsx(MenuSubProvider, {\n scope,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n })\n })\n });\n };\n MenuSub.displayName = SUB_NAME;\n var SUB_TRIGGER_NAME = \"MenuSubTrigger\";\n var MenuSubTrigger = createRefComponent(function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var context = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var subContext = useMenuSubContext(scope);\n var contentContext = useMenuContentContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var openTimerRef = React.useRef(null);\n var { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n var effectiveDir = rootContext.dir;\n var clearOpenTimer = React.useCallback(function() {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(function() {\n return clearOpenTimer;\n }, [\n clearOpenTimer\n ]);\n React.useEffect(function() {\n var pointerGraceTimer = pointerGraceTimerRef.current;\n return function() {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [\n pointerGraceTimerRef,\n onPointerGraceIntentChange\n ]);\n return /* @__PURE__ */ _jsx(MenuAnchor, {\n className: `is_${SUB_TRIGGER_NAME}`,\n asChild: \"except-style\",\n scope,\n children: /* @__PURE__ */ _jsx(MenuItemImpl, {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n // This is redundant for mouse users but we cannot determine pointer type from\n // click event and we cannot use pointerup event (see git history for reasons why)\n onPress: function(event) {\n var _props_onPress;\n (_props_onPress = props.onPress) === null || _props_onPress === void 0 ? void 0 : _props_onPress.call(props, event);\n if (props.disabled || event.defaultPrevented) return;\n if (isWeb) {\n event.currentTarget.focus();\n }\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n // @ts-ignore\n whenMouse(function(event) {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(function() {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, function(eventIn) {\n var _context_content;\n var event = eventIn;\n clearOpenTimer();\n var contentRect = (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.getBoundingClientRect();\n if (contentRect) {\n var _contentEl_dataset, _sideEl_dataset;\n var contentEl = context.content;\n var sideEl = (contentEl === null || contentEl === void 0 ? void 0 : (_contentEl_dataset = contentEl.dataset) === null || _contentEl_dataset === void 0 ? void 0 : _contentEl_dataset.side) ? contentEl : contentEl === null || contentEl === void 0 ? void 0 : contentEl.querySelector(\"[data-side]\");\n var side = (sideEl === null || sideEl === void 0 ? void 0 : (_sideEl_dataset = sideEl.dataset) === null || _sideEl_dataset === void 0 ? void 0 : _sideEl_dataset.side) || \"right\";\n var rightSide = side === \"right\";\n var bleed = rightSide ? -5 : 5;\n var contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n var contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n var polygon = {\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n {\n x: event.clientX + bleed,\n y: event.clientY\n },\n {\n x: contentNearEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.bottom\n },\n {\n x: contentNearEdge,\n y: contentRect.bottom\n }\n ],\n side\n };\n contentContext.onPointerGraceIntentChange(polygon);\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(function() {\n return contentContext.onPointerGraceIntentChange(null);\n }, 300);\n } else if (isWeb && subContext.trigger) {\n var triggerEl = subContext.trigger;\n var triggerRect = triggerEl === null || triggerEl === void 0 ? void 0 : triggerEl.getBoundingClientRect();\n if (triggerRect) {\n var _popperContext_placement;\n var placementSide = (_popperContext_placement = popperContext.placement) === null || _popperContext_placement === void 0 ? void 0 : _popperContext_placement.split(\"-\")[0];\n var side1 = placementSide === \"left\" || placementSide === \"right\" ? placementSide : rootContext.dir === \"rtl\" ? \"left\" : \"right\";\n var rightSide1 = side1 === \"right\";\n var bleed1 = rightSide1 ? -5 : 5;\n var nearEdge = rightSide1 ? triggerRect.right + 4 : triggerRect.left - 4;\n var farEdge = rightSide1 ? nearEdge + 200 : nearEdge - 200;\n var polygon1 = {\n area: [\n {\n x: event.clientX + bleed1,\n y: event.clientY\n },\n {\n x: nearEdge,\n y: triggerRect.top - 50\n },\n {\n x: farEdge,\n y: triggerRect.top - 50\n },\n {\n x: farEdge,\n y: triggerRect.bottom + 50\n },\n {\n x: nearEdge,\n y: triggerRect.bottom + 50\n }\n ],\n side: side1\n };\n contentContext.onPointerGraceIntentChange(polygon1);\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(function() {\n return contentContext.onPointerGraceIntentChange(null);\n }, 300);\n }\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n }),\n ...isWeb ? {\n onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {\n var isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n var willOpen = SUB_OPEN_KEYS[effectiveDir].includes(event.key);\n if (willOpen) {\n var _popperContext_refs, _context_content;\n if (context.open && context.content) {\n var _contentEl_querySelector;\n var contentEl = context.content;\n var firstItem = (_contentEl_querySelector = contentEl.querySelector) === null || _contentEl_querySelector === void 0 ? void 0 : _contentEl_querySelector.call(contentEl, '[role=\"menuitem\"]:not([data-disabled])');\n if (firstItem) {\n firstItem.focus({\n focusVisible: true\n });\n event.preventDefault();\n return;\n }\n }\n var triggerEl = event.currentTarget;\n (_popperContext_refs = popperContext.refs) === null || _popperContext_refs === void 0 ? void 0 : _popperContext_refs.setReference(triggerEl);\n context.onOpenChange(true);\n requestAnimationFrame(function() {\n var _popperContext_update;\n (_popperContext_update = popperContext.update) === null || _popperContext_update === void 0 ? void 0 : _popperContext_update.call(popperContext);\n });\n (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.focus({\n focusVisible: true\n });\n event.preventDefault();\n }\n })\n } : null\n })\n });\n });\n MenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n var SUB_CONTENT_NAME = \"MenuSubContent\";\n var MenuSubContentFrame = styled(PopperPrimitive.PopperContentFrame, {\n displayName: SUB_CONTENT_NAME\n });\n var MenuSubContent = createStyledHOC(MenuSubContentFrame, function(props, forwardedRef) {\n var _popperContext_placement;\n var scope = props.scope || MENU_CONTEXT;\n var portalContext = usePortalContext(scope);\n var { forceMount = portalContext.forceMount, ...subContentProps } = props;\n var context = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var subContext = useMenuSubContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var placementSide = (_popperContext_placement = popperContext.placement) === null || _popperContext_placement === void 0 ? void 0 : _popperContext_placement.split(\"-\")[0];\n var dataSide = placementSide === \"left\" || placementSide === \"right\" ? placementSide : rootContext.dir === \"rtl\" ? \"left\" : \"right\";\n var effectiveDir = rootContext.dir;\n return /* @__PURE__ */ _jsx(Collection.Provider, {\n scope,\n children: /* @__PURE__ */ _jsx(Collection.Slot, {\n scope,\n children: /* @__PURE__ */ _jsx(MenuContentImpl, {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n \"data-side\": dataSide,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: function(event) {\n if (rootContext.isUsingKeyboardRef.current) {\n var _root_querySelector, _this;\n var root = ref.current;\n var content = root === null || root === void 0 ? void 0 : (_root_querySelector = root.querySelector) === null || _root_querySelector === void 0 ? void 0 : _root_querySelector.call(root, \"[data-tamagui-menu-content]\");\n (_this = content || root) === null || _this === void 0 ? void 0 : _this.focus({\n preventScroll: true\n });\n }\n event.cancel();\n },\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n onCloseAutoFocus: function(event) {\n return event.cancel();\n },\n onFocusOutside: composeEventHandlers(props.onFocusOutside, function(event) {\n var _event_event;\n if (((_event_event = event.event) === null || _event_event === void 0 ? void 0 : _event_event.target) !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, function(event) {\n var _subContext_trigger, _event_event_preventDefault, _event_event;\n context.onOpenChange(false);\n (_subContext_trigger = subContext.trigger) === null || _subContext_trigger === void 0 ? void 0 : _subContext_trigger.focus({\n focusVisible: true\n });\n event.cancel();\n (_event_event = event.event) === null || _event_event === void 0 ? void 0 : (_event_event_preventDefault = _event_event.preventDefault) === null || _event_event_preventDefault === void 0 ? void 0 : _event_event_preventDefault.call(_event_event);\n }),\n ...isWeb ? {\n onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {\n var isKeyDownInside = event.currentTarget.contains(event.target);\n var isCloseKey = SUB_CLOSE_KEYS[effectiveDir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n var _subContext_trigger;\n context.onOpenChange(false);\n (_subContext_trigger = subContext.trigger) === null || _subContext_trigger === void 0 ? void 0 : _subContext_trigger.focus({\n focusVisible: true\n });\n event.preventDefault();\n }\n })\n } : null\n })\n })\n });\n });\n MenuSubContent.displayName = SUB_CONTENT_NAME;\n var Anchor = MenuAnchor;\n var Portal = MenuPortal;\n var Content = MenuContent;\n var Group = createStyledHOC(View, function(props, ref) {\n return /* @__PURE__ */ _jsx(View, {\n role: \"group\",\n ...props,\n ref\n });\n });\n Group.displayName = \"MenuGroup\";\n var Label = createStyledHOC(Text, function(props, ref) {\n return /* @__PURE__ */ _jsx(Text, {\n ...props,\n ref\n });\n });\n Label.displayName = \"MenuLabel\";\n var Item = MenuItem;\n var CheckboxItem = MenuCheckboxItem;\n var RadioGroup = MenuRadioGroup;\n var RadioItem = MenuRadioItem;\n var ItemIndicator = MenuItemIndicator;\n var Separator = createStyledHOC(View, function(props, ref) {\n return /* @__PURE__ */ _jsx(View, {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...props,\n ref\n });\n });\n Separator.displayName = \"MenuSeparator\";\n var Arrow = MenuArrow;\n var Sub = MenuSub;\n var SubTrigger = MenuSubTrigger;\n var SubContent = MenuSubContent;\n var ItemTitle = MenuItemTitle;\n var ItemSubtitle = MenuItemSubTitle;\n var ItemImage = MenuItemImage;\n var ItemIcon = MenuItemIcon;\n var Menu = withStaticProperties(MenuComp, {\n Anchor,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n ItemTitle,\n ItemSubtitle,\n ItemImage,\n ItemIcon\n });\n return {\n Menu\n };\n}\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates, options) {\n var PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidate = _step.value;\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({\n preventScroll: true,\n focusVisible: options === null || options === void 0 ? void 0 : options.focusVisible\n });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map(function(_, index) {\n return array[(startIndex + index) % array.length];\n });\n}\nfunction getNextMatch(values, search, currentMatch) {\n var isRepeated = search.length > 1 && Array.from(search).every(function(char) {\n return char === search[0];\n });\n var normalizedSearch = isRepeated ? search[0] : search;\n var currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n var wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n var excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter(function(v) {\n return v !== currentMatch;\n });\n var nextMatch = wrappedValues.find(function(value) {\n return value.toLowerCase().startsWith(normalizedSearch.toLowerCase());\n });\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n var { x, y } = point;\n var inside = false;\n for (var i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n var xi = polygon[i].x;\n var yi = polygon[i].y;\n var xj = polygon[j].x;\n var yj = polygon[j].y;\n var intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n var cursorPos = {\n x: event.clientX,\n y: event.clientY\n };\n return isPointInPolygon(cursorPos, area);\n}\nexport {\n createBaseMenu\n};\n//# sourceMappingURL=createBaseMenu.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createBaseMenu.native.js","names":["TamaguiImage","PortalPrimitive","_Fragment","DismissableLayer","Presence","Portal"],"sources":["esm/createBaseMenu.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { createStyledHOC, createRefComponent } from \"@tamagui/core\";\nimport { Animate } from \"@tamagui/animate\";\nimport { AnimatePresence as Presence } from \"@tamagui/animate-presence\";\nimport { createCollection } from \"@tamagui/collection\";\nimport { Dismissable as DismissableLayer, dispatchDiscreteCustomEvent } from \"@tamagui/dismissable\";\nimport { useFocusGuards } from \"@tamagui/focus-guard\";\nimport { FocusScope } from \"@tamagui/focus-scope\";\nimport { Image as TamaguiImage } from \"@tamagui/image\";\nimport * as PopperPrimitive from \"@tamagui/popper\";\nimport { needsPortalRepropagation, Portal as PortalPrimitive } from \"@tamagui/portal\";\nimport { RemoveScroll } from \"@tamagui/remove-scroll\";\nimport { RovingFocusGroup } from \"@tamagui/roving-focus\";\nimport { useCallbackRef } from \"@tamagui/use-callback-ref\";\nimport { useDirection } from \"@tamagui/use-direction\";\nimport { composeEventHandlers, composeRefs, createStyledContext, isWeb, styled, Text, Theme, useComposedRefs, useIsTouchDevice, useThemeName, View, withStaticProperties } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { useId } from \"react\";\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction whenMouse(handler) {\n return function(event) {\n return event.pointerType === \"mouse\" ? handler(event) : void 0;\n };\n}\nvar SELECTION_KEYS = [\n \"Enter\",\n \" \"\n];\nvar FIRST_KEYS = [\n \"ArrowDown\",\n \"PageUp\",\n \"Home\"\n];\nvar LAST_KEYS = [\n \"ArrowUp\",\n \"PageDown\",\n \"End\"\n];\nvar FIRST_LAST_KEYS = [\n ...FIRST_KEYS,\n ...LAST_KEYS\n];\nvar SUB_OPEN_KEYS = {\n ltr: [\n ...SELECTION_KEYS,\n \"ArrowRight\"\n ],\n rtl: [\n ...SELECTION_KEYS,\n \"ArrowLeft\"\n ]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\n \"ArrowLeft\"\n ],\n rtl: [\n \"ArrowRight\"\n ]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection] = createCollection(MENU_NAME);\nvar { Provider: MenuProvider, useStyledContext: useMenuContext } = createStyledContext();\nvar { Provider: MenuRootProvider, useStyledContext: useMenuRootContext } = createStyledContext();\nvar MENU_CONTEXT = \"MenuContext\";\nvar MenuImageFrame = styled(TamaguiImage, {\n displayName: \"MenuItemImage\"\n});\nfunction createBaseMenu() {\n var MenuComp = function(props) {\n var direction = useDirection(props.dir);\n var defaultPlacement = direction === \"rtl\" ? \"bottom-end\" : \"bottom-start\";\n var { scope = MENU_CONTEXT, open = false, children, dir, onOpenChange, modal = true, allowFlip = {\n padding: 10\n }, stayInFrame = {\n padding: 10\n }, placement = defaultPlacement, resize = true, offset = 10, ...rest } = props;\n var [content, setContent] = React.useState(null);\n var isUsingKeyboardRef = React.useRef(false);\n var handleOpenChange = useCallbackRef(onOpenChange);\n if (isWeb) {\n React.useEffect(function() {\n var handleKeyDown = function() {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, {\n capture: true,\n once: true\n });\n document.addEventListener(\"pointermove\", handlePointer, {\n capture: true,\n once: true\n });\n };\n var handlePointer = function() {\n return isUsingKeyboardRef.current = false;\n };\n document.addEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n return function() {\n document.removeEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n document.removeEventListener(\"pointerdown\", handlePointer, {\n capture: true\n });\n document.removeEventListener(\"pointermove\", handlePointer, {\n capture: true\n });\n };\n }, []);\n }\n return /* @__PURE__ */ _jsx(PopperPrimitive.Popper, {\n scope,\n open,\n placement,\n allowFlip,\n stayInFrame,\n resize,\n offset,\n ...rest,\n children: /* @__PURE__ */ _jsx(MenuProvider, {\n scope,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ _jsx(MenuRootProvider, {\n scope,\n open,\n onClose: React.useCallback(function() {\n return handleOpenChange(false);\n }, [\n handleOpenChange\n ]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children: (\n /** this provider is just to avoid crashing when using useSubMenuContext() inside MenuPortal */\n /* @__PURE__ */ _jsx(MenuSubProvider, {\n scope,\n children\n })\n )\n })\n })\n });\n };\n var RepropagateMenuAndMenuRootProvider = function(props) {\n var { scope = MENU_CONTEXT, menuContext, rootContext, popperContext, menuSubContext, children } = props;\n return /* @__PURE__ */ _jsx(PopperPrimitive.PopperProvider, {\n ...popperContext,\n scope,\n children: /* @__PURE__ */ _jsx(MenuProvider, {\n scope,\n ...menuContext,\n children: /* @__PURE__ */ _jsx(MenuRootProvider, {\n scope,\n ...rootContext,\n children: menuSubContext ? /* @__PURE__ */ _jsx(MenuSubProvider, {\n scope,\n ...menuSubContext,\n children\n }) : children\n })\n })\n });\n };\n MenuComp.displayName = MENU_NAME;\n var ANCHOR_NAME = \"MenuAnchor\";\n var MenuAnchor = function(props) {\n return /* @__PURE__ */ _jsx(PopperPrimitive.PopperAnchor, {\n scope: MENU_CONTEXT,\n ...props\n });\n };\n MenuAnchor.displayName = ANCHOR_NAME;\n var PORTAL_NAME = \"MenuPortal\";\n var { Provider: PortalProvider, useStyledContext: usePortalContext } = createStyledContext(void 0, \"Portal\");\n var MenuPortal = function(props) {\n var { scope = MENU_CONTEXT, forceMount, zIndex, children } = props;\n var menuContext = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var menuSubContext = useMenuSubContext(scope);\n var themeName = useThemeName();\n var themedChildren = /* @__PURE__ */ _jsx(Theme, {\n forceClassName: true,\n name: themeName,\n children\n });\n var content = needsPortalRepropagation() ? /* @__PURE__ */ _jsx(RepropagateMenuAndMenuRootProvider, {\n menuContext,\n rootContext,\n popperContext,\n menuSubContext,\n scope,\n children: themedChildren\n }) : themedChildren;\n var isPresent = forceMount || rootContext.open && menuContext.open;\n return /* @__PURE__ */ _jsx(Animate, {\n type: \"presence\",\n present: isPresent,\n children: /* @__PURE__ */ _jsx(PortalPrimitive, {\n stackZIndex: true,\n children: /* @__PURE__ */ _jsx(_Fragment, {\n children: /* @__PURE__ */ _jsx(PortalProvider, {\n scope,\n forceMount,\n children: /* @__PURE__ */ _jsxs(View, {\n zIndex: zIndex || 100,\n inset: 0,\n position: \"absolute\",\n children: [\n !!menuContext.open && !isWeb && /* @__PURE__ */ _jsx(View, {\n inset: 0,\n position: \"absolute\",\n onPress: function() {\n return menuContext.onOpenChange(!menuContext.open);\n }\n }),\n content\n ]\n })\n })\n })\n })\n });\n };\n MenuPortal.displayName = PORTAL_NAME;\n var CONTENT_NAME = \"MenuContent\";\n var { Provider: MenuContentProvider, useStyledContext: useMenuContentContext } = createStyledContext();\n var MenuContentFrame = styled(PopperPrimitive.PopperContentFrame, {\n displayName: CONTENT_NAME\n });\n var MenuContent = createStyledHOC(MenuContentFrame, function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var portalContext = usePortalContext(scope);\n var { forceMount = portalContext.forceMount, ...contentProps } = props;\n var rootContext = useMenuRootContext(scope);\n return /* @__PURE__ */ _jsx(Collection.Provider, {\n scope,\n children: /* @__PURE__ */ _jsx(Collection.Slot, {\n scope,\n children: rootContext.modal ? /* @__PURE__ */ _jsx(MenuRootContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ _jsx(MenuRootContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n })\n });\n });\n var MenuRootContentModal = createRefComponent(function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var context = useMenuContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ _jsx(MenuContentImpl, {\n ...props,\n scope,\n ref: composedRefs,\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus: context.open,\n // make sure to only disable pointer events when open\n // this avoids blocking interactions while animating out\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: false,\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside: composeEventHandlers(props.onFocusOutside, function(event) {\n return event.cancel();\n }, {\n checkDefaultPrevented: false\n }),\n onDismiss: function() {\n return context.onOpenChange(false);\n }\n });\n });\n var MenuRootContentNonModal = createRefComponent(function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var context = useMenuContext(scope);\n return /* @__PURE__ */ _jsx(MenuContentImpl, {\n ...props,\n scope,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: function() {\n return context.onOpenChange(false);\n }\n });\n });\n var MenuContentImpl = createRefComponent(function(props, forwardedRef) {\n var { scope = MENU_CONTEXT, loop = false, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEntryFocus, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, disableOutsideScroll, disableDismissOnScroll = false, ...contentProps } = props;\n var context = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var getItems = useCollection(scope);\n var [currentItemId, setCurrentItemId] = React.useState(null);\n var contentRef = React.useRef(null);\n var focusableContentRef = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n var timerRef = React.useRef(0);\n var searchRef = React.useRef(\"\");\n var pointerGraceTimerRef = React.useRef(0);\n var pointerGraceIntentRef = React.useRef(null);\n var pointerDirRef = React.useRef(\"right\");\n var lastPointerXRef = React.useRef(0);\n var handleTypeaheadSearch = function(key) {\n var _items_find, _items_find1;\n var search = searchRef.current + key;\n var items = getItems().filter(function(item) {\n return !item.disabled;\n });\n var currentItem = document.activeElement;\n var currentMatch = (_items_find = items.find(function(item) {\n return item.ref.current === currentItem;\n })) === null || _items_find === void 0 ? void 0 : _items_find.textValue;\n var values = items.map(function(item) {\n return item.textValue;\n });\n var nextMatch = getNextMatch(values, search, currentMatch);\n var newItem = (_items_find1 = items.find(function(item) {\n return item.textValue === nextMatch;\n })) === null || _items_find1 === void 0 ? void 0 : _items_find1.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = setTimeout(function() {\n return updateSearch(\"\");\n }, 1e3);\n })(search);\n if (newItem) {\n setTimeout(function() {\n return newItem.focus();\n });\n }\n };\n React.useEffect(function() {\n return function() {\n return clearTimeout(timerRef.current);\n };\n }, []);\n React.useEffect(function() {\n if (!isWeb || !context.open) return;\n var frame = requestAnimationFrame(function() {\n var container = contentRef.current;\n var el = container === null || container === void 0 ? void 0 : container.querySelector(\"[data-tamagui-menu-content]\");\n if (el) focusableContentRef.current = el;\n });\n return function() {\n return cancelAnimationFrame(frame);\n };\n }, [\n context.open\n ]);\n React.useEffect(function() {\n if (!isWeb || disableDismissOnScroll || !context.open) return;\n var handleScroll = function(event) {\n var _popperContext_refs_reference, _popperContext_refs;\n var scrolled = event.target;\n if (!scrolled) return;\n var content2 = contentRef.current;\n if (content2 === null || content2 === void 0 ? void 0 : content2.contains(scrolled)) return;\n var reference = (_popperContext_refs = popperContext.refs) === null || _popperContext_refs === void 0 ? void 0 : (_popperContext_refs_reference = _popperContext_refs.reference) === null || _popperContext_refs_reference === void 0 ? void 0 : _popperContext_refs_reference.current;\n var _reference_contextElement;\n var anchor = _instanceof(reference, Element) ? reference : (_reference_contextElement = reference === null || reference === void 0 ? void 0 : reference.contextElement) !== null && _reference_contextElement !== void 0 ? _reference_contextElement : null;\n if (anchor && !scrolled.contains(anchor)) return;\n context.onOpenChange(false);\n };\n window.addEventListener(\"scroll\", handleScroll, {\n capture: true,\n passive: true\n });\n return function() {\n window.removeEventListener(\"scroll\", handleScroll, {\n capture: true\n });\n };\n }, [\n disableDismissOnScroll,\n context.open,\n context.onOpenChange,\n popperContext.refs\n ]);\n if (isWeb) {\n useFocusGuards();\n }\n var isPointerMovingToSubmenu = React.useCallback(function(event) {\n var _pointerGraceIntentRef_current, _pointerGraceIntentRef_current1;\n var isMovingTowards = pointerDirRef.current === ((_pointerGraceIntentRef_current = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current === void 0 ? void 0 : _pointerGraceIntentRef_current.side);\n var inArea = isPointerInGraceArea(event, (_pointerGraceIntentRef_current1 = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current1 === void 0 ? void 0 : _pointerGraceIntentRef_current1.area);\n return isMovingTowards && inArea;\n }, []);\n var content = /* @__PURE__ */ _jsx(PopperPrimitive.PopperContent, {\n role: \"menu\",\n // tabIndex allows the content to be focusable so that onItemLeave can\n // focus the content frame and properly blur the previously focused item\n tabIndex: -1,\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-tamagui-menu-content\": \"\",\n // TODO\n // @ts-ignore\n dir: rootContext.dir,\n scope: scope || MENU_CONTEXT,\n ...contentProps,\n ref: composedRefs,\n className: contentProps.transition ? void 0 : contentProps.className,\n ...isWeb ? {\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, function(event) {\n var target = event.target;\n var isKeyDownInside = target.closest(\"[data-tamagui-menu-content]\") === event.currentTarget;\n var isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n var isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n var isOnContentFrame = event.target.hasAttribute(\"data-tamagui-menu-content\");\n if (!isKeyDownInside || !isOnContentFrame) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n var items = getItems().filter(function(item) {\n return !item.disabled;\n });\n var candidateNodes = items.map(function(item) {\n return item.ref.current;\n });\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes, {\n focusVisible: true\n });\n }),\n // TODO\n // @ts-ignore\n onBlur: composeEventHandlers(props.onBlur, function(event) {\n var _event_currentTarget;\n if (!((_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.contains(event.target))) {\n clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n // TODO\n onPointerMove: composeEventHandlers(props.onPointerMove, function(event) {\n var _event_currentTarget;\n if (event.pointerType !== \"mouse\") return;\n var target = event.target;\n var pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (((_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.contains(target)) && pointerXHasChanged) {\n var newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n } : {}\n });\n return /* @__PURE__ */ _jsx(MenuContentProvider, {\n scope,\n searchRef,\n onItemEnter: React.useCallback(function(event) {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n onItemLeave: React.useCallback(function(event) {\n var _focusableContentRef_current;\n if (isPointerMovingToSubmenu(event)) return;\n (_focusableContentRef_current = focusableContentRef.current) === null || _focusableContentRef_current === void 0 ? void 0 : _focusableContentRef_current.focus();\n setCurrentItemId(null);\n }, [\n isPointerMovingToSubmenu\n ]),\n onTriggerLeave: React.useCallback(function(event) {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback(function(intent) {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ _jsx(RemoveScroll, {\n enabled: disableOutsideScroll,\n children: /* @__PURE__ */ _jsx(FocusScope, {\n asChild: false,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, function(event) {\n event.cancel();\n var content2 = document.querySelector(\"[data-tamagui-menu-content]\");\n content2 === null || content2 === void 0 ? void 0 : content2.focus({\n preventScroll: true\n });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ _jsx(DismissableLayer, {\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n asChild: true,\n children: /* @__PURE__ */ _jsx(RovingFocusGroup, {\n asChild: true,\n __scopeRovingFocusGroup: scope || MENU_CONTEXT,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, function(event) {\n if (!rootContext.isUsingKeyboardRef.current) {\n event.cancel();\n }\n }),\n children: content\n })\n })\n })\n })\n });\n });\n MenuContent.displayName = CONTENT_NAME;\n var ITEM_NAME = \"MenuItem\";\n var ITEM_SELECT = \"menu.itemSelect\";\n var MenuItem = createStyledHOC(View, function(props, forwardedRef) {\n var {\n disabled = false,\n onSelect,\n preventCloseOnSelect,\n children,\n scope = MENU_CONTEXT,\n // filter out native-only props that shouldn't reach the DOM\n // @ts-ignore\n destructive,\n // @ts-ignore\n hidden,\n // @ts-ignore\n androidIconName,\n ...itemProps\n } = props;\n var ref = React.useRef(null);\n var rootContext = useMenuRootContext(scope);\n var contentContext = useMenuContentContext(scope);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var isPointerDownRef = React.useRef(false);\n var handleSelect = function() {\n var menuItem = ref.current;\n if (!disabled && menuItem) {\n if (isWeb) {\n var menuItemEl = menuItem;\n var itemSelectEvent = new CustomEvent(ITEM_SELECT, {\n bubbles: true,\n cancelable: true\n });\n menuItemEl.addEventListener(ITEM_SELECT, function(event) {\n return onSelect === null || onSelect === void 0 ? void 0 : onSelect(event);\n }, {\n once: true\n });\n dispatchDiscreteCustomEvent(menuItemEl, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented || preventCloseOnSelect) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect({\n target: menuItem\n });\n isPointerDownRef.current = false;\n if (!preventCloseOnSelect) {\n rootContext.onClose();\n }\n }\n }\n };\n var content = typeof children === \"string\" ? /* @__PURE__ */ _jsx(Text, {\n children\n }) : children;\n return /* @__PURE__ */ _jsx(MenuItemImpl, {\n ...itemProps,\n scope,\n // @ts-ignore\n ref: composedRefs,\n disabled,\n onPress: composeEventHandlers(props.onPress, handleSelect),\n onPointerDown: function(event) {\n var _props_onPointerDown;\n (_props_onPointerDown = props.onPointerDown) === null || _props_onPointerDown === void 0 ? void 0 : _props_onPointerDown.call(props, event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, function(event) {\n if (isWeb) {\n var _event_currentTarget;\n if (!isPointerDownRef.current) (_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.click();\n }\n }),\n ...isWeb ? {\n onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {\n var isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n var _event_currentTarget;\n (_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.click();\n event.preventDefault();\n }\n })\n } : {},\n children: content\n });\n });\n var MenuItemImpl = createRefComponent(function(props, forwardedRef) {\n var { scope = MENU_CONTEXT, className, disabled = false, textValue, ...itemProps } = props;\n var contentContext = useMenuContentContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var [isFocused, setIsFocused] = React.useState(false);\n var [textContent, setTextContent] = React.useState(\"\");\n if (isWeb) {\n React.useEffect(function() {\n var menuItem = ref.current;\n if (menuItem) {\n var _menuItem_textContent;\n setTextContent(((_menuItem_textContent = menuItem.textContent) !== null && _menuItem_textContent !== void 0 ? _menuItem_textContent : \"\").trim());\n }\n }, [\n itemProps.children\n ]);\n }\n return /* @__PURE__ */ _jsx(Collection.ItemSlot, {\n scope,\n disabled,\n textValue: textValue !== null && textValue !== void 0 ? textValue : textContent,\n children: /* @__PURE__ */ _jsx(RovingFocusGroup.Item, {\n asChild: true,\n __scopeRovingFocusGroup: scope,\n tabIndex: disabled ? -1 : 0,\n children: /* @__PURE__ */ _jsx(View, {\n className: `is_${ITEM_NAME} ${className || \"\"}`.trim(),\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n /**\n * We focus items on `pointerMove` to achieve the following:\n *\n * - Mouse over an item (it focuses)\n * - Leave mouse where it is and use keyboard to focus a different item\n * - Wiggle mouse without it leaving previously focused item\n * - Previously focused item should re-focus\n *\n * If we used `mouseOver`/`mouseEnter` it would not re-focus when the mouse\n * wiggles. This is to match native menu implementation.\n */\n onPointerMove: composeEventHandlers(props.onPointerMove, function(event) {\n if (event.pointerType !== \"mouse\") return;\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n var item = event.currentTarget;\n item.focus({\n preventScroll: true,\n focusVisible: false\n });\n }\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, function(event) {\n contentContext.onItemLeave(event);\n }),\n onFocus: composeEventHandlers(props.onFocus, function() {\n return setIsFocused(true);\n }),\n onBlur: composeEventHandlers(props.onBlur, function() {\n return setIsFocused(false);\n })\n })\n })\n });\n });\n MenuItem.displayName = ITEM_NAME;\n var ITEM_TITLE_NAME = \"MenuItemTitle\";\n var MenuItemTitle = createStyledHOC(Text, function(props, forwardedRef) {\n return /* @__PURE__ */ _jsx(Text, {\n ...props,\n ref: forwardedRef\n });\n });\n MenuItemTitle.displayName = ITEM_TITLE_NAME;\n var ITEM_SUB_TITLE_NAME = \"MenuItemSubTitle\";\n var MenuItemSubTitle = createStyledHOC(Text, function(props, forwardedRef) {\n return /* @__PURE__ */ _jsx(Text, {\n ...props,\n ref: forwardedRef\n });\n });\n MenuItemSubTitle.displayName = ITEM_SUB_TITLE_NAME;\n var ITEM_IMAGE = \"MenuItemImage\";\n var MenuItemImage = createRefComponent(function(props, forwardedRef) {\n var {\n // @ts-ignore - native menu ios config\n ios,\n // @ts-ignore\n androidIconName,\n ...rest\n } = props;\n return /* @__PURE__ */ _jsx(MenuImageFrame, {\n ...rest,\n ref: forwardedRef\n });\n });\n MenuItemImage.displayName = ITEM_IMAGE;\n var ITEM_ICON = \"MenuItemIcon\";\n var MenuItemIcon = createStyledHOC(View, function(props, forwardedRef) {\n var {\n // @ts-ignore\n ios,\n // @ts-ignore\n android,\n // @ts-ignore\n androidIconName,\n ...rest\n } = props;\n return /* @__PURE__ */ _jsx(View, {\n ...rest,\n ref: forwardedRef\n });\n });\n MenuItemIcon.displayName = ITEM_ICON;\n var CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\n var MenuCheckboxItem = createStyledHOC(View, function(props, forwardedRef) {\n var {\n checked = false,\n onCheckedChange,\n scope = MENU_CONTEXT,\n // filter out native-only props\n // @ts-ignore - native menu value state\n value,\n // @ts-ignore - native menu value change handler\n onValueChange,\n className,\n ...checkboxItemProps\n } = props;\n return /* @__PURE__ */ _jsx(ItemIndicatorProvider, {\n scope,\n checked,\n children: /* @__PURE__ */ _jsx(MenuItem, {\n className: `is_${CHECKBOX_ITEM_NAME} ${className || \"\"}`.trim(),\n role: isWeb ? \"menuitemcheckbox\" : \"menuitem\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n scope,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(checkboxItemProps.onSelect, function() {\n return onCheckedChange === null || onCheckedChange === void 0 ? void 0 : onCheckedChange(isIndeterminate(checked) ? true : !checked);\n }, {\n checkDefaultPrevented: false\n })\n })\n });\n });\n MenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n var RADIO_GROUP_NAME = \"MenuRadioGroup\";\n var { Provider: RadioGroupProvider, useStyledContext: useRadioGroupContext } = createStyledContext();\n var MenuRadioGroup = createStyledHOC(View, function(props, forwardedRef) {\n var { value, onValueChange, scope = MENU_CONTEXT, className, ...groupProps } = props;\n var handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ _jsx(RadioGroupProvider, {\n scope,\n value,\n onValueChange: handleValueChange,\n children: /* @__PURE__ */ _jsx(View, {\n className: `is_${RADIO_GROUP_NAME} ${className || \"\"}`.trim(),\n ...groupProps,\n ref: forwardedRef\n })\n });\n });\n MenuRadioGroup.displayName = RADIO_GROUP_NAME;\n var RADIO_ITEM_NAME = \"MenuRadioItem\";\n var MenuRadioItem = createStyledHOC(View, function(props, forwardedRef) {\n var { value, scope = MENU_CONTEXT, className, ...radioItemProps } = props;\n var context = useRadioGroupContext(scope);\n var checked = value === context.value;\n return /* @__PURE__ */ _jsx(ItemIndicatorProvider, {\n scope,\n checked,\n children: /* @__PURE__ */ _jsx(MenuItem, {\n className: `is_${RADIO_ITEM_NAME} ${className || \"\"}`.trim(),\n ...radioItemProps,\n scope,\n \"aria-checked\": checked,\n ref: forwardedRef,\n role: isWeb ? \"menuitemradio\" : \"menuitem\",\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(radioItemProps.onSelect, function() {\n var _context_onValueChange;\n return (_context_onValueChange = context.onValueChange) === null || _context_onValueChange === void 0 ? void 0 : _context_onValueChange.call(context, value);\n }, {\n checkDefaultPrevented: false\n })\n })\n });\n });\n MenuRadioItem.displayName = RADIO_ITEM_NAME;\n var ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\n var { Provider: ItemIndicatorProvider, useStyledContext: useItemIndicatorContext } = createStyledContext();\n var MenuItemIndicator = createStyledHOC(View, function(props, forwardedRef) {\n var { scope = MENU_CONTEXT, className, forceMount, ...itemIndicatorProps } = props;\n var indicatorContext = useItemIndicatorContext(scope);\n return /* @__PURE__ */ _jsx(Presence, {\n children: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true ? /* @__PURE__ */ _jsx(View, {\n className: `is_${ITEM_INDICATOR_NAME} ${className || \"\"}`.trim(),\n render: \"span\",\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }) : null\n });\n });\n MenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\n var MenuArrow = createRefComponent(function MenuArrow2(props, forwardedRef) {\n var { scope = MENU_CONTEXT, className, ...rest } = props;\n return /* @__PURE__ */ _jsx(PopperPrimitive.PopperArrow, {\n scope,\n className: `is_PopperArrow ${className || \"\"}`.trim(),\n ...rest,\n ref: forwardedRef\n });\n });\n var SUB_NAME = \"MenuSub\";\n var { Provider: MenuSubProvider, useStyledContext: useMenuSubContext } = createStyledContext();\n var MenuSub = function(props) {\n var _parentPopperContext_placement;\n var isTouchDevice = useIsTouchDevice();\n var { scope = MENU_CONTEXT } = props;\n var rootContext = useMenuRootContext(scope);\n var parentPopperContext = PopperPrimitive.usePopperContext(scope);\n var parentSide = (_parentPopperContext_placement = parentPopperContext.placement) === null || _parentPopperContext_placement === void 0 ? void 0 : _parentPopperContext_placement.split(\"-\")[0];\n var isNestedSubmenu = parentSide === \"left\" || parentSide === \"right\";\n var defaultPlacement = isTouchDevice ? \"bottom\" : isNestedSubmenu ? `${parentSide}-start` : rootContext.dir === \"rtl\" ? \"left-start\" : \"right-start\";\n var { children, open = false, onOpenChange, allowFlip: allowFlipProp = {\n padding: 10\n }, stayInFrame = {\n padding: 10\n }, placement = defaultPlacement, ...rest } = props;\n var allowFlip = React.useMemo(function() {\n if (!isNestedSubmenu || typeof allowFlipProp === \"boolean\") return allowFlipProp;\n if (allowFlipProp.fallbackPlacements) return allowFlipProp;\n var side = placement.split(\"-\")[0];\n var align = placement.split(\"-\")[1] || \"start\";\n var otherAlign = align === \"start\" ? \"end\" : \"start\";\n if (side === \"left\" || side === \"right\") {\n var oppositeSide = side === \"right\" ? \"left\" : \"right\";\n return {\n ...(typeof allowFlipProp === \"undefined\" ? \"undefined\" : _type_of(allowFlipProp)) === \"object\" ? allowFlipProp : {},\n fallbackPlacements: [\n `${side}-${otherAlign}`,\n `${oppositeSide}-${align}`,\n `${oppositeSide}-${otherAlign}`\n ]\n };\n }\n return allowFlipProp;\n }, [\n isNestedSubmenu,\n allowFlipProp,\n placement\n ]);\n var parentMenuContext = useMenuContext(scope);\n var [trigger, setTrigger] = React.useState(null);\n var [content, setContent] = React.useState(null);\n var handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(function() {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return function() {\n return handleOpenChange(false);\n };\n }, [\n parentMenuContext.open,\n handleOpenChange\n ]);\n return /* @__PURE__ */ _jsx(PopperPrimitive.Popper, {\n open,\n placement,\n allowFlip,\n stayInFrame,\n ...rest,\n scope,\n children: /* @__PURE__ */ _jsx(MenuProvider, {\n scope,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ _jsx(MenuSubProvider, {\n scope,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n })\n })\n });\n };\n MenuSub.displayName = SUB_NAME;\n var SUB_TRIGGER_NAME = \"MenuSubTrigger\";\n var MenuSubTrigger = createRefComponent(function(props, forwardedRef) {\n var scope = props.scope || MENU_CONTEXT;\n var context = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var subContext = useMenuSubContext(scope);\n var contentContext = useMenuContentContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var openTimerRef = React.useRef(null);\n var { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n var effectiveDir = rootContext.dir;\n var clearOpenTimer = React.useCallback(function() {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(function() {\n return clearOpenTimer;\n }, [\n clearOpenTimer\n ]);\n React.useEffect(function() {\n var pointerGraceTimer = pointerGraceTimerRef.current;\n return function() {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [\n pointerGraceTimerRef,\n onPointerGraceIntentChange\n ]);\n return /* @__PURE__ */ _jsx(MenuAnchor, {\n className: `is_${SUB_TRIGGER_NAME}`,\n asChild: \"except-style\",\n scope,\n children: /* @__PURE__ */ _jsx(MenuItemImpl, {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n // This is redundant for mouse users but we cannot determine pointer type from\n // click event and we cannot use pointerup event (see git history for reasons why)\n onPress: function(event) {\n var _props_onPress;\n (_props_onPress = props.onPress) === null || _props_onPress === void 0 ? void 0 : _props_onPress.call(props, event);\n if (props.disabled || event.defaultPrevented) return;\n if (isWeb) {\n event.currentTarget.focus();\n }\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n // @ts-ignore\n whenMouse(function(event) {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(function() {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, function(eventIn) {\n var _context_content;\n var event = eventIn;\n clearOpenTimer();\n var contentRect = (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.getBoundingClientRect();\n if (contentRect) {\n var _contentEl_dataset, _sideEl_dataset;\n var contentEl = context.content;\n var sideEl = (contentEl === null || contentEl === void 0 ? void 0 : (_contentEl_dataset = contentEl.dataset) === null || _contentEl_dataset === void 0 ? void 0 : _contentEl_dataset.side) ? contentEl : contentEl === null || contentEl === void 0 ? void 0 : contentEl.querySelector(\"[data-side]\");\n var side = (sideEl === null || sideEl === void 0 ? void 0 : (_sideEl_dataset = sideEl.dataset) === null || _sideEl_dataset === void 0 ? void 0 : _sideEl_dataset.side) || \"right\";\n var rightSide = side === \"right\";\n var bleed = rightSide ? -5 : 5;\n var contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n var contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n var polygon = {\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n {\n x: event.clientX + bleed,\n y: event.clientY\n },\n {\n x: contentNearEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.bottom\n },\n {\n x: contentNearEdge,\n y: contentRect.bottom\n }\n ],\n side\n };\n contentContext.onPointerGraceIntentChange(polygon);\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(function() {\n return contentContext.onPointerGraceIntentChange(null);\n }, 300);\n } else if (isWeb && subContext.trigger) {\n var triggerEl = subContext.trigger;\n var triggerRect = triggerEl === null || triggerEl === void 0 ? void 0 : triggerEl.getBoundingClientRect();\n if (triggerRect) {\n var _popperContext_placement;\n var placementSide = (_popperContext_placement = popperContext.placement) === null || _popperContext_placement === void 0 ? void 0 : _popperContext_placement.split(\"-\")[0];\n var side1 = placementSide === \"left\" || placementSide === \"right\" ? placementSide : rootContext.dir === \"rtl\" ? \"left\" : \"right\";\n var rightSide1 = side1 === \"right\";\n var bleed1 = rightSide1 ? -5 : 5;\n var nearEdge = rightSide1 ? triggerRect.right + 4 : triggerRect.left - 4;\n var farEdge = rightSide1 ? nearEdge + 200 : nearEdge - 200;\n var polygon1 = {\n area: [\n {\n x: event.clientX + bleed1,\n y: event.clientY\n },\n {\n x: nearEdge,\n y: triggerRect.top - 50\n },\n {\n x: farEdge,\n y: triggerRect.top - 50\n },\n {\n x: farEdge,\n y: triggerRect.bottom + 50\n },\n {\n x: nearEdge,\n y: triggerRect.bottom + 50\n }\n ],\n side: side1\n };\n contentContext.onPointerGraceIntentChange(polygon1);\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(function() {\n return contentContext.onPointerGraceIntentChange(null);\n }, 300);\n }\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n }),\n ...isWeb ? {\n onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {\n var isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n var willOpen = SUB_OPEN_KEYS[effectiveDir].includes(event.key);\n if (willOpen) {\n var _popperContext_refs, _context_content;\n if (context.open && context.content) {\n var _contentEl_querySelector;\n var contentEl = context.content;\n var firstItem = (_contentEl_querySelector = contentEl.querySelector) === null || _contentEl_querySelector === void 0 ? void 0 : _contentEl_querySelector.call(contentEl, '[role=\"menuitem\"]:not([data-disabled])');\n if (firstItem) {\n firstItem.focus({\n focusVisible: true\n });\n event.preventDefault();\n return;\n }\n }\n var triggerEl = event.currentTarget;\n (_popperContext_refs = popperContext.refs) === null || _popperContext_refs === void 0 ? void 0 : _popperContext_refs.setReference(triggerEl);\n context.onOpenChange(true);\n requestAnimationFrame(function() {\n var _popperContext_update;\n (_popperContext_update = popperContext.update) === null || _popperContext_update === void 0 ? void 0 : _popperContext_update.call(popperContext);\n });\n (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.focus({\n focusVisible: true\n });\n event.preventDefault();\n }\n })\n } : null\n })\n });\n });\n MenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n var SUB_CONTENT_NAME = \"MenuSubContent\";\n var MenuSubContentFrame = styled(PopperPrimitive.PopperContentFrame, {\n displayName: SUB_CONTENT_NAME\n });\n var MenuSubContent = createStyledHOC(MenuSubContentFrame, function(props, forwardedRef) {\n var _popperContext_placement;\n var scope = props.scope || MENU_CONTEXT;\n var portalContext = usePortalContext(scope);\n var { forceMount = portalContext.forceMount, ...subContentProps } = props;\n var context = useMenuContext(scope);\n var rootContext = useMenuRootContext(scope);\n var subContext = useMenuSubContext(scope);\n var popperContext = PopperPrimitive.usePopperContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var placementSide = (_popperContext_placement = popperContext.placement) === null || _popperContext_placement === void 0 ? void 0 : _popperContext_placement.split(\"-\")[0];\n var dataSide = placementSide === \"left\" || placementSide === \"right\" ? placementSide : rootContext.dir === \"rtl\" ? \"left\" : \"right\";\n var effectiveDir = rootContext.dir;\n return /* @__PURE__ */ _jsx(Collection.Provider, {\n scope,\n children: /* @__PURE__ */ _jsx(Collection.Slot, {\n scope,\n children: /* @__PURE__ */ _jsx(MenuContentImpl, {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n \"data-side\": dataSide,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: function(event) {\n if (rootContext.isUsingKeyboardRef.current) {\n var _root_querySelector, _this;\n var root = ref.current;\n var content = root === null || root === void 0 ? void 0 : (_root_querySelector = root.querySelector) === null || _root_querySelector === void 0 ? void 0 : _root_querySelector.call(root, \"[data-tamagui-menu-content]\");\n (_this = content || root) === null || _this === void 0 ? void 0 : _this.focus({\n preventScroll: true\n });\n }\n event.cancel();\n },\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n onCloseAutoFocus: function(event) {\n return event.cancel();\n },\n onFocusOutside: composeEventHandlers(props.onFocusOutside, function(event) {\n var _event_event;\n if (((_event_event = event.event) === null || _event_event === void 0 ? void 0 : _event_event.target) !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, function(event) {\n var _subContext_trigger, _event_event_preventDefault, _event_event;\n context.onOpenChange(false);\n (_subContext_trigger = subContext.trigger) === null || _subContext_trigger === void 0 ? void 0 : _subContext_trigger.focus({\n focusVisible: true\n });\n event.cancel();\n (_event_event = event.event) === null || _event_event === void 0 ? void 0 : (_event_event_preventDefault = _event_event.preventDefault) === null || _event_event_preventDefault === void 0 ? void 0 : _event_event_preventDefault.call(_event_event);\n }),\n ...isWeb ? {\n onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {\n var isKeyDownInside = event.currentTarget.contains(event.target);\n var isCloseKey = SUB_CLOSE_KEYS[effectiveDir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n var _subContext_trigger;\n context.onOpenChange(false);\n (_subContext_trigger = subContext.trigger) === null || _subContext_trigger === void 0 ? void 0 : _subContext_trigger.focus({\n focusVisible: true\n });\n event.preventDefault();\n }\n })\n } : null\n })\n })\n });\n });\n MenuSubContent.displayName = SUB_CONTENT_NAME;\n var Anchor = MenuAnchor;\n var Portal = MenuPortal;\n var Content = MenuContent;\n var Group = createStyledHOC(View, function(props, ref) {\n return /* @__PURE__ */ _jsx(View, {\n role: \"group\",\n ...props,\n ref\n });\n });\n Group.displayName = \"MenuGroup\";\n var Label = createStyledHOC(Text, function(props, ref) {\n return /* @__PURE__ */ _jsx(Text, {\n ...props,\n ref\n });\n });\n Label.displayName = \"MenuLabel\";\n var Item = MenuItem;\n var CheckboxItem = MenuCheckboxItem;\n var RadioGroup = MenuRadioGroup;\n var RadioItem = MenuRadioItem;\n var ItemIndicator = MenuItemIndicator;\n var Separator = createStyledHOC(View, function(props, ref) {\n return /* @__PURE__ */ _jsx(View, {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...props,\n ref\n });\n });\n Separator.displayName = \"MenuSeparator\";\n var Arrow = MenuArrow;\n var Sub = MenuSub;\n var SubTrigger = MenuSubTrigger;\n var SubContent = MenuSubContent;\n var ItemTitle = MenuItemTitle;\n var ItemSubtitle = MenuItemSubTitle;\n var ItemImage = MenuItemImage;\n var ItemIcon = MenuItemIcon;\n var Menu = withStaticProperties(MenuComp, {\n Anchor,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n ItemTitle,\n ItemSubtitle,\n ItemImage,\n ItemIcon\n });\n return {\n Menu\n };\n}\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates, options) {\n var PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidate = _step.value;\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({\n preventScroll: true,\n focusVisible: options === null || options === void 0 ? void 0 : options.focusVisible\n });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map(function(_, index) {\n return array[(startIndex + index) % array.length];\n });\n}\nfunction getNextMatch(values, search, currentMatch) {\n var isRepeated = search.length > 1 && Array.from(search).every(function(char) {\n return char === search[0];\n });\n var normalizedSearch = isRepeated ? search[0] : search;\n var currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n var wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n var excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter(function(v) {\n return v !== currentMatch;\n });\n var nextMatch = wrappedValues.find(function(value) {\n return value.toLowerCase().startsWith(normalizedSearch.toLowerCase());\n });\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n var { x, y } = point;\n var inside = false;\n for (var i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n var xi = polygon[i].x;\n var yi = polygon[i].y;\n var xj = polygon[j].x;\n var yj = polygon[j].y;\n var intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n var cursorPos = {\n x: event.clientX,\n y: event.clientY\n };\n return isPointInPolygon(cursorPos, area);\n}\nexport {\n createBaseMenu\n};\n//# sourceMappingURL=createBaseMenu.js.map\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNativeMenu.js","names":[],"sources":["esm/createNativeMenu/createNativeMenu.js"],"sourcesContent":["import {\n getNativeMenuAdapter,\n NativeMenuContext,\n unstable_claimExternalPressOwnership,\n unstable_releaseExternalPressOwnership\n} from \"@tamagui/native\";\nimport { isWeb, withStaticProperties, isIos } from \"@tamagui/web\";\nimport React from \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nconst MAPPED_TYPES = [\n \"SubContent\",\n \"SubTrigger\",\n \"Content\",\n \"Sub\",\n \"Group\",\n \"Item\",\n \"ItemTitle\",\n \"ItemSubtitle\",\n \"ItemIcon\",\n \"ItemImage\",\n \"ItemIndicator\",\n \"Label\",\n \"Separator\",\n \"CheckboxItem\",\n \"Preview\",\n \"Auxiliary\"\n];\nconst CONTAINER_TYPES = [\n \"SubContent\",\n \"SubTrigger\",\n \"Content\",\n \"Sub\",\n \"Group\",\n \"Item\"\n];\nfunction getComponentType(displayName) {\n for (const type of MAPPED_TYPES) {\n if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) {\n return type;\n }\n }\n return null;\n}\nfunction isItemLike(props, displayName) {\n if (getComponentType(displayName)) return false;\n return \"onSelect\" in props || \"textValue\" in props;\n}\nfunction isPortalLike(displayName) {\n return displayName === \"Portal\" || displayName.includes(\"Portal\");\n}\nfunction isTriggerLike(displayName) {\n return displayName === \"Trigger\" || displayName.includes(\"(Trigger)\");\n}\nfunction composeHandlers(first, second) {\n return (...args) => {\n first?.(...args);\n second?.(...args);\n };\n}\nfunction getTriggerDebugName(menuType, props) {\n const childProps = React.isValidElement(props.children) && props.children.props ? props.children.props : null;\n const prefix = menuType === \"ContextMenu\" ? \"ContextMenuTrigger\" : \"MenuTrigger\";\n const detail = childProps?.testID ?? childProps?.accessibilityLabel ?? (typeof props.textValue === \"string\" ? props.textValue : null);\n return [prefix, detail].filter(Boolean).join(\":\") || prefix;\n}\nconst emptyStub = (() => null);\nfunction createWebStubs() {\n return {\n Menu: withStaticProperties(emptyStub, {\n Trigger: emptyStub,\n Content: emptyStub,\n Item: emptyStub,\n ItemTitle: emptyStub,\n ItemSubtitle: emptyStub,\n SubTrigger: emptyStub,\n Group: emptyStub,\n ItemIcon: emptyStub,\n Separator: emptyStub,\n CheckboxItem: emptyStub,\n ItemIndicator: emptyStub,\n ItemImage: emptyStub,\n Label: emptyStub,\n Arrow: emptyStub,\n Sub: emptyStub,\n SubContent: emptyStub,\n Preview: emptyStub,\n Portal: emptyStub,\n RadioGroup: emptyStub,\n RadioItem: emptyStub,\n Auxiliary: emptyStub\n })\n };\n}\nconst createNativeMenu = (MenuType) => {\n if (isWeb) {\n return createWebStubs();\n }\n const isContextMenu = MenuType === \"ContextMenu\";\n const isAndroid = !isIos && !isWeb;\n let resolved = null;\n let warned = false;\n function resolve() {\n if (resolved) return resolved;\n const adapter = getNativeMenuAdapter();\n if (!adapter) {\n if (!warned) {\n warned = true;\n console.warn(\n `Warning: Register a native menu adapter before rendering Tamagui native menus`\n );\n }\n return null;\n }\n const menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;\n resolved = {\n menu,\n componentMap: {\n SubContent: menu.SubContent,\n SubTrigger: menu.SubTrigger,\n Content: menu.Content,\n Sub: menu.Sub,\n Group: menu.Group,\n Item: menu.Item,\n ItemTitle: menu.ItemTitle,\n ItemSubtitle: menu.ItemSubtitle,\n ItemIcon: menu.ItemIcon,\n ItemImage: menu.ItemImage,\n ItemIndicator: menu.ItemIndicator,\n Label: menu.Label,\n Separator: menu.Separator,\n CheckboxItem: menu.CheckboxItem,\n Preview: menu.Preview,\n Auxiliary: menu.Auxiliary\n }\n };\n return resolved;\n }\n function transformChildren(menu, map, children, shouldReverseOnIos = false, triggerBoundaryHandlers, radioContext) {\n const result = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) {\n result.push(child);\n return;\n }\n const displayName = child.type?.displayName || \"\";\n const props = child.props;\n if (isPortalLike(displayName)) {\n const inner = transformChildren(\n menu,\n map,\n props.children,\n false,\n triggerBoundaryHandlers,\n radioContext\n );\n React.Children.forEach(inner, (c) => result.push(c));\n return;\n }\n if (displayName.includes(\"ScrollView\")) {\n const inner = transformChildren(\n menu,\n map,\n props.children,\n false,\n triggerBoundaryHandlers,\n radioContext\n );\n React.Children.forEach(inner, (c) => result.push(c));\n return;\n }\n if (isTriggerLike(displayName)) {\n const debugName = getTriggerDebugName(MenuType, props);\n const claim = () => triggerBoundaryHandlers?.claim(debugName);\n const release = () => triggerBoundaryHandlers?.release(debugName);\n const { children: triggerChildren, ...triggerProps } = props;\n result.push(\n React.createElement(\n menu.Trigger,\n {\n ...triggerProps,\n key: child.key,\n onTouchStart: composeHandlers(claim, props.onTouchStart),\n onTouchEnd: composeHandlers(props.onTouchEnd, release),\n onTouchCancel: composeHandlers(props.onTouchCancel, release),\n onResponderGrant: composeHandlers(claim, props.onResponderGrant),\n onResponderRelease: composeHandlers(props.onResponderRelease, release),\n onResponderTerminate: composeHandlers(props.onResponderTerminate, release),\n onPressIn: composeHandlers(claim, props.onPressIn),\n onPressOut: composeHandlers(props.onPressOut, release)\n },\n triggerChildren\n )\n );\n return;\n }\n if (displayName.includes(\"RadioGroup\")) {\n const {\n value: rgValue,\n onValueChange: rgOnValueChange,\n children: rgChildren,\n ...rest\n } = props;\n result.push(\n React.createElement(\n menu.Group,\n { ...rest, key: child.key },\n transformChildren(\n menu,\n map,\n rgChildren,\n false,\n triggerBoundaryHandlers,\n { value: rgValue, onValueChange: rgOnValueChange }\n )\n )\n );\n return;\n }\n if (displayName.includes(\"RadioItem\") && radioContext) {\n const {\n value: itemValue,\n children: rChildren,\n ...rest\n } = props;\n const cleanChildren = React.Children.map(rChildren, (c) => {\n if (!React.isValidElement(c)) return c;\n const dn = c.type?.displayName || \"\";\n if (dn.includes(\"ItemIndicator\")) return null;\n return c;\n });\n result.push(\n React.createElement(\n menu.CheckboxItem,\n {\n ...rest,\n key: child.key,\n value: itemValue === radioContext.value ? \"on\" : \"off\",\n onValueChange: () => radioContext.onValueChange?.(itemValue)\n },\n transformChildren(\n menu,\n map,\n cleanChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n const componentType = getComponentType(displayName);\n if (componentType === \"CheckboxItem\") {\n const {\n checked,\n onCheckedChange,\n value,\n onValueChange,\n children: cbChildren,\n ...rest\n } = props;\n const finalValue = value ?? (checked ? \"on\" : \"off\");\n const finalOnValueChange = onValueChange ?? (onCheckedChange && ((v) => onCheckedChange(v === \"on\")));\n const cleanChildren = React.Children.map(cbChildren, (c) => {\n if (!React.isValidElement(c)) return c;\n const dn = c.type?.displayName || \"\";\n if (dn.includes(\"ItemIndicator\")) return null;\n return c;\n });\n result.push(\n React.createElement(\n menu.CheckboxItem,\n {\n ...rest,\n key: child.key,\n value: finalValue,\n onValueChange: finalOnValueChange\n },\n transformChildren(\n menu,\n map,\n cleanChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n if (componentType) {\n const { children: childChildren, ...restProps } = props;\n const AdapterComponent = map[componentType];\n const isContainer = CONTAINER_TYPES.includes(componentType);\n const shouldReverse = componentType === \"Content\" || componentType === \"SubContent\";\n result.push(\n React.createElement(\n AdapterComponent,\n { ...restProps, key: child.key },\n isContainer ? transformChildren(\n menu,\n map,\n childChildren,\n shouldReverse,\n triggerBoundaryHandlers,\n radioContext\n ) : childChildren\n )\n );\n return;\n }\n if (isItemLike(props, displayName)) {\n const { children: itemChildren, ...itemProps } = props;\n result.push(\n React.createElement(\n menu.Item,\n { ...itemProps, key: child.key },\n transformChildren(\n menu,\n map,\n itemChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n result.push(child);\n });\n if (isIos && shouldReverseOnIos && !isContextMenu) {\n result.reverse();\n }\n return result;\n }\n function lazyAdapter(name, displayName) {\n const Comp = (props) => {\n const z = resolve();\n if (!z) return null;\n return React.createElement(z.menu[name], props);\n };\n Comp.displayName = displayName || name;\n return Comp;\n }\n const Trigger = lazyAdapter(\"Trigger\");\n const Content = lazyAdapter(\"Content\");\n const Item = lazyAdapter(\"Item\");\n const ItemTitle = lazyAdapter(\"ItemTitle\");\n const ItemSubtitle = lazyAdapter(\"ItemSubtitle\");\n const ItemIcon = lazyAdapter(\"ItemIcon\");\n const ItemImage = lazyAdapter(\"ItemImage\");\n const ItemIndicator = lazyAdapter(\"ItemIndicator\");\n const Group = lazyAdapter(\"Group\");\n const Label = lazyAdapter(\"Label\");\n const Separator = lazyAdapter(\"Separator\");\n const Sub = lazyAdapter(\"Sub\");\n const SubTrigger = lazyAdapter(\"SubTrigger\");\n const SubContent = lazyAdapter(\"SubContent\");\n const Portal = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n Portal.displayName = \"Portal\";\n const Arrow = () => null;\n Arrow.displayName = \"Arrow\";\n const RadioGroup = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n RadioGroup.displayName = `${MenuType}RadioGroup`;\n const RadioItem = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n RadioItem.displayName = `${MenuType}RadioItem`;\n const CheckboxItem = () => null;\n CheckboxItem.displayName = \"CheckboxItem\";\n const Preview = isContextMenu ? lazyAdapter(\"Preview\", `${MenuType}Preview`) : () => null;\n Preview.displayName = `${MenuType}Preview`;\n const Auxiliary = isContextMenu ? lazyAdapter(\"Auxiliary\", `${MenuType}Auxiliary`) : () => null;\n Auxiliary.displayName = `${MenuType}Auxiliary`;\n const Menu = ({ children, onOpenChange, onOpenWillChange }) => {\n const triggerOwnerRef = React.useRef(null);\n const claimTriggerBoundary = React.useCallback((debugName) => {\n if (triggerOwnerRef.current) {\n unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);\n }\n triggerOwnerRef.current = unstable_claimExternalPressOwnership(debugName);\n }, []);\n const releaseTriggerBoundary = React.useCallback((debugName) => {\n if (!triggerOwnerRef.current) return;\n unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);\n triggerOwnerRef.current = null;\n }, []);\n React.useEffect(() => releaseTriggerBoundary, [releaseTriggerBoundary]);\n const z = resolve();\n if (!z) return null;\n const handleOpenChange = React.useCallback(\n (isOpen) => {\n if (!isOpen) {\n releaseTriggerBoundary();\n }\n onOpenChange?.(isOpen);\n },\n [onOpenChange, releaseTriggerBoundary]\n );\n const handleOpenWillChange = React.useCallback(\n (willOpen) => {\n if (!willOpen) {\n releaseTriggerBoundary();\n }\n onOpenWillChange?.(willOpen);\n },\n [onOpenWillChange, releaseTriggerBoundary]\n );\n const rootProps = { onOpenChange: handleOpenChange };\n if (isContextMenu && onOpenWillChange) {\n rootProps.onOpenWillChange = handleOpenWillChange;\n }\n const content = /* @__PURE__ */ jsx(z.menu.Root, { ...rootProps, children: transformChildren(z.menu, z.componentMap, children, false, {\n claim: claimTriggerBoundary,\n release: releaseTriggerBoundary\n }) });\n if (isAndroid) {\n return /* @__PURE__ */ jsx(NativeMenuContext.Provider, { value: true, children: content });\n }\n return content;\n };\n Menu.displayName = MenuType;\n return {\n Menu: withStaticProperties(Menu, {\n Trigger,\n Content,\n Item,\n ItemTitle,\n ItemSubtitle,\n ItemIcon,\n ItemImage,\n ItemIndicator,\n Group,\n Label,\n Separator,\n Sub,\n SubTrigger,\n SubContent,\n CheckboxItem,\n Portal,\n RadioGroup,\n RadioItem,\n Arrow,\n Preview,\n Auxiliary\n })\n };\n};\nexport {\n createNativeMenu\n};\n//# sourceMappingURL=createNativeMenu.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createNativeMenu.js","names":[],"sources":["esm/createNativeMenu/createNativeMenu.js"],"sourcesContent":["import {\n getNativeMenuAdapter,\n NativeMenuContext,\n unstable_claimExternalPressOwnership,\n unstable_releaseExternalPressOwnership\n} from \"@tamagui/native\";\nimport { isWeb, withStaticProperties, isIos } from \"@tamagui/web\";\nimport React from \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nconst MAPPED_TYPES = [\n \"SubContent\",\n \"SubTrigger\",\n \"Content\",\n \"Sub\",\n \"Group\",\n \"Item\",\n \"ItemTitle\",\n \"ItemSubtitle\",\n \"ItemIcon\",\n \"ItemImage\",\n \"ItemIndicator\",\n \"Label\",\n \"Separator\",\n \"CheckboxItem\",\n \"Preview\",\n \"Auxiliary\"\n];\nconst CONTAINER_TYPES = [\n \"SubContent\",\n \"SubTrigger\",\n \"Content\",\n \"Sub\",\n \"Group\",\n \"Item\"\n];\nfunction getComponentType(displayName) {\n for (const type of MAPPED_TYPES) {\n if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) {\n return type;\n }\n }\n return null;\n}\nfunction isItemLike(props, displayName) {\n if (getComponentType(displayName)) return false;\n return \"onSelect\" in props || \"textValue\" in props;\n}\nfunction isPortalLike(displayName) {\n return displayName === \"Portal\" || displayName.includes(\"Portal\");\n}\nfunction isTriggerLike(displayName) {\n return displayName === \"Trigger\" || displayName.includes(\"(Trigger)\");\n}\nfunction composeHandlers(first, second) {\n return (...args) => {\n first?.(...args);\n second?.(...args);\n };\n}\nfunction getTriggerDebugName(menuType, props) {\n const childProps = React.isValidElement(props.children) && props.children.props ? props.children.props : null;\n const prefix = menuType === \"ContextMenu\" ? \"ContextMenuTrigger\" : \"MenuTrigger\";\n const detail = childProps?.testID ?? childProps?.accessibilityLabel ?? (typeof props.textValue === \"string\" ? props.textValue : null);\n return [prefix, detail].filter(Boolean).join(\":\") || prefix;\n}\nconst emptyStub = (() => null);\nfunction createWebStubs() {\n return {\n Menu: withStaticProperties(emptyStub, {\n Trigger: emptyStub,\n Content: emptyStub,\n Item: emptyStub,\n ItemTitle: emptyStub,\n ItemSubtitle: emptyStub,\n SubTrigger: emptyStub,\n Group: emptyStub,\n ItemIcon: emptyStub,\n Separator: emptyStub,\n CheckboxItem: emptyStub,\n ItemIndicator: emptyStub,\n ItemImage: emptyStub,\n Label: emptyStub,\n Arrow: emptyStub,\n Sub: emptyStub,\n SubContent: emptyStub,\n Preview: emptyStub,\n Portal: emptyStub,\n RadioGroup: emptyStub,\n RadioItem: emptyStub,\n Auxiliary: emptyStub\n })\n };\n}\nconst createNativeMenu = (MenuType) => {\n if (isWeb) {\n return createWebStubs();\n }\n const isContextMenu = MenuType === \"ContextMenu\";\n const isAndroid = !isIos && !isWeb;\n let resolved = null;\n let warned = false;\n function resolve() {\n if (resolved) return resolved;\n const adapter = getNativeMenuAdapter();\n if (!adapter) {\n if (!warned) {\n warned = true;\n console.warn(\n `Warning: Register a native menu adapter before rendering Tamagui native menus`\n );\n }\n return null;\n }\n const menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;\n resolved = {\n menu,\n componentMap: {\n SubContent: menu.SubContent,\n SubTrigger: menu.SubTrigger,\n Content: menu.Content,\n Sub: menu.Sub,\n Group: menu.Group,\n Item: menu.Item,\n ItemTitle: menu.ItemTitle,\n ItemSubtitle: menu.ItemSubtitle,\n ItemIcon: menu.ItemIcon,\n ItemImage: menu.ItemImage,\n ItemIndicator: menu.ItemIndicator,\n Label: menu.Label,\n Separator: menu.Separator,\n CheckboxItem: menu.CheckboxItem,\n Preview: menu.Preview,\n Auxiliary: menu.Auxiliary\n }\n };\n return resolved;\n }\n function transformChildren(menu, map, children, shouldReverseOnIos = false, triggerBoundaryHandlers, radioContext) {\n const result = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) {\n result.push(child);\n return;\n }\n const displayName = child.type?.displayName || \"\";\n const props = child.props;\n if (isPortalLike(displayName)) {\n const inner = transformChildren(\n menu,\n map,\n props.children,\n false,\n triggerBoundaryHandlers,\n radioContext\n );\n React.Children.forEach(inner, (c) => result.push(c));\n return;\n }\n if (displayName.includes(\"ScrollView\")) {\n const inner = transformChildren(\n menu,\n map,\n props.children,\n false,\n triggerBoundaryHandlers,\n radioContext\n );\n React.Children.forEach(inner, (c) => result.push(c));\n return;\n }\n if (isTriggerLike(displayName)) {\n const debugName = getTriggerDebugName(MenuType, props);\n const claim = () => triggerBoundaryHandlers?.claim(debugName);\n const release = () => triggerBoundaryHandlers?.release(debugName);\n const { children: triggerChildren, ...triggerProps } = props;\n result.push(\n React.createElement(\n menu.Trigger,\n {\n ...triggerProps,\n key: child.key,\n onTouchStart: composeHandlers(claim, props.onTouchStart),\n onTouchEnd: composeHandlers(props.onTouchEnd, release),\n onTouchCancel: composeHandlers(props.onTouchCancel, release),\n onResponderGrant: composeHandlers(claim, props.onResponderGrant),\n onResponderRelease: composeHandlers(props.onResponderRelease, release),\n onResponderTerminate: composeHandlers(props.onResponderTerminate, release),\n onPressIn: composeHandlers(claim, props.onPressIn),\n onPressOut: composeHandlers(props.onPressOut, release)\n },\n triggerChildren\n )\n );\n return;\n }\n if (displayName.includes(\"RadioGroup\")) {\n const {\n value: rgValue,\n onValueChange: rgOnValueChange,\n children: rgChildren,\n ...rest\n } = props;\n result.push(\n React.createElement(\n menu.Group,\n { ...rest, key: child.key },\n transformChildren(\n menu,\n map,\n rgChildren,\n false,\n triggerBoundaryHandlers,\n { value: rgValue, onValueChange: rgOnValueChange }\n )\n )\n );\n return;\n }\n if (displayName.includes(\"RadioItem\") && radioContext) {\n const {\n value: itemValue,\n children: rChildren,\n ...rest\n } = props;\n const cleanChildren = React.Children.map(rChildren, (c) => {\n if (!React.isValidElement(c)) return c;\n const dn = c.type?.displayName || \"\";\n if (dn.includes(\"ItemIndicator\")) return null;\n return c;\n });\n result.push(\n React.createElement(\n menu.CheckboxItem,\n {\n ...rest,\n key: child.key,\n value: itemValue === radioContext.value ? \"on\" : \"off\",\n onValueChange: () => radioContext.onValueChange?.(itemValue)\n },\n transformChildren(\n menu,\n map,\n cleanChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n const componentType = getComponentType(displayName);\n if (componentType === \"CheckboxItem\") {\n const {\n checked,\n onCheckedChange,\n value,\n onValueChange,\n children: cbChildren,\n ...rest\n } = props;\n const finalValue = value ?? (checked ? \"on\" : \"off\");\n const finalOnValueChange = onValueChange ?? (onCheckedChange && ((v) => onCheckedChange(v === \"on\")));\n const cleanChildren = React.Children.map(cbChildren, (c) => {\n if (!React.isValidElement(c)) return c;\n const dn = c.type?.displayName || \"\";\n if (dn.includes(\"ItemIndicator\")) return null;\n return c;\n });\n result.push(\n React.createElement(\n menu.CheckboxItem,\n {\n ...rest,\n key: child.key,\n value: finalValue,\n onValueChange: finalOnValueChange\n },\n transformChildren(\n menu,\n map,\n cleanChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n if (componentType) {\n const { children: childChildren, ...restProps } = props;\n const AdapterComponent = map[componentType];\n const isContainer = CONTAINER_TYPES.includes(componentType);\n const shouldReverse = componentType === \"Content\" || componentType === \"SubContent\";\n result.push(\n React.createElement(\n AdapterComponent,\n { ...restProps, key: child.key },\n isContainer ? transformChildren(\n menu,\n map,\n childChildren,\n shouldReverse,\n triggerBoundaryHandlers,\n radioContext\n ) : childChildren\n )\n );\n return;\n }\n if (isItemLike(props, displayName)) {\n const { children: itemChildren, ...itemProps } = props;\n result.push(\n React.createElement(\n menu.Item,\n { ...itemProps, key: child.key },\n transformChildren(\n menu,\n map,\n itemChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n result.push(child);\n });\n if (isIos && shouldReverseOnIos && !isContextMenu) {\n result.reverse();\n }\n return result;\n }\n function lazyAdapter(name, displayName) {\n const Comp = (props) => {\n const z = resolve();\n if (!z) return null;\n return React.createElement(z.menu[name], props);\n };\n Comp.displayName = displayName || name;\n return Comp;\n }\n const Trigger = lazyAdapter(\"Trigger\");\n const Content = lazyAdapter(\"Content\");\n const Item = lazyAdapter(\"Item\");\n const ItemTitle = lazyAdapter(\"ItemTitle\");\n const ItemSubtitle = lazyAdapter(\"ItemSubtitle\");\n const ItemIcon = lazyAdapter(\"ItemIcon\");\n const ItemImage = lazyAdapter(\"ItemImage\");\n const ItemIndicator = lazyAdapter(\"ItemIndicator\");\n const Group = lazyAdapter(\"Group\");\n const Label = lazyAdapter(\"Label\");\n const Separator = lazyAdapter(\"Separator\");\n const Sub = lazyAdapter(\"Sub\");\n const SubTrigger = lazyAdapter(\"SubTrigger\");\n const SubContent = lazyAdapter(\"SubContent\");\n const Portal = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n Portal.displayName = \"Portal\";\n const Arrow = () => null;\n Arrow.displayName = \"Arrow\";\n const RadioGroup = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n RadioGroup.displayName = `${MenuType}RadioGroup`;\n const RadioItem = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n RadioItem.displayName = `${MenuType}RadioItem`;\n const CheckboxItem = () => null;\n CheckboxItem.displayName = \"CheckboxItem\";\n const Preview = isContextMenu ? lazyAdapter(\"Preview\", `${MenuType}Preview`) : () => null;\n Preview.displayName = `${MenuType}Preview`;\n const Auxiliary = isContextMenu ? lazyAdapter(\"Auxiliary\", `${MenuType}Auxiliary`) : () => null;\n Auxiliary.displayName = `${MenuType}Auxiliary`;\n const Menu = ({ children, onOpenChange, onOpenWillChange }) => {\n const triggerOwnerRef = React.useRef(null);\n const claimTriggerBoundary = React.useCallback((debugName) => {\n if (triggerOwnerRef.current) {\n unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);\n }\n triggerOwnerRef.current = unstable_claimExternalPressOwnership(debugName);\n }, []);\n const releaseTriggerBoundary = React.useCallback((debugName) => {\n if (!triggerOwnerRef.current) return;\n unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);\n triggerOwnerRef.current = null;\n }, []);\n React.useEffect(() => releaseTriggerBoundary, [releaseTriggerBoundary]);\n const z = resolve();\n if (!z) return null;\n const handleOpenChange = React.useCallback(\n (isOpen) => {\n if (!isOpen) {\n releaseTriggerBoundary();\n }\n onOpenChange?.(isOpen);\n },\n [onOpenChange, releaseTriggerBoundary]\n );\n const handleOpenWillChange = React.useCallback(\n (willOpen) => {\n if (!willOpen) {\n releaseTriggerBoundary();\n }\n onOpenWillChange?.(willOpen);\n },\n [onOpenWillChange, releaseTriggerBoundary]\n );\n const rootProps = { onOpenChange: handleOpenChange };\n if (isContextMenu && onOpenWillChange) {\n rootProps.onOpenWillChange = handleOpenWillChange;\n }\n const content = /* @__PURE__ */ jsx(z.menu.Root, { ...rootProps, children: transformChildren(z.menu, z.componentMap, children, false, {\n claim: claimTriggerBoundary,\n release: releaseTriggerBoundary\n }) });\n if (isAndroid) {\n return /* @__PURE__ */ jsx(NativeMenuContext.Provider, { value: true, children: content });\n }\n return content;\n };\n Menu.displayName = MenuType;\n return {\n Menu: withStaticProperties(Menu, {\n Trigger,\n Content,\n Item,\n ItemTitle,\n ItemSubtitle,\n ItemIcon,\n ItemImage,\n ItemIndicator,\n Group,\n Label,\n Separator,\n Sub,\n SubTrigger,\n SubContent,\n CheckboxItem,\n Portal,\n RadioGroup,\n RadioItem,\n Arrow,\n Preview,\n Auxiliary\n })\n };\n};\nexport {\n createNativeMenu\n};\n//# sourceMappingURL=createNativeMenu.js.map\n"],"mappings":"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"}
|