@tamagui/floating 2.7.7 → 3.0.0-beta.1097.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 +9 -11
- package/dist/cjs/Floating.native.cjs +36 -0
- package/dist/cjs/Floating.native.js +19 -20
- package/dist/cjs/Floating.native.js.map +1 -1
- package/dist/cjs/index.cjs +44 -46
- package/dist/cjs/index.native.cjs +73 -0
- package/dist/cjs/index.native.js +44 -45
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +35 -39
- package/dist/cjs/interactions/PopupTriggerMap.native.cjs +95 -0
- package/dist/cjs/interactions/PopupTriggerMap.native.js +75 -75
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/cjs/interactions/createFloatingEvents.cjs +35 -39
- package/dist/cjs/interactions/createFloatingEvents.native.cjs +51 -0
- package/dist/cjs/interactions/createFloatingEvents.native.js +38 -41
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/cjs/interactions/safePolygon.cjs +262 -252
- package/dist/cjs/interactions/safePolygon.native.cjs +293 -0
- package/dist/cjs/interactions/safePolygon.native.js +270 -259
- package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
- package/dist/cjs/interactions/types.cjs +9 -11
- package/dist/cjs/interactions/types.native.cjs +18 -0
- package/dist/cjs/interactions/types.native.js +9 -10
- package/dist/cjs/interactions/types.native.js.map +1 -1
- package/dist/cjs/interactions/useClick.cjs +95 -105
- package/dist/cjs/interactions/useClick.native.cjs +121 -0
- package/dist/cjs/interactions/useClick.native.js +100 -109
- package/dist/cjs/interactions/useClick.native.js.map +1 -1
- package/dist/cjs/interactions/useDelayGroup.cjs +85 -91
- package/dist/cjs/interactions/useDelayGroup.native.cjs +118 -0
- package/dist/cjs/interactions/useDelayGroup.native.js +91 -96
- package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/cjs/interactions/useFocus.cjs +107 -115
- package/dist/cjs/interactions/useFocus.native.cjs +130 -0
- package/dist/cjs/interactions/useFocus.native.js +113 -120
- package/dist/cjs/interactions/useFocus.native.js.map +1 -1
- package/dist/cjs/interactions/useHover.cjs +320 -335
- package/dist/cjs/interactions/useHover.native.cjs +356 -0
- package/dist/cjs/interactions/useHover.native.js +332 -347
- package/dist/cjs/interactions/useHover.native.js.map +1 -1
- package/dist/cjs/interactions/useInnerOffset.cjs +102 -111
- package/dist/cjs/interactions/useInnerOffset.native.cjs +131 -0
- package/dist/cjs/interactions/useInnerOffset.native.js +112 -120
- package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/cjs/interactions/useInteractions.cjs +76 -92
- package/dist/cjs/interactions/useInteractions.native.cjs +199 -0
- package/dist/cjs/interactions/useInteractions.native.js +185 -200
- 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 +91 -106
- package/dist/cjs/interactions/useRole.native.cjs +120 -0
- package/dist/cjs/interactions/useRole.native.js +102 -116
- package/dist/cjs/interactions/useRole.native.js.map +1 -1
- package/dist/cjs/interactions/useTypeahead.cjs +114 -129
- package/dist/cjs/interactions/useTypeahead.native.cjs +143 -0
- package/dist/cjs/interactions/useTypeahead.native.js +127 -141
- package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
- package/dist/cjs/interactions/utils.cjs +125 -143
- package/dist/cjs/interactions/utils.native.cjs +201 -0
- package/dist/cjs/interactions/utils.native.js +132 -156
- package/dist/cjs/interactions/utils.native.js.map +1 -1
- package/dist/cjs/middleware/inner.cjs +73 -101
- package/dist/cjs/middleware/inner.native.cjs +101 -0
- package/dist/cjs/middleware/inner.native.js +82 -109
- package/dist/cjs/middleware/inner.native.js.map +1 -1
- package/dist/cjs/useFloating.cjs +33 -46
- package/dist/cjs/useFloating.native.cjs +55 -0
- package/dist/cjs/useFloating.native.js +36 -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 +65 -75
- package/dist/esm/interactions/useInteractions.mjs.map +1 -1
- package/dist/esm/interactions/useInteractions.native.js +172 -182
- package/dist/esm/interactions/useInteractions.native.js.map +1 -1
- package/dist/esm/interactions/useListNavigation.mjs +393 -373
- package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
- package/dist/esm/interactions/useListNavigation.native.js +405 -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 +98 -120
- 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 +8 -6
- package/src/interactions/useInteractions.ts +61 -59
- package/src/interactions/useListNavigation.ts +7 -2
- package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
- package/types/interactions/useInteractions.d.ts +3 -3
- package/types/interactions/useInteractions.d.ts.map +1 -1
- package/types/interactions/useListNavigation.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","item2","id","sync","preventScroll","initialItem","forceScrollIntoView","scheduler","v","requestAnimationFrame","waitedItem","scrollIntoViewOptions","shouldScrollIntoView","_waitedItem_scrollIntoView","scrollIntoView","call","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","item","syncCurrentTarget","index","indexOf","itemProps","param","onMouseMove","onPointerLeave","pointerType","_elements_floating"],"sources":["../../../src/interactions/useListNavigation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
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,86 +1,82 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
const componentRoleToAriaRoleMap = /* @__PURE__ */ new Map([
|
|
4
|
+
["select", "listbox"],
|
|
5
|
+
["combobox", "listbox"],
|
|
6
|
+
["label", false]
|
|
7
|
+
]);
|
|
3
8
|
let idCounter = 0;
|
|
4
9
|
function useRole(context, props = {}) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"aria-selected": selected
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
return {};
|
|
78
|
-
}, [floatingId, role]);
|
|
79
|
-
return React.useMemo(() => enabled ? {
|
|
80
|
-
reference,
|
|
81
|
-
floating,
|
|
82
|
-
item
|
|
83
|
-
} : {}, [enabled, reference, floating, item]);
|
|
10
|
+
const { open, elements } = context;
|
|
11
|
+
const { enabled = true, role = "dialog" } = props;
|
|
12
|
+
const defaultReferenceId = React.useId();
|
|
13
|
+
const referenceId = elements.domReference?.id || defaultReferenceId;
|
|
14
|
+
const defaultFloatingId = React.useMemo(() => `floating-${idCounter++}`, []);
|
|
15
|
+
const floatingId = React.useMemo(() => elements.floating?.id || defaultFloatingId, [elements.floating, defaultFloatingId]);
|
|
16
|
+
const ariaRole = componentRoleToAriaRoleMap.get(role) ?? role;
|
|
17
|
+
const reference = React.useMemo(() => {
|
|
18
|
+
if (ariaRole === "tooltip" || role === "label") {
|
|
19
|
+
return { [`aria-${role === "label" ? "labelledby" : "describedby"}`]: open ? floatingId : void 0 };
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
"aria-expanded": open ? "true" : "false",
|
|
23
|
+
"aria-haspopup": ariaRole === "alertdialog" ? "dialog" : ariaRole,
|
|
24
|
+
"aria-controls": open ? floatingId : void 0,
|
|
25
|
+
...ariaRole === "listbox" && { role: "combobox" },
|
|
26
|
+
...ariaRole === "menu" && { id: referenceId },
|
|
27
|
+
...role === "select" && { "aria-autocomplete": "none" },
|
|
28
|
+
...role === "combobox" && { "aria-autocomplete": "list" }
|
|
29
|
+
};
|
|
30
|
+
}, [
|
|
31
|
+
ariaRole,
|
|
32
|
+
floatingId,
|
|
33
|
+
open,
|
|
34
|
+
referenceId,
|
|
35
|
+
role
|
|
36
|
+
]);
|
|
37
|
+
const floating = React.useMemo(() => {
|
|
38
|
+
const floatingProps = {
|
|
39
|
+
id: floatingId,
|
|
40
|
+
...ariaRole && { role: ariaRole }
|
|
41
|
+
};
|
|
42
|
+
if (ariaRole === "tooltip" || role === "label") {
|
|
43
|
+
return floatingProps;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
...floatingProps,
|
|
47
|
+
...ariaRole === "menu" && { "aria-labelledby": referenceId }
|
|
48
|
+
};
|
|
49
|
+
}, [
|
|
50
|
+
ariaRole,
|
|
51
|
+
floatingId,
|
|
52
|
+
referenceId,
|
|
53
|
+
role
|
|
54
|
+
]);
|
|
55
|
+
const item = React.useCallback(({ active, selected }) => {
|
|
56
|
+
const commonProps = {
|
|
57
|
+
role: "option",
|
|
58
|
+
...active && { id: `${floatingId}-fui-option` }
|
|
59
|
+
};
|
|
60
|
+
switch (role) {
|
|
61
|
+
case "select":
|
|
62
|
+
case "combobox": return {
|
|
63
|
+
...commonProps,
|
|
64
|
+
"aria-selected": selected
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {};
|
|
68
|
+
}, [floatingId, role]);
|
|
69
|
+
return React.useMemo(() => enabled ? {
|
|
70
|
+
reference,
|
|
71
|
+
floating,
|
|
72
|
+
item
|
|
73
|
+
} : {}, [
|
|
74
|
+
enabled,
|
|
75
|
+
reference,
|
|
76
|
+
floating,
|
|
77
|
+
item
|
|
78
|
+
]);
|
|
84
79
|
}
|
|
80
|
+
|
|
85
81
|
export { useRole };
|
|
86
82
|
//# sourceMappingURL=useRole.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"file":"useRole.js","names":[],"sources":["esm/interactions/useRole.js"],"sourcesContent":["import * as React from \"react\";\nconst componentRoleToAriaRoleMap = /* @__PURE__ */ new Map([\n [\"select\", \"listbox\"],\n [\"combobox\", \"listbox\"],\n [\"label\", false]\n]);\nlet idCounter = 0;\nfunction useRole(context, props = {}) {\n const { open, elements } = context;\n const { enabled = true, role = \"dialog\" } = props;\n const defaultReferenceId = React.useId();\n const referenceId = elements.domReference?.id || defaultReferenceId;\n const defaultFloatingId = React.useMemo(() => `floating-${idCounter++}`, []);\n const floatingId = React.useMemo(\n () => elements.floating?.id || defaultFloatingId,\n [elements.floating, defaultFloatingId]\n );\n const ariaRole = componentRoleToAriaRoleMap.get(role) ?? role;\n const reference = React.useMemo(() => {\n if (ariaRole === \"tooltip\" || role === \"label\") {\n return {\n [`aria-${role === \"label\" ? \"labelledby\" : \"describedby\"}`]: open ? floatingId : void 0\n };\n }\n return {\n \"aria-expanded\": open ? \"true\" : \"false\",\n \"aria-haspopup\": ariaRole === \"alertdialog\" ? \"dialog\" : ariaRole,\n \"aria-controls\": open ? floatingId : void 0,\n ...ariaRole === \"listbox\" && { role: \"combobox\" },\n ...ariaRole === \"menu\" && { id: referenceId },\n ...role === \"select\" && { \"aria-autocomplete\": \"none\" },\n ...role === \"combobox\" && { \"aria-autocomplete\": \"list\" }\n };\n }, [ariaRole, floatingId, open, referenceId, role]);\n const floating = React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n ...ariaRole && { role: ariaRole }\n };\n if (ariaRole === \"tooltip\" || role === \"label\") {\n return floatingProps;\n }\n return {\n ...floatingProps,\n ...ariaRole === \"menu\" && { \"aria-labelledby\": referenceId }\n };\n }, [ariaRole, floatingId, referenceId, role]);\n const item = React.useCallback(\n ({ active, selected }) => {\n const commonProps = {\n role: \"option\",\n ...active && { id: `${floatingId}-fui-option` }\n };\n switch (role) {\n case \"select\":\n case \"combobox\":\n return {\n ...commonProps,\n \"aria-selected\": selected\n };\n }\n return {};\n },\n [floatingId, role]\n );\n return React.useMemo(\n () => enabled ? { reference, floating, item } : {},\n [enabled, reference, floating, item]\n );\n}\nexport {\n useRole\n};\n//# sourceMappingURL=useRole.js.map\n"],"mappings":";;;AACA,MAAM,6CAA6C,IAAI,IAAI;CACzD,CAAC,UAAU,SAAS;CACpB,CAAC,YAAY,SAAS;CACtB,CAAC,SAAS,KAAK;AACjB,CAAC;AACD,IAAI,YAAY;AAChB,SAAS,QAAQ,SAAS,QAAQ,CAAC,GAAG;CACpC,MAAM,EAAE,MAAM,aAAa;CAC3B,MAAM,EAAE,UAAU,MAAM,OAAO,aAAa;CAC5C,MAAM,qBAAqB,MAAM,MAAM;CACvC,MAAM,cAAc,SAAS,cAAc,MAAM;CACjD,MAAM,oBAAoB,MAAM,cAAc,YAAY,eAAe,CAAC,CAAC;CAC3E,MAAM,aAAa,MAAM,cACjB,SAAS,UAAU,MAAM,mBAC/B,CAAC,SAAS,UAAU,iBAAiB,CACvC;CACA,MAAM,WAAW,2BAA2B,IAAI,IAAI,KAAK;CACzD,MAAM,YAAY,MAAM,cAAc;EACpC,IAAI,aAAa,aAAa,SAAS,SAAS;GAC9C,OAAO,GACJ,QAAQ,SAAS,UAAU,eAAe,kBAAkB,OAAO,aAAa,KAAK,EACxF;EACF;EACA,OAAO;GACL,iBAAiB,OAAO,SAAS;GACjC,iBAAiB,aAAa,gBAAgB,WAAW;GACzD,iBAAiB,OAAO,aAAa,KAAK;GAC1C,GAAG,aAAa,aAAa,EAAE,MAAM,WAAW;GAChD,GAAG,aAAa,UAAU,EAAE,IAAI,YAAY;GAC5C,GAAG,SAAS,YAAY,EAAE,qBAAqB,OAAO;GACtD,GAAG,SAAS,cAAc,EAAE,qBAAqB,OAAO;EAC1D;CACF,GAAG;EAAC;EAAU;EAAY;EAAM;EAAa;CAAI,CAAC;CAClD,MAAM,WAAW,MAAM,cAAc;EACnC,MAAM,gBAAgB;GACpB,IAAI;GACJ,GAAG,YAAY,EAAE,MAAM,SAAS;EAClC;EACA,IAAI,aAAa,aAAa,SAAS,SAAS;GAC9C,OAAO;EACT;EACA,OAAO;GACL,GAAG;GACH,GAAG,aAAa,UAAU,EAAE,mBAAmB,YAAY;EAC7D;CACF,GAAG;EAAC;EAAU;EAAY;EAAa;CAAI,CAAC;CAC5C,MAAM,OAAO,MAAM,aAChB,EAAE,QAAQ,eAAe;EACxB,MAAM,cAAc;GAClB,MAAM;GACN,GAAG,UAAU,EAAE,IAAI,GAAG,WAAW,aAAa;EAChD;EACA,QAAQ,MAAR;GACE,KAAK;GACL,KAAK,YACH,OAAO;IACL,GAAG;IACH,iBAAiB;GACnB;EACJ;EACA,OAAO,CAAC;CACV,GACA,CAAC,YAAY,IAAI,CACnB;CACA,OAAO,MAAM,cACL,UAAU;EAAE;EAAW;EAAU;CAAK,IAAI,CAAC,GACjD;EAAC;EAAS;EAAW;EAAU;CAAI,CACrC;AACF"}
|
|
@@ -1,97 +1,93 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
var componentRoleToAriaRoleMap = /* @__PURE__ */ new Map([
|
|
4
|
+
["select", "listbox"],
|
|
5
|
+
["combobox", "listbox"],
|
|
6
|
+
["label", false]
|
|
7
|
+
]);
|
|
3
8
|
var idCounter = 0;
|
|
4
9
|
function useRole(context) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
return {};
|
|
87
|
-
}, [floatingId, role]);
|
|
88
|
-
return React.useMemo(function () {
|
|
89
|
-
return enabled ? {
|
|
90
|
-
reference,
|
|
91
|
-
floating,
|
|
92
|
-
item
|
|
93
|
-
} : {};
|
|
94
|
-
}, [enabled, reference, floating, item]);
|
|
10
|
+
var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
11
|
+
var _elements_domReference;
|
|
12
|
+
var { open, elements } = context;
|
|
13
|
+
var { enabled = true, role = "dialog" } = props;
|
|
14
|
+
var defaultReferenceId = React.useId();
|
|
15
|
+
var referenceId = ((_elements_domReference = elements.domReference) === null || _elements_domReference === void 0 ? void 0 : _elements_domReference.id) || defaultReferenceId;
|
|
16
|
+
var defaultFloatingId = React.useMemo(function() {
|
|
17
|
+
return `floating-${idCounter++}`;
|
|
18
|
+
}, []);
|
|
19
|
+
var floatingId = React.useMemo(function() {
|
|
20
|
+
var _elements_floating;
|
|
21
|
+
return ((_elements_floating = elements.floating) === null || _elements_floating === void 0 ? void 0 : _elements_floating.id) || defaultFloatingId;
|
|
22
|
+
}, [elements.floating, defaultFloatingId]);
|
|
23
|
+
var _componentRoleToAriaRoleMap_get;
|
|
24
|
+
var ariaRole = (_componentRoleToAriaRoleMap_get = componentRoleToAriaRoleMap.get(role)) !== null && _componentRoleToAriaRoleMap_get !== void 0 ? _componentRoleToAriaRoleMap_get : role;
|
|
25
|
+
var reference = React.useMemo(function() {
|
|
26
|
+
if (ariaRole === "tooltip" || role === "label") {
|
|
27
|
+
return { [`aria-${role === "label" ? "labelledby" : "describedby"}`]: open ? floatingId : void 0 };
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
"aria-expanded": open ? "true" : "false",
|
|
31
|
+
"aria-haspopup": ariaRole === "alertdialog" ? "dialog" : ariaRole,
|
|
32
|
+
"aria-controls": open ? floatingId : void 0,
|
|
33
|
+
...ariaRole === "listbox" && { role: "combobox" },
|
|
34
|
+
...ariaRole === "menu" && { id: referenceId },
|
|
35
|
+
...role === "select" && { "aria-autocomplete": "none" },
|
|
36
|
+
...role === "combobox" && { "aria-autocomplete": "list" }
|
|
37
|
+
};
|
|
38
|
+
}, [
|
|
39
|
+
ariaRole,
|
|
40
|
+
floatingId,
|
|
41
|
+
open,
|
|
42
|
+
referenceId,
|
|
43
|
+
role
|
|
44
|
+
]);
|
|
45
|
+
var floating = React.useMemo(function() {
|
|
46
|
+
var floatingProps = {
|
|
47
|
+
id: floatingId,
|
|
48
|
+
...ariaRole && { role: ariaRole }
|
|
49
|
+
};
|
|
50
|
+
if (ariaRole === "tooltip" || role === "label") {
|
|
51
|
+
return floatingProps;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
...floatingProps,
|
|
55
|
+
...ariaRole === "menu" && { "aria-labelledby": referenceId }
|
|
56
|
+
};
|
|
57
|
+
}, [
|
|
58
|
+
ariaRole,
|
|
59
|
+
floatingId,
|
|
60
|
+
referenceId,
|
|
61
|
+
role
|
|
62
|
+
]);
|
|
63
|
+
var item = React.useCallback(function(param) {
|
|
64
|
+
var { active, selected } = param;
|
|
65
|
+
var commonProps = {
|
|
66
|
+
role: "option",
|
|
67
|
+
...active && { id: `${floatingId}-fui-option` }
|
|
68
|
+
};
|
|
69
|
+
switch (role) {
|
|
70
|
+
case "select":
|
|
71
|
+
case "combobox": return {
|
|
72
|
+
...commonProps,
|
|
73
|
+
"aria-selected": selected
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {};
|
|
77
|
+
}, [floatingId, role]);
|
|
78
|
+
return React.useMemo(function() {
|
|
79
|
+
return enabled ? {
|
|
80
|
+
reference,
|
|
81
|
+
floating,
|
|
82
|
+
item
|
|
83
|
+
} : {};
|
|
84
|
+
}, [
|
|
85
|
+
enabled,
|
|
86
|
+
reference,
|
|
87
|
+
floating,
|
|
88
|
+
item
|
|
89
|
+
]);
|
|
95
90
|
}
|
|
91
|
+
|
|
96
92
|
export { useRole };
|
|
97
93
|
//# sourceMappingURL=useRole.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useRole.native.js","names":[],"sources":["esm/interactions/useRole.native.js"],"sourcesContent":["import * as React from \"react\";\nvar componentRoleToAriaRoleMap = /* @__PURE__ */ new Map([\n [\n \"select\",\n \"listbox\"\n ],\n [\n \"combobox\",\n \"listbox\"\n ],\n [\n \"label\",\n false\n ]\n]);\nvar idCounter = 0;\nfunction useRole(context) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var _elements_domReference;\n var { open, elements } = context;\n var { enabled = true, role = \"dialog\" } = props;\n var defaultReferenceId = React.useId();\n var referenceId = ((_elements_domReference = elements.domReference) === null || _elements_domReference === void 0 ? void 0 : _elements_domReference.id) || defaultReferenceId;\n var defaultFloatingId = React.useMemo(function() {\n return `floating-${idCounter++}`;\n }, []);\n var floatingId = React.useMemo(function() {\n var _elements_floating;\n return ((_elements_floating = elements.floating) === null || _elements_floating === void 0 ? void 0 : _elements_floating.id) || defaultFloatingId;\n }, [\n elements.floating,\n defaultFloatingId\n ]);\n var _componentRoleToAriaRoleMap_get;\n var ariaRole = (_componentRoleToAriaRoleMap_get = componentRoleToAriaRoleMap.get(role)) !== null && _componentRoleToAriaRoleMap_get !== void 0 ? _componentRoleToAriaRoleMap_get : role;\n var reference = React.useMemo(function() {\n if (ariaRole === \"tooltip\" || role === \"label\") {\n return {\n [`aria-${role === \"label\" ? \"labelledby\" : \"describedby\"}`]: open ? floatingId : void 0\n };\n }\n return {\n \"aria-expanded\": open ? \"true\" : \"false\",\n \"aria-haspopup\": ariaRole === \"alertdialog\" ? \"dialog\" : ariaRole,\n \"aria-controls\": open ? floatingId : void 0,\n ...ariaRole === \"listbox\" && {\n role: \"combobox\"\n },\n ...ariaRole === \"menu\" && {\n id: referenceId\n },\n ...role === \"select\" && {\n \"aria-autocomplete\": \"none\"\n },\n ...role === \"combobox\" && {\n \"aria-autocomplete\": \"list\"\n }\n };\n }, [\n ariaRole,\n floatingId,\n open,\n referenceId,\n role\n ]);\n var floating = React.useMemo(function() {\n var floatingProps = {\n id: floatingId,\n ...ariaRole && {\n role: ariaRole\n }\n };\n if (ariaRole === \"tooltip\" || role === \"label\") {\n return floatingProps;\n }\n return {\n ...floatingProps,\n ...ariaRole === \"menu\" && {\n \"aria-labelledby\": referenceId\n }\n };\n }, [\n ariaRole,\n floatingId,\n referenceId,\n role\n ]);\n var item = React.useCallback(function(param) {\n var { active, selected } = param;\n var commonProps = {\n role: \"option\",\n ...active && {\n id: `${floatingId}-fui-option`\n }\n };\n switch (role) {\n case \"select\":\n case \"combobox\":\n return {\n ...commonProps,\n \"aria-selected\": selected\n };\n }\n return {};\n }, [\n floatingId,\n role\n ]);\n return React.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 useRole\n};\n//# sourceMappingURL=useRole.js.map\n"],"mappings":";;;AACA,IAAI,6CAA6C,IAAI,IAAI;CACvD,CACE,UACA,SACF;CACA,CACE,YACA,SACF;CACA,CACE,SACA,KACF;AACF,CAAC;AACD,IAAI,YAAY;AAChB,SAAS,QAAQ,SAAS;CACxB,IAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,CAAC;CAC9E,IAAI;CACJ,IAAI,EAAE,MAAM,aAAa;CACzB,IAAI,EAAE,UAAU,MAAM,OAAO,aAAa;CAC1C,IAAI,qBAAqB,MAAM,MAAM;CACrC,IAAI,gBAAgB,yBAAyB,SAAS,kBAAkB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,OAAO;CAC3J,IAAI,oBAAoB,MAAM,QAAQ,WAAW;EAC/C,OAAO,YAAY;CACrB,GAAG,CAAC,CAAC;CACL,IAAI,aAAa,MAAM,QAAQ,WAAW;EACxC,IAAI;EACJ,SAAS,qBAAqB,SAAS,cAAc,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,OAAO;CAClI,GAAG,CACD,SAAS,UACT,iBACF,CAAC;CACD,IAAI;CACJ,IAAI,YAAY,kCAAkC,2BAA2B,IAAI,IAAI,OAAO,QAAQ,oCAAoC,KAAK,IAAI,kCAAkC;CACnL,IAAI,YAAY,MAAM,QAAQ,WAAW;EACvC,IAAI,aAAa,aAAa,SAAS,SAAS;GAC9C,OAAO,GACJ,QAAQ,SAAS,UAAU,eAAe,kBAAkB,OAAO,aAAa,KAAK,EACxF;EACF;EACA,OAAO;GACL,iBAAiB,OAAO,SAAS;GACjC,iBAAiB,aAAa,gBAAgB,WAAW;GACzD,iBAAiB,OAAO,aAAa,KAAK;GAC1C,GAAG,aAAa,aAAa,EAC3B,MAAM,WACR;GACA,GAAG,aAAa,UAAU,EACxB,IAAI,YACN;GACA,GAAG,SAAS,YAAY,EACtB,qBAAqB,OACvB;GACA,GAAG,SAAS,cAAc,EACxB,qBAAqB,OACvB;EACF;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,IAAI,WAAW,MAAM,QAAQ,WAAW;EACtC,IAAI,gBAAgB;GAClB,IAAI;GACJ,GAAG,YAAY,EACb,MAAM,SACR;EACF;EACA,IAAI,aAAa,aAAa,SAAS,SAAS;GAC9C,OAAO;EACT;EACA,OAAO;GACL,GAAG;GACH,GAAG,aAAa,UAAU,EACxB,mBAAmB,YACrB;EACF;CACF,GAAG;EACD;EACA;EACA;EACA;CACF,CAAC;CACD,IAAI,OAAO,MAAM,YAAY,SAAS,OAAO;EAC3C,IAAI,EAAE,QAAQ,aAAa;EAC3B,IAAI,cAAc;GAChB,MAAM;GACN,GAAG,UAAU,EACX,IAAI,GAAG,WAAW,aACpB;EACF;EACA,QAAQ,MAAR;GACE,KAAK;GACL,KAAK,YACH,OAAO;IACL,GAAG;IACH,iBAAiB;GACnB;EACJ;EACA,OAAO,CAAC;CACV,GAAG,CACD,YACA,IACF,CAAC;CACD,OAAO,MAAM,QAAQ,WAAW;EAC9B,OAAO,UAAU;GACf;GACA;GACA;EACF,IAAI,CAAC;CACP,GAAG;EACD;EACA;EACA;EACA;CACF,CAAC;AACH"}
|