@tamagui/floating 3.0.0-beta.924.1 → 3.0.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 (37) hide show
  1. package/dist/cjs/interactions/useInteractions.cjs +35 -45
  2. package/dist/cjs/interactions/useInteractions.native.cjs +101 -100
  3. package/dist/cjs/interactions/useInteractions.native.js +101 -100
  4. package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
  5. package/dist/cjs/interactions/useListNavigation.cjs +4 -3
  6. package/dist/cjs/interactions/useListNavigation.native.cjs +5 -4
  7. package/dist/cjs/interactions/useListNavigation.native.js +5 -4
  8. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
  9. package/dist/cjs/interactions/utils.native.cjs +3 -10
  10. package/dist/cjs/interactions/utils.native.js +3 -10
  11. package/dist/cjs/interactions/utils.native.js.map +1 -1
  12. package/dist/cjs/middleware/inner.cjs +5 -3
  13. package/dist/cjs/middleware/inner.native.cjs +10 -7
  14. package/dist/cjs/middleware/inner.native.js +10 -7
  15. package/dist/cjs/middleware/inner.native.js.map +1 -1
  16. package/dist/esm/interactions/useInteractions.mjs +36 -45
  17. package/dist/esm/interactions/useInteractions.mjs.map +1 -1
  18. package/dist/esm/interactions/useInteractions.native.js +102 -100
  19. package/dist/esm/interactions/useInteractions.native.js.map +1 -1
  20. package/dist/esm/interactions/useListNavigation.mjs +4 -3
  21. package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
  22. package/dist/esm/interactions/useListNavigation.native.js +5 -4
  23. package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
  24. package/dist/esm/interactions/utils.native.js +3 -10
  25. package/dist/esm/interactions/utils.native.js.map +1 -1
  26. package/dist/esm/middleware/inner.mjs +5 -3
  27. package/dist/esm/middleware/inner.mjs.map +1 -1
  28. package/dist/esm/middleware/inner.native.js +10 -7
  29. package/dist/esm/middleware/inner.native.js.map +1 -1
  30. package/package.json +7 -5
  31. package/src/interactions/useInteractions.ts +61 -59
  32. package/src/interactions/useListNavigation.ts +7 -2
  33. package/src/middleware/inner.ts +20 -9
  34. package/types/interactions/useInteractions.d.ts +3 -3
  35. package/types/interactions/useInteractions.d.ts.map +1 -1
  36. package/types/interactions/useListNavigation.d.ts.map +1 -1
  37. package/types/middleware/inner.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useListNavigation.native.js","names":[],"sources":["esm/interactions/useListNavigation.native.js"],"sourcesContent":["import { useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport { activeElement, enqueueFocus, findNonDisabledListIndex, getMinListIndex, getMaxListIndex, isHTMLElement, isIndexOutOfListBounds, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent } from \"./utils\";\nvar ARROW_UP = \"ArrowUp\";\nvar ARROW_DOWN = \"ArrowDown\";\nvar ARROW_LEFT = \"ArrowLeft\";\nvar ARROW_RIGHT = \"ArrowRight\";\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case \"vertical\":\n return vertical;\n case \"horizontal\":\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n var vertical = key === ARROW_UP || key === ARROW_DOWN;\n var horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n var vertical = key === ARROW_DOWN;\n var horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === \"Enter\" || key === \" \" || key === \"\";\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n var vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n var horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n var vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n var horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction useListNavigation(context, props) {\n var { open, onOpenChange, elements } = context;\n var { listRef, activeIndex, onNavigate: unstable_onNavigate = function() {\n }, enabled = true, selectedIndex = null, allowEscape = false, loop = false, nested = false, rtl = false, virtual = false, focusItemOnOpen = \"auto\", focusItemOnHover = true, openOnArrowKeyDown = true, disabledIndices = void 0, orientation = \"vertical\", scrollItemIntoView = true } = props;\n var typeableComboboxReference = isTypeableCombobox(elements.domReference);\n var focusItemOnOpenRef = useRef(focusItemOnOpen);\n var indexRef = useRef(selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : -1);\n var keyRef = useRef(null);\n var isPointerModalityRef = useRef(true);\n var previousMountedRef = useRef(!!elements.floating);\n var previousOpenRef = useRef(open);\n var forceSyncFocusRef = useRef(false);\n var forceScrollIntoViewRef = useRef(false);\n var disabledIndicesRef = useRef(disabledIndices);\n disabledIndicesRef.current = disabledIndices;\n var latestOpenRef = useRef(open);\n latestOpenRef.current = open;\n var scrollItemIntoViewRef = useRef(scrollItemIntoView);\n scrollItemIntoViewRef.current = scrollItemIntoView;\n var selectedIndexRef = useRef(selectedIndex);\n selectedIndexRef.current = selectedIndex;\n var stableOnNavigate = useEvent(unstable_onNavigate);\n var [activeId, setActiveId] = useState();\n var onNavigate = useEvent(function() {\n stableOnNavigate(indexRef.current === -1 ? null : indexRef.current);\n });\n var previousOnNavigateRef = useRef(onNavigate);\n var focusItem = useEvent(function() {\n function runFocus(item2) {\n if (virtual) {\n setActiveId(item2.id);\n } else {\n enqueueFocus(item2, {\n sync: forceSyncFocusRef.current,\n preventScroll: true\n });\n }\n }\n var initialItem = listRef.current[indexRef.current];\n var forceScrollIntoView = forceScrollIntoViewRef.current;\n if (initialItem) {\n runFocus(initialItem);\n }\n var scheduler = forceSyncFocusRef.current ? function(v) {\n return v();\n } : requestAnimationFrame;\n scheduler(function() {\n var waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) return;\n if (!initialItem) {\n runFocus(waitedItem);\n }\n var scrollIntoViewOptions = scrollItemIntoViewRef.current;\n var shouldScrollIntoView = scrollIntoViewOptions && waitedItem && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n var _waitedItem_scrollIntoView;\n (_waitedItem_scrollIntoView = waitedItem.scrollIntoView) === null || _waitedItem_scrollIntoView === void 0 ? void 0 : _waitedItem_scrollIntoView.call(waitedItem, typeof scrollIntoViewOptions === \"boolean\" ? {\n block: \"nearest\",\n inline: \"nearest\"\n } : scrollIntoViewOptions);\n }\n });\n });\n useLayoutEffect(function() {\n if (!enabled) return;\n if (open && elements.floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n forceScrollIntoViewRef.current = true;\n indexRef.current = selectedIndex;\n onNavigate();\n }\n } else if (previousMountedRef.current) {\n indexRef.current = -1;\n previousOnNavigateRef.current();\n }\n }, [\n enabled,\n open,\n elements.floating,\n selectedIndex,\n onNavigate\n ]);\n useLayoutEffect(function() {\n if (!enabled) return;\n if (!open) return;\n if (!elements.floating) return;\n if (activeIndex == null) {\n forceSyncFocusRef.current = false;\n if (selectedIndexRef.current != null) {\n return;\n }\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem();\n }\n if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n var runs = 0;\n var waitForListPopulated = function() {\n if (listRef.current[0] == null) {\n if (runs < 2) {\n var scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinListIndex(listRef, disabledIndicesRef.current) : getMaxListIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate();\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfListBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem();\n forceScrollIntoViewRef.current = false;\n }\n }, [\n enabled,\n open,\n elements.floating,\n activeIndex,\n selectedIndexRef,\n nested,\n listRef,\n orientation,\n rtl,\n onNavigate,\n focusItem,\n disabledIndicesRef\n ]);\n useLayoutEffect(function() {\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n previousMountedRef.current = !!elements.floating;\n });\n useLayoutEffect(function() {\n if (!open) {\n keyRef.current = null;\n focusItemOnOpenRef.current = focusItemOnOpen;\n }\n }, [\n open,\n focusItemOnOpen\n ]);\n var hasActiveIndex = activeIndex != null;\n var commonOnKeyDown = useEvent(function(event) {\n isPointerModalityRef.current = false;\n forceSyncFocusRef.current = true;\n if (event.which === 229) {\n return;\n }\n if (!latestOpenRef.current && event.currentTarget === elements.floating) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent, \"list-navigation\");\n if (isHTMLElement(elements.domReference)) {\n elements.domReference.focus();\n }\n return;\n }\n var currentIndex = indexRef.current;\n var minIndex = getMinListIndex(listRef, disabledIndices);\n var maxIndex = getMaxListIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === \"Home\") {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate();\n }\n if (event.key === \"End\") {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate();\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate();\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfListBounds(listRef, indexRef.current)) {\n indexRef.current = -1;\n }\n onNavigate();\n }\n });\n var ariaActiveDescendantProp = useMemo(function() {\n return virtual && open && hasActiveIndex && {\n \"aria-activedescendant\": activeId\n };\n }, [\n virtual,\n open,\n hasActiveIndex,\n activeId\n ]);\n var floating = useMemo(function() {\n return {\n \"aria-orientation\": orientation === \"both\" ? void 0 : orientation,\n ...!typeableComboboxReference ? ariaActiveDescendantProp : {},\n onKeyDown: commonOnKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [\n ariaActiveDescendantProp,\n commonOnKeyDown,\n orientation,\n typeableComboboxReference\n ]);\n var reference = useMemo(function() {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === \"auto\" && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === \"auto\" && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n return {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n var isArrowKey = event.key.startsWith(\"Arrow\");\n var isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n var isMainKey = isMainOrientationKey(event.key, orientation);\n var isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === \"Enter\" || event.key.trim() === \"\";\n if (virtual && open) {\n return commonOnKeyDown(event);\n }\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n keyRef.current = event.key;\n }\n if (nested) {\n if (isCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinListIndex(listRef, disabledIndicesRef.current);\n onNavigate();\n } else {\n onOpenChange(true, event.nativeEvent, \"list-navigation\");\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent, \"list-navigation\");\n } else {\n commonOnKeyDown(event);\n }\n if (open) {\n onNavigate();\n }\n }\n },\n onFocus() {\n if (open && !virtual) {\n indexRef.current = -1;\n onNavigate();\n }\n },\n onPointerDown: checkVirtualPointer,\n onPointerEnter: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [\n ariaActiveDescendantProp,\n commonOnKeyDown,\n disabledIndicesRef,\n focusItemOnOpen,\n listRef,\n nested,\n onNavigate,\n onOpenChange,\n open,\n openOnArrowKeyDown,\n orientation,\n rtl,\n selectedIndex,\n virtual\n ]);\n var item = useMemo(function() {\n function syncCurrentTarget(currentTarget) {\n if (!latestOpenRef.current) return;\n var index = listRef.current.indexOf(currentTarget);\n if (index !== -1 && indexRef.current !== index) {\n indexRef.current = index;\n onNavigate();\n }\n }\n var itemProps = {\n onFocus(param) {\n var { currentTarget } = param;\n forceSyncFocusRef.current = true;\n syncCurrentTarget(currentTarget);\n },\n onClick: function(param) {\n var { currentTarget } = param;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // safari\n onMouseMove(param) {\n var { currentTarget } = param;\n forceSyncFocusRef.current = true;\n forceScrollIntoViewRef.current = false;\n if (focusItemOnHover) {\n syncCurrentTarget(currentTarget);\n }\n },\n onPointerLeave(param) {\n var { pointerType } = param;\n if (!isPointerModalityRef.current || pointerType === \"touch\") {\n return;\n }\n forceSyncFocusRef.current = true;\n if (!focusItemOnHover) {\n return;\n }\n indexRef.current = -1;\n onNavigate();\n if (!virtual) {\n var _elements_floating;\n (_elements_floating = elements.floating) === null || _elements_floating === void 0 ? void 0 : _elements_floating.focus({\n preventScroll: true\n });\n }\n }\n };\n return itemProps;\n }, [\n latestOpenRef,\n focusItemOnHover,\n listRef,\n onNavigate,\n virtual,\n elements.floating\n ]);\n return useMemo(function() {\n return enabled ? {\n reference,\n floating,\n item\n } : {};\n }, [\n enabled,\n reference,\n floating,\n item\n ]);\n}\nexport {\n useListNavigation\n};\n//# sourceMappingURL=useListNavigation.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"useListNavigation.native.js","names":[],"sources":["esm/interactions/useListNavigation.native.js"],"sourcesContent":["import { useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport { activeElement, enqueueFocus, findNonDisabledListIndex, getMinListIndex, getMaxListIndex, isHTMLElement, isIndexOutOfListBounds, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent } from \"./utils\";\nvar ARROW_UP = \"ArrowUp\";\nvar ARROW_DOWN = \"ArrowDown\";\nvar ARROW_LEFT = \"ArrowLeft\";\nvar ARROW_RIGHT = \"ArrowRight\";\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case \"vertical\":\n return vertical;\n case \"horizontal\":\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n var vertical = key === ARROW_UP || key === ARROW_DOWN;\n var horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n var vertical = key === ARROW_DOWN;\n var horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === \"Enter\" || key === \" \" || key === \"\";\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n var vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n var horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n var vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n var horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction useListNavigation(context, props) {\n var { open, onOpenChange, elements } = context;\n var { listRef, activeIndex, onNavigate: unstable_onNavigate = function() {\n }, enabled = true, selectedIndex = null, allowEscape = false, loop = false, nested = false, rtl = false, virtual = false, focusItemOnOpen = \"auto\", focusItemOnHover = true, openOnArrowKeyDown = true, disabledIndices = void 0, orientation = \"vertical\", scrollItemIntoView = true } = props;\n var typeableComboboxReference = isTypeableCombobox(elements.domReference);\n var focusItemOnOpenRef = useRef(focusItemOnOpen);\n var indexRef = useRef(selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : -1);\n var keyRef = useRef(null);\n var isPointerModalityRef = useRef(true);\n var previousMountedRef = useRef(!!elements.floating);\n var previousOpenRef = useRef(open);\n var forceSyncFocusRef = useRef(false);\n var forceScrollIntoViewRef = useRef(false);\n var disabledIndicesRef = useRef(disabledIndices);\n disabledIndicesRef.current = disabledIndices;\n var latestOpenRef = useRef(open);\n latestOpenRef.current = open;\n var scrollItemIntoViewRef = useRef(scrollItemIntoView);\n scrollItemIntoViewRef.current = scrollItemIntoView;\n var selectedIndexRef = useRef(selectedIndex);\n selectedIndexRef.current = selectedIndex;\n var stableOnNavigate = useEvent(unstable_onNavigate);\n var [activeId, setActiveId] = useState();\n var onNavigate = useEvent(function() {\n stableOnNavigate(indexRef.current === -1 ? null : indexRef.current);\n });\n var previousOnNavigateRef = useRef(onNavigate);\n var focusItem = useEvent(function() {\n function runFocus(item2) {\n if (virtual) {\n setActiveId(item2.id);\n } else {\n enqueueFocus(item2, {\n sync: forceSyncFocusRef.current,\n preventScroll: true\n });\n }\n }\n var initialItem = listRef.current[indexRef.current];\n var forceScrollIntoView = forceScrollIntoViewRef.current;\n if (initialItem) {\n runFocus(initialItem);\n }\n var scheduler = forceSyncFocusRef.current ? function(v) {\n return v();\n } : requestAnimationFrame;\n scheduler(function() {\n var waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) return;\n if (!initialItem) {\n runFocus(waitedItem);\n }\n var scrollIntoViewOptions = scrollItemIntoViewRef.current;\n var shouldScrollIntoView = scrollIntoViewOptions && waitedItem && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n var _waitedItem_scrollIntoView;\n (_waitedItem_scrollIntoView = waitedItem.scrollIntoView) === null || _waitedItem_scrollIntoView === void 0 ? void 0 : _waitedItem_scrollIntoView.call(waitedItem, typeof scrollIntoViewOptions === \"boolean\" ? {\n block: \"nearest\",\n inline: \"nearest\"\n } : scrollIntoViewOptions);\n }\n });\n });\n useLayoutEffect(function() {\n if (!enabled) return;\n if (open && elements.floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n forceScrollIntoViewRef.current = true;\n indexRef.current = selectedIndex;\n onNavigate();\n }\n } else if (previousMountedRef.current) {\n indexRef.current = -1;\n previousOnNavigateRef.current();\n }\n }, [\n enabled,\n open,\n elements.floating,\n selectedIndex,\n onNavigate\n ]);\n useLayoutEffect(function() {\n if (!enabled) return;\n if (!open) return;\n if (!elements.floating) return;\n if (activeIndex == null) {\n forceSyncFocusRef.current = false;\n if (selectedIndexRef.current != null) {\n return;\n }\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem();\n }\n if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n var runs = 0;\n var waitForListPopulated = function() {\n if (listRef.current[0] == null) {\n if (runs < 2) {\n var scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinListIndex(listRef, disabledIndicesRef.current) : getMaxListIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate();\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfListBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem();\n forceScrollIntoViewRef.current = false;\n }\n }, [\n enabled,\n open,\n elements.floating,\n activeIndex,\n selectedIndexRef,\n nested,\n listRef,\n orientation,\n rtl,\n onNavigate,\n focusItem,\n disabledIndicesRef\n ]);\n useLayoutEffect(function() {\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n previousMountedRef.current = !!elements.floating;\n });\n useLayoutEffect(function() {\n if (!open) {\n keyRef.current = null;\n focusItemOnOpenRef.current = focusItemOnOpen;\n }\n }, [\n open,\n focusItemOnOpen\n ]);\n var hasActiveIndex = activeIndex != null;\n var commonOnKeyDown = useEvent(function(event) {\n isPointerModalityRef.current = false;\n forceSyncFocusRef.current = true;\n if (event.which === 229) {\n return;\n }\n if (!latestOpenRef.current && event.currentTarget === elements.floating) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent, \"list-navigation\");\n if (isHTMLElement(elements.domReference)) {\n elements.domReference.focus();\n }\n return;\n }\n var currentIndex = indexRef.current;\n var minIndex = getMinListIndex(listRef, disabledIndices);\n var maxIndex = getMaxListIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === \"Home\") {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate();\n }\n if (event.key === \"End\") {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate();\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate();\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfListBounds(listRef, indexRef.current)) {\n indexRef.current = -1;\n }\n onNavigate();\n }\n });\n var ariaActiveDescendantProp = useMemo(function() {\n return virtual && open && hasActiveIndex && {\n \"aria-activedescendant\": activeId\n };\n }, [\n virtual,\n open,\n hasActiveIndex,\n activeId\n ]);\n var floating = useMemo(function() {\n return {\n \"aria-orientation\": orientation === \"both\" ? void 0 : orientation,\n ...!typeableComboboxReference ? ariaActiveDescendantProp : {},\n onKeyDown: commonOnKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [\n ariaActiveDescendantProp,\n commonOnKeyDown,\n orientation,\n typeableComboboxReference\n ]);\n var reference = useMemo(function() {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === \"auto\" && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === \"auto\" && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n return {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n var isArrowKey = event.key.startsWith(\"Arrow\");\n var isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n var isMainKey = isMainOrientationKey(event.key, orientation);\n var isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === \"Enter\" || event.key.trim() === \"\";\n if (virtual && open) {\n return commonOnKeyDown(event);\n }\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n keyRef.current = event.key;\n }\n if (nested) {\n if (isCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinListIndex(listRef, disabledIndicesRef.current);\n onNavigate();\n } else {\n onOpenChange(true, event.nativeEvent, \"list-navigation\");\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent, \"list-navigation\");\n } else {\n commonOnKeyDown(event);\n }\n if (open) {\n onNavigate();\n }\n }\n },\n onFocus() {\n if (open && !virtual) {\n indexRef.current = -1;\n onNavigate();\n }\n },\n onPointerDown: checkVirtualPointer,\n onPointerEnter: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [\n ariaActiveDescendantProp,\n commonOnKeyDown,\n disabledIndicesRef,\n focusItemOnOpen,\n listRef,\n nested,\n onNavigate,\n onOpenChange,\n open,\n openOnArrowKeyDown,\n orientation,\n rtl,\n selectedIndex,\n virtual\n ]);\n var floatingRef = useRef(elements.floating);\n floatingRef.current = elements.floating;\n var item = useMemo(function() {\n function syncCurrentTarget(currentTarget) {\n if (!latestOpenRef.current) return;\n var index = listRef.current.indexOf(currentTarget);\n if (index !== -1 && indexRef.current !== index) {\n indexRef.current = index;\n onNavigate();\n }\n }\n var itemProps = {\n onFocus(param) {\n var { currentTarget } = param;\n forceSyncFocusRef.current = true;\n syncCurrentTarget(currentTarget);\n },\n onClick: function(param) {\n var { currentTarget } = param;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // safari\n onMouseMove(param) {\n var { currentTarget } = param;\n forceSyncFocusRef.current = true;\n forceScrollIntoViewRef.current = false;\n if (focusItemOnHover) {\n syncCurrentTarget(currentTarget);\n }\n },\n onPointerLeave(param) {\n var { pointerType } = param;\n if (!isPointerModalityRef.current || pointerType === \"touch\") {\n return;\n }\n forceSyncFocusRef.current = true;\n if (!focusItemOnHover) {\n return;\n }\n indexRef.current = -1;\n onNavigate();\n if (!virtual) {\n var _floatingRef_current;\n (_floatingRef_current = floatingRef.current) === null || _floatingRef_current === void 0 ? void 0 : _floatingRef_current.focus({\n preventScroll: true\n });\n }\n }\n };\n return itemProps;\n }, [\n latestOpenRef,\n focusItemOnHover,\n listRef,\n onNavigate,\n virtual\n ]);\n return useMemo(function() {\n return enabled ? {\n reference,\n floating,\n item\n } : {};\n }, [\n enabled,\n reference,\n floating,\n item\n ]);\n}\nexport {\n useListNavigation\n};\n//# sourceMappingURL=useListNavigation.js.map\n"],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- function _instanceof(left, right) {
2
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
3
- return !!right[Symbol.hasInstance](left);
4
- } else {
5
- return left instanceof right;
6
- }
7
- }
8
1
  function getDocument(node) {
9
2
  return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;
10
3
  }
@@ -23,7 +16,7 @@ function contains(parent, child) {
23
16
  return false;
24
17
  }
25
18
  function isShadowRoot(node) {
26
- return _instanceof(node, ShadowRoot);
19
+ return node instanceof ShadowRoot;
27
20
  }
28
21
  function getTarget(event) {
29
22
  if ("composedPath" in event) {
@@ -40,10 +33,10 @@ function activeElement(doc) {
40
33
  return el;
41
34
  }
42
35
  function isHTMLElement(value) {
43
- return _instanceof(value, HTMLElement);
36
+ return value instanceof HTMLElement;
44
37
  }
45
38
  function isElement(value) {
46
- return _instanceof(value, Element);
39
+ return value instanceof Element;
47
40
  }
48
41
  var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
49
42
  function isTypeableElement(element) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.native.js","names":[],"sources":["esm/interactions/utils.native.js"],"sourcesContent":["function _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}\nexport {\n activeElement,\n clearTimeoutIfSet,\n contains,\n enqueueFocus,\n findNonDisabledListIndex,\n getDocument,\n getMaxListIndex,\n getMinListIndex,\n getTarget,\n isElement,\n isHTMLElement,\n isIndexOutOfListBounds,\n isListIndexDisabled,\n isMac,\n isMouseLikePointerType,\n isSafari,\n isTypeableCombobox,\n isTypeableElement,\n isVirtualClick,\n isVirtualPointerEvent,\n matchesFocusVisible,\n stopEvent\n};\n//# sourceMappingURL=utils.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.native.js","names":[],"sources":["esm/interactions/utils.native.js"],"sourcesContent":["function 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 node instanceof 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 value instanceof HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof 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}\nexport {\n activeElement,\n clearTimeoutIfSet,\n contains,\n enqueueFocus,\n findNonDisabledListIndex,\n getDocument,\n getMaxListIndex,\n getMinListIndex,\n getTarget,\n isElement,\n isHTMLElement,\n isIndexOutOfListBounds,\n isListIndexDisabled,\n isMac,\n isMouseLikePointerType,\n isSafari,\n isTypeableCombobox,\n isTypeableElement,\n isVirtualClick,\n isVirtualPointerEvent,\n matchesFocusVisible,\n stopEvent\n};\n//# sourceMappingURL=utils.js.map\n"],"mappings":"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"}
@@ -40,12 +40,14 @@ const inner = (props) => ({
40
40
  elementContext: "reference"
41
41
  });
42
42
  const diffY = Math.max(0, overflow.top);
43
- const nextY = nextArgs.y + diffY;
44
43
  const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;
45
44
  const rounder = isScrollable ? (v) => v : Math.round;
46
- const maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
45
+ const fullHeight = scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0);
46
+ const minimumHeight = item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0);
47
+ const maxHeight = rounder(Math.max(0, Math.min(fullHeight, fullHeight - overflow.top - overflow.bottom, Math.max(minimumHeight, fullHeight - diffY - Math.max(0, overflow.bottom)))));
48
+ const nextY = Math.min(nextArgs.y + diffY, nextArgs.y + fullHeight - overflow.bottom - maxHeight);
47
49
  scrollEl.style.maxHeight = `${maxHeight}px`;
48
- scrollEl.scrollTop = diffY;
50
+ scrollEl.scrollTop = Math.max(0, nextY - nextArgs.y);
49
51
  if (onFallbackChange) {
50
52
  const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
51
53
  ReactDOM.flushSync(() => onFallbackChange(shouldFallback));
@@ -1 +1 @@
1
- {"version":3,"file":"inner.js","names":[],"sources":["esm/middleware/inner.js"],"sourcesContent":["import * as ReactDOM from \"react-dom\";\nimport { detectOverflow, offset } from \"@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}\nconst inner = (props) => ({\n name: \"inner\",\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n padding = 0\n } = props;\n const {\n rects,\n elements: { floating }\n } = state;\n const item = listRef.current?.[index ?? 0];\n const scrollEl = scrollRef?.current || floating;\n const clientTop = floating.clientTop || scrollEl.clientTop;\n const floatingIsBordered = floating.clientTop !== 0;\n const scrollElIsBordered = scrollEl.clientTop !== 0;\n const floatingIsScrollEl = floating === scrollEl;\n if (!item || index == null) {\n onFallbackChange?.(true);\n return {};\n }\n const nextArgs = {\n ...state,\n ...await offset(\n -item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset\n ).fn(state)\n };\n const detectOverflowOptions = { padding };\n const overflow = await detectOverflow(\n getArgsWithCustomFloatingHeight(\n nextArgs,\n scrollEl.scrollHeight + clientTop + floating.clientTop\n ),\n detectOverflowOptions\n );\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: \"reference\"\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n const rounder = isScrollable ? (v) => v : Math.round;\n const maxHeight = rounder(\n Math.max(\n 0,\n scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)\n )\n );\n scrollEl.style.maxHeight = `${maxHeight}px`;\n scrollEl.scrollTop = diffY;\n if (onFallbackChange) {\n const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n }\n if (overflowRef) {\n ;\n overflowRef.current = await detectOverflow(\n getArgsWithCustomFloatingHeight(\n { ...nextArgs, y: nextY },\n scrollEl.offsetHeight + clientTop + floating.clientTop\n ),\n detectOverflowOptions\n );\n }\n return {\n y: nextY\n };\n }\n});\nexport {\n inner\n};\n//# sourceMappingURL=inner.js.map\n"],"mappings":";;;;AAEA,SAAS,gCAAgC,OAAO,QAAQ;CACtD,OAAO;EACL,GAAG;EACH,OAAO;GACL,GAAG,MAAM;GACT,UAAU;IACR,GAAG,MAAM,MAAM;IACf;GACF;EACF;CACF;AACF;AACA,MAAM,SAAS,WAAW;CACxB,MAAM;CACN,SAAS;CACT,MAAM,GAAG,OAAO;EACd,MAAM,EACJ,SACA,aACA,kBACA,QAAQ,cAAc,GACtB,QAAQ,GACR,kBAAkB,GAClB,6BAA6B,GAC7B,WACA,UAAU,MACR;EACJ,MAAM,EACJ,OACA,UAAU,EAAE,eACV;EACJ,MAAM,OAAO,QAAQ,UAAU,SAAS;EACxC,MAAM,WAAW,WAAW,WAAW;EACvC,MAAM,YAAY,SAAS,aAAa,SAAS;EACjD,MAAM,qBAAqB,SAAS,cAAc;EAClD,MAAM,qBAAqB,SAAS,cAAc;EAClD,MAAM,qBAAqB,aAAa;EACxC,IAAI,CAAC,QAAQ,SAAS,MAAM;GAC1B,mBAAmB,IAAI;GACvB,OAAO,CAAC;EACV;EACA,MAAM,WAAW;GACf,GAAG;GACH,GAAG,MAAM,OACP,CAAC,KAAK,YAAY,SAAS,YAAY,MAAM,UAAU,SAAS,IAAI,KAAK,eAAe,IAAI,WAC9F,CAAC,CAAC,GAAG,KAAK;EACZ;EACA,MAAM,wBAAwB,EAAE,QAAQ;EACxC,MAAM,WAAW,MAAM,eACrB,gCACE,UACA,SAAS,eAAe,YAAY,SAAS,SAC/C,GACA,qBACF;EACA,MAAM,cAAc,MAAM,eAAe,UAAU;GACjD,GAAG;GACH,gBAAgB;EAClB,CAAC;EACD,MAAM,QAAQ,KAAK,IAAI,GAAG,SAAS,GAAG;EACtC,MAAM,QAAQ,SAAS,IAAI;EAC3B,MAAM,eAAe,SAAS,eAAe,SAAS;EACtD,MAAM,UAAU,gBAAgB,MAAM,IAAI,KAAK;EAC/C,MAAM,YAAY,QAChB,KAAK,IACH,GACA,SAAS,gBAAgB,sBAAsB,sBAAsB,qBAAqB,YAAY,IAAI,KAAK,QAAQ,KAAK,IAAI,GAAG,SAAS,MAAM,CACpJ,CACF;EACA,SAAS,MAAM,YAAY,GAAG,UAAU;EACxC,SAAS,YAAY;EACrB,IAAI,kBAAkB;GACpB,MAAM,iBAAiB,SAAS,eAAe,KAAK,eAAe,KAAK,IAAI,iBAAiB,QAAQ,SAAS,UAAU,CAAC,IAAI,KAAK,YAAY,OAAO,CAAC,8BAA8B,YAAY,UAAU,CAAC;GAC3M,SAAS,gBAAgB,iBAAiB,cAAc,CAAC;EAC3D;EACA,IAAI,aAAa;GACf;GACA,YAAY,UAAU,MAAM,eAC1B,gCACE;IAAE,GAAG;IAAU,GAAG;GAAM,GACxB,SAAS,eAAe,YAAY,SAAS,SAC/C,GACA,qBACF;EACF;EACA,OAAO,EACL,GAAG,MACL;CACF;AACF"}
1
+ {"version":3,"file":"inner.js","names":[],"sources":["esm/middleware/inner.js"],"sourcesContent":["import * as ReactDOM from \"react-dom\";\nimport { detectOverflow, offset } from \"@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}\nconst inner = (props) => ({\n name: \"inner\",\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n padding = 0\n } = props;\n const {\n rects,\n elements: { floating }\n } = state;\n const item = listRef.current?.[index ?? 0];\n const scrollEl = scrollRef?.current || floating;\n const clientTop = floating.clientTop || scrollEl.clientTop;\n const floatingIsBordered = floating.clientTop !== 0;\n const scrollElIsBordered = scrollEl.clientTop !== 0;\n const floatingIsScrollEl = floating === scrollEl;\n if (!item || index == null) {\n onFallbackChange?.(true);\n return {};\n }\n const nextArgs = {\n ...state,\n ...await offset(\n -item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset\n ).fn(state)\n };\n const detectOverflowOptions = { padding };\n const overflow = await detectOverflow(\n getArgsWithCustomFloatingHeight(\n nextArgs,\n scrollEl.scrollHeight + clientTop + floating.clientTop\n ),\n detectOverflowOptions\n );\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: \"reference\"\n });\n const diffY = Math.max(0, overflow.top);\n const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n const rounder = isScrollable ? (v) => v : Math.round;\n const fullHeight = scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0);\n const minimumHeight = item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0);\n const maxHeight = rounder(\n Math.max(\n 0,\n Math.min(\n fullHeight,\n fullHeight - overflow.top - overflow.bottom,\n Math.max(minimumHeight, fullHeight - diffY - Math.max(0, overflow.bottom))\n )\n )\n );\n const nextY = Math.min(\n nextArgs.y + diffY,\n nextArgs.y + fullHeight - overflow.bottom - maxHeight\n );\n scrollEl.style.maxHeight = `${maxHeight}px`;\n scrollEl.scrollTop = Math.max(0, nextY - nextArgs.y);\n if (onFallbackChange) {\n const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n }\n if (overflowRef) {\n ;\n overflowRef.current = await detectOverflow(\n getArgsWithCustomFloatingHeight(\n { ...nextArgs, y: nextY },\n scrollEl.offsetHeight + clientTop + floating.clientTop\n ),\n detectOverflowOptions\n );\n }\n return {\n y: nextY\n };\n }\n});\nexport {\n inner\n};\n//# sourceMappingURL=inner.js.map\n"],"mappings":";;;;AAEA,SAAS,gCAAgC,OAAO,QAAQ;CACtD,OAAO;EACL,GAAG;EACH,OAAO;GACL,GAAG,MAAM;GACT,UAAU;IACR,GAAG,MAAM,MAAM;IACf;GACF;EACF;CACF;AACF;AACA,MAAM,SAAS,WAAW;CACxB,MAAM;CACN,SAAS;CACT,MAAM,GAAG,OAAO;EACd,MAAM,EACJ,SACA,aACA,kBACA,QAAQ,cAAc,GACtB,QAAQ,GACR,kBAAkB,GAClB,6BAA6B,GAC7B,WACA,UAAU,MACR;EACJ,MAAM,EACJ,OACA,UAAU,EAAE,eACV;EACJ,MAAM,OAAO,QAAQ,UAAU,SAAS;EACxC,MAAM,WAAW,WAAW,WAAW;EACvC,MAAM,YAAY,SAAS,aAAa,SAAS;EACjD,MAAM,qBAAqB,SAAS,cAAc;EAClD,MAAM,qBAAqB,SAAS,cAAc;EAClD,MAAM,qBAAqB,aAAa;EACxC,IAAI,CAAC,QAAQ,SAAS,MAAM;GAC1B,mBAAmB,IAAI;GACvB,OAAO,CAAC;EACV;EACA,MAAM,WAAW;GACf,GAAG;GACH,GAAG,MAAM,OACP,CAAC,KAAK,YAAY,SAAS,YAAY,MAAM,UAAU,SAAS,IAAI,KAAK,eAAe,IAAI,WAC9F,CAAC,CAAC,GAAG,KAAK;EACZ;EACA,MAAM,wBAAwB,EAAE,QAAQ;EACxC,MAAM,WAAW,MAAM,eACrB,gCACE,UACA,SAAS,eAAe,YAAY,SAAS,SAC/C,GACA,qBACF;EACA,MAAM,cAAc,MAAM,eAAe,UAAU;GACjD,GAAG;GACH,gBAAgB;EAClB,CAAC;EACD,MAAM,QAAQ,KAAK,IAAI,GAAG,SAAS,GAAG;EACtC,MAAM,eAAe,SAAS,eAAe,SAAS;EACtD,MAAM,UAAU,gBAAgB,MAAM,IAAI,KAAK;EAC/C,MAAM,aAAa,SAAS,gBAAgB,sBAAsB,sBAAsB,qBAAqB,YAAY,IAAI;EAC7H,MAAM,gBAAgB,KAAK,eAAe,KAAK,IAAI,iBAAiB,QAAQ,SAAS,UAAU,CAAC;EAChG,MAAM,YAAY,QAChB,KAAK,IACH,GACA,KAAK,IACH,YACA,aAAa,SAAS,MAAM,SAAS,QACrC,KAAK,IAAI,eAAe,aAAa,QAAQ,KAAK,IAAI,GAAG,SAAS,MAAM,CAAC,CAC3E,CACF,CACF;EACA,MAAM,QAAQ,KAAK,IACjB,SAAS,IAAI,OACb,SAAS,IAAI,aAAa,SAAS,SAAS,SAC9C;EACA,SAAS,MAAM,YAAY,GAAG,UAAU;EACxC,SAAS,YAAY,KAAK,IAAI,GAAG,QAAQ,SAAS,CAAC;EACnD,IAAI,kBAAkB;GACpB,MAAM,iBAAiB,SAAS,eAAe,KAAK,eAAe,KAAK,IAAI,iBAAiB,QAAQ,SAAS,UAAU,CAAC,IAAI,KAAK,YAAY,OAAO,CAAC,8BAA8B,YAAY,UAAU,CAAC;GAC3M,SAAS,gBAAgB,iBAAiB,cAAc,CAAC;EAC3D;EACA,IAAI,aAAa;GACf;GACA,YAAY,UAAU,MAAM,eAC1B,gCACE;IAAE,GAAG;IAAU,GAAG;GAAM,GACxB,SAAS,eAAe,YAAY,SAAS,SAC/C,GACA,qBACF;EACF;EACA,OAAO,EACL,GAAG,MACL;CACF;AACF"}
@@ -18,7 +18,7 @@ var inner = function(props) {
18
18
  name: "inner",
19
19
  options: props,
20
20
  async fn(state) {
21
- var _listRef_current;
21
+ var _listRef_current, _listRef_current1;
22
22
  var { listRef, overflowRef, onFallbackChange, offset: innerOffset = 0, index = 0, minItemsVisible = 4, referenceOverflowThreshold = 0, scrollRef, padding = 0 } = props;
23
23
  var { rects, elements: { floating } } = state;
24
24
  var item = (_listRef_current = listRef.current) === null || _listRef_current === void 0 ? void 0 : _listRef_current[index !== null && index !== void 0 ? index : 0];
@@ -42,18 +42,21 @@ var inner = function(props) {
42
42
  elementContext: "reference"
43
43
  });
44
44
  var diffY = Math.max(0, overflow.top);
45
- var nextY = nextArgs.y + diffY;
46
45
  var isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;
47
46
  var rounder = isScrollable ? function(v) {
48
47
  return v;
49
48
  } : Math.round;
50
- var maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
49
+ var fullHeight = scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0);
50
+ var _listRef_current_length;
51
+ var minimumHeight = 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);
52
+ var maxHeight = rounder(Math.max(0, Math.min(fullHeight, fullHeight - overflow.top - overflow.bottom, Math.max(minimumHeight, fullHeight - diffY - Math.max(0, overflow.bottom)))));
53
+ var nextY = Math.min(nextArgs.y + diffY, nextArgs.y + fullHeight - overflow.bottom - maxHeight);
51
54
  scrollEl.style.maxHeight = `${maxHeight}px`;
52
- scrollEl.scrollTop = diffY;
55
+ scrollEl.scrollTop = Math.max(0, nextY - nextArgs.y);
53
56
  if (onFallbackChange) {
54
- var _listRef_current1;
55
- var _listRef_current_length;
56
- 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;
57
+ var _listRef_current2;
58
+ var _listRef_current_length1;
59
+ var shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, (_listRef_current_length1 = (_listRef_current2 = listRef.current) === null || _listRef_current2 === void 0 ? void 0 : _listRef_current2.length) !== null && _listRef_current_length1 !== void 0 ? _listRef_current_length1 : 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
57
60
  ReactDOM.flushSync(function() {
58
61
  return onFallbackChange(shouldFallback);
59
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"inner.native.js","names":[],"sources":["esm/middleware/inner.native.js"],"sourcesContent":["import * as ReactDOM from \"react-dom\";\nimport { detectOverflow, offset } from \"@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 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 detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n var refOverflow = await 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 detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n };\n};\nexport {\n inner\n};\n//# sourceMappingURL=inner.js.map\n"],"mappings":";;;;AAEA,SAAS,gCAAgC,OAAO,QAAQ;CACtD,OAAO;EACL,GAAG;EACH,OAAO;GACL,GAAG,MAAM;GACT,UAAU;IACR,GAAG,MAAM,MAAM;IACf;GACF;EACF;CACF;AACF;AACA,IAAI,QAAQ,SAAS,OAAO;CAC1B,OAAO;EACL,MAAM;EACN,SAAS;EACT,MAAM,GAAG,OAAO;GACd,IAAI;GACJ,IAAI,EAAE,SAAS,aAAa,kBAAkB,QAAQ,cAAc,GAAG,QAAQ,GAAG,kBAAkB,GAAG,6BAA6B,GAAG,WAAW,UAAU,MAAM;GAClK,IAAI,EAAE,OAAO,UAAU,EAAE,eAAe;GACxC,IAAI,QAAQ,mBAAmB,QAAQ,aAAa,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB,UAAU,QAAQ,UAAU,KAAK,IAAI,QAAQ;GACjK,IAAI,YAAY,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,YAAY;GAC5F,IAAI,YAAY,SAAS,aAAa,SAAS;GAC/C,IAAI,qBAAqB,SAAS,cAAc;GAChD,IAAI,qBAAqB,SAAS,cAAc;GAChD,IAAI,qBAAqB,aAAa;GACtC,IAAI,CAAC,QAAQ,SAAS,MAAM;IAC1B,qBAAqB,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB,IAAI;IACzF,OAAO,CAAC;GACV;GACA,IAAI,WAAW;IACb,GAAG;IACH,GAAG,MAAM,OAAO,CAAC,KAAK,YAAY,SAAS,YAAY,MAAM,UAAU,SAAS,IAAI,KAAK,eAAe,IAAI,WAAW,CAAC,CAAC,GAAG,KAAK;GACnI;GACA,IAAI,wBAAwB,EAC1B,QACF;GACA,IAAI,WAAW,MAAM,eAAe,gCAAgC,UAAU,SAAS,eAAe,YAAY,SAAS,SAAS,GAAG,qBAAqB;GAC5J,IAAI,cAAc,MAAM,eAAe,UAAU;IAC/C,GAAG;IACH,gBAAgB;GAClB,CAAC;GACD,IAAI,QAAQ,KAAK,IAAI,GAAG,SAAS,GAAG;GACpC,IAAI,QAAQ,SAAS,IAAI;GACzB,IAAI,eAAe,SAAS,eAAe,SAAS;GACpD,IAAI,UAAU,eAAe,SAAS,GAAG;IACvC,OAAO;GACT,IAAI,KAAK;GACT,IAAI,YAAY,QAAQ,KAAK,IAAI,GAAG,SAAS,gBAAgB,sBAAsB,sBAAsB,qBAAqB,YAAY,IAAI,KAAK,QAAQ,KAAK,IAAI,GAAG,SAAS,MAAM,CAAC,CAAC;GACxL,SAAS,MAAM,YAAY,GAAG,UAAU;GACxC,SAAS,YAAY;GACrB,IAAI,kBAAkB;IACpB,IAAI;IACJ,IAAI;IACJ,IAAI,iBAAiB,SAAS,eAAe,KAAK,eAAe,KAAK,IAAI,kBAAkB,2BAA2B,oBAAoB,QAAQ,aAAa,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB,YAAY,QAAQ,4BAA4B,KAAK,IAAI,0BAA0B,CAAC,IAAI,KAAK,YAAY,OAAO,CAAC,8BAA8B,YAAY,UAAU,CAAC;IACxY,SAAS,UAAU,WAAW;KAC5B,OAAO,iBAAiB,cAAc;IACxC,CAAC;GACH;GACA,IAAI,aAAa;IACf;IACA,YAAY,UAAU,MAAM,eAAe,gCAAgC;KACzE,GAAG;KACH,GAAG;IACL,GAAG,SAAS,eAAe,YAAY,SAAS,SAAS,GAAG,qBAAqB;GACnF;GACA,OAAO,EACL,GAAG,MACL;EACF;CACF;AACF"}
1
+ {"version":3,"file":"inner.native.js","names":[],"sources":["esm/middleware/inner.native.js"],"sourcesContent":["import * as ReactDOM from \"react-dom\";\nimport { detectOverflow, offset } from \"@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, _listRef_current1;\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 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 detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n var refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: \"reference\"\n });\n var diffY = Math.max(0, overflow.top);\n var isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n var rounder = isScrollable ? function(v) {\n return v;\n } : Math.round;\n var fullHeight = scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0);\n var _listRef_current_length;\n var minimumHeight = 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);\n var maxHeight = rounder(Math.max(0, Math.min(fullHeight, fullHeight - overflow.top - overflow.bottom, Math.max(minimumHeight, fullHeight - diffY - Math.max(0, overflow.bottom)))));\n var nextY = Math.min(nextArgs.y + diffY, nextArgs.y + fullHeight - overflow.bottom - maxHeight);\n scrollEl.style.maxHeight = `${maxHeight}px`;\n scrollEl.scrollTop = Math.max(0, nextY - nextArgs.y);\n if (onFallbackChange) {\n var _listRef_current2;\n var _listRef_current_length1;\n var shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, (_listRef_current_length1 = (_listRef_current2 = listRef.current) === null || _listRef_current2 === void 0 ? void 0 : _listRef_current2.length) !== null && _listRef_current_length1 !== void 0 ? _listRef_current_length1 : 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 detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n };\n};\nexport {\n inner\n};\n//# sourceMappingURL=inner.js.map\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@tamagui/floating",
3
- "version": "3.0.0-beta.924.1",
3
+ "version": "3.0.1",
4
+ "license": "MIT",
4
5
  "source": "src/index.ts",
5
6
  "files": [
6
7
  "src",
@@ -36,12 +37,12 @@
36
37
  "dependencies": {
37
38
  "@floating-ui/react-dom": "^2.1.6",
38
39
  "@floating-ui/react-native": "^0.10.7",
39
- "@tamagui/use-event": "3.0.0-beta.924.1"
40
+ "@tamagui/use-event": "3.0.1"
40
41
  },
41
42
  "devDependencies": {
42
- "@tamagui/build": "3.0.0-beta.924.1",
43
+ "@tamagui/build": "3.0.1",
43
44
  "react": "19.2.3",
44
- "react-native": "0.86.2"
45
+ "react-native": "0.87.1"
45
46
  },
46
47
  "peerDependencies": {
47
48
  "react": ">=19",
@@ -51,5 +52,6 @@
51
52
  "type": "git",
52
53
  "url": "git+https://github.com/tamagui/tamagui.git",
53
54
  "directory": "code/core/floating"
54
- }
55
+ },
56
+ "releaseSourceCommit": "c156b7cc55e5a6cc5883ebc8189720850ac32dbd"
55
57
  }
@@ -1,82 +1,84 @@
1
+ import { useCallback, useMemo } from 'react'
1
2
  import type { HTMLProps } from 'react'
2
3
  import type { ElementProps } from './types'
3
4
 
5
+ type PropGetter = (userProps?: Record<string, any>) => Record<string, any>
6
+
4
7
  // merges prop getters from multiple interaction hooks.
5
8
  // event handlers are chained (all run), first non-undefined return value wins.
6
9
  // non-function props: user props override hook props.
10
+ //
11
+ // the getters are memoized on the hook outputs so a consumer can hold the
12
+ // result in context: every interaction hook memoizes its props, so a render
13
+ // that changes none of them keeps the same getters
7
14
  export function useInteractions(propsList: Array<ElementProps | void>) {
8
- const filtered = propsList.filter(Boolean) as ElementProps[]
9
-
10
- // collect all event handlers by event name for each element type
11
- const referenceFns = new Map<string, Array<(...args: any[]) => any>>()
12
- const floatingFns = new Map<string, Array<(...args: any[]) => any>>()
13
- const itemFns = new Map<string, Array<(...args: any[]) => any>>()
15
+ const referenceDeps = propsList.map((props) => props?.reference)
16
+ const floatingDeps = propsList.map((props) => props?.floating)
17
+ const itemDeps = propsList.map((props) => props?.item)
14
18
 
15
- const referenceStatic: Record<string, any> = {}
16
- const floatingStatic: Record<string, any> = {}
19
+ const getReferenceProps = useCallback<PropGetter>(
20
+ (userProps) => mergeProps(referenceDeps, userProps),
21
+ referenceDeps
22
+ )
23
+ const getFloatingProps = useCallback<PropGetter>(
24
+ (userProps) => mergeProps(floatingDeps, userProps),
25
+ floatingDeps
26
+ )
27
+ const getItemProps = useCallback<PropGetter>(
28
+ (userProps) => mergeProps(itemDeps, userProps, true),
29
+ itemDeps
30
+ )
17
31
 
18
- for (const props of filtered) {
19
- if (props.reference) {
20
- collectProps(props.reference as any, referenceFns, referenceStatic)
21
- }
22
- if (props.floating) {
23
- collectProps(props.floating as any, floatingFns, floatingStatic)
24
- }
25
- if (props.item && typeof props.item === 'object') {
26
- collectProps(props.item as any, itemFns, {})
27
- }
28
- }
29
-
30
- return {
31
- getReferenceProps(userProps?: HTMLProps<Element>) {
32
- return buildProps(referenceFns, referenceStatic, userProps)
33
- },
34
- getFloatingProps(userProps?: HTMLProps<HTMLElement>) {
35
- return buildProps(floatingFns, floatingStatic, userProps)
36
- },
37
- getItemProps(userProps?: HTMLProps<HTMLElement>) {
38
- return buildProps(itemFns, {}, userProps)
39
- },
40
- }
32
+ return useMemo(
33
+ () => ({
34
+ getReferenceProps: getReferenceProps as (
35
+ userProps?: HTMLProps<Element>
36
+ ) => Record<string, any>,
37
+ getFloatingProps: getFloatingProps as (
38
+ userProps?: HTMLProps<HTMLElement>
39
+ ) => Record<string, any>,
40
+ getItemProps: getItemProps as (
41
+ userProps?: HTMLProps<HTMLElement>
42
+ ) => Record<string, any>,
43
+ }),
44
+ [getReferenceProps, getFloatingProps, getItemProps]
45
+ )
41
46
  }
42
47
 
43
- function collectProps(
44
- props: Record<string, any>,
45
- fnMap: Map<string, Array<(...args: any[]) => any>>,
46
- staticMap: Record<string, any>
47
- ) {
48
- for (const key of Object.keys(props)) {
49
- if (typeof props[key] === 'function') {
50
- let arr = fnMap.get(key)
51
- if (!arr) {
52
- arr = []
53
- fnMap.set(key, arr)
48
+ function mergeProps(
49
+ list: Array<Record<string, any> | ((...args: any[]) => any) | void>,
50
+ userProps?: Record<string, any>,
51
+ objectsOnly = false
52
+ ): Record<string, any> {
53
+ const fnMap = new Map<string, Array<(...args: any[]) => any>>()
54
+ // hook static props first, then user props override
55
+ const result: Record<string, any> = {}
56
+
57
+ for (const props of list) {
58
+ if (!props || (objectsOnly && typeof props !== 'object')) continue
59
+ for (const key of Object.keys(props)) {
60
+ const value = (props as Record<string, any>)[key]
61
+ if (typeof value === 'function') {
62
+ let arr = fnMap.get(key)
63
+ if (!arr) {
64
+ arr = []
65
+ fnMap.set(key, arr)
66
+ }
67
+ arr.push(value)
68
+ } else {
69
+ result[key] = value
54
70
  }
55
- arr.push(props[key])
56
- } else {
57
- staticMap[key] = props[key]
58
71
  }
59
72
  }
60
- }
61
-
62
- function buildProps(
63
- fnMap: Map<string, Array<(...args: any[]) => any>>,
64
- staticProps: Record<string, any>,
65
- userProps?: Record<string, any>
66
- ): Record<string, any> {
67
- // hook static props first, then user props override
68
- const result: Record<string, any> = { ...staticProps }
69
73
 
70
74
  // merge event handlers from hooks
71
75
  for (const [key, fns] of fnMap) {
72
- const hookHandler = (...args: any[]) => {
76
+ result[key] = (...args: any[]) => {
73
77
  for (const fn of fns) {
74
- const result = fn(...args)
75
- if (result !== undefined) return result
78
+ const out = fn(...args)
79
+ if (out !== undefined) return out
76
80
  }
77
81
  }
78
-
79
- result[key] = hookHandler
80
82
  }
81
83
 
82
84
  // user props override everything — but chain event handlers
@@ -525,6 +525,11 @@ export function useListNavigation(
525
525
  virtual,
526
526
  ])
527
527
 
528
+ // read at event time so the item props stay stable across the floating
529
+ // element mounting; consumers hold them in context beside every item
530
+ const floatingRef = useRef(elements.floating)
531
+ floatingRef.current = elements.floating
532
+
528
533
  const item = useMemo(() => {
529
534
  function syncCurrentTarget(currentTarget: HTMLElement | null) {
530
535
  if (!latestOpenRef.current) return
@@ -563,13 +568,13 @@ export function useListNavigation(
563
568
  onNavigate()
564
569
 
565
570
  if (!virtual) {
566
- elements.floating?.focus({ preventScroll: true })
571
+ floatingRef.current?.focus({ preventScroll: true })
567
572
  }
568
573
  },
569
574
  }
570
575
 
571
576
  return itemProps
572
- }, [latestOpenRef, focusItemOnHover, listRef, onNavigate, virtual, elements.floating])
577
+ }, [latestOpenRef, focusItemOnHover, listRef, onNavigate, virtual])
573
578
 
574
579
  return useMemo(
575
580
  () => (enabled ? { reference, floating, item } : {}),
@@ -93,24 +93,35 @@ export const inner = (props: InnerProps): Middleware => ({
93
93
  })
94
94
 
95
95
  const diffY = Math.max(0, overflow.top)
96
- const nextY = nextArgs.y + diffY
97
96
  const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight
98
97
  const rounder = isScrollable ? (v: number) => v : Math.round
99
-
98
+ const fullHeight =
99
+ scrollEl.scrollHeight +
100
+ ((floatingIsBordered && floatingIsScrollEl) || scrollElIsBordered
101
+ ? clientTop * 2
102
+ : 0)
103
+ const minimumHeight =
104
+ item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0)
105
+
106
+ // keep the promised rows visible near a screen edge, moving the list when
107
+ // necessary instead of cropping a list that has room to show them
100
108
  const maxHeight = rounder(
101
109
  Math.max(
102
110
  0,
103
- scrollEl.scrollHeight +
104
- ((floatingIsBordered && floatingIsScrollEl) || scrollElIsBordered
105
- ? clientTop * 2
106
- : 0) -
107
- diffY -
108
- Math.max(0, overflow.bottom)
111
+ Math.min(
112
+ fullHeight,
113
+ fullHeight - overflow.top - overflow.bottom,
114
+ Math.max(minimumHeight, fullHeight - diffY - Math.max(0, overflow.bottom))
115
+ )
109
116
  )
110
117
  )
118
+ const nextY = Math.min(
119
+ nextArgs.y + diffY,
120
+ nextArgs.y + fullHeight - overflow.bottom - maxHeight
121
+ )
111
122
 
112
123
  scrollEl.style.maxHeight = `${maxHeight}px`
113
- scrollEl.scrollTop = diffY
124
+ scrollEl.scrollTop = Math.max(0, nextY - nextArgs.y)
114
125
 
115
126
  // check if we should fall back to standard positioning
116
127
  if (onFallbackChange) {
@@ -1,8 +1,8 @@
1
1
  import type { HTMLProps } from 'react';
2
2
  import type { ElementProps } from './types';
3
3
  export declare function useInteractions(propsList: Array<ElementProps | void>): {
4
- getReferenceProps(userProps?: HTMLProps<Element>): Record<string, any>;
5
- getFloatingProps(userProps?: HTMLProps<HTMLElement>): Record<string, any>;
6
- getItemProps(userProps?: HTMLProps<HTMLElement>): Record<string, any>;
4
+ getReferenceProps: (userProps?: HTMLProps<Element>) => Record<string, any>;
5
+ getFloatingProps: (userProps?: HTMLProps<HTMLElement>) => Record<string, any>;
6
+ getItemProps: (userProps?: HTMLProps<HTMLElement>) => Record<string, any>;
7
7
  };
8
8
  //# sourceMappingURL=useInteractions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInteractions.d.ts","sourceRoot":"","sources":["../../src/interactions/useInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK3C,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAwBjE,iBAAiB,aAAa,SAAS,CAAC,OAAO,CAAC;IAGhD,gBAAgB,aAAa,SAAS,CAAC,WAAW,CAAC;IAGnD,YAAY,aAAa,SAAS,CAAC,WAAW,CAAC;EAIlD"}
1
+ {"version":3,"file":"useInteractions.d.ts","sourceRoot":"","sources":["../../src/interactions/useInteractions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAW3C,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;uBAoBvB,CACtC,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;sBACc,CACpC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,KAC/B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;kBACM,CAC5B,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,KAC/B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;EAI7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useListNavigation.d.ts","sourceRoot":"","sources":["../../src/interactions/useListNavigation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAgFhB,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,GAC5B,YAAY,CAued"}
1
+ {"version":3,"file":"useListNavigation.d.ts","sourceRoot":"","sources":["../../src/interactions/useListNavigation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAgFhB,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,GAC5B,YAAY,CA4ed"}
@@ -1 +1 @@
1
- {"version":3,"file":"inner.d.ts","sourceRoot":"","sources":["../../src/middleware/inner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAA;AAKzE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACjC,gBAAgB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CAChD;AAeD,eAAO,MAAM,KAAK,UAAW,UAAU,KAAG,UA4GxC,CAAA"}
1
+ {"version":3,"file":"inner.d.ts","sourceRoot":"","sources":["../../src/middleware/inner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAA;AAKzE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACjC,gBAAgB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CAChD;AAeD,eAAO,MAAM,KAAK,UAAW,UAAU,KAAG,UAuHxC,CAAA"}