{"version":3,"names":["dynamic","omit","onCleanup","createChangeEventDetails","REASONS","contains","getTarget","ownerDocument","mergeRootProps","resolveClassStyle","useTimeout","useMenuRootContext","findRootOwnerId","useContextMenuRootContext","LONG_PRESS_DELAY","LONG_PRESS_MOVE_THRESHOLD","ContextMenuTrigger","props","ctxMenu","menu","triggerElement","touchPosition","allowMouseUp","longPressTimeout","allowMouseUpTimeout","openAtPoint","x","y","event","isTouchEvent","type","startsWith","initialCursorPointRef","current","anchor","getBoundingClientRect","width","height","DOMRect","fromRect","top","right","bottom","left","toJSON","setAnchor","actionsRef","setOpen","triggerPress","start","handleContextMenu","disabled","allowMouseUpTriggerRef","preventDefault","stopPropagation","clientX","clientY","doc","onMouseUp","mouseEvent","activeMouseUpDoc","activeMouseUpHandler","clear","mouseUpTarget","positionerRef","rootId","cancelOpen","removeEventListener","addEventListener","once","handleTouchStart","touches","length","touch","handleTouchMove","isStarted","deltaX","Math","abs","deltaY","handleTouchEnd","setRef","el","internalProps","ref","onContextMenu","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","style","data-popup-open","open","undefined","data-pressed","userStyling","userProps","styledUserProps","merged","Tag","as"],"sources":["context-menu-trigger.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<ContextMenu.Trigger>` — an area that opens the menu on right-click\n * (desktop) or long-press (touch). Solid 2 port of Base UI React's\n * `packages/react/src/context-menu/trigger/ContextMenuTrigger.tsx`.\n *\n * Renders a `<div>` (not a button) — the interaction is delegated via\n * native `contextmenu` and `touchstart`/`touchmove`/`touchend`/`touchcancel`\n * events. On contextmenu (or after a 500ms long-press on touch), writes\n * a virtual anchor into the `<ContextMenu.Root>` context and calls\n * `setOpen(true, …)` via the actionsRef supplied by `<Menu.Root>`.\n *\n * ### Port deviations\n *\n *  - React wraps the mouseup late-dismissal listener via\n *    `addEventListener` from `@base-ui/utils`. The Solid port uses\n *    `document.addEventListener` + manual `removeEventListener`, which\n *    is semantically identical (both pass options). The `{ once: true }`\n *    option is preserved so the listener auto-removes after the first\n *    mouseup.\n *  - React calls `stopEvent(event)` from `floating-ui-react/utils` on\n *    contextmenu. In Solid we inline the two calls (`preventDefault` +\n *    `stopPropagation`) for parity.\n *  - `findRootOwnerId` traversal on mouseup —\n *    detects mouseup events that originated inside a nested menu owned\n *    by this context-menu root so the outer open isn't cancelled.\n */\n\nimport { dynamic } from \"@solidjs/web\";\nimport { omit, onCleanup } from \"solid-js\";\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { contains } from \"../../internals/dom/contains\";\nimport { getTarget } from \"../../internals/dom/get-target\";\nimport { ownerDocument } from \"../../internals/dom/owner-document\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useTimeout } from \"../../internals/use-timeout\";\nimport { useMenuRootContext } from \"../../menu/root/menu-root-context\";\nimport { findRootOwnerId } from \"../../menu/utils/find-root-owner-id\";\nimport type { ContextMenuAnchor } from \"../root/context-menu-root-context\";\nimport { useContextMenuRootContext } from \"../root/context-menu-root-context\";\n\nconst LONG_PRESS_DELAY = 500;\nconst LONG_PRESS_MOVE_THRESHOLD = 10;\n\nexport interface ContextMenuTriggerState {\n\t/** Whether the context menu is currently open. */\n\topen: boolean;\n}\n\nexport interface ContextMenuTriggerProps\n\textends BaseUIComponentProps<\"div\", ContextMenuTriggerState> {\n\t/** Tag/component to render. Defaults to `\"div\"`. */\n\tas?: ValidComponent;\n}\n\nexport function ContextMenuTrigger(\n\tprops: ContextMenuTriggerProps,\n): JSX.Element {\n\tconst ctxMenu = useContextMenuRootContext();\n\tconst menu = useMenuRootContext();\n\n\tlet triggerElement: HTMLDivElement | null = null;\n\tlet touchPosition: { x: number; y: number } | null = null;\n\tlet allowMouseUp = false;\n\tconst longPressTimeout = useTimeout();\n\tconst allowMouseUpTimeout = useTimeout();\n\n\tfunction openAtPoint(\n\t\tx: number,\n\t\ty: number,\n\t\tevent: MouseEvent | TouchEvent,\n\t): void {\n\t\tconst isTouchEvent = event.type.startsWith(\"touch\");\n\n\t\tctxMenu.initialCursorPointRef.current = { x, y };\n\n\t\tconst anchor: ContextMenuAnchor = {\n\t\t\tgetBoundingClientRect(): DOMRect {\n\t\t\t\tconst width = isTouchEvent ? 10 : 0;\n\t\t\t\tconst height = isTouchEvent ? 10 : 0;\n\t\t\t\tif (typeof DOMRect !== \"undefined\") {\n\t\t\t\t\treturn DOMRect.fromRect({ width, height, x, y });\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t\tx,\n\t\t\t\t\ty,\n\t\t\t\t\ttop: y,\n\t\t\t\t\tright: x + width,\n\t\t\t\t\tbottom: y + height,\n\t\t\t\t\tleft: x,\n\t\t\t\t\ttoJSON: () => ({}),\n\t\t\t\t} as DOMRect;\n\t\t\t},\n\t\t};\n\t\tctxMenu.setAnchor(anchor);\n\n\t\tallowMouseUp = false;\n\t\tctxMenu.actionsRef.current?.setOpen(\n\t\t\ttrue,\n\t\t\tcreateChangeEventDetails(REASONS.triggerPress, event) as Parameters<\n\t\t\t\tNonNullable<typeof ctxMenu.actionsRef.current>[\"setOpen\"]\n\t\t\t>[1],\n\t\t);\n\n\t\tallowMouseUpTimeout.start(LONG_PRESS_DELAY, () => {\n\t\t\tallowMouseUp = true;\n\t\t});\n\t}\n\n\tfunction handleContextMenu(event: MouseEvent): void {\n\t\tif (menu.disabled()) {\n\t\t\treturn;\n\t\t}\n\t\tctxMenu.allowMouseUpTriggerRef.current = true;\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\topenAtPoint(event.clientX, event.clientY, event);\n\n\t\tconst doc = ownerDocument(triggerElement);\n\t\tconst onMouseUp = (mouseEvent: MouseEvent): void => {\n\t\t\t// The `{ once: true }` listener auto-removes after firing; clear the\n\t\t\t// tracking refs so the component-level cleanup doesn't double-remove.\n\t\t\tactiveMouseUpDoc = null;\n\t\t\tactiveMouseUpHandler = null;\n\t\t\tctxMenu.allowMouseUpTriggerRef.current = false;\n\n\t\t\tif (!allowMouseUp) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tallowMouseUpTimeout.clear();\n\t\t\tallowMouseUp = false;\n\n\t\t\tconst mouseUpTarget = getTarget(mouseEvent) as Element | null;\n\n\t\t\tif (contains(ctxMenu.positionerRef.current, mouseUpTarget)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Nested-menu mouseup detection. If the mouseup\n\t\t\t// landed inside a nested menu popup whose `data-rootownerid`\n\t\t\t// chain traces back to this context-menu root, treat it as\n\t\t\t// \"inside\" — don't cancel the open.\n\t\t\tif (\n\t\t\t\tctxMenu.rootId &&\n\t\t\t\tmouseUpTarget &&\n\t\t\t\tfindRootOwnerId(mouseUpTarget) === ctxMenu.rootId\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tctxMenu.actionsRef.current?.setOpen(\n\t\t\t\tfalse,\n\t\t\t\tcreateChangeEventDetails(REASONS.cancelOpen, mouseEvent) as Parameters<\n\t\t\t\t\tNonNullable<typeof ctxMenu.actionsRef.current>[\"setOpen\"]\n\t\t\t\t>[1],\n\t\t\t);\n\t\t};\n\t\t// Remove any prior pending listener before registering a new one (e.g.\n\t\t// a second right-click before the first mouseup fired).\n\t\tif (activeMouseUpDoc && activeMouseUpHandler) {\n\t\t\tactiveMouseUpDoc.removeEventListener(\"mouseup\", activeMouseUpHandler);\n\t\t}\n\t\tactiveMouseUpDoc = doc;\n\t\tactiveMouseUpHandler = onMouseUp;\n\t\tdoc.addEventListener(\"mouseup\", onMouseUp, { once: true });\n\t}\n\n\tfunction handleTouchStart(event: TouchEvent): void {\n\t\tif (menu.disabled()) {\n\t\t\treturn;\n\t\t}\n\t\tctxMenu.allowMouseUpTriggerRef.current = false;\n\t\tif (event.touches.length === 1) {\n\t\t\tevent.stopPropagation();\n\t\t\tconst touch = event.touches[0];\n\t\t\tif (!touch) return;\n\t\t\ttouchPosition = { x: touch.clientX, y: touch.clientY };\n\t\t\tlongPressTimeout.start(LONG_PRESS_DELAY, () => {\n\t\t\t\tif (touchPosition) {\n\t\t\t\t\topenAtPoint(touchPosition.x, touchPosition.y, event);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction handleTouchMove(event: TouchEvent): void {\n\t\tif (\n\t\t\tlongPressTimeout.isStarted() &&\n\t\t\ttouchPosition &&\n\t\t\tevent.touches.length === 1\n\t\t) {\n\t\t\tconst touch = event.touches[0];\n\t\t\tif (!touch) return;\n\t\t\tconst deltaX = Math.abs(touch.clientX - touchPosition.x);\n\t\t\tconst deltaY = Math.abs(touch.clientY - touchPosition.y);\n\n\t\t\tif (\n\t\t\t\tdeltaX > LONG_PRESS_MOVE_THRESHOLD ||\n\t\t\t\tdeltaY > LONG_PRESS_MOVE_THRESHOLD\n\t\t\t) {\n\t\t\t\tlongPressTimeout.clear();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction handleTouchEnd(): void {\n\t\tlongPressTimeout.clear();\n\t\ttouchPosition = null;\n\t}\n\n\t// Pending mouseup late-dismissal listener (registered in `handleContextMenu`).\n\t// Tracked at component scope so an unmount between right-click and mouseup\n\t// removes it — otherwise the `{ once: true }` listener leaks, pinning the\n\t// handler's closures.\n\tlet activeMouseUpDoc: Document | null = null;\n\tlet activeMouseUpHandler: ((event: MouseEvent) => void) | null = null;\n\tonCleanup(() => {\n\t\tif (activeMouseUpDoc && activeMouseUpHandler) {\n\t\t\tactiveMouseUpDoc.removeEventListener(\"mouseup\", activeMouseUpHandler);\n\t\t\tactiveMouseUpDoc = null;\n\t\t\tactiveMouseUpHandler = null;\n\t\t}\n\t});\n\n\tconst setRef = (el: HTMLDivElement | null): void => {\n\t\ttriggerElement = el;\n\t};\n\n\tconst internalProps = {\n\t\tref: setRef,\n\t\tonContextMenu: handleContextMenu,\n\t\tonTouchStart: handleTouchStart,\n\t\tonTouchMove: handleTouchMove,\n\t\tonTouchEnd: handleTouchEnd,\n\t\tonTouchCancel: handleTouchEnd,\n\t\tstyle: {\n\t\t\t\"-webkit-touch-callout\": \"none\",\n\t\t},\n\t\tget \"data-popup-open\"(): \"\" | undefined {\n\t\t\treturn menu.open() ? \"\" : undefined;\n\t\t},\n\t\tget \"data-pressed\"(): \"\" | undefined {\n\t\t\treturn menu.open() ? \"\" : undefined;\n\t\t},\n\t};\n\n\tconst userStyling = resolveClassStyle(props, () => ({ open: menu.open() }));\n\n\tconst userProps = omit(props, \"class\", \"style\", \"attrs\", \"as\") as Record<\n\t\tstring,\n\t\tunknown\n\t>;\n\tconst styledUserProps = mergeRootProps(userStyling, userProps);\n\n\tconst merged = mergeRootProps(internalProps, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn <Tag {...merged} />;\n}\n"],"mappings":"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","ignoreList":[]}