@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.
Files changed (155) hide show
  1. package/dist/cjs/Floating.cjs +9 -11
  2. package/dist/cjs/Floating.native.cjs +36 -0
  3. package/dist/cjs/Floating.native.js +19 -20
  4. package/dist/cjs/Floating.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +44 -46
  6. package/dist/cjs/index.native.cjs +73 -0
  7. package/dist/cjs/index.native.js +44 -45
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/interactions/PopupTriggerMap.cjs +35 -39
  10. package/dist/cjs/interactions/PopupTriggerMap.native.cjs +95 -0
  11. package/dist/cjs/interactions/PopupTriggerMap.native.js +75 -75
  12. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
  13. package/dist/cjs/interactions/createFloatingEvents.cjs +35 -39
  14. package/dist/cjs/interactions/createFloatingEvents.native.cjs +51 -0
  15. package/dist/cjs/interactions/createFloatingEvents.native.js +38 -41
  16. package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
  17. package/dist/cjs/interactions/safePolygon.cjs +262 -252
  18. package/dist/cjs/interactions/safePolygon.native.cjs +293 -0
  19. package/dist/cjs/interactions/safePolygon.native.js +270 -259
  20. package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
  21. package/dist/cjs/interactions/types.cjs +9 -11
  22. package/dist/cjs/interactions/types.native.cjs +18 -0
  23. package/dist/cjs/interactions/types.native.js +9 -10
  24. package/dist/cjs/interactions/types.native.js.map +1 -1
  25. package/dist/cjs/interactions/useClick.cjs +95 -105
  26. package/dist/cjs/interactions/useClick.native.cjs +121 -0
  27. package/dist/cjs/interactions/useClick.native.js +100 -109
  28. package/dist/cjs/interactions/useClick.native.js.map +1 -1
  29. package/dist/cjs/interactions/useDelayGroup.cjs +85 -91
  30. package/dist/cjs/interactions/useDelayGroup.native.cjs +118 -0
  31. package/dist/cjs/interactions/useDelayGroup.native.js +91 -96
  32. package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
  33. package/dist/cjs/interactions/useFocus.cjs +107 -115
  34. package/dist/cjs/interactions/useFocus.native.cjs +130 -0
  35. package/dist/cjs/interactions/useFocus.native.js +113 -120
  36. package/dist/cjs/interactions/useFocus.native.js.map +1 -1
  37. package/dist/cjs/interactions/useHover.cjs +320 -335
  38. package/dist/cjs/interactions/useHover.native.cjs +356 -0
  39. package/dist/cjs/interactions/useHover.native.js +332 -347
  40. package/dist/cjs/interactions/useHover.native.js.map +1 -1
  41. package/dist/cjs/interactions/useInnerOffset.cjs +102 -111
  42. package/dist/cjs/interactions/useInnerOffset.native.cjs +131 -0
  43. package/dist/cjs/interactions/useInnerOffset.native.js +112 -120
  44. package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
  45. package/dist/cjs/interactions/useInteractions.cjs +76 -92
  46. package/dist/cjs/interactions/useInteractions.native.cjs +199 -0
  47. package/dist/cjs/interactions/useInteractions.native.js +185 -200
  48. package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
  49. package/dist/cjs/interactions/useListNavigation.cjs +404 -390
  50. package/dist/cjs/interactions/useListNavigation.native.cjs +446 -0
  51. package/dist/cjs/interactions/useListNavigation.native.js +416 -401
  52. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
  53. package/dist/cjs/interactions/useRole.cjs +91 -106
  54. package/dist/cjs/interactions/useRole.native.cjs +120 -0
  55. package/dist/cjs/interactions/useRole.native.js +102 -116
  56. package/dist/cjs/interactions/useRole.native.js.map +1 -1
  57. package/dist/cjs/interactions/useTypeahead.cjs +114 -129
  58. package/dist/cjs/interactions/useTypeahead.native.cjs +143 -0
  59. package/dist/cjs/interactions/useTypeahead.native.js +127 -141
  60. package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
  61. package/dist/cjs/interactions/utils.cjs +125 -143
  62. package/dist/cjs/interactions/utils.native.cjs +201 -0
  63. package/dist/cjs/interactions/utils.native.js +132 -156
  64. package/dist/cjs/interactions/utils.native.js.map +1 -1
  65. package/dist/cjs/middleware/inner.cjs +73 -101
  66. package/dist/cjs/middleware/inner.native.cjs +101 -0
  67. package/dist/cjs/middleware/inner.native.js +82 -109
  68. package/dist/cjs/middleware/inner.native.js.map +1 -1
  69. package/dist/cjs/useFloating.cjs +33 -46
  70. package/dist/cjs/useFloating.native.cjs +55 -0
  71. package/dist/cjs/useFloating.native.js +36 -48
  72. package/dist/cjs/useFloating.native.js.map +1 -1
  73. package/dist/esm/Floating.mjs +1 -2
  74. package/dist/esm/Floating.native.js +6 -4
  75. package/dist/esm/Floating.native.js.map +1 -1
  76. package/dist/esm/index.js +4 -5
  77. package/dist/esm/index.mjs +4 -5
  78. package/dist/esm/index.native.js +4 -5
  79. package/dist/esm/interactions/PopupTriggerMap.mjs +23 -22
  80. package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
  81. package/dist/esm/interactions/PopupTriggerMap.native.js +62 -58
  82. package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
  83. package/dist/esm/interactions/createFloatingEvents.mjs +22 -21
  84. package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
  85. package/dist/esm/interactions/createFloatingEvents.native.js +25 -24
  86. package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
  87. package/dist/esm/interactions/safePolygon.mjs +250 -234
  88. package/dist/esm/interactions/safePolygon.mjs.map +1 -1
  89. package/dist/esm/interactions/safePolygon.native.js +258 -242
  90. package/dist/esm/interactions/safePolygon.native.js.map +1 -1
  91. package/dist/esm/interactions/types.mjs +0 -2
  92. package/dist/esm/interactions/types.native.js +0 -2
  93. package/dist/esm/interactions/useClick.mjs +83 -87
  94. package/dist/esm/interactions/useClick.mjs.map +1 -1
  95. package/dist/esm/interactions/useClick.native.js +88 -92
  96. package/dist/esm/interactions/useClick.native.js.map +1 -1
  97. package/dist/esm/interactions/useDelayGroup.mjs +68 -65
  98. package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
  99. package/dist/esm/interactions/useDelayGroup.native.js +74 -71
  100. package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
  101. package/dist/esm/interactions/useFocus.mjs +95 -97
  102. package/dist/esm/interactions/useFocus.mjs.map +1 -1
  103. package/dist/esm/interactions/useFocus.native.js +101 -103
  104. package/dist/esm/interactions/useFocus.native.js.map +1 -1
  105. package/dist/esm/interactions/useHover.mjs +304 -310
  106. package/dist/esm/interactions/useHover.mjs.map +1 -1
  107. package/dist/esm/interactions/useHover.native.js +316 -323
  108. package/dist/esm/interactions/useHover.native.js.map +1 -1
  109. package/dist/esm/interactions/useInnerOffset.mjs +87 -85
  110. package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
  111. package/dist/esm/interactions/useInnerOffset.native.js +97 -95
  112. package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
  113. package/dist/esm/interactions/useInteractions.mjs +65 -75
  114. package/dist/esm/interactions/useInteractions.mjs.map +1 -1
  115. package/dist/esm/interactions/useInteractions.native.js +172 -182
  116. package/dist/esm/interactions/useInteractions.native.js.map +1 -1
  117. package/dist/esm/interactions/useListNavigation.mjs +393 -373
  118. package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
  119. package/dist/esm/interactions/useListNavigation.native.js +405 -385
  120. package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
  121. package/dist/esm/interactions/useRole.mjs +76 -80
  122. package/dist/esm/interactions/useRole.mjs.map +1 -1
  123. package/dist/esm/interactions/useRole.native.js +87 -91
  124. package/dist/esm/interactions/useRole.native.js.map +1 -1
  125. package/dist/esm/interactions/useTypeahead.mjs +102 -111
  126. package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
  127. package/dist/esm/interactions/useTypeahead.native.js +115 -124
  128. package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
  129. package/dist/esm/interactions/utils.mjs +91 -106
  130. package/dist/esm/interactions/utils.mjs.map +1 -1
  131. package/dist/esm/interactions/utils.native.js +98 -120
  132. package/dist/esm/interactions/utils.native.js.map +1 -1
  133. package/dist/esm/middleware/inner.mjs +58 -75
  134. package/dist/esm/middleware/inner.mjs.map +1 -1
  135. package/dist/esm/middleware/inner.native.js +67 -84
  136. package/dist/esm/middleware/inner.native.js.map +1 -1
  137. package/dist/esm/useFloating.mjs +17 -21
  138. package/dist/esm/useFloating.mjs.map +1 -1
  139. package/dist/esm/useFloating.native.js +19 -23
  140. package/dist/esm/useFloating.native.js.map +1 -1
  141. package/package.json +8 -6
  142. package/src/interactions/useInteractions.ts +61 -59
  143. package/src/interactions/useListNavigation.ts +7 -2
  144. package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
  145. package/types/interactions/useInteractions.d.ts +3 -3
  146. package/types/interactions/useInteractions.d.ts.map +1 -1
  147. package/types/interactions/useListNavigation.d.ts.map +1 -1
  148. package/types/middleware/inner.d.ts.map +1 -1
  149. package/types/useFloating.d.ts.map +1 -1
  150. package/dist/esm/Floating.mjs.map +0 -1
  151. package/dist/esm/index.js.map +0 -1
  152. package/dist/esm/index.mjs.map +0 -1
  153. package/dist/esm/index.native.js.map +0 -1
  154. package/dist/esm/interactions/types.mjs.map +0 -1
  155. 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
- const componentRoleToAriaRoleMap = /* @__PURE__ */new Map([["select", "listbox"], ["combobox", "listbox"], ["label", false]]);
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
- const {
6
- open,
7
- elements
8
- } = context;
9
- const {
10
- enabled = true,
11
- role = "dialog"
12
- } = props;
13
- const defaultReferenceId = React.useId();
14
- const referenceId = elements.domReference?.id || defaultReferenceId;
15
- const defaultFloatingId = React.useMemo(() => `floating-${idCounter++}`, []);
16
- const floatingId = React.useMemo(() => elements.floating?.id || defaultFloatingId, [elements.floating, defaultFloatingId]);
17
- const ariaRole = componentRoleToAriaRoleMap.get(role) ?? role;
18
- const reference = React.useMemo(() => {
19
- if (ariaRole === "tooltip" || role === "label") {
20
- return {
21
- [`aria-${role === "label" ? "labelledby" : "describedby"}`]: open ? floatingId : void 0
22
- };
23
- }
24
- return {
25
- "aria-expanded": open ? "true" : "false",
26
- "aria-haspopup": ariaRole === "alertdialog" ? "dialog" : ariaRole,
27
- "aria-controls": open ? floatingId : void 0,
28
- ...(ariaRole === "listbox" && {
29
- role: "combobox"
30
- }),
31
- ...(ariaRole === "menu" && {
32
- id: referenceId
33
- }),
34
- ...(role === "select" && {
35
- "aria-autocomplete": "none"
36
- }),
37
- ...(role === "combobox" && {
38
- "aria-autocomplete": "list"
39
- })
40
- };
41
- }, [ariaRole, floatingId, open, referenceId, role]);
42
- const floating = React.useMemo(() => {
43
- const floatingProps = {
44
- id: floatingId,
45
- ...(ariaRole && {
46
- role: ariaRole
47
- })
48
- };
49
- if (ariaRole === "tooltip" || role === "label") {
50
- return floatingProps;
51
- }
52
- return {
53
- ...floatingProps,
54
- ...(ariaRole === "menu" && {
55
- "aria-labelledby": referenceId
56
- })
57
- };
58
- }, [ariaRole, floatingId, referenceId, role]);
59
- const item = React.useCallback(({
60
- active,
61
- selected
62
- }) => {
63
- const commonProps = {
64
- role: "option",
65
- ...(active && {
66
- id: `${floatingId}-fui-option`
67
- })
68
- };
69
- switch (role) {
70
- case "select":
71
- case "combobox":
72
- return {
73
- ...commonProps,
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":["React","componentRoleToAriaRoleMap","Map","idCounter","useRole","context","props","open","elements","enabled","role","defaultReferenceId","useId","referenceId","domReference","id","defaultFloatingId","useMemo","floatingId","floating","ariaRole","get","reference","floatingProps","item","useCallback","active","selected","commonProps"],"sources":["../../../src/interactions/useRole.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
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
- var componentRoleToAriaRoleMap = /* @__PURE__ */new Map([["select", "listbox"], ["combobox", "listbox"], ["label", false]]);
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
- var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6
- var _elements_domReference;
7
- var {
8
- open,
9
- elements
10
- } = context;
11
- var {
12
- enabled = true,
13
- role = "dialog"
14
- } = props;
15
- var defaultReferenceId = React.useId();
16
- var referenceId = ((_elements_domReference = elements.domReference) === null || _elements_domReference === void 0 ? void 0 : _elements_domReference.id) || defaultReferenceId;
17
- var defaultFloatingId = React.useMemo(function () {
18
- return `floating-${idCounter++}`;
19
- }, []);
20
- var floatingId = React.useMemo(function () {
21
- var _elements_floating;
22
- return ((_elements_floating = elements.floating) === null || _elements_floating === void 0 ? void 0 : _elements_floating.id) || defaultFloatingId;
23
- }, [elements.floating, defaultFloatingId]);
24
- var _componentRoleToAriaRoleMap_get;
25
- var ariaRole = (_componentRoleToAriaRoleMap_get = componentRoleToAriaRoleMap.get(role)) !== null && _componentRoleToAriaRoleMap_get !== void 0 ? _componentRoleToAriaRoleMap_get : role;
26
- var reference = React.useMemo(function () {
27
- if (ariaRole === "tooltip" || role === "label") {
28
- return {
29
- [`aria-${role === "label" ? "labelledby" : "describedby"}`]: open ? floatingId : void 0
30
- };
31
- }
32
- return {
33
- "aria-expanded": open ? "true" : "false",
34
- "aria-haspopup": ariaRole === "alertdialog" ? "dialog" : ariaRole,
35
- "aria-controls": open ? floatingId : void 0,
36
- ...(ariaRole === "listbox" && {
37
- role: "combobox"
38
- }),
39
- ...(ariaRole === "menu" && {
40
- id: referenceId
41
- }),
42
- ...(role === "select" && {
43
- "aria-autocomplete": "none"
44
- }),
45
- ...(role === "combobox" && {
46
- "aria-autocomplete": "list"
47
- })
48
- };
49
- }, [ariaRole, floatingId, open, referenceId, role]);
50
- var floating = React.useMemo(function () {
51
- var floatingProps = {
52
- id: floatingId,
53
- ...(ariaRole && {
54
- role: ariaRole
55
- })
56
- };
57
- if (ariaRole === "tooltip" || role === "label") {
58
- return floatingProps;
59
- }
60
- return {
61
- ...floatingProps,
62
- ...(ariaRole === "menu" && {
63
- "aria-labelledby": referenceId
64
- })
65
- };
66
- }, [ariaRole, floatingId, referenceId, role]);
67
- var item = React.useCallback(function (param) {
68
- var {
69
- active,
70
- selected
71
- } = param;
72
- var commonProps = {
73
- role: "option",
74
- ...(active && {
75
- id: `${floatingId}-fui-option`
76
- })
77
- };
78
- switch (role) {
79
- case "select":
80
- case "combobox":
81
- return {
82
- ...commonProps,
83
- "aria-selected": selected
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,"names":["React","componentRoleToAriaRoleMap","Map","idCounter","useRole","context","props","arguments","length","_elements_domReference","open","elements","enabled","role","defaultReferenceId","useId","referenceId","domReference","id","defaultFloatingId","useMemo","floatingId","_elements_floating","floating","_componentRoleToAriaRoleMap_get","ariaRole","get","reference","floatingProps"],"sources":["../../../src/interactions/useRole.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAMvB,IAAAC,0BAAM,kBAA6B,IAAAC,GAAI,EACrC,CACC,UACA,SAAS,CACX,EAED,CAGO,UAAS,EAId,SAAQ,CACR,EAEA,CACA,OAAM,EAEN,KAAM,CACN,CAAyB;AACQ,IAC/BC,SAAC,GAAS;AAA2B,SACvCC,QAAAC,OAAA;EAEA,IAAAC,KAAM,GAAAC,SAAY,CAAAC,MAAA,QAAAD,SAA2B,GAAI,KAAI,KAAK,IAAAA,SAAA;EAU1D,IAAAE,sBAAmD;EACjD;IAAIC,IAAA;IAAAC;EAAa,IAAAN,OAAa;EAC5B;IAAAO,OAAO;IAAAC,IAAA;EAAA,IAAAP,KAAA;EAAA,IAAAQ,kBACI,GAASd,KAAA,CAAAe,KAAU;EAExB,IACNC,WAAA,KAAAP,sBAAA,GAAAE,QAAA,CAAAM,YAAA,cAAAR,sBAAA,uBAAAA,sBAAA,CAAAS,EAAA,KAAAJ,kBAAA;EAAA,IACFK,iBAAA,GAAAnB,KAAA,CAAAoB,OAAA;IAEA,OAAO,YAAAjB,SAAA;EAAA,KACL;EAAiC,IACjCkB,UAAA,GAAArB,KAAiB,CAAAoB,OAAA,aAAa;IAA2B,IACzDE,kBAAiB;IAAoB,OACjC,EAAAA,kBAAa,GAAAX,QAAe,CAAMY,QAAA,MAAW,QAAAD,kBAAA,uBAAAA,kBAAA,CAAAJ,EAAA,KAAAC,iBAAA;EAAA,IACJR,QACzC,CAAAY,QAAS,EAA0CJ,iBAC1C,CAA4C,CAC3D;EACF,IAAIK,+BAA4B;EAEhC,IAAAC,QAAM,IAAAD,+BAAyD,GAAAvB,0BAAA,CAAAyB,GAAA,CAAAb,IAAA,eAAAW,+BAAA,cAAAA,+BAAA,GAAAX,IAAA;EAC7D,IAAAc,SAAM,GAAA3B,KAAA,CAAAoB,OAAgB;IAAA,IACpBK,QAAI,kBAAAZ,IAAA;MACJ,OAAI;QACN,SAAAA,IAAA,gDAAAH,IAAA,GAAAW,UAAA;MAEA;IACE;IACF;MAEA,eAAO,EAAAX,IAAA;MACL,eAAG,EAAAe,QAAA,gCAAAA,QAAA;MACH,eAAI,EAAaf,IAAA,GAAAW,UAAY;MAC/B,IAAAI,QAAA;QACEZ,IAAA;MAEJ;MACG,IAAEY,QAAQ,WAAS,IAAgD;QAClEP,EAAA,EAAMF;MAAc;MACZ,IACNH,IAAI,aAAY,IAAO;QACzB;MAEA;MAAc,IACZA,IAAK;QACL,mBAAK;MACH;IAAO;EACF,IACcY,QACnB,EAAAJ,UACJ,EAEAX,IAAA,EACFM,WAAA,EACAH,IAAC,CACH;EAEA,IAAAU,QAAO,GAAMvB,KAAA,CAAAoB,OAAA;IACX,IAAAQ,aAAiB,GAAE;MAClBV,EAAA,EAAAG,UAAS;MACZ,IAAAI,QAAA;QACFZ,IAAA,EAAAY","ignoreList":[]}
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"}