@tamagui/floating 3.0.0-beta.661.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.
Files changed (91) hide show
  1. package/dist/cjs/Floating.cjs +0 -1
  2. package/dist/cjs/Floating.native.cjs +0 -1
  3. package/dist/cjs/Floating.native.js +0 -1
  4. package/dist/cjs/Floating.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +0 -1
  6. package/dist/cjs/index.native.cjs +0 -1
  7. package/dist/cjs/index.native.js +0 -1
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/interactions/PopupTriggerMap.cjs +0 -1
  10. package/dist/cjs/interactions/PopupTriggerMap.native.cjs +0 -1
  11. package/dist/cjs/interactions/PopupTriggerMap.native.js +0 -1
  12. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
  13. package/dist/cjs/interactions/createFloatingEvents.cjs +0 -1
  14. package/dist/cjs/interactions/createFloatingEvents.native.cjs +0 -1
  15. package/dist/cjs/interactions/createFloatingEvents.native.js +0 -1
  16. package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
  17. package/dist/cjs/interactions/safePolygon.cjs +0 -1
  18. package/dist/cjs/interactions/safePolygon.native.cjs +0 -1
  19. package/dist/cjs/interactions/safePolygon.native.js +0 -1
  20. package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
  21. package/dist/cjs/interactions/types.cjs +0 -1
  22. package/dist/cjs/interactions/types.native.cjs +0 -1
  23. package/dist/cjs/interactions/types.native.js +0 -1
  24. package/dist/cjs/interactions/types.native.js.map +1 -1
  25. package/dist/cjs/interactions/useClick.cjs +0 -1
  26. package/dist/cjs/interactions/useClick.native.cjs +0 -1
  27. package/dist/cjs/interactions/useClick.native.js +0 -1
  28. package/dist/cjs/interactions/useClick.native.js.map +1 -1
  29. package/dist/cjs/interactions/useDelayGroup.cjs +0 -1
  30. package/dist/cjs/interactions/useDelayGroup.native.cjs +0 -1
  31. package/dist/cjs/interactions/useDelayGroup.native.js +0 -1
  32. package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
  33. package/dist/cjs/interactions/useFocus.cjs +0 -1
  34. package/dist/cjs/interactions/useFocus.native.cjs +0 -1
  35. package/dist/cjs/interactions/useFocus.native.js +0 -1
  36. package/dist/cjs/interactions/useFocus.native.js.map +1 -1
  37. package/dist/cjs/interactions/useHover.cjs +0 -1
  38. package/dist/cjs/interactions/useHover.native.cjs +0 -1
  39. package/dist/cjs/interactions/useHover.native.js +0 -1
  40. package/dist/cjs/interactions/useHover.native.js.map +1 -1
  41. package/dist/cjs/interactions/useInnerOffset.cjs +0 -1
  42. package/dist/cjs/interactions/useInnerOffset.native.cjs +0 -1
  43. package/dist/cjs/interactions/useInnerOffset.native.js +0 -1
  44. package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
  45. package/dist/cjs/interactions/useInteractions.cjs +0 -1
  46. package/dist/cjs/interactions/useInteractions.native.cjs +0 -1
  47. package/dist/cjs/interactions/useInteractions.native.js +0 -1
  48. package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
  49. package/dist/cjs/interactions/useListNavigation.cjs +0 -1
  50. package/dist/cjs/interactions/useListNavigation.native.cjs +0 -1
  51. package/dist/cjs/interactions/useListNavigation.native.js +0 -1
  52. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
  53. package/dist/cjs/interactions/useRole.cjs +0 -1
  54. package/dist/cjs/interactions/useRole.native.cjs +0 -1
  55. package/dist/cjs/interactions/useRole.native.js +0 -1
  56. package/dist/cjs/interactions/useRole.native.js.map +1 -1
  57. package/dist/cjs/interactions/useTypeahead.cjs +0 -1
  58. package/dist/cjs/interactions/useTypeahead.native.cjs +0 -1
  59. package/dist/cjs/interactions/useTypeahead.native.js +0 -1
  60. package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
  61. package/dist/cjs/interactions/utils.cjs +0 -1
  62. package/dist/cjs/interactions/utils.native.cjs +0 -1
  63. package/dist/cjs/interactions/utils.native.js +0 -1
  64. package/dist/cjs/interactions/utils.native.js.map +1 -1
  65. package/dist/cjs/middleware/inner.cjs +0 -1
  66. package/dist/cjs/middleware/inner.native.cjs +0 -1
  67. package/dist/cjs/middleware/inner.native.js +0 -1
  68. package/dist/cjs/middleware/inner.native.js.map +1 -1
  69. package/dist/cjs/useFloating.cjs +0 -1
  70. package/dist/cjs/useFloating.native.cjs +0 -1
  71. package/dist/cjs/useFloating.native.js +0 -1
  72. package/dist/cjs/useFloating.native.js.map +1 -1
  73. package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
  74. package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
  75. package/dist/esm/interactions/safePolygon.mjs.map +1 -1
  76. package/dist/esm/interactions/safePolygon.native.js.map +1 -1
  77. package/dist/esm/interactions/useFocus.mjs.map +1 -1
  78. package/dist/esm/interactions/useFocus.native.js.map +1 -1
  79. package/dist/esm/interactions/useHover.mjs.map +1 -1
  80. package/dist/esm/interactions/useHover.native.js.map +1 -1
  81. package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
  82. package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
  83. package/dist/esm/interactions/useInteractions.native.js.map +1 -1
  84. package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
  85. package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
  86. package/dist/esm/interactions/utils.mjs.map +1 -1
  87. package/dist/esm/interactions/utils.native.js.map +1 -1
  88. package/dist/esm/middleware/inner.mjs.map +1 -1
  89. package/dist/esm/middleware/inner.native.js.map +1 -1
  90. package/dist/esm/useFloating.mjs.map +1 -1
  91. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"utils.native.js","names":[],"sources":["cjs/interactions/utils.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n activeElement: () => activeElement,\n clearTimeoutIfSet: () => clearTimeoutIfSet,\n contains: () => contains,\n enqueueFocus: () => enqueueFocus,\n findNonDisabledListIndex: () => findNonDisabledListIndex,\n getDocument: () => getDocument,\n getMaxListIndex: () => getMaxListIndex,\n getMinListIndex: () => getMinListIndex,\n getTarget: () => getTarget,\n isElement: () => isElement,\n isHTMLElement: () => isHTMLElement,\n isIndexOutOfListBounds: () => isIndexOutOfListBounds,\n isListIndexDisabled: () => isListIndexDisabled,\n isMac: () => isMac,\n isMouseLikePointerType: () => isMouseLikePointerType,\n isSafari: () => isSafari,\n isTypeableCombobox: () => isTypeableCombobox,\n isTypeableElement: () => isTypeableElement,\n isVirtualClick: () => isVirtualClick,\n isVirtualPointerEvent: () => isVirtualPointerEvent,\n matchesFocusVisible: () => matchesFocusVisible,\n stopEvent: () => stopEvent\n});\nmodule.exports = __toCommonJS(utils_exports);\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 getDocument(node) {\n return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;\n}\nfunction contains(parent, child) {\n var _child_getRootNode;\n if (!parent || !child) return false;\n var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction isShadowRoot(node) {\n return _instanceof(node, ShadowRoot);\n}\nfunction getTarget(event) {\n if (\"composedPath\" in event) {\n return event.composedPath()[0];\n }\n return event.target;\n}\nfunction activeElement(doc) {\n var _el_shadowRoot;\n var el = doc.activeElement;\n while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {\n el = el.shadowRoot.activeElement;\n }\n return el;\n}\nfunction isHTMLElement(value) {\n return _instanceof(value, HTMLElement);\n}\nfunction isElement(value) {\n return _instanceof(value, Element);\n}\nvar TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute(\"role\") === \"combobox\" && isTypeableElement(element);\n}\nfunction getPlatform() {\n var uaData = navigator.userAgentData;\n if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;\n return navigator.platform;\n}\nfunction getUserAgent() {\n var uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function(param) {\n var { brand, version } = param;\n return `${brand}/${version}`;\n }).join(\" \");\n }\n return navigator.userAgent;\n}\nfunction isSafari() {\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith(\"mac\") && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes(\"jsdom/\");\n}\nfunction matchesFocusVisible(element) {\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(\":focus-visible\");\n } catch (e) {\n return true;\n }\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n var values = [\n \"mouse\",\n \"pen\"\n ];\n if (!strict) {\n values.push(\"\", void 0);\n }\n return values.includes(pointerType);\n}\nfunction clearTimeoutIfSet(timeoutRef) {\n if (timeoutRef.current !== -1) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = -1;\n }\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n if (isAndroid() && event.pointerType) {\n return event.type === \"click\" && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"mouse\" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"touch\";\n}\nfunction isAndroid() {\n var re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nvar rafId = 0;\nfunction enqueueFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { preventScroll = false, cancelPrevious = true, sync = false } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n var exec = function() {\n return el === null || el === void 0 ? void 0 : el.focus({\n preventScroll\n });\n };\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === \"function\") return disabledIndices(index);\n if (disabledIndices) return disabledIndices.includes(index);\n var element = listRef.current[index];\n return element == null || element.hasAttribute(\"disabled\") || element.getAttribute(\"aria-disabled\") === \"true\";\n}\nfunction findNonDisabledListIndex(listRef) {\n var { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\n//# sourceMappingURL=utils.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.native.js","names":[],"sources":["cjs/interactions/utils.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n activeElement: () => activeElement,\n clearTimeoutIfSet: () => clearTimeoutIfSet,\n contains: () => contains,\n enqueueFocus: () => enqueueFocus,\n findNonDisabledListIndex: () => findNonDisabledListIndex,\n getDocument: () => getDocument,\n getMaxListIndex: () => getMaxListIndex,\n getMinListIndex: () => getMinListIndex,\n getTarget: () => getTarget,\n isElement: () => isElement,\n isHTMLElement: () => isHTMLElement,\n isIndexOutOfListBounds: () => isIndexOutOfListBounds,\n isListIndexDisabled: () => isListIndexDisabled,\n isMac: () => isMac,\n isMouseLikePointerType: () => isMouseLikePointerType,\n isSafari: () => isSafari,\n isTypeableCombobox: () => isTypeableCombobox,\n isTypeableElement: () => isTypeableElement,\n isVirtualClick: () => isVirtualClick,\n isVirtualPointerEvent: () => isVirtualPointerEvent,\n matchesFocusVisible: () => matchesFocusVisible,\n stopEvent: () => stopEvent\n});\nmodule.exports = __toCommonJS(utils_exports);\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 getDocument(node) {\n return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;\n}\nfunction contains(parent, child) {\n var _child_getRootNode;\n if (!parent || !child) return false;\n var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction isShadowRoot(node) {\n return _instanceof(node, ShadowRoot);\n}\nfunction getTarget(event) {\n if (\"composedPath\" in event) {\n return event.composedPath()[0];\n }\n return event.target;\n}\nfunction activeElement(doc) {\n var _el_shadowRoot;\n var el = doc.activeElement;\n while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {\n el = el.shadowRoot.activeElement;\n }\n return el;\n}\nfunction isHTMLElement(value) {\n return _instanceof(value, HTMLElement);\n}\nfunction isElement(value) {\n return _instanceof(value, Element);\n}\nvar TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute(\"role\") === \"combobox\" && isTypeableElement(element);\n}\nfunction getPlatform() {\n var uaData = navigator.userAgentData;\n if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;\n return navigator.platform;\n}\nfunction getUserAgent() {\n var uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function(param) {\n var { brand, version } = param;\n return `${brand}/${version}`;\n }).join(\" \");\n }\n return navigator.userAgent;\n}\nfunction isSafari() {\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith(\"mac\") && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes(\"jsdom/\");\n}\nfunction matchesFocusVisible(element) {\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(\":focus-visible\");\n } catch (e) {\n return true;\n }\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n var values = [\n \"mouse\",\n \"pen\"\n ];\n if (!strict) {\n values.push(\"\", void 0);\n }\n return values.includes(pointerType);\n}\nfunction clearTimeoutIfSet(timeoutRef) {\n if (timeoutRef.current !== -1) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = -1;\n }\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n if (isAndroid() && event.pointerType) {\n return event.type === \"click\" && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"mouse\" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"touch\";\n}\nfunction isAndroid() {\n var re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nvar rafId = 0;\nfunction enqueueFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { preventScroll = false, cancelPrevious = true, sync = false } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n var exec = function() {\n return el === null || el === void 0 ? void 0 : el.focus({\n preventScroll\n });\n };\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === \"function\") return disabledIndices(index);\n if (disabledIndices) return disabledIndices.includes(index);\n var element = listRef.current[index];\n return element == null || element.hasAttribute(\"disabled\") || element.getAttribute(\"aria-disabled\") === \"true\";\n}\nfunction findNonDisabledListIndex(listRef) {\n var { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\n//# sourceMappingURL=utils.js.map\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
-
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
-
4
3
  var __create = Object.create;
5
4
  var __defProp = Object.defineProperty;
6
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
-
4
3
  var __create = Object.create;
5
4
  var __defProp = Object.defineProperty;
6
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"inner.native.js","names":[],"sources":["cjs/middleware/inner.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar inner_exports = {};\n__export(inner_exports, {\n inner: () => inner\n});\nmodule.exports = __toCommonJS(inner_exports);\nvar ReactDOM = __toESM(require(\"react-dom\"), 1);\nvar import_react_dom = require(\"@floating-ui/react-dom\");\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\nvar inner = function(props) {\n return {\n name: \"inner\",\n options: props,\n async fn(state) {\n var _listRef_current;\n var { listRef, overflowRef, onFallbackChange, offset: innerOffset = 0, index = 0, minItemsVisible = 4, referenceOverflowThreshold = 0, scrollRef, padding = 0 } = props;\n var { rects, elements: { floating } } = state;\n var item = (_listRef_current = listRef.current) === null || _listRef_current === void 0 ? void 0 : _listRef_current[index !== null && index !== void 0 ? index : 0];\n var scrollEl = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || floating;\n var clientTop = floating.clientTop || scrollEl.clientTop;\n var floatingIsBordered = floating.clientTop !== 0;\n var scrollElIsBordered = scrollEl.clientTop !== 0;\n var floatingIsScrollEl = floating === scrollEl;\n if (!item || index == null) {\n onFallbackChange === null || onFallbackChange === void 0 ? void 0 : onFallbackChange(true);\n return {};\n }\n var nextArgs = {\n ...state,\n ...await (0, import_react_dom.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)\n };\n var detectOverflowOptions = {\n padding\n };\n var overflow = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n var refOverflow = await (0, import_react_dom.detectOverflow)(nextArgs, {\n ...detectOverflowOptions,\n elementContext: \"reference\"\n });\n var diffY = Math.max(0, overflow.top);\n var nextY = nextArgs.y + diffY;\n var isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n var rounder = isScrollable ? function(v) {\n return v;\n } : Math.round;\n var maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));\n scrollEl.style.maxHeight = `${maxHeight}px`;\n scrollEl.scrollTop = diffY;\n if (onFallbackChange) {\n var _listRef_current1;\n var _listRef_current_length;\n var shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, (_listRef_current_length = (_listRef_current1 = listRef.current) === null || _listRef_current1 === void 0 ? void 0 : _listRef_current1.length) !== null && _listRef_current_length !== void 0 ? _listRef_current_length : 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(function() {\n return onFallbackChange(shouldFallback);\n });\n }\n if (overflowRef) {\n ;\n overflowRef.current = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n };\n};\n//# sourceMappingURL=inner.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"inner.native.js","names":[],"sources":["cjs/middleware/inner.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar inner_exports = {};\n__export(inner_exports, {\n inner: () => inner\n});\nmodule.exports = __toCommonJS(inner_exports);\nvar ReactDOM = __toESM(require(\"react-dom\"), 1);\nvar import_react_dom = require(\"@floating-ui/react-dom\");\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\nvar inner = function(props) {\n return {\n name: \"inner\",\n options: props,\n async fn(state) {\n var _listRef_current;\n var { listRef, overflowRef, onFallbackChange, offset: innerOffset = 0, index = 0, minItemsVisible = 4, referenceOverflowThreshold = 0, scrollRef, padding = 0 } = props;\n var { rects, elements: { floating } } = state;\n var item = (_listRef_current = listRef.current) === null || _listRef_current === void 0 ? void 0 : _listRef_current[index !== null && index !== void 0 ? index : 0];\n var scrollEl = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || floating;\n var clientTop = floating.clientTop || scrollEl.clientTop;\n var floatingIsBordered = floating.clientTop !== 0;\n var scrollElIsBordered = scrollEl.clientTop !== 0;\n var floatingIsScrollEl = floating === scrollEl;\n if (!item || index == null) {\n onFallbackChange === null || onFallbackChange === void 0 ? void 0 : onFallbackChange(true);\n return {};\n }\n var nextArgs = {\n ...state,\n ...await (0, import_react_dom.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)\n };\n var detectOverflowOptions = {\n padding\n };\n var overflow = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n var refOverflow = await (0, import_react_dom.detectOverflow)(nextArgs, {\n ...detectOverflowOptions,\n elementContext: \"reference\"\n });\n var diffY = Math.max(0, overflow.top);\n var nextY = nextArgs.y + diffY;\n var isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n var rounder = isScrollable ? function(v) {\n return v;\n } : Math.round;\n var maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));\n scrollEl.style.maxHeight = `${maxHeight}px`;\n scrollEl.scrollTop = diffY;\n if (onFallbackChange) {\n var _listRef_current1;\n var _listRef_current_length;\n var shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, (_listRef_current_length = (_listRef_current1 = listRef.current) === null || _listRef_current1 === void 0 ? void 0 : _listRef_current1.length) !== null && _listRef_current_length !== void 0 ? _listRef_current_length : 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(function() {\n return onFallbackChange(shouldFallback);\n });\n }\n if (overflowRef) {\n ;\n overflowRef.current = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n };\n};\n//# sourceMappingURL=inner.js.map\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
-
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
-
4
3
  var __create = Object.create;
5
4
  var __defProp = Object.defineProperty;
6
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
-
4
3
  var __create = Object.create;
5
4
  var __defProp = Object.defineProperty;
6
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"useFloating.native.js","names":[],"sources":["cjs/useFloating.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useFloating_exports = {};\n__export(useFloating_exports, {\n FloatingOverrideContext: () => FloatingOverrideContext,\n useFloating: () => useFloating\n});\nmodule.exports = __toCommonJS(useFloating_exports);\nvar import_react = __toESM(require(\"react\"), 1);\nvar Floating = __toESM(require(\"./Floating\"), 1);\nvar FloatingOverrideContext = /* @__PURE__ */ import_react.default.createContext(null);\nvar useFloating = function(props) {\n \"use no memo\";\n var _this;\n var context = import_react.default.useContext(FloatingOverrideContext);\n return (_this = context || Floating.useFloating) === null || _this === void 0 ? void 0 : _this({\n ...props,\n middleware: [\n // @ts-ignore\n ...props.middleware,\n {\n name: `rounded`,\n fn(param) {\n var { x, y } = param;\n return {\n x: Math.round(x),\n y: Math.round(y)\n };\n }\n }\n ]\n });\n};\n//# sourceMappingURL=useFloating.js.map\n"],"mappings":";;;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,sBAAsB,CAAC;AAC3B,SAAS,qBAAqB;CAC5B,+BAA+B;CAC/B,mBAAmB;AACrB,CAAC;AACD,OAAO,UAAU,aAAa,mBAAmB;AACjD,IAAI,eAAe,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC9C,IAAI,WAAW,QAAQ,QAAQ,sBAAY,GAAG,CAAC;AAC/C,IAAI,0BAA0C,6BAAa,QAAQ,cAAc,IAAI;AACrF,IAAI,cAAc,SAAS,OAAO;CAChC;CACA,IAAI;CACJ,IAAI,UAAU,aAAa,QAAQ,WAAW,uBAAuB;CACrE,QAAQ,QAAQ,WAAW,SAAS,iBAAiB,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;EAC7F,GAAG;EACH,YAAY,CAEV,GAAG,MAAM,YACT;GACE,MAAM;GACN,GAAG,OAAO;IACR,IAAI,EAAE,GAAG,MAAM;IACf,OAAO;KACL,GAAG,KAAK,MAAM,CAAC;KACf,GAAG,KAAK,MAAM,CAAC;IACjB;GACF;EACF,CACF;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"useFloating.native.js","names":[],"sources":["cjs/useFloating.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useFloating_exports = {};\n__export(useFloating_exports, {\n FloatingOverrideContext: () => FloatingOverrideContext,\n useFloating: () => useFloating\n});\nmodule.exports = __toCommonJS(useFloating_exports);\nvar import_react = __toESM(require(\"react\"), 1);\nvar Floating = __toESM(require(\"./Floating\"), 1);\nvar FloatingOverrideContext = /* @__PURE__ */ import_react.default.createContext(null);\nvar useFloating = function(props) {\n \"use no memo\";\n var _this;\n var context = import_react.default.useContext(FloatingOverrideContext);\n return (_this = context || Floating.useFloating) === null || _this === void 0 ? void 0 : _this({\n ...props,\n middleware: [\n // @ts-ignore\n ...props.middleware,\n {\n name: `rounded`,\n fn(param) {\n var { x, y } = param;\n return {\n x: Math.round(x),\n y: Math.round(y)\n };\n }\n }\n ]\n });\n};\n//# sourceMappingURL=useFloating.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,sBAAsB,CAAC;AAC3B,SAAS,qBAAqB;CAC5B,+BAA+B;CAC/B,mBAAmB;AACrB,CAAC;AACD,OAAO,UAAU,aAAa,mBAAmB;AACjD,IAAI,eAAe,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC9C,IAAI,WAAW,QAAQ,QAAQ,sBAAY,GAAG,CAAC;AAC/C,IAAI,0BAA0C,6BAAa,QAAQ,cAAc,IAAI;AACrF,IAAI,cAAc,SAAS,OAAO;CAChC;CACA,IAAI;CACJ,IAAI,UAAU,aAAa,QAAQ,WAAW,uBAAuB;CACrE,QAAQ,QAAQ,WAAW,SAAS,iBAAiB,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;EAC7F,GAAG;EACH,YAAY,CAEV,GAAG,MAAM,YACT;GACE,MAAM;GACN,GAAG,OAAO;IACR,IAAI,EAAE,GAAG,MAAM;IACf,OAAO;KACL,GAAG,KAAK,MAAM,CAAC;KACf,GAAG,KAAK,MAAM,CAAC;IACjB;GACF;EACF,CACF;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopupTriggerMap.native.js","names":[],"sources":["esm/interactions/PopupTriggerMap.native.js"],"sourcesContent":["function _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar PopupTriggerMap = /* @__PURE__ */ (function() {\n \"use strict\";\n function PopupTriggerMap2() {\n _class_call_check(this, PopupTriggerMap2);\n _define_property(this, \"map\", /* @__PURE__ */ new Map());\n _define_property(this, \"elements\", /* @__PURE__ */ new Set());\n }\n _create_class(PopupTriggerMap2, [\n {\n key: \"add\",\n value: function add(id, element) {\n var prev = this.map.get(id);\n if (prev) {\n this.elements.delete(prev);\n }\n this.map.set(id, element);\n this.elements.add(element);\n }\n },\n {\n key: \"delete\",\n value: function _delete(id) {\n var el = this.map.get(id);\n if (el) {\n this.elements.delete(el);\n this.map.delete(id);\n }\n }\n },\n {\n key: \"hasElement\",\n value: function hasElement(element) {\n return this.elements.has(element);\n }\n }\n ]);\n return PopupTriggerMap2;\n})();\nexport {\n PopupTriggerMap\n};\n//# sourceMappingURL=PopupTriggerMap.js.map\n"],"mappings":";AAAA,SAAS,kBAAkB,UAAU,aAAa;CAChD,IAAI,EAAE,oBAAoB,cAAc;EACtC,MAAM,IAAI,UAAU,mCAAmC;CACzD;AACF;AACA,SAAS,kBAAkB,QAAQ,OAAO;CACxC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,IAAI,aAAa,MAAM;EACvB,WAAW,aAAa,WAAW,cAAc;EACjD,WAAW,eAAe;EAC1B,IAAI,WAAW,YAAY,WAAW,WAAW;EACjD,OAAO,eAAe,QAAQ,WAAW,KAAK,UAAU;CAC1D;AACF;AACA,SAAS,cAAc,aAAa,YAAY,aAAa;CAC3D,IAAI,YAAY,kBAAkB,YAAY,WAAW,UAAU;CACnE,IAAI,aAAa,kBAAkB,aAAa,WAAW;CAC3D,OAAO;AACT;AACA,SAAS,iBAAiB,KAAK,KAAK,OAAO;CACzC,IAAI,OAAO,KAAK;EACd,OAAO,eAAe,KAAK,KAAK;GAC9B;GACA,YAAY;GACZ,cAAc;GACd,UAAU;EACZ,CAAC;CACH,OAAO;EACL,IAAI,OAAO;CACb;CACA,OAAO;AACT;AACA,IAAI,kBAAkC,iBAAC,WAAW;CAChD;CACA,SAAS,mBAAmB;EAC1B,kBAAkB,MAAM,gBAAgB;EACxC,iBAAiB,MAAM,uBAAuB,IAAI,IAAI,CAAC;EACvD,iBAAiB,MAAM,4BAA4B,IAAI,IAAI,CAAC;CAC9D;CACA,cAAc,kBAAkB;EAC9B;GACE,KAAK;GACL,OAAO,SAAS,IAAI,IAAI,SAAS;IAC/B,IAAI,OAAO,KAAK,IAAI,IAAI,EAAE;IAC1B,IAAI,MAAM;KACR,KAAK,SAAS,OAAO,IAAI;IAC3B;IACA,KAAK,IAAI,IAAI,IAAI,OAAO;IACxB,KAAK,SAAS,IAAI,OAAO;GAC3B;EACF;EACA;GACE,KAAK;GACL,OAAO,SAAS,QAAQ,IAAI;IAC1B,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE;IACxB,IAAI,IAAI;KACN,KAAK,SAAS,OAAO,EAAE;KACvB,KAAK,IAAI,OAAO,EAAE;IACpB;GACF;EACF;EACA;GACE,KAAK;GACL,OAAO,SAAS,WAAW,SAAS;IAClC,OAAO,KAAK,SAAS,IAAI,OAAO;GAClC;EACF;CACF,CAAC;CACD,OAAO;AACT,GAAG"}
1
+ {"version":3,"file":"PopupTriggerMap.native.js","names":[],"sources":["esm/interactions/PopupTriggerMap.native.js"],"sourcesContent":["function _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar PopupTriggerMap = /* @__PURE__ */ (function() {\n \"use strict\";\n function PopupTriggerMap2() {\n _class_call_check(this, PopupTriggerMap2);\n _define_property(this, \"map\", /* @__PURE__ */ new Map());\n _define_property(this, \"elements\", /* @__PURE__ */ new Set());\n }\n _create_class(PopupTriggerMap2, [\n {\n key: \"add\",\n value: function add(id, element) {\n var prev = this.map.get(id);\n if (prev) {\n this.elements.delete(prev);\n }\n this.map.set(id, element);\n this.elements.add(element);\n }\n },\n {\n key: \"delete\",\n value: function _delete(id) {\n var el = this.map.get(id);\n if (el) {\n this.elements.delete(el);\n this.map.delete(id);\n }\n }\n },\n {\n key: \"hasElement\",\n value: function hasElement(element) {\n return this.elements.has(element);\n }\n }\n ]);\n return PopupTriggerMap2;\n})();\nexport {\n PopupTriggerMap\n};\n//# sourceMappingURL=PopupTriggerMap.js.map\n"],"mappings":";AAAA,SAAS,kBAAkB,UAAU,aAAa;CAChD,IAAI,EAAE,oBAAoB,cAAc;EACtC,MAAM,IAAI,UAAU,mCAAmC;CACzD;AACF;AACA,SAAS,kBAAkB,QAAQ,OAAO;CACxC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,IAAI,aAAa,MAAM;EACvB,WAAW,aAAa,WAAW,cAAc;EACjD,WAAW,eAAe;EAC1B,IAAI,WAAW,YAAY,WAAW,WAAW;EACjD,OAAO,eAAe,QAAQ,WAAW,KAAK,UAAU;CAC1D;AACF;AACA,SAAS,cAAc,aAAa,YAAY,aAAa;CAC3D,IAAI,YAAY,kBAAkB,YAAY,WAAW,UAAU;CACnE,IAAI,aAAa,kBAAkB,aAAa,WAAW;CAC3D,OAAO;AACT;AACA,SAAS,iBAAiB,KAAK,KAAK,OAAO;CACzC,IAAI,OAAO,KAAK;EACd,OAAO,eAAe,KAAK,KAAK;GAC9B;GACA,YAAY;GACZ,cAAc;GACd,UAAU;EACZ,CAAC;CACH,OAAO;EACL,IAAI,OAAO;CACb;CACA,OAAO;AACT;AACA,IAAI,kBAAkC,iBAAC,WAAW;CAChD;CACA,SAAS,mBAAmB;EAC1B,kBAAkB,MAAM,gBAAgB;EACxC,iBAAiB,MAAM,uBAAuB,IAAI,IAAI,CAAC;EACvD,iBAAiB,MAAM,4BAA4B,IAAI,IAAI,CAAC;CAC9D;CACA,cAAc,kBAAkB;EAC9B;GACE,KAAK;GACL,OAAO,SAAS,IAAI,IAAI,SAAS;IAC/B,IAAI,OAAO,KAAK,IAAI,IAAI,EAAE;IAC1B,IAAI,MAAM;KACR,KAAK,SAAS,OAAO,IAAI;IAC3B;IACA,KAAK,IAAI,IAAI,IAAI,OAAO;IACxB,KAAK,SAAS,IAAI,OAAO;GAC3B;EACF;EACA;GACE,KAAK;GACL,OAAO,SAAS,QAAQ,IAAI;IAC1B,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE;IACxB,IAAI,IAAI;KACN,KAAK,SAAS,OAAO,EAAE;KACvB,KAAK,IAAI,OAAO,EAAE;IACpB;GACF;EACF;EACA;GACE,KAAK;GACL,OAAO,SAAS,WAAW,SAAS;IAClC,OAAO,KAAK,SAAS,IAAI,OAAO;GAClC;EACF;CACF,CAAC;CACD,OAAO;AACT,EAAC,CAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"createFloatingEvents.js","names":[],"sources":["esm/interactions/createFloatingEvents.js"],"sourcesContent":["function createFloatingEvents() {\n const listeners = /* @__PURE__ */ new Map();\n return {\n emit(event, data) {\n listeners.get(event)?.forEach((fn) => fn(data));\n },\n on(event, handler) {\n let set = listeners.get(event);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n listeners.set(event, set);\n }\n set.add(handler);\n },\n off(event, handler) {\n const set = listeners.get(event);\n if (set) {\n set.delete(handler);\n if (set.size === 0) listeners.delete(event);\n }\n }\n };\n}\nexport {\n createFloatingEvents\n};\n//# sourceMappingURL=createFloatingEvents.js.map\n"],"mappings":";AAAA,SAAS,uBAAuB;CAC9B,MAAM,4BAA4B,IAAI,IAAI;CAC1C,OAAO;EACL,KAAK,OAAO,MAAM;GAChB,UAAU,IAAI,KAAK,GAAG,SAAS,OAAO,GAAG,IAAI,CAAC;EAChD;EACA,GAAG,OAAO,SAAS;GACjB,IAAI,MAAM,UAAU,IAAI,KAAK;GAC7B,IAAI,CAAC,KAAK;IACR,sBAAsB,IAAI,IAAI;IAC9B,UAAU,IAAI,OAAO,GAAG;GAC1B;GACA,IAAI,IAAI,OAAO;EACjB;EACA,IAAI,OAAO,SAAS;GAClB,MAAM,MAAM,UAAU,IAAI,KAAK;GAC/B,IAAI,KAAK;IACP,IAAI,OAAO,OAAO;IAClB,IAAI,IAAI,SAAS,GAAG,UAAU,OAAO,KAAK;GAC5C;EACF;CACF;AACF"}
1
+ {"version":3,"file":"createFloatingEvents.js","names":[],"sources":["esm/interactions/createFloatingEvents.js"],"sourcesContent":["function createFloatingEvents() {\n const listeners = /* @__PURE__ */ new Map();\n return {\n emit(event, data) {\n listeners.get(event)?.forEach((fn) => fn(data));\n },\n on(event, handler) {\n let set = listeners.get(event);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n listeners.set(event, set);\n }\n set.add(handler);\n },\n off(event, handler) {\n const set = listeners.get(event);\n if (set) {\n set.delete(handler);\n if (set.size === 0) listeners.delete(event);\n }\n }\n };\n}\nexport {\n createFloatingEvents\n};\n//# sourceMappingURL=createFloatingEvents.js.map\n"],"mappings":";AAAA,SAAS,uBAAuB;CAC9B,MAAM,4BAA4B,IAAI,IAAI;CAC1C,OAAO;EACL,KAAK,OAAO,MAAM;GAChB,UAAU,IAAI,KAAK,CAAC,EAAE,SAAS,OAAO,GAAG,IAAI,CAAC;EAChD;EACA,GAAG,OAAO,SAAS;GACjB,IAAI,MAAM,UAAU,IAAI,KAAK;GAC7B,IAAI,CAAC,KAAK;IACR,sBAAsB,IAAI,IAAI;IAC9B,UAAU,IAAI,OAAO,GAAG;GAC1B;GACA,IAAI,IAAI,OAAO;EACjB;EACA,IAAI,OAAO,SAAS;GAClB,MAAM,MAAM,UAAU,IAAI,KAAK;GAC/B,IAAI,KAAK;IACP,IAAI,OAAO,OAAO;IAClB,IAAI,IAAI,SAAS,GAAG,UAAU,OAAO,KAAK;GAC5C;EACF;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"safePolygon.js","names":[],"sources":["esm/interactions/safePolygon.js"],"sourcesContent":["import { clearTimeoutIfSet, contains, getTarget } from \"./utils\";\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside2 = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside2 = !isInside2;\n }\n }\n return isInside2;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nlet debugSvg = null;\nfunction debugDrawPolygon(polygon, trough, cursor, anchor) {\n if (!debugSvg) {\n debugSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n debugSvg.id = \"__safe-polygon-debug\";\n Object.assign(debugSvg.style, {\n position: \"fixed\",\n inset: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: \"999999\"\n });\n document.body.appendChild(debugSvg);\n }\n debugSvg.innerHTML = \"\";\n if (trough.length) {\n const troughEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n troughEl.setAttribute(\"points\", trough.map((p) => p.join(\",\")).join(\" \"));\n troughEl.setAttribute(\"fill\", \"rgba(0,100,255,0.15)\");\n troughEl.setAttribute(\"stroke\", \"rgba(0,100,255,0.6)\");\n troughEl.setAttribute(\"stroke-width\", \"1\");\n debugSvg.appendChild(troughEl);\n }\n if (polygon.length) {\n const polyEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n polyEl.setAttribute(\"points\", polygon.map((p) => p.join(\",\")).join(\" \"));\n polyEl.setAttribute(\"fill\", \"rgba(255,50,50,0.2)\");\n polyEl.setAttribute(\"stroke\", \"rgba(255,50,50,0.8)\");\n polyEl.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(polyEl);\n }\n const anchorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n anchorCircle.setAttribute(\"cx\", String(anchor[0]));\n anchorCircle.setAttribute(\"cy\", String(anchor[1]));\n anchorCircle.setAttribute(\"r\", \"5\");\n anchorCircle.setAttribute(\"fill\", \"lime\");\n anchorCircle.setAttribute(\"stroke\", \"darkgreen\");\n anchorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(anchorCircle);\n const cursorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n cursorCircle.setAttribute(\"cx\", String(cursor[0]));\n cursorCircle.setAttribute(\"cy\", String(cursor[1]));\n cursorCircle.setAttribute(\"r\", \"4\");\n cursorCircle.setAttribute(\"fill\", \"yellow\");\n cursorCircle.setAttribute(\"stroke\", \"orange\");\n cursorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(cursorCircle);\n}\nfunction debugClear() {\n if (debugSvg) {\n debugSvg.remove();\n debugSvg = null;\n }\n}\nfunction safePolygon(options = {}) {\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true,\n __debug = false\n } = options;\n const timeoutRef = { current: -1 };\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = typeof performance !== \"undefined\" ? performance.now() : 0;\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime;\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = ({ x, y, placement, elements, onClose }) => {\n hasLanded = false;\n lastX = null;\n lastY = null;\n return function onMouseMove(event) {\n function close() {\n clearTimeoutIfSet(timeoutRef);\n onClose();\n }\n clearTimeoutIfSet(timeoutRef);\n const domReference = elements.domReference ?? elements.reference;\n if (!domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const { clientX, clientY } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === \"mouseleave\";\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(domReference, target);\n const refRect = domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split(\"-\")[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {\n return;\n }\n if (isLeave && event.relatedTarget && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n if (side === \"top\" && y >= refRect.bottom - 1 || side === \"bottom\" && y <= refRect.top + 1 || side === \"left\" && x >= refRect.right - 1 || side === \"right\" && x <= refRect.left + 1) {\n return close();\n }\n let rectPoly = [];\n switch (side) {\n case \"top\":\n rectPoly = [\n [left, refRect.top + 1],\n [left, rect.bottom - 1],\n [right, rect.bottom - 1],\n [right, refRect.top + 1]\n ];\n break;\n case \"bottom\":\n rectPoly = [\n [left, rect.top + 1],\n [left, refRect.bottom - 1],\n [right, refRect.bottom - 1],\n [right, rect.top + 1]\n ];\n break;\n case \"left\":\n rectPoly = [\n [rect.right - 1, bottom],\n [rect.right - 1, top],\n [refRect.left + 1, top],\n [refRect.left + 1, bottom]\n ];\n break;\n case \"right\":\n rectPoly = [\n [refRect.right - 1, bottom],\n [refRect.right - 1, top],\n [rect.left + 1, top],\n [rect.left + 1, bottom]\n ];\n break;\n }\n function getPolygon([x2, y2]) {\n switch (side) {\n case \"top\": {\n const cursorPointOne = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n const cursorPointTwo = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n const commonPoints = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer\n ]\n ];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case \"bottom\": {\n const cursorPointOne = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n const cursorPointTwo = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n const commonPoints = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer\n ]\n ];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case \"left\": {\n const cursorPointOne = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const cursorPointTwo = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const commonPoints = [\n [\n cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer,\n rect.bottom\n ]\n ];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case \"right\": {\n const cursorPointOne = [\n x2 - buffer,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const cursorPointTwo = [\n x2 - buffer,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const commonPoints = [\n [\n cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer,\n rect.bottom\n ]\n ];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n const poly = getPolygon([x, y]);\n if (__debug) {\n debugDrawPolygon(poly, rectPoly, clientPoint, [x, y]);\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n if (__debug) debugClear();\n return close();\n }\n if (isPointInPolygon([clientX, clientY], poly)) {\n return;\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(clientX, clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n if (__debug) debugClear();\n return close();\n }\n }\n if (__debug) debugClear();\n close();\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\nexport {\n safePolygon\n};\n//# sourceMappingURL=safePolygon.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"safePolygon.js","names":[],"sources":["esm/interactions/safePolygon.js"],"sourcesContent":["import { clearTimeoutIfSet, contains, getTarget } from \"./utils\";\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside2 = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside2 = !isInside2;\n }\n }\n return isInside2;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nlet debugSvg = null;\nfunction debugDrawPolygon(polygon, trough, cursor, anchor) {\n if (!debugSvg) {\n debugSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n debugSvg.id = \"__safe-polygon-debug\";\n Object.assign(debugSvg.style, {\n position: \"fixed\",\n inset: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: \"999999\"\n });\n document.body.appendChild(debugSvg);\n }\n debugSvg.innerHTML = \"\";\n if (trough.length) {\n const troughEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n troughEl.setAttribute(\"points\", trough.map((p) => p.join(\",\")).join(\" \"));\n troughEl.setAttribute(\"fill\", \"rgba(0,100,255,0.15)\");\n troughEl.setAttribute(\"stroke\", \"rgba(0,100,255,0.6)\");\n troughEl.setAttribute(\"stroke-width\", \"1\");\n debugSvg.appendChild(troughEl);\n }\n if (polygon.length) {\n const polyEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n polyEl.setAttribute(\"points\", polygon.map((p) => p.join(\",\")).join(\" \"));\n polyEl.setAttribute(\"fill\", \"rgba(255,50,50,0.2)\");\n polyEl.setAttribute(\"stroke\", \"rgba(255,50,50,0.8)\");\n polyEl.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(polyEl);\n }\n const anchorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n anchorCircle.setAttribute(\"cx\", String(anchor[0]));\n anchorCircle.setAttribute(\"cy\", String(anchor[1]));\n anchorCircle.setAttribute(\"r\", \"5\");\n anchorCircle.setAttribute(\"fill\", \"lime\");\n anchorCircle.setAttribute(\"stroke\", \"darkgreen\");\n anchorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(anchorCircle);\n const cursorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n cursorCircle.setAttribute(\"cx\", String(cursor[0]));\n cursorCircle.setAttribute(\"cy\", String(cursor[1]));\n cursorCircle.setAttribute(\"r\", \"4\");\n cursorCircle.setAttribute(\"fill\", \"yellow\");\n cursorCircle.setAttribute(\"stroke\", \"orange\");\n cursorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(cursorCircle);\n}\nfunction debugClear() {\n if (debugSvg) {\n debugSvg.remove();\n debugSvg = null;\n }\n}\nfunction safePolygon(options = {}) {\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true,\n __debug = false\n } = options;\n const timeoutRef = { current: -1 };\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = typeof performance !== \"undefined\" ? performance.now() : 0;\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime;\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = ({ x, y, placement, elements, onClose }) => {\n hasLanded = false;\n lastX = null;\n lastY = null;\n return function onMouseMove(event) {\n function close() {\n clearTimeoutIfSet(timeoutRef);\n onClose();\n }\n clearTimeoutIfSet(timeoutRef);\n const domReference = elements.domReference ?? elements.reference;\n if (!domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const { clientX, clientY } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === \"mouseleave\";\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(domReference, target);\n const refRect = domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split(\"-\")[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {\n return;\n }\n if (isLeave && event.relatedTarget && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n if (side === \"top\" && y >= refRect.bottom - 1 || side === \"bottom\" && y <= refRect.top + 1 || side === \"left\" && x >= refRect.right - 1 || side === \"right\" && x <= refRect.left + 1) {\n return close();\n }\n let rectPoly = [];\n switch (side) {\n case \"top\":\n rectPoly = [\n [left, refRect.top + 1],\n [left, rect.bottom - 1],\n [right, rect.bottom - 1],\n [right, refRect.top + 1]\n ];\n break;\n case \"bottom\":\n rectPoly = [\n [left, rect.top + 1],\n [left, refRect.bottom - 1],\n [right, refRect.bottom - 1],\n [right, rect.top + 1]\n ];\n break;\n case \"left\":\n rectPoly = [\n [rect.right - 1, bottom],\n [rect.right - 1, top],\n [refRect.left + 1, top],\n [refRect.left + 1, bottom]\n ];\n break;\n case \"right\":\n rectPoly = [\n [refRect.right - 1, bottom],\n [refRect.right - 1, top],\n [rect.left + 1, top],\n [rect.left + 1, bottom]\n ];\n break;\n }\n function getPolygon([x2, y2]) {\n switch (side) {\n case \"top\": {\n const cursorPointOne = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n const cursorPointTwo = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n const commonPoints = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer\n ]\n ];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case \"bottom\": {\n const cursorPointOne = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n const cursorPointTwo = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n const commonPoints = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer\n ]\n ];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case \"left\": {\n const cursorPointOne = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const cursorPointTwo = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const commonPoints = [\n [\n cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer,\n rect.bottom\n ]\n ];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case \"right\": {\n const cursorPointOne = [\n x2 - buffer,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const cursorPointTwo = [\n x2 - buffer,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n const commonPoints = [\n [\n cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer,\n rect.bottom\n ]\n ];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n const poly = getPolygon([x, y]);\n if (__debug) {\n debugDrawPolygon(poly, rectPoly, clientPoint, [x, y]);\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n if (__debug) debugClear();\n return close();\n }\n if (isPointInPolygon([clientX, clientY], poly)) {\n return;\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(clientX, clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n if (__debug) debugClear();\n return close();\n }\n }\n if (__debug) debugClear();\n close();\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\nexport {\n safePolygon\n};\n//# sourceMappingURL=safePolygon.js.map\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"safePolygon.native.js","names":[],"sources":["esm/interactions/safePolygon.native.js"],"sourcesContent":["import { clearTimeoutIfSet, contains, getTarget } from \"./utils\";\nfunction isPointInPolygon(point, polygon) {\n var [x, y] = point;\n var isInside2 = false;\n var length = polygon.length;\n for (var i = 0, j = length - 1; i < length; j = i++) {\n var [xi, yi] = polygon[i] || [\n 0,\n 0\n ];\n var [xj, yj] = polygon[j] || [\n 0,\n 0\n ];\n var intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside2 = !isInside2;\n }\n }\n return isInside2;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nvar debugSvg = null;\nfunction debugDrawPolygon(polygon, trough, cursor, anchor) {\n if (!debugSvg) {\n debugSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n debugSvg.id = \"__safe-polygon-debug\";\n Object.assign(debugSvg.style, {\n position: \"fixed\",\n inset: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: \"999999\"\n });\n document.body.appendChild(debugSvg);\n }\n debugSvg.innerHTML = \"\";\n if (trough.length) {\n var troughEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n troughEl.setAttribute(\"points\", trough.map(function(p) {\n return p.join(\",\");\n }).join(\" \"));\n troughEl.setAttribute(\"fill\", \"rgba(0,100,255,0.15)\");\n troughEl.setAttribute(\"stroke\", \"rgba(0,100,255,0.6)\");\n troughEl.setAttribute(\"stroke-width\", \"1\");\n debugSvg.appendChild(troughEl);\n }\n if (polygon.length) {\n var polyEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n polyEl.setAttribute(\"points\", polygon.map(function(p) {\n return p.join(\",\");\n }).join(\" \"));\n polyEl.setAttribute(\"fill\", \"rgba(255,50,50,0.2)\");\n polyEl.setAttribute(\"stroke\", \"rgba(255,50,50,0.8)\");\n polyEl.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(polyEl);\n }\n var anchorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n anchorCircle.setAttribute(\"cx\", String(anchor[0]));\n anchorCircle.setAttribute(\"cy\", String(anchor[1]));\n anchorCircle.setAttribute(\"r\", \"5\");\n anchorCircle.setAttribute(\"fill\", \"lime\");\n anchorCircle.setAttribute(\"stroke\", \"darkgreen\");\n anchorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(anchorCircle);\n var cursorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n cursorCircle.setAttribute(\"cx\", String(cursor[0]));\n cursorCircle.setAttribute(\"cy\", String(cursor[1]));\n cursorCircle.setAttribute(\"r\", \"4\");\n cursorCircle.setAttribute(\"fill\", \"yellow\");\n cursorCircle.setAttribute(\"stroke\", \"orange\");\n cursorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(cursorCircle);\n}\nfunction debugClear() {\n if (debugSvg) {\n debugSvg.remove();\n debugSvg = null;\n }\n}\nfunction safePolygon() {\n var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n var { buffer = 0.5, blockPointerEvents = false, requireIntent = true, __debug = false } = options;\n var timeoutRef = {\n current: -1\n };\n var hasLanded = false;\n var lastX = null;\n var lastY = null;\n var lastCursorTime = typeof performance !== \"undefined\" ? performance.now() : 0;\n function getCursorSpeed(x, y) {\n var currentTime = performance.now();\n var elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n var deltaX = x - lastX;\n var deltaY = y - lastY;\n var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n var speed = distance / elapsedTime;\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n var fn = function(param) {\n var { x, y, placement, elements, onClose } = param;\n hasLanded = false;\n lastX = null;\n lastY = null;\n return function onMouseMove(event) {\n function close() {\n clearTimeoutIfSet(timeoutRef);\n onClose();\n }\n clearTimeoutIfSet(timeoutRef);\n var _elements_domReference;\n var domReference = (_elements_domReference = elements.domReference) !== null && _elements_domReference !== void 0 ? _elements_domReference : elements.reference;\n if (!domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n var { clientX, clientY } = event;\n var clientPoint = [\n clientX,\n clientY\n ];\n var target = getTarget(event);\n var isLeave = event.type === \"mouseleave\";\n var isOverFloatingEl = contains(elements.floating, target);\n var isOverReferenceEl = contains(domReference, target);\n var refRect = domReference.getBoundingClientRect();\n var rect = elements.floating.getBoundingClientRect();\n var side = placement.split(\"-\")[0];\n var cursorLeaveFromRight = x > rect.right - rect.width / 2;\n var cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n var isOverReferenceRect = isInside(clientPoint, refRect);\n var isFloatingWider = rect.width > refRect.width;\n var isFloatingTaller = rect.height > refRect.height;\n var left = (isFloatingWider ? refRect : rect).left;\n var right = (isFloatingWider ? refRect : rect).right;\n var top = (isFloatingTaller ? refRect : rect).top;\n var bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {\n return;\n }\n if (isLeave && event.relatedTarget && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n if (side === \"top\" && y >= refRect.bottom - 1 || side === \"bottom\" && y <= refRect.top + 1 || side === \"left\" && x >= refRect.right - 1 || side === \"right\" && x <= refRect.left + 1) {\n return close();\n }\n var rectPoly = [];\n switch (side) {\n case \"top\":\n rectPoly = [\n [\n left,\n refRect.top + 1\n ],\n [\n left,\n rect.bottom - 1\n ],\n [\n right,\n rect.bottom - 1\n ],\n [\n right,\n refRect.top + 1\n ]\n ];\n break;\n case \"bottom\":\n rectPoly = [\n [\n left,\n rect.top + 1\n ],\n [\n left,\n refRect.bottom - 1\n ],\n [\n right,\n refRect.bottom - 1\n ],\n [\n right,\n rect.top + 1\n ]\n ];\n break;\n case \"left\":\n rectPoly = [\n [\n rect.right - 1,\n bottom\n ],\n [\n rect.right - 1,\n top\n ],\n [\n refRect.left + 1,\n top\n ],\n [\n refRect.left + 1,\n bottom\n ]\n ];\n break;\n case \"right\":\n rectPoly = [\n [\n refRect.right - 1,\n bottom\n ],\n [\n refRect.right - 1,\n top\n ],\n [\n rect.left + 1,\n top\n ],\n [\n rect.left + 1,\n bottom\n ]\n ];\n break;\n }\n function getPolygon(param2) {\n var [x2, y2] = param2;\n switch (side) {\n case \"top\": {\n var cursorPointOne = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n var cursorPointTwo = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n var commonPoints = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer\n ]\n ];\n return [\n cursorPointOne,\n cursorPointTwo,\n ...commonPoints\n ];\n }\n case \"bottom\": {\n var cursorPointOne1 = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n var cursorPointTwo1 = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n var commonPoints1 = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer\n ]\n ];\n return [\n cursorPointOne1,\n cursorPointTwo1,\n ...commonPoints1\n ];\n }\n case \"left\": {\n var cursorPointOne2 = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var cursorPointTwo2 = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var commonPoints2 = [\n [\n cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer,\n rect.bottom\n ]\n ];\n return [\n ...commonPoints2,\n cursorPointOne2,\n cursorPointTwo2\n ];\n }\n case \"right\": {\n var cursorPointOne3 = [\n x2 - buffer,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var cursorPointTwo3 = [\n x2 - buffer,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var commonPoints3 = [\n [\n cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer,\n rect.bottom\n ]\n ];\n return [\n cursorPointOne3,\n cursorPointTwo3,\n ...commonPoints3\n ];\n }\n }\n }\n var poly = getPolygon([\n x,\n y\n ]);\n if (__debug) {\n debugDrawPolygon(poly, rectPoly, clientPoint, [\n x,\n y\n ]);\n }\n if (isPointInPolygon([\n clientX,\n clientY\n ], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n if (__debug) debugClear();\n return close();\n }\n if (isPointInPolygon([\n clientX,\n clientY\n ], poly)) {\n return;\n }\n if (!isLeave && requireIntent) {\n var cursorSpeed = getCursorSpeed(clientX, clientY);\n var cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n if (__debug) debugClear();\n return close();\n }\n }\n if (__debug) debugClear();\n close();\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\nexport {\n safePolygon\n};\n//# sourceMappingURL=safePolygon.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"safePolygon.native.js","names":[],"sources":["esm/interactions/safePolygon.native.js"],"sourcesContent":["import { clearTimeoutIfSet, contains, getTarget } from \"./utils\";\nfunction isPointInPolygon(point, polygon) {\n var [x, y] = point;\n var isInside2 = false;\n var length = polygon.length;\n for (var i = 0, j = length - 1; i < length; j = i++) {\n var [xi, yi] = polygon[i] || [\n 0,\n 0\n ];\n var [xj, yj] = polygon[j] || [\n 0,\n 0\n ];\n var intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside2 = !isInside2;\n }\n }\n return isInside2;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nvar debugSvg = null;\nfunction debugDrawPolygon(polygon, trough, cursor, anchor) {\n if (!debugSvg) {\n debugSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n debugSvg.id = \"__safe-polygon-debug\";\n Object.assign(debugSvg.style, {\n position: \"fixed\",\n inset: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: \"999999\"\n });\n document.body.appendChild(debugSvg);\n }\n debugSvg.innerHTML = \"\";\n if (trough.length) {\n var troughEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n troughEl.setAttribute(\"points\", trough.map(function(p) {\n return p.join(\",\");\n }).join(\" \"));\n troughEl.setAttribute(\"fill\", \"rgba(0,100,255,0.15)\");\n troughEl.setAttribute(\"stroke\", \"rgba(0,100,255,0.6)\");\n troughEl.setAttribute(\"stroke-width\", \"1\");\n debugSvg.appendChild(troughEl);\n }\n if (polygon.length) {\n var polyEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n polyEl.setAttribute(\"points\", polygon.map(function(p) {\n return p.join(\",\");\n }).join(\" \"));\n polyEl.setAttribute(\"fill\", \"rgba(255,50,50,0.2)\");\n polyEl.setAttribute(\"stroke\", \"rgba(255,50,50,0.8)\");\n polyEl.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(polyEl);\n }\n var anchorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n anchorCircle.setAttribute(\"cx\", String(anchor[0]));\n anchorCircle.setAttribute(\"cy\", String(anchor[1]));\n anchorCircle.setAttribute(\"r\", \"5\");\n anchorCircle.setAttribute(\"fill\", \"lime\");\n anchorCircle.setAttribute(\"stroke\", \"darkgreen\");\n anchorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(anchorCircle);\n var cursorCircle = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n cursorCircle.setAttribute(\"cx\", String(cursor[0]));\n cursorCircle.setAttribute(\"cy\", String(cursor[1]));\n cursorCircle.setAttribute(\"r\", \"4\");\n cursorCircle.setAttribute(\"fill\", \"yellow\");\n cursorCircle.setAttribute(\"stroke\", \"orange\");\n cursorCircle.setAttribute(\"stroke-width\", \"1.5\");\n debugSvg.appendChild(cursorCircle);\n}\nfunction debugClear() {\n if (debugSvg) {\n debugSvg.remove();\n debugSvg = null;\n }\n}\nfunction safePolygon() {\n var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n var { buffer = 0.5, blockPointerEvents = false, requireIntent = true, __debug = false } = options;\n var timeoutRef = {\n current: -1\n };\n var hasLanded = false;\n var lastX = null;\n var lastY = null;\n var lastCursorTime = typeof performance !== \"undefined\" ? performance.now() : 0;\n function getCursorSpeed(x, y) {\n var currentTime = performance.now();\n var elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n var deltaX = x - lastX;\n var deltaY = y - lastY;\n var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n var speed = distance / elapsedTime;\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n var fn = function(param) {\n var { x, y, placement, elements, onClose } = param;\n hasLanded = false;\n lastX = null;\n lastY = null;\n return function onMouseMove(event) {\n function close() {\n clearTimeoutIfSet(timeoutRef);\n onClose();\n }\n clearTimeoutIfSet(timeoutRef);\n var _elements_domReference;\n var domReference = (_elements_domReference = elements.domReference) !== null && _elements_domReference !== void 0 ? _elements_domReference : elements.reference;\n if (!domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n var { clientX, clientY } = event;\n var clientPoint = [\n clientX,\n clientY\n ];\n var target = getTarget(event);\n var isLeave = event.type === \"mouseleave\";\n var isOverFloatingEl = contains(elements.floating, target);\n var isOverReferenceEl = contains(domReference, target);\n var refRect = domReference.getBoundingClientRect();\n var rect = elements.floating.getBoundingClientRect();\n var side = placement.split(\"-\")[0];\n var cursorLeaveFromRight = x > rect.right - rect.width / 2;\n var cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n var isOverReferenceRect = isInside(clientPoint, refRect);\n var isFloatingWider = rect.width > refRect.width;\n var isFloatingTaller = rect.height > refRect.height;\n var left = (isFloatingWider ? refRect : rect).left;\n var right = (isFloatingWider ? refRect : rect).right;\n var top = (isFloatingTaller ? refRect : rect).top;\n var bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {\n return;\n }\n if (isLeave && event.relatedTarget && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n if (side === \"top\" && y >= refRect.bottom - 1 || side === \"bottom\" && y <= refRect.top + 1 || side === \"left\" && x >= refRect.right - 1 || side === \"right\" && x <= refRect.left + 1) {\n return close();\n }\n var rectPoly = [];\n switch (side) {\n case \"top\":\n rectPoly = [\n [\n left,\n refRect.top + 1\n ],\n [\n left,\n rect.bottom - 1\n ],\n [\n right,\n rect.bottom - 1\n ],\n [\n right,\n refRect.top + 1\n ]\n ];\n break;\n case \"bottom\":\n rectPoly = [\n [\n left,\n rect.top + 1\n ],\n [\n left,\n refRect.bottom - 1\n ],\n [\n right,\n refRect.bottom - 1\n ],\n [\n right,\n rect.top + 1\n ]\n ];\n break;\n case \"left\":\n rectPoly = [\n [\n rect.right - 1,\n bottom\n ],\n [\n rect.right - 1,\n top\n ],\n [\n refRect.left + 1,\n top\n ],\n [\n refRect.left + 1,\n bottom\n ]\n ];\n break;\n case \"right\":\n rectPoly = [\n [\n refRect.right - 1,\n bottom\n ],\n [\n refRect.right - 1,\n top\n ],\n [\n rect.left + 1,\n top\n ],\n [\n rect.left + 1,\n bottom\n ]\n ];\n break;\n }\n function getPolygon(param2) {\n var [x2, y2] = param2;\n switch (side) {\n case \"top\": {\n var cursorPointOne = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n var cursorPointTwo = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 + buffer + 1\n ];\n var commonPoints = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer\n ]\n ];\n return [\n cursorPointOne,\n cursorPointTwo,\n ...commonPoints\n ];\n }\n case \"bottom\": {\n var cursorPointOne1 = [\n isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n var cursorPointTwo1 = [\n isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4,\n y2 - buffer\n ];\n var commonPoints1 = [\n [\n rect.left,\n cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom\n ],\n [\n rect.right,\n cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer\n ]\n ];\n return [\n cursorPointOne1,\n cursorPointTwo1,\n ...commonPoints1\n ];\n }\n case \"left\": {\n var cursorPointOne2 = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var cursorPointTwo2 = [\n x2 + buffer + 1,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var commonPoints2 = [\n [\n cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer,\n rect.bottom\n ]\n ];\n return [\n ...commonPoints2,\n cursorPointOne2,\n cursorPointTwo2\n ];\n }\n case \"right\": {\n var cursorPointOne3 = [\n x2 - buffer,\n isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var cursorPointTwo3 = [\n x2 - buffer,\n isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4\n ];\n var commonPoints3 = [\n [\n cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right,\n rect.top\n ],\n [\n cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer,\n rect.bottom\n ]\n ];\n return [\n cursorPointOne3,\n cursorPointTwo3,\n ...commonPoints3\n ];\n }\n }\n }\n var poly = getPolygon([\n x,\n y\n ]);\n if (__debug) {\n debugDrawPolygon(poly, rectPoly, clientPoint, [\n x,\n y\n ]);\n }\n if (isPointInPolygon([\n clientX,\n clientY\n ], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n if (__debug) debugClear();\n return close();\n }\n if (isPointInPolygon([\n clientX,\n clientY\n ], poly)) {\n return;\n }\n if (!isLeave && requireIntent) {\n var cursorSpeed = getCursorSpeed(clientX, clientY);\n var cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n if (__debug) debugClear();\n return close();\n }\n }\n if (__debug) debugClear();\n close();\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\nexport {\n safePolygon\n};\n//# sourceMappingURL=safePolygon.js.map\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFocus.js","names":[],"sources":["esm/interactions/useFocus.js"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport {\n activeElement,\n clearTimeoutIfSet,\n contains,\n getDocument,\n getTarget,\n isElement,\n isHTMLElement,\n isMac,\n isSafari,\n isTypeableElement,\n matchesFocusVisible\n} from \"./utils\";\nfunction isMacSafari() {\n return isMac() && isSafari();\n}\nfunction useFocus(context, props = {}) {\n const { open, onOpenChange, events, dataRef, elements } = context;\n const { enabled = true, visibleOnly = true } = props;\n const blockFocusRef = useRef(false);\n const timeoutRef = useRef(-1);\n const keyboardModalityRef = useRef(true);\n useEffect(() => {\n if (!enabled) return;\n const win = getDocument(elements.domReference).defaultView || window;\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n function onPointerDown() {\n keyboardModalityRef.current = false;\n }\n win.addEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.addEventListener(\"keydown\", onKeyDown, true);\n win.addEventListener(\"pointerdown\", onPointerDown, true);\n }\n return () => {\n win.removeEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.removeEventListener(\"keydown\", onKeyDown, true);\n win.removeEventListener(\"pointerdown\", onPointerDown, true);\n }\n };\n }, [elements.domReference, open, enabled]);\n useEffect(() => {\n if (!enabled) return;\n if (!events) return;\n function handleOpenChange({ reason }) {\n if (reason === \"reference-press\" || reason === \"escape-key\") {\n blockFocusRef.current = true;\n }\n }\n events.on(\"openchange\", handleOpenChange);\n return () => {\n events.off(\"openchange\", handleOpenChange);\n };\n }, [events, enabled]);\n useEffect(() => {\n return () => {\n clearTimeoutIfSet(timeoutRef);\n };\n }, []);\n const reference = useMemo(\n () => ({\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n const target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n if (isMacSafari() && !event.relatedTarget) {\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n } else if (!matchesFocusVisible(target)) {\n return;\n }\n }\n onOpenChange(true, event.nativeEvent, \"focus\");\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n const nativeEvent = event.nativeEvent;\n timeoutRef.current = window.setTimeout(() => {\n const activeEl = activeElement(\n elements.domReference ? elements.domReference.ownerDocument : document\n );\n if (!relatedTarget && activeEl === elements.domReference) return;\n if (contains(context.refs.floating.current, activeEl) || contains(elements.domReference, activeEl)) {\n return;\n }\n onOpenChange(false, nativeEvent, \"focus\");\n });\n }\n }),\n [context.refs.floating, elements.domReference, onOpenChange, visibleOnly]\n );\n return useMemo(() => enabled ? { reference } : {}, [enabled, reference]);\n}\nexport {\n useFocus\n};\n//# sourceMappingURL=useFocus.js.map\n"],"mappings":";;;;AAcA,SAAS,cAAc;CACrB,OAAO,MAAM,KAAK,SAAS;AAC7B;AACA,SAAS,SAAS,SAAS,QAAQ,CAAC,GAAG;CACrC,MAAM,EAAE,MAAM,cAAc,QAAQ,SAAS,aAAa;CAC1D,MAAM,EAAE,UAAU,MAAM,cAAc,SAAS;CAC/C,MAAM,gBAAgB,OAAO,KAAK;CAClC,MAAM,aAAa,OAAO,CAAC,CAAC;CAC5B,MAAM,sBAAsB,OAAO,IAAI;CACvC,gBAAgB;EACd,IAAI,CAAC,SAAS;EACd,MAAM,MAAM,YAAY,SAAS,YAAY,EAAE,eAAe;EAC9D,SAAS,SAAS;GAChB,IAAI,CAAC,QAAQ,cAAc,SAAS,YAAY,KAAK,SAAS,iBAAiB,cAAc,YAAY,SAAS,YAAY,CAAC,GAAG;IAChI,cAAc,UAAU;GAC1B;EACF;EACA,SAAS,YAAY;GACnB,oBAAoB,UAAU;EAChC;EACA,SAAS,gBAAgB;GACvB,oBAAoB,UAAU;EAChC;EACA,IAAI,iBAAiB,QAAQ,MAAM;EACnC,IAAI,YAAY,GAAG;GACjB,IAAI,iBAAiB,WAAW,WAAW,IAAI;GAC/C,IAAI,iBAAiB,eAAe,eAAe,IAAI;EACzD;EACA,aAAa;GACX,IAAI,oBAAoB,QAAQ,MAAM;GACtC,IAAI,YAAY,GAAG;IACjB,IAAI,oBAAoB,WAAW,WAAW,IAAI;IAClD,IAAI,oBAAoB,eAAe,eAAe,IAAI;GAC5D;EACF;CACF,GAAG;EAAC,SAAS;EAAc;EAAM;CAAO,CAAC;CACzC,gBAAgB;EACd,IAAI,CAAC,SAAS;EACd,IAAI,CAAC,QAAQ;EACb,SAAS,iBAAiB,EAAE,UAAU;GACpC,IAAI,WAAW,qBAAqB,WAAW,cAAc;IAC3D,cAAc,UAAU;GAC1B;EACF;EACA,OAAO,GAAG,cAAc,gBAAgB;EACxC,aAAa;GACX,OAAO,IAAI,cAAc,gBAAgB;EAC3C;CACF,GAAG,CAAC,QAAQ,OAAO,CAAC;CACpB,gBAAgB;EACd,aAAa;GACX,kBAAkB,UAAU;EAC9B;CACF,GAAG,CAAC,CAAC;CACL,MAAM,YAAY,eACT;EACL,eAAe;GACb,cAAc,UAAU;EAC1B;EACA,QAAQ,OAAO;GACb,IAAI,cAAc,SAAS;GAC3B,MAAM,SAAS,UAAU,MAAM,WAAW;GAC1C,IAAI,eAAe,UAAU,MAAM,GAAG;IACpC,IAAI,YAAY,KAAK,CAAC,MAAM,eAAe;KACzC,IAAI,CAAC,oBAAoB,WAAW,CAAC,kBAAkB,MAAM,GAAG;MAC9D;KACF;IACF,OAAO,IAAI,CAAC,oBAAoB,MAAM,GAAG;KACvC;IACF;GACF;GACA,aAAa,MAAM,MAAM,aAAa,OAAO;EAC/C;EACA,OAAO,OAAO;GACZ,cAAc,UAAU;GACxB,MAAM,gBAAgB,MAAM;GAC5B,MAAM,cAAc,MAAM;GAC1B,WAAW,UAAU,OAAO,iBAAiB;IAC3C,MAAM,WAAW,cACf,SAAS,eAAe,SAAS,aAAa,gBAAgB,QAChE;IACA,IAAI,CAAC,iBAAiB,aAAa,SAAS,cAAc;IAC1D,IAAI,SAAS,QAAQ,KAAK,SAAS,SAAS,QAAQ,KAAK,SAAS,SAAS,cAAc,QAAQ,GAAG;KAClG;IACF;IACA,aAAa,OAAO,aAAa,OAAO;GAC1C,CAAC;EACH;CACF,IACA;EAAC,QAAQ,KAAK;EAAU,SAAS;EAAc;EAAc;CAAW,CAC1E;CACA,OAAO,cAAc,UAAU,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC;AACzE"}
1
+ {"version":3,"file":"useFocus.js","names":[],"sources":["esm/interactions/useFocus.js"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport {\n activeElement,\n clearTimeoutIfSet,\n contains,\n getDocument,\n getTarget,\n isElement,\n isHTMLElement,\n isMac,\n isSafari,\n isTypeableElement,\n matchesFocusVisible\n} from \"./utils\";\nfunction isMacSafari() {\n return isMac() && isSafari();\n}\nfunction useFocus(context, props = {}) {\n const { open, onOpenChange, events, dataRef, elements } = context;\n const { enabled = true, visibleOnly = true } = props;\n const blockFocusRef = useRef(false);\n const timeoutRef = useRef(-1);\n const keyboardModalityRef = useRef(true);\n useEffect(() => {\n if (!enabled) return;\n const win = getDocument(elements.domReference).defaultView || window;\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n function onPointerDown() {\n keyboardModalityRef.current = false;\n }\n win.addEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.addEventListener(\"keydown\", onKeyDown, true);\n win.addEventListener(\"pointerdown\", onPointerDown, true);\n }\n return () => {\n win.removeEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.removeEventListener(\"keydown\", onKeyDown, true);\n win.removeEventListener(\"pointerdown\", onPointerDown, true);\n }\n };\n }, [elements.domReference, open, enabled]);\n useEffect(() => {\n if (!enabled) return;\n if (!events) return;\n function handleOpenChange({ reason }) {\n if (reason === \"reference-press\" || reason === \"escape-key\") {\n blockFocusRef.current = true;\n }\n }\n events.on(\"openchange\", handleOpenChange);\n return () => {\n events.off(\"openchange\", handleOpenChange);\n };\n }, [events, enabled]);\n useEffect(() => {\n return () => {\n clearTimeoutIfSet(timeoutRef);\n };\n }, []);\n const reference = useMemo(\n () => ({\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n const target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n if (isMacSafari() && !event.relatedTarget) {\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n } else if (!matchesFocusVisible(target)) {\n return;\n }\n }\n onOpenChange(true, event.nativeEvent, \"focus\");\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n const nativeEvent = event.nativeEvent;\n timeoutRef.current = window.setTimeout(() => {\n const activeEl = activeElement(\n elements.domReference ? elements.domReference.ownerDocument : document\n );\n if (!relatedTarget && activeEl === elements.domReference) return;\n if (contains(context.refs.floating.current, activeEl) || contains(elements.domReference, activeEl)) {\n return;\n }\n onOpenChange(false, nativeEvent, \"focus\");\n });\n }\n }),\n [context.refs.floating, elements.domReference, onOpenChange, visibleOnly]\n );\n return useMemo(() => enabled ? { reference } : {}, [enabled, reference]);\n}\nexport {\n useFocus\n};\n//# sourceMappingURL=useFocus.js.map\n"],"mappings":";;;;AAcA,SAAS,cAAc;CACrB,OAAO,MAAM,KAAK,SAAS;AAC7B;AACA,SAAS,SAAS,SAAS,QAAQ,CAAC,GAAG;CACrC,MAAM,EAAE,MAAM,cAAc,QAAQ,SAAS,aAAa;CAC1D,MAAM,EAAE,UAAU,MAAM,cAAc,SAAS;CAC/C,MAAM,gBAAgB,OAAO,KAAK;CAClC,MAAM,aAAa,OAAO,CAAC,CAAC;CAC5B,MAAM,sBAAsB,OAAO,IAAI;CACvC,gBAAgB;EACd,IAAI,CAAC,SAAS;EACd,MAAM,MAAM,YAAY,SAAS,YAAY,CAAC,CAAC,eAAe;EAC9D,SAAS,SAAS;GAChB,IAAI,CAAC,QAAQ,cAAc,SAAS,YAAY,KAAK,SAAS,iBAAiB,cAAc,YAAY,SAAS,YAAY,CAAC,GAAG;IAChI,cAAc,UAAU;GAC1B;EACF;EACA,SAAS,YAAY;GACnB,oBAAoB,UAAU;EAChC;EACA,SAAS,gBAAgB;GACvB,oBAAoB,UAAU;EAChC;EACA,IAAI,iBAAiB,QAAQ,MAAM;EACnC,IAAI,YAAY,GAAG;GACjB,IAAI,iBAAiB,WAAW,WAAW,IAAI;GAC/C,IAAI,iBAAiB,eAAe,eAAe,IAAI;EACzD;EACA,aAAa;GACX,IAAI,oBAAoB,QAAQ,MAAM;GACtC,IAAI,YAAY,GAAG;IACjB,IAAI,oBAAoB,WAAW,WAAW,IAAI;IAClD,IAAI,oBAAoB,eAAe,eAAe,IAAI;GAC5D;EACF;CACF,GAAG;EAAC,SAAS;EAAc;EAAM;CAAO,CAAC;CACzC,gBAAgB;EACd,IAAI,CAAC,SAAS;EACd,IAAI,CAAC,QAAQ;EACb,SAAS,iBAAiB,EAAE,UAAU;GACpC,IAAI,WAAW,qBAAqB,WAAW,cAAc;IAC3D,cAAc,UAAU;GAC1B;EACF;EACA,OAAO,GAAG,cAAc,gBAAgB;EACxC,aAAa;GACX,OAAO,IAAI,cAAc,gBAAgB;EAC3C;CACF,GAAG,CAAC,QAAQ,OAAO,CAAC;CACpB,gBAAgB;EACd,aAAa;GACX,kBAAkB,UAAU;EAC9B;CACF,GAAG,CAAC,CAAC;CACL,MAAM,YAAY,eACT;EACL,eAAe;GACb,cAAc,UAAU;EAC1B;EACA,QAAQ,OAAO;GACb,IAAI,cAAc,SAAS;GAC3B,MAAM,SAAS,UAAU,MAAM,WAAW;GAC1C,IAAI,eAAe,UAAU,MAAM,GAAG;IACpC,IAAI,YAAY,KAAK,CAAC,MAAM,eAAe;KACzC,IAAI,CAAC,oBAAoB,WAAW,CAAC,kBAAkB,MAAM,GAAG;MAC9D;KACF;IACF,OAAO,IAAI,CAAC,oBAAoB,MAAM,GAAG;KACvC;IACF;GACF;GACA,aAAa,MAAM,MAAM,aAAa,OAAO;EAC/C;EACA,OAAO,OAAO;GACZ,cAAc,UAAU;GACxB,MAAM,gBAAgB,MAAM;GAC5B,MAAM,cAAc,MAAM;GAC1B,WAAW,UAAU,OAAO,iBAAiB;IAC3C,MAAM,WAAW,cACf,SAAS,eAAe,SAAS,aAAa,gBAAgB,QAChE;IACA,IAAI,CAAC,iBAAiB,aAAa,SAAS,cAAc;IAC1D,IAAI,SAAS,QAAQ,KAAK,SAAS,SAAS,QAAQ,KAAK,SAAS,SAAS,cAAc,QAAQ,GAAG;KAClG;IACF;IACA,aAAa,OAAO,aAAa,OAAO;GAC1C,CAAC;EACH;CACF,IACA;EAAC,QAAQ,KAAK;EAAU,SAAS;EAAc;EAAc;CAAW,CAC1E;CACA,OAAO,cAAc,UAAU,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC;AACzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFocus.native.js","names":[],"sources":["esm/interactions/useFocus.native.js"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { activeElement, clearTimeoutIfSet, contains, getDocument, getTarget, isElement, isHTMLElement, isMac, isSafari, isTypeableElement, matchesFocusVisible } from \"./utils\";\nfunction isMacSafari() {\n return isMac() && isSafari();\n}\nfunction useFocus(context) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { open, onOpenChange, events, dataRef, elements } = context;\n var { enabled = true, visibleOnly = true } = props;\n var blockFocusRef = useRef(false);\n var timeoutRef = useRef(-1);\n var keyboardModalityRef = useRef(true);\n useEffect(function() {\n if (!enabled) return;\n var win = getDocument(elements.domReference).defaultView || window;\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n function onPointerDown() {\n keyboardModalityRef.current = false;\n }\n win.addEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.addEventListener(\"keydown\", onKeyDown, true);\n win.addEventListener(\"pointerdown\", onPointerDown, true);\n }\n return function() {\n win.removeEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.removeEventListener(\"keydown\", onKeyDown, true);\n win.removeEventListener(\"pointerdown\", onPointerDown, true);\n }\n };\n }, [\n elements.domReference,\n open,\n enabled\n ]);\n useEffect(function() {\n if (!enabled) return;\n if (!events) return;\n function handleOpenChange(param) {\n var { reason } = param;\n if (reason === \"reference-press\" || reason === \"escape-key\") {\n blockFocusRef.current = true;\n }\n }\n events.on(\"openchange\", handleOpenChange);\n return function() {\n events.off(\"openchange\", handleOpenChange);\n };\n }, [\n events,\n enabled\n ]);\n useEffect(function() {\n return function() {\n clearTimeoutIfSet(timeoutRef);\n };\n }, []);\n var reference = useMemo(function() {\n return {\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n var target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n if (isMacSafari() && !event.relatedTarget) {\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n } else if (!matchesFocusVisible(target)) {\n return;\n }\n }\n onOpenChange(true, event.nativeEvent, \"focus\");\n },\n onBlur(event) {\n blockFocusRef.current = false;\n var relatedTarget = event.relatedTarget;\n var nativeEvent = event.nativeEvent;\n timeoutRef.current = window.setTimeout(function() {\n var activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n if (!relatedTarget && activeEl === elements.domReference) return;\n if (contains(context.refs.floating.current, activeEl) || contains(elements.domReference, activeEl)) {\n return;\n }\n onOpenChange(false, nativeEvent, \"focus\");\n });\n }\n };\n }, [\n context.refs.floating,\n elements.domReference,\n onOpenChange,\n visibleOnly\n ]);\n return useMemo(function() {\n return enabled ? {\n reference\n } : {};\n }, [\n enabled,\n reference\n ]);\n}\nexport {\n useFocus\n};\n//# sourceMappingURL=useFocus.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"useFocus.native.js","names":[],"sources":["esm/interactions/useFocus.native.js"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { activeElement, clearTimeoutIfSet, contains, getDocument, getTarget, isElement, isHTMLElement, isMac, isSafari, isTypeableElement, matchesFocusVisible } from \"./utils\";\nfunction isMacSafari() {\n return isMac() && isSafari();\n}\nfunction useFocus(context) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { open, onOpenChange, events, dataRef, elements } = context;\n var { enabled = true, visibleOnly = true } = props;\n var blockFocusRef = useRef(false);\n var timeoutRef = useRef(-1);\n var keyboardModalityRef = useRef(true);\n useEffect(function() {\n if (!enabled) return;\n var win = getDocument(elements.domReference).defaultView || window;\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n function onPointerDown() {\n keyboardModalityRef.current = false;\n }\n win.addEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.addEventListener(\"keydown\", onKeyDown, true);\n win.addEventListener(\"pointerdown\", onPointerDown, true);\n }\n return function() {\n win.removeEventListener(\"blur\", onBlur);\n if (isMacSafari()) {\n win.removeEventListener(\"keydown\", onKeyDown, true);\n win.removeEventListener(\"pointerdown\", onPointerDown, true);\n }\n };\n }, [\n elements.domReference,\n open,\n enabled\n ]);\n useEffect(function() {\n if (!enabled) return;\n if (!events) return;\n function handleOpenChange(param) {\n var { reason } = param;\n if (reason === \"reference-press\" || reason === \"escape-key\") {\n blockFocusRef.current = true;\n }\n }\n events.on(\"openchange\", handleOpenChange);\n return function() {\n events.off(\"openchange\", handleOpenChange);\n };\n }, [\n events,\n enabled\n ]);\n useEffect(function() {\n return function() {\n clearTimeoutIfSet(timeoutRef);\n };\n }, []);\n var reference = useMemo(function() {\n return {\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n var target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n if (isMacSafari() && !event.relatedTarget) {\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n } else if (!matchesFocusVisible(target)) {\n return;\n }\n }\n onOpenChange(true, event.nativeEvent, \"focus\");\n },\n onBlur(event) {\n blockFocusRef.current = false;\n var relatedTarget = event.relatedTarget;\n var nativeEvent = event.nativeEvent;\n timeoutRef.current = window.setTimeout(function() {\n var activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n if (!relatedTarget && activeEl === elements.domReference) return;\n if (contains(context.refs.floating.current, activeEl) || contains(elements.domReference, activeEl)) {\n return;\n }\n onOpenChange(false, nativeEvent, \"focus\");\n });\n }\n };\n }, [\n context.refs.floating,\n elements.domReference,\n onOpenChange,\n visibleOnly\n ]);\n return useMemo(function() {\n return enabled ? {\n reference\n } : {};\n }, [\n enabled,\n reference\n ]);\n}\nexport {\n useFocus\n};\n//# sourceMappingURL=useFocus.js.map\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHover.js","names":[],"sources":["esm/interactions/useHover.js"],"sourcesContent":["import * as React from \"react\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport {\n clearTimeoutIfSet,\n contains,\n getDocument,\n isElement,\n isMouseLikePointerType\n} from \"./utils\";\nconst safePolygonIdentifier = \"data-floating-ui-safe-polygon\";\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === \"number\") {\n return value;\n }\n return value?.[prop];\n}\nfunction useHover(context, props = {}) {\n const { open, onOpenChange, dataRef, events, elements } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const handleCloseRef = React.useRef(handleClose);\n handleCloseRef.current = handleClose;\n const delayRef = React.useRef(delay);\n delayRef.current = delay;\n const openRef = React.useRef(open);\n openRef.current = open;\n const restMsRef = React.useRef(restMs);\n restMsRef.current = restMs;\n const stableOnOpenChange = useEvent(onOpenChange);\n const pointerTypeRef = React.useRef(void 0);\n const timeoutRef = React.useRef(-1);\n const handlerRef = React.useRef(void 0);\n const restTimeoutRef = React.useRef(-1);\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {\n });\n const restTimeoutPendingRef = React.useRef(false);\n const isHoverOpen = useEvent(() => {\n const type = dataRef.current.openEvent?.type;\n return type?.includes(\"mouse\") && type !== \"mousedown\";\n });\n React.useEffect(() => {\n if (!enabled) return;\n if (!events) return;\n function onOpenChange2({ open: open2 }) {\n if (!open2) {\n clearTimeoutIfSet(timeoutRef);\n clearTimeoutIfSet(restTimeoutRef);\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on(\"openchange\", onOpenChange2);\n return () => {\n events.off(\"openchange\", onOpenChange2);\n };\n }, [enabled, events]);\n const closeWithDelay = useEvent(\n (event, runElseBranch = true, reason = \"hover\") => {\n const closeDelay = getDelay(delayRef.current, \"close\", pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeoutIfSet(timeoutRef);\n timeoutRef.current = window.setTimeout(\n () => stableOnOpenChange(false, event, reason),\n closeDelay\n );\n } else if (runElseBranch) {\n clearTimeoutIfSet(timeoutRef);\n stableOnOpenChange(false, event, reason);\n }\n }\n );\n const cleanupMouseMoveHandler = useEvent(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = void 0;\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = false;\n }\n });\n const clearPointerEvents = useEvent(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(elements.floating).body;\n body.style.pointerEvents = \"\";\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n const isClickLikeOpenEvent = useEvent(() => {\n return dataRef.current.openEvent ? [\"click\", \"mousedown\"].includes(dataRef.current.openEvent.type) : false;\n });\n React.useEffect(() => {\n if (!enabled) return;\n function onReferenceMouseEnter(event) {\n clearTimeoutIfSet(timeoutRef);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMsRef.current > 0 && !getDelay(delayRef.current, \"open\")) {\n return;\n }\n const openDelay = getDelay(delayRef.current, \"open\", pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = window.setTimeout(() => {\n if (!openRef.current) {\n stableOnOpenChange(true, event, \"hover\");\n }\n }, openDelay);\n } else if (!open) {\n stableOnOpenChange(true, event, \"hover\");\n }\n }\n function onReferenceMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n clearPointerEvents();\n return;\n }\n if (context.triggerElements?.hasElement(event.relatedTarget)) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(elements.floating);\n clearTimeoutIfSet(restTimeoutRef);\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current) {\n if (!open) {\n clearTimeoutIfSet(timeoutRef);\n }\n const placement = dataRef.current.placement || \"bottom\";\n const reference2 = elements.domReference;\n const floating = elements.floating;\n if (!reference2 || !floating) return;\n handlerRef.current = handleCloseRef.current({\n x: event.clientX,\n y: event.clientY,\n placement,\n elements: {\n reference: reference2,\n floating,\n domReference: reference2\n },\n onClose() {\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = false;\n }\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, true, \"safe-polygon\");\n }\n }\n });\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = true;\n }\n const handler = handlerRef.current;\n doc.addEventListener(\"mousemove\", handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener(\"mousemove\", handler);\n };\n return;\n }\n const shouldClose = pointerTypeRef.current === \"touch\" ? !contains(elements.floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (context.triggerElements?.hasElement(event.relatedTarget)) {\n return;\n }\n const placement = dataRef.current.placement || \"bottom\";\n const reference2 = elements.domReference;\n const floating = elements.floating;\n if (!reference2 || !floating) return;\n handleCloseRef.current?.({\n x: event.clientX,\n y: event.clientY,\n placement,\n elements: {\n reference: reference2,\n floating,\n domReference: reference2\n },\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n function onFloatingMouseEnter() {\n clearTimeoutIfSet(timeoutRef);\n }\n function onFloatingMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (context.triggerElements?.hasElement(event.relatedTarget)) {\n return;\n }\n closeWithDelay(event, false);\n }\n if (isElement(elements.domReference)) {\n const reference2 = elements.domReference;\n const floating = elements.floating;\n if (open) {\n reference2.addEventListener(\"mouseleave\", onScrollMouseLeave);\n }\n if (move) {\n reference2.addEventListener(\"mousemove\", onReferenceMouseEnter, {\n once: true\n });\n }\n reference2.addEventListener(\"mouseenter\", onReferenceMouseEnter);\n reference2.addEventListener(\"mouseleave\", onReferenceMouseLeave);\n if (floating) {\n floating.addEventListener(\"mouseleave\", onScrollMouseLeave);\n floating.addEventListener(\"mouseenter\", onFloatingMouseEnter);\n floating.addEventListener(\"mouseleave\", onFloatingMouseLeave);\n }\n return () => {\n if (open) {\n reference2.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n }\n if (move) {\n reference2.removeEventListener(\"mousemove\", onReferenceMouseEnter);\n }\n reference2.removeEventListener(\"mouseenter\", onReferenceMouseEnter);\n reference2.removeEventListener(\"mouseleave\", onReferenceMouseLeave);\n if (floating) {\n floating.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n floating.removeEventListener(\"mouseenter\", onFloatingMouseEnter);\n floating.removeEventListener(\"mouseleave\", onFloatingMouseLeave);\n }\n cleanupMouseMoveHandler();\n };\n }\n }, [elements, enabled, context, mouseOnly, move, open, dataRef]);\n React.useLayoutEffect(() => {\n if (!enabled) return;\n if (open && handleCloseRef.current?.__options?.blockPointerEvents && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n const body = getDocument(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, \"\");\n const ref = elements.domReference;\n body.style.pointerEvents = \"none\";\n ref.style.pointerEvents = \"auto\";\n floatingEl.style.pointerEvents = \"auto\";\n return () => {\n body.style.pointerEvents = \"\";\n ref.style.pointerEvents = \"\";\n floatingEl.style.pointerEvents = \"\";\n };\n }\n }\n }, [enabled, open, elements, isHoverOpen]);\n React.useLayoutEffect(() => {\n if (!open) {\n pointerTypeRef.current = void 0;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeoutIfSet(timeoutRef);\n clearTimeoutIfSet(restTimeoutRef);\n clearPointerEvents();\n };\n }, [enabled, elements.domReference]);\n const reference = React.useMemo(() => {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n const { nativeEvent } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n stableOnOpenChange(true, nativeEvent, \"hover\");\n }\n }\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n return;\n }\n if (open || restMsRef.current === 0) {\n return;\n }\n if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n return;\n }\n clearTimeoutIfSet(restTimeoutRef);\n if (pointerTypeRef.current === \"touch\") {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeoutRef.current = window.setTimeout(\n handleMouseMove,\n restMsRef.current\n );\n }\n }\n };\n }, [mouseOnly, open]);\n return React.useMemo(() => enabled ? { reference } : {}, [enabled, reference]);\n}\nexport {\n getDelay,\n useHover\n};\n//# sourceMappingURL=useHover.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"useHover.js","names":[],"sources":["esm/interactions/useHover.js"],"sourcesContent":["import * as React from \"react\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport {\n clearTimeoutIfSet,\n contains,\n getDocument,\n isElement,\n isMouseLikePointerType\n} from \"./utils\";\nconst safePolygonIdentifier = \"data-floating-ui-safe-polygon\";\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === \"number\") {\n return value;\n }\n return value?.[prop];\n}\nfunction useHover(context, props = {}) {\n const { open, onOpenChange, dataRef, events, elements } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const handleCloseRef = React.useRef(handleClose);\n handleCloseRef.current = handleClose;\n const delayRef = React.useRef(delay);\n delayRef.current = delay;\n const openRef = React.useRef(open);\n openRef.current = open;\n const restMsRef = React.useRef(restMs);\n restMsRef.current = restMs;\n const stableOnOpenChange = useEvent(onOpenChange);\n const pointerTypeRef = React.useRef(void 0);\n const timeoutRef = React.useRef(-1);\n const handlerRef = React.useRef(void 0);\n const restTimeoutRef = React.useRef(-1);\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {\n });\n const restTimeoutPendingRef = React.useRef(false);\n const isHoverOpen = useEvent(() => {\n const type = dataRef.current.openEvent?.type;\n return type?.includes(\"mouse\") && type !== \"mousedown\";\n });\n React.useEffect(() => {\n if (!enabled) return;\n if (!events) return;\n function onOpenChange2({ open: open2 }) {\n if (!open2) {\n clearTimeoutIfSet(timeoutRef);\n clearTimeoutIfSet(restTimeoutRef);\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on(\"openchange\", onOpenChange2);\n return () => {\n events.off(\"openchange\", onOpenChange2);\n };\n }, [enabled, events]);\n const closeWithDelay = useEvent(\n (event, runElseBranch = true, reason = \"hover\") => {\n const closeDelay = getDelay(delayRef.current, \"close\", pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeoutIfSet(timeoutRef);\n timeoutRef.current = window.setTimeout(\n () => stableOnOpenChange(false, event, reason),\n closeDelay\n );\n } else if (runElseBranch) {\n clearTimeoutIfSet(timeoutRef);\n stableOnOpenChange(false, event, reason);\n }\n }\n );\n const cleanupMouseMoveHandler = useEvent(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = void 0;\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = false;\n }\n });\n const clearPointerEvents = useEvent(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(elements.floating).body;\n body.style.pointerEvents = \"\";\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n const isClickLikeOpenEvent = useEvent(() => {\n return dataRef.current.openEvent ? [\"click\", \"mousedown\"].includes(dataRef.current.openEvent.type) : false;\n });\n React.useEffect(() => {\n if (!enabled) return;\n function onReferenceMouseEnter(event) {\n clearTimeoutIfSet(timeoutRef);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMsRef.current > 0 && !getDelay(delayRef.current, \"open\")) {\n return;\n }\n const openDelay = getDelay(delayRef.current, \"open\", pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = window.setTimeout(() => {\n if (!openRef.current) {\n stableOnOpenChange(true, event, \"hover\");\n }\n }, openDelay);\n } else if (!open) {\n stableOnOpenChange(true, event, \"hover\");\n }\n }\n function onReferenceMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n clearPointerEvents();\n return;\n }\n if (context.triggerElements?.hasElement(event.relatedTarget)) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(elements.floating);\n clearTimeoutIfSet(restTimeoutRef);\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current) {\n if (!open) {\n clearTimeoutIfSet(timeoutRef);\n }\n const placement = dataRef.current.placement || \"bottom\";\n const reference2 = elements.domReference;\n const floating = elements.floating;\n if (!reference2 || !floating) return;\n handlerRef.current = handleCloseRef.current({\n x: event.clientX,\n y: event.clientY,\n placement,\n elements: {\n reference: reference2,\n floating,\n domReference: reference2\n },\n onClose() {\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = false;\n }\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, true, \"safe-polygon\");\n }\n }\n });\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = true;\n }\n const handler = handlerRef.current;\n doc.addEventListener(\"mousemove\", handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener(\"mousemove\", handler);\n };\n return;\n }\n const shouldClose = pointerTypeRef.current === \"touch\" ? !contains(elements.floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (context.triggerElements?.hasElement(event.relatedTarget)) {\n return;\n }\n const placement = dataRef.current.placement || \"bottom\";\n const reference2 = elements.domReference;\n const floating = elements.floating;\n if (!reference2 || !floating) return;\n handleCloseRef.current?.({\n x: event.clientX,\n y: event.clientY,\n placement,\n elements: {\n reference: reference2,\n floating,\n domReference: reference2\n },\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n function onFloatingMouseEnter() {\n clearTimeoutIfSet(timeoutRef);\n }\n function onFloatingMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (context.triggerElements?.hasElement(event.relatedTarget)) {\n return;\n }\n closeWithDelay(event, false);\n }\n if (isElement(elements.domReference)) {\n const reference2 = elements.domReference;\n const floating = elements.floating;\n if (open) {\n reference2.addEventListener(\"mouseleave\", onScrollMouseLeave);\n }\n if (move) {\n reference2.addEventListener(\"mousemove\", onReferenceMouseEnter, {\n once: true\n });\n }\n reference2.addEventListener(\"mouseenter\", onReferenceMouseEnter);\n reference2.addEventListener(\"mouseleave\", onReferenceMouseLeave);\n if (floating) {\n floating.addEventListener(\"mouseleave\", onScrollMouseLeave);\n floating.addEventListener(\"mouseenter\", onFloatingMouseEnter);\n floating.addEventListener(\"mouseleave\", onFloatingMouseLeave);\n }\n return () => {\n if (open) {\n reference2.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n }\n if (move) {\n reference2.removeEventListener(\"mousemove\", onReferenceMouseEnter);\n }\n reference2.removeEventListener(\"mouseenter\", onReferenceMouseEnter);\n reference2.removeEventListener(\"mouseleave\", onReferenceMouseLeave);\n if (floating) {\n floating.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n floating.removeEventListener(\"mouseenter\", onFloatingMouseEnter);\n floating.removeEventListener(\"mouseleave\", onFloatingMouseLeave);\n }\n cleanupMouseMoveHandler();\n };\n }\n }, [elements, enabled, context, mouseOnly, move, open, dataRef]);\n React.useLayoutEffect(() => {\n if (!enabled) return;\n if (open && handleCloseRef.current?.__options?.blockPointerEvents && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n const body = getDocument(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, \"\");\n const ref = elements.domReference;\n body.style.pointerEvents = \"none\";\n ref.style.pointerEvents = \"auto\";\n floatingEl.style.pointerEvents = \"auto\";\n return () => {\n body.style.pointerEvents = \"\";\n ref.style.pointerEvents = \"\";\n floatingEl.style.pointerEvents = \"\";\n };\n }\n }\n }, [enabled, open, elements, isHoverOpen]);\n React.useLayoutEffect(() => {\n if (!open) {\n pointerTypeRef.current = void 0;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeoutIfSet(timeoutRef);\n clearTimeoutIfSet(restTimeoutRef);\n clearPointerEvents();\n };\n }, [enabled, elements.domReference]);\n const reference = React.useMemo(() => {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n const { nativeEvent } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n stableOnOpenChange(true, nativeEvent, \"hover\");\n }\n }\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n return;\n }\n if (open || restMsRef.current === 0) {\n return;\n }\n if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n return;\n }\n clearTimeoutIfSet(restTimeoutRef);\n if (pointerTypeRef.current === \"touch\") {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeoutRef.current = window.setTimeout(\n handleMouseMove,\n restMsRef.current\n );\n }\n }\n };\n }, [mouseOnly, open]);\n return React.useMemo(() => enabled ? { reference } : {}, [enabled, reference]);\n}\nexport {\n getDelay,\n useHover\n};\n//# sourceMappingURL=useHover.js.map\n"],"mappings":"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"}