@tamagui/floating 2.7.7 → 3.0.0-beta.643.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.
- package/dist/cjs/Floating.cjs +10 -11
- package/dist/cjs/Floating.native.cjs +37 -0
- package/dist/cjs/Floating.native.js +20 -20
- package/dist/cjs/Floating.native.js.map +1 -1
- package/dist/cjs/index.cjs +45 -46
- package/dist/cjs/index.native.cjs +74 -0
- package/dist/cjs/index.native.js +45 -45
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +36 -39
- package/dist/cjs/interactions/PopupTriggerMap.native.cjs +96 -0
- package/dist/cjs/interactions/PopupTriggerMap.native.js +76 -75
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/cjs/interactions/createFloatingEvents.cjs +36 -39
- package/dist/cjs/interactions/createFloatingEvents.native.cjs +52 -0
- package/dist/cjs/interactions/createFloatingEvents.native.js +39 -41
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/cjs/interactions/safePolygon.cjs +263 -252
- package/dist/cjs/interactions/safePolygon.native.cjs +294 -0
- package/dist/cjs/interactions/safePolygon.native.js +271 -259
- package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
- package/dist/cjs/interactions/types.cjs +10 -11
- package/dist/cjs/interactions/types.native.cjs +19 -0
- package/dist/cjs/interactions/types.native.js +10 -10
- package/dist/cjs/interactions/types.native.js.map +1 -1
- package/dist/cjs/interactions/useClick.cjs +96 -105
- package/dist/cjs/interactions/useClick.native.cjs +122 -0
- package/dist/cjs/interactions/useClick.native.js +101 -109
- package/dist/cjs/interactions/useClick.native.js.map +1 -1
- package/dist/cjs/interactions/useDelayGroup.cjs +86 -91
- package/dist/cjs/interactions/useDelayGroup.native.cjs +119 -0
- package/dist/cjs/interactions/useDelayGroup.native.js +92 -96
- package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/cjs/interactions/useFocus.cjs +108 -115
- package/dist/cjs/interactions/useFocus.native.cjs +131 -0
- package/dist/cjs/interactions/useFocus.native.js +114 -120
- package/dist/cjs/interactions/useFocus.native.js.map +1 -1
- package/dist/cjs/interactions/useHover.cjs +321 -335
- package/dist/cjs/interactions/useHover.native.cjs +357 -0
- package/dist/cjs/interactions/useHover.native.js +333 -347
- package/dist/cjs/interactions/useHover.native.js.map +1 -1
- package/dist/cjs/interactions/useInnerOffset.cjs +103 -111
- package/dist/cjs/interactions/useInnerOffset.native.cjs +132 -0
- package/dist/cjs/interactions/useInnerOffset.native.js +113 -120
- package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/cjs/interactions/useInteractions.cjs +85 -90
- package/dist/cjs/interactions/useInteractions.native.cjs +199 -0
- package/dist/cjs/interactions/useInteractions.native.js +180 -195
- package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
- package/dist/cjs/interactions/useListNavigation.cjs +404 -390
- package/dist/cjs/interactions/useListNavigation.native.cjs +446 -0
- package/dist/cjs/interactions/useListNavigation.native.js +416 -401
- package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
- package/dist/cjs/interactions/useRole.cjs +92 -106
- package/dist/cjs/interactions/useRole.native.cjs +121 -0
- package/dist/cjs/interactions/useRole.native.js +103 -116
- package/dist/cjs/interactions/useRole.native.js.map +1 -1
- package/dist/cjs/interactions/useTypeahead.cjs +115 -129
- package/dist/cjs/interactions/useTypeahead.native.cjs +144 -0
- package/dist/cjs/interactions/useTypeahead.native.js +128 -141
- package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
- package/dist/cjs/interactions/utils.cjs +126 -143
- package/dist/cjs/interactions/utils.native.cjs +209 -0
- package/dist/cjs/interactions/utils.native.js +138 -154
- package/dist/cjs/interactions/utils.native.js.map +1 -1
- package/dist/cjs/middleware/inner.cjs +74 -101
- package/dist/cjs/middleware/inner.native.cjs +102 -0
- package/dist/cjs/middleware/inner.native.js +83 -109
- package/dist/cjs/middleware/inner.native.js.map +1 -1
- package/dist/cjs/useFloating.cjs +34 -46
- package/dist/cjs/useFloating.native.cjs +56 -0
- package/dist/cjs/useFloating.native.js +37 -48
- package/dist/cjs/useFloating.native.js.map +1 -1
- package/dist/esm/Floating.mjs +1 -2
- package/dist/esm/Floating.native.js +6 -4
- package/dist/esm/Floating.native.js.map +1 -1
- package/dist/esm/index.js +4 -5
- package/dist/esm/index.mjs +4 -5
- package/dist/esm/index.native.js +4 -5
- package/dist/esm/interactions/PopupTriggerMap.mjs +23 -22
- package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.native.js +62 -58
- package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.mjs +22 -21
- package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.native.js +25 -24
- package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/esm/interactions/safePolygon.mjs +250 -234
- package/dist/esm/interactions/safePolygon.mjs.map +1 -1
- package/dist/esm/interactions/safePolygon.native.js +258 -242
- package/dist/esm/interactions/safePolygon.native.js.map +1 -1
- package/dist/esm/interactions/types.mjs +0 -2
- package/dist/esm/interactions/types.native.js +0 -2
- package/dist/esm/interactions/useClick.mjs +83 -87
- package/dist/esm/interactions/useClick.mjs.map +1 -1
- package/dist/esm/interactions/useClick.native.js +88 -92
- package/dist/esm/interactions/useClick.native.js.map +1 -1
- package/dist/esm/interactions/useDelayGroup.mjs +68 -65
- package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
- package/dist/esm/interactions/useDelayGroup.native.js +74 -71
- package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/esm/interactions/useFocus.mjs +95 -97
- package/dist/esm/interactions/useFocus.mjs.map +1 -1
- package/dist/esm/interactions/useFocus.native.js +101 -103
- package/dist/esm/interactions/useFocus.native.js.map +1 -1
- package/dist/esm/interactions/useHover.mjs +304 -310
- package/dist/esm/interactions/useHover.mjs.map +1 -1
- package/dist/esm/interactions/useHover.native.js +316 -323
- package/dist/esm/interactions/useHover.native.js.map +1 -1
- package/dist/esm/interactions/useInnerOffset.mjs +87 -85
- package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
- package/dist/esm/interactions/useInnerOffset.native.js +97 -95
- package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/esm/interactions/useInteractions.mjs +71 -72
- package/dist/esm/interactions/useInteractions.mjs.map +1 -1
- package/dist/esm/interactions/useInteractions.native.js +166 -178
- package/dist/esm/interactions/useInteractions.native.js.map +1 -1
- package/dist/esm/interactions/useListNavigation.mjs +392 -373
- package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
- package/dist/esm/interactions/useListNavigation.native.js +404 -385
- package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
- package/dist/esm/interactions/useRole.mjs +76 -80
- package/dist/esm/interactions/useRole.mjs.map +1 -1
- package/dist/esm/interactions/useRole.native.js +87 -91
- package/dist/esm/interactions/useRole.native.js.map +1 -1
- package/dist/esm/interactions/useTypeahead.mjs +102 -111
- package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
- package/dist/esm/interactions/useTypeahead.native.js +115 -124
- package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
- package/dist/esm/interactions/utils.mjs +91 -106
- package/dist/esm/interactions/utils.mjs.map +1 -1
- package/dist/esm/interactions/utils.native.js +103 -118
- package/dist/esm/interactions/utils.native.js.map +1 -1
- package/dist/esm/middleware/inner.mjs +58 -75
- package/dist/esm/middleware/inner.mjs.map +1 -1
- package/dist/esm/middleware/inner.native.js +67 -84
- package/dist/esm/middleware/inner.native.js.map +1 -1
- package/dist/esm/useFloating.mjs +17 -21
- package/dist/esm/useFloating.mjs.map +1 -1
- package/dist/esm/useFloating.native.js +19 -23
- package/dist/esm/useFloating.native.js.map +1 -1
- package/package.json +6 -5
- package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
- package/types/interactions/useInteractions.d.ts.map +1 -1
- package/types/middleware/inner.d.ts.map +1 -1
- package/types/useFloating.d.ts.map +1 -1
- package/dist/esm/Floating.mjs.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/interactions/types.mjs.map +0 -1
- package/dist/esm/interactions/types.native.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useLayoutEffect","useMemo","useRef","useState","useEvent","activeElement","enqueueFocus","findNonDisabledListIndex","getMinListIndex","getMaxListIndex","isHTMLElement","isIndexOutOfListBounds","isTypeableCombobox","isVirtualClick","isVirtualPointerEvent","stopEvent","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","doSwitch","orientation","vertical","horizontal","isMainOrientationKey","key","isMainOrientationToEndKey","rtl","isCrossOrientationOpenKey","isCrossOrientationCloseKey","useListNavigation","context","props","open","onOpenChange","elements","listRef","activeIndex","onNavigate","unstable_onNavigate","enabled","selectedIndex","allowEscape","loop","nested","virtual","focusItemOnOpen","focusItemOnHover","openOnArrowKeyDown","disabledIndices","scrollItemIntoView","typeableComboboxReference","domReference","focusItemOnOpenRef","indexRef","keyRef","isPointerModalityRef","previousMountedRef","floating","previousOpenRef","forceSyncFocusRef","forceScrollIntoViewRef","disabledIndicesRef","current","latestOpenRef","scrollItemIntoViewRef","selectedIndexRef","stableOnNavigate","activeId","setActiveId","previousOnNavigateRef","focusItem","runFocus","item","id","sync","preventScroll","initialItem","forceScrollIntoView","scheduler","v","requestAnimationFrame","waitedItem","scrollIntoViewOptions","shouldScrollIntoView","scrollIntoView","block","inline","runs","waitForListPopulated","queueMicrotask","hasActiveIndex","commonOnKeyDown","event","which","currentTarget","nativeEvent","focus","currentIndex","minIndex","maxIndex","ownerDocument","length","startingIndex","Math","min","decrement","max","ariaActiveDescendantProp","onKeyDown","onPointerMove","reference","checkVirtualMouse","checkVirtualPointer","isArrowKey","startsWith","isCrossOpenKey","isMainKey","isNavigationKey","trim","onFocus","onPointerDown","onPointerEnter","onMouseDown","onClick","syncCurrentTarget","index","indexOf","itemProps","onMouseMove","onPointerLeave","pointerType"],"sources":["../../../src/interactions/useListNavigation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useListNavigation.js","names":[],"sources":["esm/interactions/useListNavigation.js"],"sourcesContent":["import { useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport {\n activeElement,\n enqueueFocus,\n findNonDisabledListIndex,\n getMinListIndex,\n getMaxListIndex,\n isHTMLElement,\n isIndexOutOfListBounds,\n isTypeableCombobox,\n isVirtualClick,\n isVirtualPointerEvent,\n stopEvent\n} from \"./utils\";\nconst ARROW_UP = \"ArrowUp\";\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_LEFT = \"ArrowLeft\";\nconst 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 const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const 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 const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction useListNavigation(context, props) {\n const { open, onOpenChange, elements } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {\n },\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = \"auto\",\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = void 0,\n orientation = \"vertical\",\n scrollItemIntoView = true\n } = props;\n const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n const focusItemOnOpenRef = useRef(focusItemOnOpen);\n const indexRef = useRef(selectedIndex ?? -1);\n const keyRef = useRef(null);\n const isPointerModalityRef = useRef(true);\n const previousMountedRef = useRef(!!elements.floating);\n const previousOpenRef = useRef(open);\n const forceSyncFocusRef = useRef(false);\n const forceScrollIntoViewRef = useRef(false);\n const disabledIndicesRef = useRef(disabledIndices);\n disabledIndicesRef.current = disabledIndices;\n const latestOpenRef = useRef(open);\n latestOpenRef.current = open;\n const scrollItemIntoViewRef = useRef(scrollItemIntoView);\n scrollItemIntoViewRef.current = scrollItemIntoView;\n const selectedIndexRef = useRef(selectedIndex);\n selectedIndexRef.current = selectedIndex;\n const stableOnNavigate = useEvent(unstable_onNavigate);\n const [activeId, setActiveId] = useState();\n const onNavigate = useEvent(() => {\n stableOnNavigate(indexRef.current === -1 ? null : indexRef.current);\n });\n const previousOnNavigateRef = useRef(onNavigate);\n const focusItem = useEvent(() => {\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 const initialItem = listRef.current[indexRef.current];\n const forceScrollIntoView = forceScrollIntoViewRef.current;\n if (initialItem) {\n runFocus(initialItem);\n }\n const scheduler = forceSyncFocusRef.current ? (v) => v() : requestAnimationFrame;\n scheduler(() => {\n const waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) return;\n if (!initialItem) {\n runFocus(waitedItem);\n }\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && waitedItem && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n waitedItem.scrollIntoView?.(\n typeof scrollIntoViewOptions === \"boolean\" ? { block: \"nearest\", inline: \"nearest\" } : scrollIntoViewOptions\n );\n }\n });\n });\n useLayoutEffect(() => {\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 }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n useLayoutEffect(() => {\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 let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n if (runs < 2) {\n const 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(() => {\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n previousMountedRef.current = !!elements.floating;\n });\n useLayoutEffect(() => {\n if (!open) {\n keyRef.current = null;\n focusItemOnOpenRef.current = focusItemOnOpen;\n }\n }, [open, focusItemOnOpen]);\n const hasActiveIndex = activeIndex != null;\n const commonOnKeyDown = useEvent((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 const currentIndex = indexRef.current;\n const minIndex = getMinListIndex(listRef, disabledIndices);\n const 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(\n maxIndex,\n findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n })\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(\n minIndex,\n findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n })\n );\n }\n }\n if (isIndexOutOfListBounds(listRef, indexRef.current)) {\n indexRef.current = -1;\n }\n onNavigate();\n }\n });\n const ariaActiveDescendantProp = useMemo(() => {\n return virtual && open && hasActiveIndex && {\n \"aria-activedescendant\": activeId\n };\n }, [virtual, open, hasActiveIndex, activeId]);\n const floating = useMemo(() => {\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 }, [ariaActiveDescendantProp, commonOnKeyDown, orientation, typeableComboboxReference]);\n const reference = useMemo(() => {\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 const isArrowKey = event.key.startsWith(\"Arrow\");\n const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const 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 const item = useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!latestOpenRef.current) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1 && indexRef.current !== index) {\n indexRef.current = index;\n onNavigate();\n }\n }\n const itemProps = {\n onFocus({ currentTarget }) {\n forceSyncFocusRef.current = true;\n syncCurrentTarget(currentTarget);\n },\n onClick: ({ currentTarget }) => currentTarget.focus({ preventScroll: true }),\n // safari\n onMouseMove({ currentTarget }) {\n forceSyncFocusRef.current = true;\n forceScrollIntoViewRef.current = false;\n if (focusItemOnHover) {\n syncCurrentTarget(currentTarget);\n }\n },\n onPointerLeave({ pointerType }) {\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 elements.floating?.focus({ preventScroll: true });\n }\n }\n };\n return itemProps;\n }, [latestOpenRef, focusItemOnHover, listRef, onNavigate, virtual, elements.floating]);\n return useMemo(\n () => enabled ? { reference, floating, item } : {},\n [enabled, reference, floating, item]\n );\n}\nexport {\n useListNavigation\n};\n//# sourceMappingURL=useListNavigation.js.map\n"],"mappings":"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"}
|