@tamagui/floating 2.7.7 → 3.0.0-beta.637.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 (151) hide show
  1. package/dist/cjs/Floating.cjs +10 -11
  2. package/dist/cjs/Floating.native.cjs +37 -0
  3. package/dist/cjs/Floating.native.js +20 -20
  4. package/dist/cjs/Floating.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +45 -46
  6. package/dist/cjs/index.native.cjs +74 -0
  7. package/dist/cjs/index.native.js +45 -45
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/interactions/PopupTriggerMap.cjs +36 -39
  10. package/dist/cjs/interactions/PopupTriggerMap.native.cjs +96 -0
  11. package/dist/cjs/interactions/PopupTriggerMap.native.js +76 -75
  12. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
  13. package/dist/cjs/interactions/createFloatingEvents.cjs +36 -39
  14. package/dist/cjs/interactions/createFloatingEvents.native.cjs +52 -0
  15. package/dist/cjs/interactions/createFloatingEvents.native.js +39 -41
  16. package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
  17. package/dist/cjs/interactions/safePolygon.cjs +263 -252
  18. package/dist/cjs/interactions/safePolygon.native.cjs +294 -0
  19. package/dist/cjs/interactions/safePolygon.native.js +271 -259
  20. package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
  21. package/dist/cjs/interactions/types.cjs +10 -11
  22. package/dist/cjs/interactions/types.native.cjs +19 -0
  23. package/dist/cjs/interactions/types.native.js +10 -10
  24. package/dist/cjs/interactions/types.native.js.map +1 -1
  25. package/dist/cjs/interactions/useClick.cjs +96 -105
  26. package/dist/cjs/interactions/useClick.native.cjs +122 -0
  27. package/dist/cjs/interactions/useClick.native.js +101 -109
  28. package/dist/cjs/interactions/useClick.native.js.map +1 -1
  29. package/dist/cjs/interactions/useDelayGroup.cjs +86 -91
  30. package/dist/cjs/interactions/useDelayGroup.native.cjs +119 -0
  31. package/dist/cjs/interactions/useDelayGroup.native.js +92 -96
  32. package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
  33. package/dist/cjs/interactions/useFocus.cjs +108 -115
  34. package/dist/cjs/interactions/useFocus.native.cjs +131 -0
  35. package/dist/cjs/interactions/useFocus.native.js +114 -120
  36. package/dist/cjs/interactions/useFocus.native.js.map +1 -1
  37. package/dist/cjs/interactions/useHover.cjs +321 -335
  38. package/dist/cjs/interactions/useHover.native.cjs +357 -0
  39. package/dist/cjs/interactions/useHover.native.js +333 -347
  40. package/dist/cjs/interactions/useHover.native.js.map +1 -1
  41. package/dist/cjs/interactions/useInnerOffset.cjs +103 -111
  42. package/dist/cjs/interactions/useInnerOffset.native.cjs +132 -0
  43. package/dist/cjs/interactions/useInnerOffset.native.js +113 -120
  44. package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
  45. package/dist/cjs/interactions/useInteractions.cjs +85 -90
  46. package/dist/cjs/interactions/useInteractions.native.cjs +199 -0
  47. package/dist/cjs/interactions/useInteractions.native.js +180 -195
  48. package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
  49. package/dist/cjs/interactions/useListNavigation.cjs +404 -390
  50. package/dist/cjs/interactions/useListNavigation.native.cjs +446 -0
  51. package/dist/cjs/interactions/useListNavigation.native.js +416 -401
  52. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
  53. package/dist/cjs/interactions/useRole.cjs +92 -106
  54. package/dist/cjs/interactions/useRole.native.cjs +121 -0
  55. package/dist/cjs/interactions/useRole.native.js +103 -116
  56. package/dist/cjs/interactions/useRole.native.js.map +1 -1
  57. package/dist/cjs/interactions/useTypeahead.cjs +115 -129
  58. package/dist/cjs/interactions/useTypeahead.native.cjs +144 -0
  59. package/dist/cjs/interactions/useTypeahead.native.js +128 -141
  60. package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
  61. package/dist/cjs/interactions/utils.cjs +126 -143
  62. package/dist/cjs/interactions/utils.native.cjs +209 -0
  63. package/dist/cjs/interactions/utils.native.js +138 -154
  64. package/dist/cjs/interactions/utils.native.js.map +1 -1
  65. package/dist/cjs/middleware/inner.cjs +74 -101
  66. package/dist/cjs/middleware/inner.native.cjs +102 -0
  67. package/dist/cjs/middleware/inner.native.js +83 -109
  68. package/dist/cjs/middleware/inner.native.js.map +1 -1
  69. package/dist/cjs/useFloating.cjs +34 -46
  70. package/dist/cjs/useFloating.native.cjs +56 -0
  71. package/dist/cjs/useFloating.native.js +37 -48
  72. package/dist/cjs/useFloating.native.js.map +1 -1
  73. package/dist/esm/Floating.mjs +1 -2
  74. package/dist/esm/Floating.native.js +6 -4
  75. package/dist/esm/Floating.native.js.map +1 -1
  76. package/dist/esm/index.js +4 -5
  77. package/dist/esm/index.mjs +4 -5
  78. package/dist/esm/index.native.js +4 -5
  79. package/dist/esm/interactions/PopupTriggerMap.mjs +23 -22
  80. package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
  81. package/dist/esm/interactions/PopupTriggerMap.native.js +62 -58
  82. package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
  83. package/dist/esm/interactions/createFloatingEvents.mjs +22 -21
  84. package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
  85. package/dist/esm/interactions/createFloatingEvents.native.js +25 -24
  86. package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
  87. package/dist/esm/interactions/safePolygon.mjs +250 -234
  88. package/dist/esm/interactions/safePolygon.mjs.map +1 -1
  89. package/dist/esm/interactions/safePolygon.native.js +258 -242
  90. package/dist/esm/interactions/safePolygon.native.js.map +1 -1
  91. package/dist/esm/interactions/types.mjs +0 -2
  92. package/dist/esm/interactions/types.native.js +0 -2
  93. package/dist/esm/interactions/useClick.mjs +83 -87
  94. package/dist/esm/interactions/useClick.mjs.map +1 -1
  95. package/dist/esm/interactions/useClick.native.js +88 -92
  96. package/dist/esm/interactions/useClick.native.js.map +1 -1
  97. package/dist/esm/interactions/useDelayGroup.mjs +68 -65
  98. package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
  99. package/dist/esm/interactions/useDelayGroup.native.js +74 -71
  100. package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
  101. package/dist/esm/interactions/useFocus.mjs +95 -97
  102. package/dist/esm/interactions/useFocus.mjs.map +1 -1
  103. package/dist/esm/interactions/useFocus.native.js +101 -103
  104. package/dist/esm/interactions/useFocus.native.js.map +1 -1
  105. package/dist/esm/interactions/useHover.mjs +304 -310
  106. package/dist/esm/interactions/useHover.mjs.map +1 -1
  107. package/dist/esm/interactions/useHover.native.js +316 -323
  108. package/dist/esm/interactions/useHover.native.js.map +1 -1
  109. package/dist/esm/interactions/useInnerOffset.mjs +87 -85
  110. package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
  111. package/dist/esm/interactions/useInnerOffset.native.js +97 -95
  112. package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
  113. package/dist/esm/interactions/useInteractions.mjs +71 -72
  114. package/dist/esm/interactions/useInteractions.mjs.map +1 -1
  115. package/dist/esm/interactions/useInteractions.native.js +166 -178
  116. package/dist/esm/interactions/useInteractions.native.js.map +1 -1
  117. package/dist/esm/interactions/useListNavigation.mjs +392 -373
  118. package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
  119. package/dist/esm/interactions/useListNavigation.native.js +404 -385
  120. package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
  121. package/dist/esm/interactions/useRole.mjs +76 -80
  122. package/dist/esm/interactions/useRole.mjs.map +1 -1
  123. package/dist/esm/interactions/useRole.native.js +87 -91
  124. package/dist/esm/interactions/useRole.native.js.map +1 -1
  125. package/dist/esm/interactions/useTypeahead.mjs +102 -111
  126. package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
  127. package/dist/esm/interactions/useTypeahead.native.js +115 -124
  128. package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
  129. package/dist/esm/interactions/utils.mjs +91 -106
  130. package/dist/esm/interactions/utils.mjs.map +1 -1
  131. package/dist/esm/interactions/utils.native.js +103 -118
  132. package/dist/esm/interactions/utils.native.js.map +1 -1
  133. package/dist/esm/middleware/inner.mjs +58 -75
  134. package/dist/esm/middleware/inner.mjs.map +1 -1
  135. package/dist/esm/middleware/inner.native.js +67 -84
  136. package/dist/esm/middleware/inner.native.js.map +1 -1
  137. package/dist/esm/useFloating.mjs +17 -21
  138. package/dist/esm/useFloating.mjs.map +1 -1
  139. package/dist/esm/useFloating.native.js +19 -23
  140. package/dist/esm/useFloating.native.js.map +1 -1
  141. package/package.json +6 -5
  142. package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
  143. package/types/interactions/useInteractions.d.ts.map +1 -1
  144. package/types/middleware/inner.d.ts.map +1 -1
  145. package/types/useFloating.d.ts.map +1 -1
  146. package/dist/esm/Floating.mjs.map +0 -1
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/index.mjs.map +0 -1
  149. package/dist/esm/index.native.js.map +0 -1
  150. package/dist/esm/interactions/types.mjs.map +0 -1
  151. package/dist/esm/interactions/types.native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useHover_exports","__export","getDelay","useHover","module","exports","React","__toESM","require","import_use_event","import_utils","safePolygonIdentifier","prop","pointerType","isMouseLikePointerType","context","props","arguments","length","open","onOpenChange","dataRef","events","elements","enabled","delay","handleClose","mouseOnly","restMs","move","handleCloseRef","useRef","current","delayRef","openRef","restMsRef","stableOnOpenChange","useEvent","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","restTimeoutPendingRef","isHoverOpen","_dataRef_current_openEvent","type","openEvent","includes","useEffect","onOpenChange2","param","open2","clearTimeoutIfSet","on","off","closeWithDelay","event","runElseBranch","reason","closeDelay","window","setTimeout","cleanupMouseMoveHandler","handleCloseActiveRef","clearPointerEvents","body","getDocument","floating","style","pointerEvents","removeAttribute","isClickLikeOpenEvent","onReferenceMouseEnter","openDelay","onReferenceMouseLeave","_context_triggerElements","triggerElements","hasElement","relatedTarget","doc","placement","reference3","domReference","floating2","x","clientX","y","clientY","reference","onClose","handler","addEventListener","removeEventListener","shouldClose","contains","onScrollMouseLeave","_handleCloseRef_current","call","onFloatingMouseEnter","onFloatingMouseLeave","isElement","reference2","once","useLayoutEffect","_handleCloseRef_current___options","__options","blockPointerEvents","floatingEl","setAttribute","ref","useMemo","setPointerRef","onPointerDown","onPointerEnter","onMouseMove","nativeEvent","handleMouseMove"],"sources":["../../../src/interactions/useHover.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useHover.native.js","names":[],"sources":["cjs/interactions/useHover.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 useHover_exports = {};\n__export(useHover_exports, {\n getDelay: () => getDelay,\n useHover: () => useHover\n});\nmodule.exports = __toCommonJS(useHover_exports);\nvar React = __toESM(require(\"react\"), 1);\nvar import_use_event = require(\"@tamagui/use-event\");\nvar import_utils = require(\"./utils\");\nvar safePolygonIdentifier = \"data-floating-ui-safe-polygon\";\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !(0, import_utils.isMouseLikePointerType)(pointerType)) {\n return 0;\n }\n if (typeof value === \"number\") {\n return value;\n }\n return value === null || value === void 0 ? void 0 : value[prop];\n}\nfunction useHover(context) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { open, onOpenChange, dataRef, events, elements } = context;\n var { enabled = true, delay = 0, handleClose = null, mouseOnly = false, restMs = 0, move = true } = props;\n var handleCloseRef = React.useRef(handleClose);\n handleCloseRef.current = handleClose;\n var delayRef = React.useRef(delay);\n delayRef.current = delay;\n var openRef = React.useRef(open);\n openRef.current = open;\n var restMsRef = React.useRef(restMs);\n restMsRef.current = restMs;\n var stableOnOpenChange = (0, import_use_event.useEvent)(onOpenChange);\n var pointerTypeRef = React.useRef(void 0);\n var timeoutRef = React.useRef(-1);\n var handlerRef = React.useRef(void 0);\n var restTimeoutRef = React.useRef(-1);\n var blockMouseMoveRef = React.useRef(true);\n var performedPointerEventsMutationRef = React.useRef(false);\n var unbindMouseMoveRef = React.useRef(function() {\n });\n var restTimeoutPendingRef = React.useRef(false);\n var isHoverOpen = (0, import_use_event.useEvent)(function() {\n var _dataRef_current_openEvent;\n var type = (_dataRef_current_openEvent = dataRef.current.openEvent) === null || _dataRef_current_openEvent === void 0 ? void 0 : _dataRef_current_openEvent.type;\n return (type === null || type === void 0 ? void 0 : type.includes(\"mouse\")) && type !== \"mousedown\";\n });\n React.useEffect(function() {\n if (!enabled) return;\n if (!events) return;\n function onOpenChange2(param) {\n var { open: open2 } = param;\n if (!open2) {\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n (0, import_utils.clearTimeoutIfSet)(restTimeoutRef);\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on(\"openchange\", onOpenChange2);\n return function() {\n events.off(\"openchange\", onOpenChange2);\n };\n }, [\n enabled,\n events\n ]);\n var closeWithDelay = (0, import_use_event.useEvent)(function(event) {\n var runElseBranch = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, reason = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"hover\";\n var closeDelay = getDelay(delayRef.current, \"close\", pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n timeoutRef.current = window.setTimeout(function() {\n return stableOnOpenChange(false, event, reason);\n }, closeDelay);\n } else if (runElseBranch) {\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n stableOnOpenChange(false, event, reason);\n }\n });\n var cleanupMouseMoveHandler = (0, import_use_event.useEvent)(function() {\n unbindMouseMoveRef.current();\n handlerRef.current = void 0;\n if (context.handleCloseActiveRef) {\n context.handleCloseActiveRef.current = false;\n }\n });\n var clearPointerEvents = (0, import_use_event.useEvent)(function() {\n if (performedPointerEventsMutationRef.current) {\n var body = (0, import_utils.getDocument)(elements.floating).body;\n body.style.pointerEvents = \"\";\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n var isClickLikeOpenEvent = (0, import_use_event.useEvent)(function() {\n return dataRef.current.openEvent ? [\n \"click\",\n \"mousedown\"\n ].includes(dataRef.current.openEvent.type) : false;\n });\n React.useEffect(function() {\n if (!enabled) return;\n function onReferenceMouseEnter(event) {\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !(0, import_utils.isMouseLikePointerType)(pointerTypeRef.current) || restMsRef.current > 0 && !getDelay(delayRef.current, \"open\")) {\n return;\n }\n var openDelay = getDelay(delayRef.current, \"open\", pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = window.setTimeout(function() {\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 var _context_triggerElements;\n if (isClickLikeOpenEvent()) {\n clearPointerEvents();\n return;\n }\n if ((_context_triggerElements = context.triggerElements) === null || _context_triggerElements === void 0 ? void 0 : _context_triggerElements.hasElement(event.relatedTarget)) {\n return;\n }\n unbindMouseMoveRef.current();\n var doc = (0, import_utils.getDocument)(elements.floating);\n (0, import_utils.clearTimeoutIfSet)(restTimeoutRef);\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current) {\n if (!open) {\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n }\n var placement = dataRef.current.placement || \"bottom\";\n var reference3 = elements.domReference;\n var floating2 = elements.floating;\n if (!reference3 || !floating2) return;\n handlerRef.current = handleCloseRef.current({\n x: event.clientX,\n y: event.clientY,\n placement,\n elements: {\n reference: reference3,\n floating: floating2,\n domReference: reference3\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 var handler = handlerRef.current;\n doc.addEventListener(\"mousemove\", handler);\n unbindMouseMoveRef.current = function() {\n doc.removeEventListener(\"mousemove\", handler);\n };\n return;\n }\n var shouldClose = pointerTypeRef.current === \"touch\" ? !(0, import_utils.contains)(elements.floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n function onScrollMouseLeave(event) {\n var _context_triggerElements, _handleCloseRef_current;\n if (isClickLikeOpenEvent()) return;\n if ((_context_triggerElements = context.triggerElements) === null || _context_triggerElements === void 0 ? void 0 : _context_triggerElements.hasElement(event.relatedTarget)) {\n return;\n }\n var placement = dataRef.current.placement || \"bottom\";\n var reference3 = elements.domReference;\n var floating2 = elements.floating;\n if (!reference3 || !floating2) return;\n (_handleCloseRef_current = handleCloseRef.current) === null || _handleCloseRef_current === void 0 ? void 0 : _handleCloseRef_current.call(handleCloseRef, {\n x: event.clientX,\n y: event.clientY,\n placement,\n elements: {\n reference: reference3,\n floating: floating2,\n domReference: reference3\n },\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n function onFloatingMouseEnter() {\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n }\n function onFloatingMouseLeave(event) {\n var _context_triggerElements;\n if (isClickLikeOpenEvent()) return;\n if ((_context_triggerElements = context.triggerElements) === null || _context_triggerElements === void 0 ? void 0 : _context_triggerElements.hasElement(event.relatedTarget)) {\n return;\n }\n closeWithDelay(event, false);\n }\n if ((0, import_utils.isElement)(elements.domReference)) {\n var reference2 = elements.domReference;\n var 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 function() {\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 }, [\n elements,\n enabled,\n context,\n mouseOnly,\n move,\n open,\n dataRef\n ]);\n React.useLayoutEffect(function() {\n var _handleCloseRef_current___options, _handleCloseRef_current;\n if (!enabled) return;\n if (open && ((_handleCloseRef_current = handleCloseRef.current) === null || _handleCloseRef_current === void 0 ? void 0 : (_handleCloseRef_current___options = _handleCloseRef_current.__options) === null || _handleCloseRef_current___options === void 0 ? void 0 : _handleCloseRef_current___options.blockPointerEvents) && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n var floatingEl = elements.floating;\n if ((0, import_utils.isElement)(elements.domReference) && floatingEl) {\n var body = (0, import_utils.getDocument)(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, \"\");\n var ref = elements.domReference;\n body.style.pointerEvents = \"none\";\n ref.style.pointerEvents = \"auto\";\n floatingEl.style.pointerEvents = \"auto\";\n return function() {\n body.style.pointerEvents = \"\";\n ref.style.pointerEvents = \"\";\n floatingEl.style.pointerEvents = \"\";\n };\n }\n }\n }, [\n enabled,\n open,\n elements,\n isHoverOpen\n ]);\n React.useLayoutEffect(function() {\n if (!open) {\n pointerTypeRef.current = void 0;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [\n open\n ]);\n React.useEffect(function() {\n return function() {\n cleanupMouseMoveHandler();\n (0, import_utils.clearTimeoutIfSet)(timeoutRef);\n (0, import_utils.clearTimeoutIfSet)(restTimeoutRef);\n clearPointerEvents();\n };\n }, [\n enabled,\n elements.domReference\n ]);\n var reference = React.useMemo(function() {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n var { nativeEvent } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n stableOnOpenChange(true, nativeEvent, \"hover\");\n }\n }\n if (mouseOnly && !(0, import_utils.isMouseLikePointerType)(pointerTypeRef.current)) {\n return;\n }\n if (open || restMsRef.current === 0) {\n return;\n }\n if (restTimeoutPendingRef.current && Math.pow(event.movementX, 2) + Math.pow(event.movementY, 2) < 2) {\n return;\n }\n (0, import_utils.clearTimeoutIfSet)(restTimeoutRef);\n if (pointerTypeRef.current === \"touch\") {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeoutRef.current = window.setTimeout(handleMouseMove, restMsRef.current);\n }\n }\n };\n }, [\n mouseOnly,\n open\n ]);\n return React.useMemo(function() {\n return enabled ? {\n reference\n } : {};\n }, [\n enabled,\n reference\n ]);\n}\n//# sourceMappingURL=useHover.js.map\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -5,124 +6,115 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
21
22
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
30
26
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
28
  var useInnerOffset_exports = {};
35
- __export(useInnerOffset_exports, {
36
- useInnerOffset: () => useInnerOffset
37
- });
29
+ __export(useInnerOffset_exports, { useInnerOffset: () => useInnerOffset });
38
30
  module.exports = __toCommonJS(useInnerOffset_exports);
39
31
  var React = __toESM(require("react"), 1);
40
32
  var ReactDOM = __toESM(require("react-dom"), 1);
41
33
  var import_use_event = require("@tamagui/use-event");
42
34
  function useInnerOffset(context, props) {
43
- const {
44
- open,
45
- elements
46
- } = context;
47
- const {
48
- enabled = true,
49
- overflowRef,
50
- scrollRef,
51
- onChange: unstable_onChange
52
- } = props;
53
- const onChange = (0, import_use_event.useEvent)(unstable_onChange);
54
- const controlledScrollingRef = React.useRef(false);
55
- const prevScrollTopRef = React.useRef(null);
56
- const initialOverflowRef = React.useRef(null);
57
- React.useEffect(() => {
58
- if (!enabled) return;
59
- function onWheel(e) {
60
- if (e.ctrlKey || !el || overflowRef.current == null) {
61
- return;
62
- }
63
- const dY = e.deltaY;
64
- const isAtTop = overflowRef.current.top >= -0.5;
65
- const isAtBottom = overflowRef.current.bottom >= -0.5;
66
- const remainingScroll = el.scrollHeight - el.clientHeight;
67
- const sign = dY < 0 ? -1 : 1;
68
- const method = dY < 0 ? "max" : "min";
69
- if (el.scrollHeight <= el.clientHeight) {
70
- return;
71
- }
72
- if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {
73
- e.preventDefault();
74
- ReactDOM.flushSync(() => {
75
- onChange(d => d + Math[method](dY, remainingScroll * sign));
76
- });
77
- } else if (/firefox/i.test(navigator.userAgent)) {
78
- el.scrollTop += dY;
79
- }
80
- }
81
- const el = scrollRef?.current || elements.floating;
82
- if (open && el) {
83
- el.addEventListener("wheel", onWheel);
84
- requestAnimationFrame(() => {
85
- prevScrollTopRef.current = el.scrollTop;
86
- if (overflowRef.current != null) {
87
- initialOverflowRef.current = {
88
- ...overflowRef.current
89
- };
90
- }
91
- });
92
- return () => {
93
- prevScrollTopRef.current = null;
94
- initialOverflowRef.current = null;
95
- el.removeEventListener("wheel", onWheel);
96
- };
97
- }
98
- }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);
99
- const floating = React.useMemo(() => ({
100
- onKeyDown() {
101
- controlledScrollingRef.current = true;
102
- },
103
- onWheel() {
104
- controlledScrollingRef.current = false;
105
- },
106
- onPointerMove() {
107
- controlledScrollingRef.current = false;
108
- },
109
- onScroll() {
110
- const el = scrollRef?.current || elements.floating;
111
- if (!overflowRef.current || !el || !controlledScrollingRef.current) {
112
- return;
113
- }
114
- if (prevScrollTopRef.current !== null) {
115
- const scrollDiff = el.scrollTop - prevScrollTopRef.current;
116
- if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {
117
- ReactDOM.flushSync(() => onChange(d => d + scrollDiff));
118
- }
119
- }
120
- requestAnimationFrame(() => {
121
- prevScrollTopRef.current = el.scrollTop;
122
- });
123
- }
124
- }), [elements.floating, onChange, overflowRef, scrollRef]);
125
- return React.useMemo(() => enabled ? {
126
- floating
127
- } : {}, [enabled, floating]);
128
- }
35
+ const { open, elements } = context;
36
+ const { enabled = true, overflowRef, scrollRef, onChange: unstable_onChange } = props;
37
+ const onChange = (0, import_use_event.useEvent)(unstable_onChange);
38
+ const controlledScrollingRef = React.useRef(false);
39
+ const prevScrollTopRef = React.useRef(null);
40
+ const initialOverflowRef = React.useRef(null);
41
+ React.useEffect(() => {
42
+ if (!enabled) return;
43
+ function onWheel(e) {
44
+ if (e.ctrlKey || !el || overflowRef.current == null) {
45
+ return;
46
+ }
47
+ const dY = e.deltaY;
48
+ const isAtTop = overflowRef.current.top >= -.5;
49
+ const isAtBottom = overflowRef.current.bottom >= -.5;
50
+ const remainingScroll = el.scrollHeight - el.clientHeight;
51
+ const sign = dY < 0 ? -1 : 1;
52
+ const method = dY < 0 ? "max" : "min";
53
+ if (el.scrollHeight <= el.clientHeight) {
54
+ return;
55
+ }
56
+ if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {
57
+ e.preventDefault();
58
+ ReactDOM.flushSync(() => {
59
+ onChange((d) => d + Math[method](dY, remainingScroll * sign));
60
+ });
61
+ } else if (/firefox/i.test(navigator.userAgent)) {
62
+ el.scrollTop += dY;
63
+ }
64
+ }
65
+ const el = scrollRef?.current || elements.floating;
66
+ if (open && el) {
67
+ el.addEventListener("wheel", onWheel);
68
+ requestAnimationFrame(() => {
69
+ prevScrollTopRef.current = el.scrollTop;
70
+ if (overflowRef.current != null) {
71
+ initialOverflowRef.current = { ...overflowRef.current };
72
+ }
73
+ });
74
+ return () => {
75
+ prevScrollTopRef.current = null;
76
+ initialOverflowRef.current = null;
77
+ el.removeEventListener("wheel", onWheel);
78
+ };
79
+ }
80
+ }, [
81
+ enabled,
82
+ open,
83
+ elements.floating,
84
+ overflowRef,
85
+ scrollRef,
86
+ onChange
87
+ ]);
88
+ const floating = React.useMemo(() => ({
89
+ onKeyDown() {
90
+ controlledScrollingRef.current = true;
91
+ },
92
+ onWheel() {
93
+ controlledScrollingRef.current = false;
94
+ },
95
+ onPointerMove() {
96
+ controlledScrollingRef.current = false;
97
+ },
98
+ onScroll() {
99
+ const el = scrollRef?.current || elements.floating;
100
+ if (!overflowRef.current || !el || !controlledScrollingRef.current) {
101
+ return;
102
+ }
103
+ if (prevScrollTopRef.current !== null) {
104
+ const scrollDiff = el.scrollTop - prevScrollTopRef.current;
105
+ if (overflowRef.current.bottom < -.5 && scrollDiff < -1 || overflowRef.current.top < -.5 && scrollDiff > 1) {
106
+ ReactDOM.flushSync(() => onChange((d) => d + scrollDiff));
107
+ }
108
+ }
109
+ requestAnimationFrame(() => {
110
+ prevScrollTopRef.current = el.scrollTop;
111
+ });
112
+ }
113
+ }), [
114
+ elements.floating,
115
+ onChange,
116
+ overflowRef,
117
+ scrollRef
118
+ ]);
119
+ return React.useMemo(() => enabled ? { floating } : {}, [enabled, floating]);
120
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var useInnerOffset_exports = {};
31
+ __export(useInnerOffset_exports, { useInnerOffset: () => useInnerOffset });
32
+ module.exports = __toCommonJS(useInnerOffset_exports);
33
+ var React = __toESM(require("react"), 1);
34
+ var ReactDOM = __toESM(require("react-dom"), 1);
35
+ var import_use_event = require("@tamagui/use-event");
36
+ function useInnerOffset(context, props) {
37
+ var { open, elements } = context;
38
+ var { enabled = true, overflowRef, scrollRef, onChange: unstable_onChange } = props;
39
+ var onChange = (0, import_use_event.useEvent)(unstable_onChange);
40
+ var controlledScrollingRef = React.useRef(false);
41
+ var prevScrollTopRef = React.useRef(null);
42
+ var initialOverflowRef = React.useRef(null);
43
+ React.useEffect(function() {
44
+ if (!enabled) return;
45
+ function onWheel(e) {
46
+ if (e.ctrlKey || !el || overflowRef.current == null) {
47
+ return;
48
+ }
49
+ var dY = e.deltaY;
50
+ var isAtTop = overflowRef.current.top >= -.5;
51
+ var isAtBottom = overflowRef.current.bottom >= -.5;
52
+ var remainingScroll = el.scrollHeight - el.clientHeight;
53
+ var sign = dY < 0 ? -1 : 1;
54
+ var method = dY < 0 ? "max" : "min";
55
+ if (el.scrollHeight <= el.clientHeight) {
56
+ return;
57
+ }
58
+ if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {
59
+ e.preventDefault();
60
+ ReactDOM.flushSync(function() {
61
+ onChange(function(d) {
62
+ return d + Math[method](dY, remainingScroll * sign);
63
+ });
64
+ });
65
+ } else if (/firefox/i.test(navigator.userAgent)) {
66
+ el.scrollTop += dY;
67
+ }
68
+ }
69
+ var el = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || elements.floating;
70
+ if (open && el) {
71
+ el.addEventListener("wheel", onWheel);
72
+ requestAnimationFrame(function() {
73
+ prevScrollTopRef.current = el.scrollTop;
74
+ if (overflowRef.current != null) {
75
+ initialOverflowRef.current = { ...overflowRef.current };
76
+ }
77
+ });
78
+ return function() {
79
+ prevScrollTopRef.current = null;
80
+ initialOverflowRef.current = null;
81
+ el.removeEventListener("wheel", onWheel);
82
+ };
83
+ }
84
+ }, [
85
+ enabled,
86
+ open,
87
+ elements.floating,
88
+ overflowRef,
89
+ scrollRef,
90
+ onChange
91
+ ]);
92
+ var floating = React.useMemo(function() {
93
+ return {
94
+ onKeyDown() {
95
+ controlledScrollingRef.current = true;
96
+ },
97
+ onWheel() {
98
+ controlledScrollingRef.current = false;
99
+ },
100
+ onPointerMove() {
101
+ controlledScrollingRef.current = false;
102
+ },
103
+ onScroll() {
104
+ var el = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || elements.floating;
105
+ if (!overflowRef.current || !el || !controlledScrollingRef.current) {
106
+ return;
107
+ }
108
+ if (prevScrollTopRef.current !== null) {
109
+ var scrollDiff = el.scrollTop - prevScrollTopRef.current;
110
+ if (overflowRef.current.bottom < -.5 && scrollDiff < -1 || overflowRef.current.top < -.5 && scrollDiff > 1) {
111
+ ReactDOM.flushSync(function() {
112
+ return onChange(function(d) {
113
+ return d + scrollDiff;
114
+ });
115
+ });
116
+ }
117
+ }
118
+ requestAnimationFrame(function() {
119
+ prevScrollTopRef.current = el.scrollTop;
120
+ });
121
+ }
122
+ };
123
+ }, [
124
+ elements.floating,
125
+ onChange,
126
+ overflowRef,
127
+ scrollRef
128
+ ]);
129
+ return React.useMemo(function() {
130
+ return enabled ? { floating } : {};
131
+ }, [enabled, floating]);
132
+ }