{"version":3,"sources":["jsdelivr-header.js","/npm/@zag-js/dom-event@0.80.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@zag-js/dom-event@0.80.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@zag-js/dom-event@0.80.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar domQuery = require('@zag-js/dom-query');\nvar textSelection = require('@zag-js/text-selection');\n\n// src/add-dom-event.ts\nvar addDomEvent = (target, eventName, handler, options) => {\n  const node = typeof target === \"function\" ? target() : target;\n  node?.addEventListener(eventName, handler, options);\n  return () => {\n    node?.removeEventListener(eventName, handler, options);\n  };\n};\nfunction isKeyboardClick(e) {\n  return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\n}\nfunction isPrintableKey(e) {\n  return e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n}\nfunction isVirtualPointerEvent(e) {\n  return e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === \"mouse\";\n}\nfunction isVirtualClick(e) {\n  if (e.mozInputSource === 0 && e.isTrusted) return true;\n  return e.detail === 0 && !e.pointerType;\n}\nvar isLeftClick = (e) => e.button === 0;\nvar isContextMenuEvent = (e) => {\n  return e.button === 2 || domQuery.isMac() && e.ctrlKey && e.button === 0;\n};\nvar isModifierKey = (e) => e.ctrlKey || e.altKey || e.metaKey;\n\n// src/queue-before-event.ts\nfunction queueBeforeEvent(element, type, cb) {\n  const createTimer = (callback) => {\n    const timerId = requestAnimationFrame(callback);\n    return () => cancelAnimationFrame(timerId);\n  };\n  const cancelTimer = createTimer(() => {\n    element.removeEventListener(type, callSync, true);\n    cb();\n  });\n  const callSync = () => {\n    cancelTimer();\n    cb();\n  };\n  element.addEventListener(type, callSync, { once: true, capture: true });\n  return cancelTimer;\n}\n\n// src/click-link.ts\nfunction isLinkElement(element) {\n  return element?.matches(\"a[href]\") ?? false;\n}\nfunction clickIfLink(element) {\n  if (!isLinkElement(element)) return;\n  const click = () => element.click();\n  if (domQuery.isFirefox()) {\n    queueBeforeEvent(element, \"keyup\", click);\n  } else {\n    queueMicrotask(click);\n  }\n}\n\n// src/fire-event.ts\nfunction fireCustomEvent(el, type, init) {\n  if (!el) return;\n  const win = el.ownerDocument.defaultView || window;\n  const event = new win.CustomEvent(type, init);\n  return el.dispatchEvent(event);\n}\nfunction fireBlurEvent(el, init) {\n  const win = el.ownerDocument.defaultView || window;\n  const event = new win.FocusEvent(\"blur\", init);\n  const allowed = el.dispatchEvent(event);\n  const bubbleInit = { ...init, bubbles: true };\n  el.dispatchEvent(new win.FocusEvent(\"focusout\", bubbleInit));\n  return allowed;\n}\n\n// src/get-event-key.ts\nvar keyMap = {\n  Up: \"ArrowUp\",\n  Down: \"ArrowDown\",\n  Esc: \"Escape\",\n  \" \": \"Space\",\n  \",\": \"Comma\",\n  Left: \"ArrowLeft\",\n  Right: \"ArrowRight\"\n};\nvar rtlKeyMap = {\n  ArrowLeft: \"ArrowRight\",\n  ArrowRight: \"ArrowLeft\"\n};\nfunction getEventKey(event, options = {}) {\n  const { dir = \"ltr\", orientation = \"horizontal\" } = options;\n  let { key } = event;\n  key = keyMap[key] ?? key;\n  const isRtl = dir === \"rtl\" && orientation === \"horizontal\";\n  if (isRtl && key in rtlKeyMap) {\n    key = rtlKeyMap[key];\n  }\n  return key;\n}\n\n// src/get-event-point.ts\nfunction pointFromTouch(e, type = \"client\") {\n  const point = e.touches[0] || e.changedTouches[0];\n  return { x: point[`${type}X`], y: point[`${type}Y`] };\n}\nfunction pointFromMouse(point, type = \"client\") {\n  return { x: point[`${type}X`], y: point[`${type}Y`] };\n}\nvar isTouchEvent = (event) => \"touches\" in event && event.touches.length > 0;\nfunction getEventPoint(event, type = \"client\") {\n  return isTouchEvent(event) ? pointFromTouch(event, type) : pointFromMouse(event, type);\n}\n\n// src/get-event-step.ts\nvar PAGE_KEYS = /* @__PURE__ */ new Set([\"PageUp\", \"PageDown\"]);\nvar ARROW_KEYS = /* @__PURE__ */ new Set([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"]);\nfunction getEventStep(event) {\n  if (event.ctrlKey || event.metaKey) {\n    return 0.1;\n  } else {\n    const isPageKey = PAGE_KEYS.has(event.key);\n    const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.has(event.key);\n    return isSkipKey ? 10 : 1;\n  }\n}\n\n// src/get-native-event.ts\nfunction getNativeEvent(event) {\n  return event.nativeEvent ?? event;\n}\n\n// src/get-point-value.ts\nfunction clamp(value) {\n  return Math.max(0, Math.min(1, value));\n}\nfunction getRelativePoint(point, element) {\n  const { left, top, width, height } = element.getBoundingClientRect();\n  const offset = { x: point.x - left, y: point.y - top };\n  const percent = { x: clamp(offset.x / width), y: clamp(offset.y / height) };\n  function getPercentValue(options = {}) {\n    const { dir = \"ltr\", orientation = \"horizontal\", inverted } = options;\n    const invertX = typeof inverted === \"object\" ? inverted.x : inverted;\n    const invertY = typeof inverted === \"object\" ? inverted.y : inverted;\n    if (orientation === \"horizontal\") {\n      return dir === \"rtl\" || invertX ? 1 - percent.x : percent.x;\n    }\n    return invertY ? 1 - percent.y : percent.y;\n  }\n  return { offset, percent, getPercentValue };\n}\n\n// src/request-pointer-lock.ts\nfunction requestPointerLock(doc, fn) {\n  const body = doc.body;\n  const supported = \"pointerLockElement\" in doc || \"mozPointerLockElement\" in doc;\n  const isLocked = () => !!doc.pointerLockElement;\n  function onPointerChange() {\n    fn?.(isLocked());\n  }\n  function onPointerError(event) {\n    if (isLocked()) fn?.(false);\n    console.error(\"PointerLock error occurred:\", event);\n    doc.exitPointerLock();\n  }\n  if (!supported) return;\n  try {\n    body.requestPointerLock();\n  } catch {\n  }\n  const cleanup = [\n    addDomEvent(doc, \"pointerlockchange\", onPointerChange, false),\n    addDomEvent(doc, \"pointerlockerror\", onPointerError, false)\n  ];\n  return () => {\n    cleanup.forEach((cleanup2) => cleanup2());\n    doc.exitPointerLock();\n  };\n}\nfunction trackPointerMove(doc, handlers) {\n  const { onPointerMove, onPointerUp } = handlers;\n  const handleMove = (event) => {\n    const point = getEventPoint(event);\n    const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n    const moveBuffer = event.pointerType === \"touch\" ? 10 : 5;\n    if (distance < moveBuffer) return;\n    if (event.pointerType === \"mouse\" && event.button === 0) {\n      onPointerUp();\n      return;\n    }\n    onPointerMove({ point, event });\n  };\n  const cleanups = [\n    addDomEvent(doc, \"pointermove\", handleMove, false),\n    addDomEvent(doc, \"pointerup\", onPointerUp, false),\n    addDomEvent(doc, \"pointercancel\", onPointerUp, false),\n    addDomEvent(doc, \"contextmenu\", onPointerUp, false),\n    textSelection.disableTextSelection({ doc })\n  ];\n  return () => {\n    cleanups.forEach((cleanup) => cleanup());\n  };\n}\n\n// src/pipe.ts\nvar pipe = (...fns) => (arg) => fns.reduce((acc, fn) => fn(acc), arg);\nvar noop = () => void 0;\n\n// src/track-press.ts\nfunction trackPress(options) {\n  const {\n    pointerNode,\n    keyboardNode = pointerNode,\n    onPress,\n    onPressStart,\n    onPressEnd,\n    isValidKey = (e) => e.key === \"Enter\"\n  } = options;\n  if (!pointerNode) return noop;\n  const win = domQuery.getWindow(pointerNode);\n  const doc = domQuery.getDocument(pointerNode);\n  let removeStartListeners = noop;\n  let removeEndListeners = noop;\n  let removeAccessibleListeners = noop;\n  const getInfo = (event) => ({\n    point: getEventPoint(event),\n    event\n  });\n  function startPress(event) {\n    onPressStart?.(getInfo(event));\n  }\n  function cancelPress(event) {\n    onPressEnd?.(getInfo(event));\n  }\n  const startPointerPress = (startEvent) => {\n    removeEndListeners();\n    const endPointerPress = (endEvent) => {\n      const target = domQuery.getEventTarget(endEvent);\n      if (domQuery.contains(pointerNode, target)) {\n        onPress?.(getInfo(endEvent));\n      } else {\n        onPressEnd?.(getInfo(endEvent));\n      }\n    };\n    const removePointerUpListener = addDomEvent(win, \"pointerup\", endPointerPress, { passive: !onPress });\n    const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, { passive: !onPressEnd });\n    removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n    if (doc.activeElement === keyboardNode && startEvent.pointerType === \"mouse\") {\n      startEvent.preventDefault();\n    }\n    startPress(startEvent);\n  };\n  const removePointerListener = addDomEvent(pointerNode, \"pointerdown\", startPointerPress, { passive: !onPressStart });\n  const removeFocusListener = addDomEvent(keyboardNode, \"focus\", startAccessiblePress);\n  removeStartListeners = pipe(removePointerListener, removeFocusListener);\n  function startAccessiblePress() {\n    const handleKeydown = (keydownEvent) => {\n      if (!isValidKey(keydownEvent)) return;\n      const handleKeyup = (keyupEvent) => {\n        if (!isValidKey(keyupEvent)) return;\n        const evt2 = new win.PointerEvent(\"pointerup\");\n        const info = getInfo(evt2);\n        onPress?.(info);\n        onPressEnd?.(info);\n      };\n      removeEndListeners();\n      removeEndListeners = addDomEvent(keyboardNode, \"keyup\", handleKeyup);\n      const evt = new win.PointerEvent(\"pointerdown\");\n      startPress(evt);\n    };\n    const handleBlur = () => {\n      const evt = new win.PointerEvent(\"pointercancel\");\n      cancelPress(evt);\n    };\n    const removeKeydownListener = addDomEvent(keyboardNode, \"keydown\", handleKeydown);\n    const removeBlurListener = addDomEvent(keyboardNode, \"blur\", handleBlur);\n    removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n  }\n  return function() {\n    removeStartListeners();\n    removeEndListeners();\n    removeAccessibleListeners();\n  };\n}\n\n// src/track-visual-viewport.ts\nfunction trackVisualViewport(doc, fn) {\n  const win = doc?.defaultView || window;\n  const onResize = () => {\n    fn?.(getViewportSize(win));\n  };\n  onResize();\n  return addDomEvent(win.visualViewport ?? win, \"resize\", onResize);\n}\nfunction getViewportSize(win) {\n  return {\n    width: win.visualViewport?.width || win.innerWidth,\n    height: win.visualViewport?.height || win.innerHeight\n  };\n}\n\nexports.addDomEvent = addDomEvent;\nexports.clickIfLink = clickIfLink;\nexports.fireBlurEvent = fireBlurEvent;\nexports.fireCustomEvent = fireCustomEvent;\nexports.getEventKey = getEventKey;\nexports.getEventPoint = getEventPoint;\nexports.getEventStep = getEventStep;\nexports.getNativeEvent = getNativeEvent;\nexports.getRelativePoint = getRelativePoint;\nexports.isContextMenuEvent = isContextMenuEvent;\nexports.isKeyboardClick = isKeyboardClick;\nexports.isLeftClick = isLeftClick;\nexports.isModifierKey = isModifierKey;\nexports.isPrintableKey = isPrintableKey;\nexports.isVirtualClick = isVirtualClick;\nexports.isVirtualPointerEvent = isVirtualPointerEvent;\nexports.queueBeforeEvent = queueBeforeEvent;\nexports.requestPointerLock = requestPointerLock;\nexports.trackPointerMove = trackPointerMove;\nexports.trackPress = trackPress;\nexports.trackVisualViewport = trackVisualViewport;\n"]}