@tamagui/select 3.0.0-beta.924.1 → 3.0.0

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 (106) hide show
  1. package/dist/cjs/Select.cjs +23 -25
  2. package/dist/cjs/Select.native.cjs +27 -26
  3. package/dist/cjs/Select.native.js +27 -26
  4. package/dist/cjs/Select.native.js.map +1 -1
  5. package/dist/cjs/SelectImpl.cjs +56 -50
  6. package/dist/cjs/SelectItem.cjs +49 -60
  7. package/dist/cjs/SelectItem.native.cjs +51 -79
  8. package/dist/cjs/SelectItem.native.js +51 -79
  9. package/dist/cjs/SelectItem.native.js.map +1 -1
  10. package/dist/cjs/SelectScrollButton.cjs +2 -2
  11. package/dist/cjs/SelectTrigger.cjs +22 -5
  12. package/dist/cjs/SelectTrigger.native.cjs +15 -5
  13. package/dist/cjs/SelectTrigger.native.js +15 -5
  14. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  15. package/dist/cjs/SelectViewport.cjs +22 -30
  16. package/dist/cjs/SelectViewport.native.cjs +2 -2
  17. package/dist/cjs/SelectViewport.native.js +2 -2
  18. package/dist/cjs/SelectViewport.native.js.map +1 -1
  19. package/dist/cjs/selectionController.cjs +15 -5
  20. package/dist/cjs/selectionController.native.cjs +20 -15
  21. package/dist/cjs/selectionController.native.js +20 -15
  22. package/dist/cjs/selectionController.native.js.map +1 -1
  23. package/dist/esm/Select.mjs +27 -28
  24. package/dist/esm/Select.mjs.map +1 -1
  25. package/dist/esm/Select.native.js +31 -29
  26. package/dist/esm/Select.native.js.map +1 -1
  27. package/dist/esm/SelectImpl.mjs +56 -50
  28. package/dist/esm/SelectImpl.mjs.map +1 -1
  29. package/dist/esm/SelectItem.mjs +50 -61
  30. package/dist/esm/SelectItem.mjs.map +1 -1
  31. package/dist/esm/SelectItem.native.js +52 -80
  32. package/dist/esm/SelectItem.native.js.map +1 -1
  33. package/dist/esm/SelectScrollButton.mjs +2 -2
  34. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  35. package/dist/esm/SelectTrigger.mjs +16 -5
  36. package/dist/esm/SelectTrigger.mjs.map +1 -1
  37. package/dist/esm/SelectTrigger.native.js +15 -4
  38. package/dist/esm/SelectTrigger.native.js.map +1 -1
  39. package/dist/esm/SelectViewport.mjs +22 -30
  40. package/dist/esm/SelectViewport.mjs.map +1 -1
  41. package/dist/esm/SelectViewport.native.js +3 -3
  42. package/dist/esm/SelectViewport.native.js.map +1 -1
  43. package/dist/esm/selectionController.mjs +15 -5
  44. package/dist/esm/selectionController.mjs.map +1 -1
  45. package/dist/esm/selectionController.native.js +20 -15
  46. package/dist/esm/selectionController.native.js.map +1 -1
  47. package/dist/jsx/Select.mjs +27 -28
  48. package/dist/jsx/Select.mjs.map +1 -1
  49. package/dist/jsx/Select.native.cjs +27 -26
  50. package/dist/jsx/Select.native.js +27 -26
  51. package/dist/jsx/Select.native.js.map +1 -1
  52. package/dist/jsx/SelectImpl.mjs +56 -50
  53. package/dist/jsx/SelectImpl.mjs.map +1 -1
  54. package/dist/jsx/SelectItem.mjs +50 -61
  55. package/dist/jsx/SelectItem.mjs.map +1 -1
  56. package/dist/jsx/SelectItem.native.cjs +51 -79
  57. package/dist/jsx/SelectItem.native.js +51 -79
  58. package/dist/jsx/SelectItem.native.js.map +1 -1
  59. package/dist/jsx/SelectScrollButton.mjs +2 -2
  60. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  61. package/dist/jsx/SelectTrigger.mjs +16 -5
  62. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  63. package/dist/jsx/SelectTrigger.native.cjs +15 -5
  64. package/dist/jsx/SelectTrigger.native.js +15 -5
  65. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  66. package/dist/jsx/SelectViewport.mjs +22 -30
  67. package/dist/jsx/SelectViewport.mjs.map +1 -1
  68. package/dist/jsx/SelectViewport.native.cjs +2 -2
  69. package/dist/jsx/SelectViewport.native.js +2 -2
  70. package/dist/jsx/SelectViewport.native.js.map +1 -1
  71. package/dist/jsx/selectionController.mjs +15 -5
  72. package/dist/jsx/selectionController.mjs.map +1 -1
  73. package/dist/jsx/selectionController.native.cjs +20 -15
  74. package/dist/jsx/selectionController.native.js +20 -15
  75. package/dist/jsx/selectionController.native.js.map +1 -1
  76. package/package.json +30 -29
  77. package/src/Select.tsx +41 -41
  78. package/src/SelectImpl.tsx +83 -81
  79. package/src/SelectItem.tsx +66 -91
  80. package/src/SelectScrollButton.tsx +2 -2
  81. package/src/SelectTrigger.tsx +19 -2
  82. package/src/SelectViewport.native.tsx +4 -4
  83. package/src/SelectViewport.tsx +21 -27
  84. package/src/selectionController.ts +20 -5
  85. package/src/types.tsx +26 -21
  86. package/types/Select.d.ts +42 -81
  87. package/types/Select.d.ts.map +1 -1
  88. package/types/SelectImpl.d.ts.map +1 -1
  89. package/types/SelectItem.d.ts +3 -5
  90. package/types/SelectItem.d.ts.map +1 -1
  91. package/types/SelectItemText.d.ts +3 -5
  92. package/types/SelectItemText.d.ts.map +1 -1
  93. package/types/SelectScrollButton.d.ts +5 -9
  94. package/types/SelectScrollButton.d.ts.map +1 -1
  95. package/types/SelectScrollButton.native.d.ts +5 -9
  96. package/types/SelectScrollButton.native.d.ts.map +1 -1
  97. package/types/SelectTrigger.d.ts +3 -5
  98. package/types/SelectTrigger.d.ts.map +1 -1
  99. package/types/SelectViewport.d.ts +4 -9
  100. package/types/SelectViewport.d.ts.map +1 -1
  101. package/types/SelectViewport.native.d.ts +4 -9
  102. package/types/SelectViewport.native.d.ts.map +1 -1
  103. package/types/selectionController.d.ts +2 -0
  104. package/types/selectionController.d.ts.map +1 -1
  105. package/types/types.d.ts +30 -21
  106. package/types/types.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":[],"sources":["esm/Select.js"],"sourcesContent":["import { Adapt, AdaptParent, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { Text, View, createChangeEventDetails, createStyledContext, createStyledHOC, styled } from \"@tamagui/core\";\nimport { FocusScopeController } from \"@tamagui/focus-scope\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport * as React from \"react\";\nimport { SelectItemParentProvider, SelectNativeComponentContext, SelectProvider, SelectZIndexContext, useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { SelectContent } from \"./SelectContent\";\nimport { SelectInlineImpl } from \"./SelectImpl\";\nimport { SelectItem, useSelectItemContext } from \"./SelectItem\";\nimport { SelectItemText } from \"./SelectItemText\";\nimport { SelectScrollDownButton, SelectScrollUpButton } from \"./SelectScrollButton\";\nimport { SelectTrigger } from \"./SelectTrigger\";\nimport { SelectViewport } from \"./SelectViewport\";\nimport { createSelectItemRegistry, createSelectSelectionController, selectedValuesFromSelection } from \"./selectionController\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nconst SelectValueFrame = styled(Text, { displayName: \"SelectValue\" });\nconst SelectValue = createStyledHOC(SelectValueFrame, function SelectValue2({ scope, children: childrenProp, placeholder, ...props }, forwardedRef) {\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n\tconst isEmptyValue = context.selectedValues.length === 0;\n\tconst registeredValue = context.mode === \"multiple\" ? context.selectedValues.map((value, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? \", \" : null, itemParentContext.registry.getItem(value)?.label ?? value] }, value)) : itemParentContext.registry.getItem(context.selectedValues[0])?.label ?? context.value;\n\tconst children = childrenProp !== void 0 ? childrenProp : context.renderValue ? context.renderValue(context.value) : registeredValue;\n\tconst selectValueChildren = isEmptyValue ? placeholder ?? children : children;\n\treturn /* @__PURE__ */ jsx(SelectValueFrame, {\n\t\tpointerEvents: \"none\",\n\t\tref: composedRefs,\n\t\t...props,\n\t\tchildren: selectValueChildren\n\t});\n});\nconst SelectIcon = styled(View, {\n\tdisplayName: \"SelectIcon\",\n\t\"aria-hidden\": true\n});\nconst SelectItemIndicatorFrame = styled(View, { displayName: \"SelectItemIndicator\" });\nconst SelectItemIndicator = createStyledHOC(SelectItemIndicatorFrame, function SelectItemIndicator2(props, forwardedRef) {\n\tconst { scope, ...itemIndicatorProps } = props;\n\tconst context = useSelectItemParentContext(scope);\n\tconst itemContext = useSelectItemContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn itemContext.isSelected ? /* @__PURE__ */ jsx(SelectItemIndicatorFrame, {\n\t\t\"aria-hidden\": true,\n\t\t...itemIndicatorProps,\n\t\tref: forwardedRef\n\t}) : null;\n});\nconst SelectIndicatorFrame = styled(View, {\n\tdisplayName: \"SelectIndicator\",\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tpointerEvents: \"none\",\n\tzIndex: 10\n});\nconst SelectIndicator = createStyledHOC(SelectIndicatorFrame, function SelectIndicator2({ scope, ...props }, forwardedRef) {\n\tconst itemContext = useSelectItemParentContext(scope);\n\tconst context = useSelectContext(scope);\n\tconst [layout, setLayout] = React.useState(null);\n\tconst rafRef = React.useRef(0);\n\tReact.useLayoutEffect(() => {\n\t\tconst update = (index) => {\n\t\t\tif (typeof index !== \"number\") return;\n\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\trafRef.current = requestAnimationFrame(() => {\n\t\t\t\tconst node = itemContext.listRef?.current?.[index];\n\t\t\t\tif (node) setLayout({\n\t\t\t\t\twidth: Math.round(node.offsetWidth),\n\t\t\t\t\theight: Math.round(node.offsetHeight),\n\t\t\t\t\tx: Math.round(node.offsetLeft),\n\t\t\t\t\ty: Math.round(node.offsetTop)\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tif (context.open && context.activeIndexRef.current !== null) update(context.activeIndexRef.current);\n\t\treturn itemContext.activeIndexSubscribe(update);\n\t}, [context.open, itemContext.listRef]);\n\tif (!layout) return null;\n\treturn /* @__PURE__ */ jsx(SelectIndicatorFrame, {\n\t\tref: forwardedRef,\n\t\t...props,\n\t\twidth: layout.width,\n\t\theight: layout.height,\n\t\tx: layout.x,\n\t\ty: layout.y\n\t});\n});\nconst GROUP_NAME = \"SelectGroup\";\nconst { Provider: SelectGroupContextProvider, useStyledContext: useSelectGroupContext } = createStyledContext({ id: \"\" }, \"SelectGroup\");\nconst SelectGroupFrame = styled(View, { displayName: GROUP_NAME });\nconst NativeSelect = styled(Text, {\n\tdisplayName: \"NativeSelect\",\n\trender: \"select\"\n});\nconst SelectGroup = createStyledHOC(SelectGroupFrame, (props, forwardedRef) => {\n\tconst { scope, ...groupProps } = props;\n\tconst groupId = React.useId();\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst StyledNativeSelect = React.useContext(SelectNativeComponentContext);\n\tconst nativeSelectRef = React.useRef(null);\n\tconst content = (() => {\n\t\tif (itemParentContext.shouldRenderWebNative) return /* @__PURE__ */ jsx(NativeSelect, {\n\t\t\t...StyledNativeSelect && {\n\t\t\t\trender: StyledNativeSelect,\n\t\t\t\tsize: itemParentContext.size,\n\t\t\t\tstyle: { appearance: \"none\" }\n\t\t\t},\n\t\t\t...groupProps,\n\t\t\tvalue: context.value,\n\t\t\tmultiple: context.mode === \"multiple\",\n\t\t\tname: itemParentContext.name,\n\t\t\tform: itemParentContext.form,\n\t\t\tid: itemParentContext.id,\n\t\t\tonChange: ((event) => {\n\t\t\t\tconst value = context.mode === \"multiple\" ? Array.from(event.currentTarget.selectedOptions, (option) => option.value) : event.currentTarget.value;\n\t\t\t\titemParentContext.changeNativeValue(value, event.nativeEvent);\n\t\t\t}),\n\t\t\tref: nativeSelectRef,\n\t\t\tchildren: props.children\n\t\t});\n\t\treturn /* @__PURE__ */ jsx(SelectGroupFrame, {\n\t\t\trole: \"group\",\n\t\t\t\"aria-labelledby\": groupId,\n\t\t\t...groupProps,\n\t\t\tref: forwardedRef\n\t\t});\n\t})();\n\treturn /* @__PURE__ */ jsx(SelectGroupContextProvider, {\n\t\tscope,\n\t\tid: groupId || \"\",\n\t\tchildren: content\n\t});\n});\nSelectGroup.displayName = GROUP_NAME;\nconst SelectLabelFrame = styled(Text, { displayName: \"SelectLabel\" });\nconst SelectLabel = createStyledHOC(SelectLabelFrame, (props, forwardedRef) => {\n\tconst { scope, ...labelProps } = props;\n\tconst context = useSelectItemParentContext(scope);\n\tconst groupContext = useSelectGroupContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ jsx(SelectLabelFrame, {\n\t\trender: \"div\",\n\t\tid: groupContext.id,\n\t\t...labelProps,\n\t\tref: forwardedRef\n\t});\n});\nconst SelectSeparator = styled(View, { displayName: \"SelectSeparator\" });\nconst SelectSheetImpl = (props) => {\n\treturn /* @__PURE__ */ jsx(Fragment, { children: props.children });\n};\nfunction SelectRoot(props) {\n\tconst adaptScope = `AdaptSelect${props.scope || \"\"}`;\n\tconst [open, requestOpenChange] = useControllableState({\n\t\tprop: props.open,\n\t\tdefaultProp: props.defaultOpen || false,\n\t\tonChange: props.onOpenChange\n\t});\n\treturn /* @__PURE__ */ jsx(AdaptParent, {\n\t\tscope: adaptScope,\n\t\topen,\n\t\tonOpenChange: React.useCallback((nextOpen) => {\n\t\t\trequestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? \"trigger-press\" : \"outside-press\"));\n\t\t}, [requestOpenChange]),\n\t\tchildren: /* @__PURE__ */ jsx(SelectInner, {\n\t\t\t...props,\n\t\t\tscope: props.scope,\n\t\t\tadaptScope,\n\t\t\topen,\n\t\t\trequestOpenChange\n\t\t})\n\t});\n}\nconst Select = withStaticProperties(SelectRoot, {\n\tRoot: SelectRoot,\n\tAdapt,\n\tContent: SelectContent,\n\tGroup: SelectGroup,\n\tIcon: SelectIcon,\n\tItem: SelectItem,\n\tItemIndicator: SelectItemIndicator,\n\tItemText: SelectItemText,\n\tLabel: SelectLabel,\n\tScrollDownButton: SelectScrollDownButton,\n\tScrollUpButton: SelectScrollUpButton,\n\tSeparator: SelectSeparator,\n\tTrigger: SelectTrigger,\n\tValue: SelectValue,\n\tViewport: SelectViewport,\n\tIndicator: SelectIndicator,\n\tFocusScope: FocusScopeController\n});\nfunction useEmitter() {\n\tconst listenersRef = React.useRef(/* @__PURE__ */ new Set());\n\treturn [React.useCallback((value) => {\n\t\tlistenersRef.current.forEach((l) => l(value));\n\t}, []), React.useCallback((listener) => {\n\t\tlistenersRef.current.add(listener);\n\t\treturn () => {\n\t\t\tlistenersRef.current.delete(listener);\n\t\t};\n\t}, [])];\n}\nfunction SelectInner(props) {\n\tconst { scope = \"\", adaptScope, native, children, open, requestOpenChange, defaultOpen: _defaultOpen, onOpenChange: _onOpenChange, value: valueProp, defaultValue, onValueChange, multiple = false, name, form, disablePreventBodyScroll, size: sizeProp = true, onActiveChange, dir, id, renderValue, lazyMount, zIndex } = props;\n\tconst SelectImpl = useAdaptIsActive(adaptScope) ? SelectSheetImpl : SelectInlineImpl;\n\tconst mode = multiple ? \"multiple\" : \"single\";\n\tconst [valueState, requestValueChange] = useControllableState({\n\t\tprop: valueProp,\n\t\tdefaultProp: defaultValue ?? (mode === \"multiple\" ? [] : \"\"),\n\t\tonChange: onValueChange,\n\t\ttransition: true\n\t});\n\tconst value = React.useMemo(() => mode === \"multiple\" ? selectedValuesFromSelection(mode, valueState) : typeof valueState === \"string\" ? valueState : \"\", [mode, valueState]);\n\tconst selectedValues = React.useMemo(() => selectedValuesFromSelection(mode, value), [mode, value]);\n\tconst [, rerenderRegistry] = React.useReducer((version) => version + 1, 0);\n\tconst registryRef = React.useRef(null);\n\tif (!registryRef.current) registryRef.current = createSelectItemRegistry(rerenderRegistry);\n\tconst registry = registryRef.current;\n\tconst controllerRef = React.useRef(null);\n\tif (!controllerRef.current) controllerRef.current = createSelectSelectionController({\n\t\tmode,\n\t\tvalue,\n\t\tregistry\n\t});\n\tconst controller = controllerRef.current;\n\tcontroller.setMode(mode);\n\tcontroller.setValue(value);\n\tReact.useEffect(() => {}, [props.id, requestOpenChange]);\n\tconst activeIndexRef = React.useRef(null);\n\tconst [activeIndex, setActiveIndexState] = React.useState(null);\n\tconst [emitActiveIndex, activeIndexSubscribe] = useEmitter();\n\tconst selectedIndexRef = React.useRef(null);\n\tconst listContentRef = React.useRef([]);\n\tconst listRef = React.useRef([]);\n\tconst [valueNode, setValueNode] = React.useState(null);\n\tconst selectedIndex = Math.max(0, controller.selectionAnchorIndex());\n\tlistContentRef.current = registry.getTypeaheadLabels();\n\tlistRef.current.length = registry.getItems().length;\n\tuseIsomorphicLayoutEffect(() => {\n\t\tselectedIndexRef.current = selectedIndex;\n\t});\n\tconst shouldRenderWebNative = isWeb && (native === true || native === \"web\" || Array.isArray(native) && native.includes(\"web\"));\n\tconst setActiveIndexFast = React.useCallback((index, details) => {\n\t\tif (activeIndexRef.current !== index) {\n\t\t\tactiveIndexRef.current = index;\n\t\t\tcontroller.setActiveIndex(index);\n\t\t\tif (typeof index === \"number\") {\n\t\t\t\temitActiveIndex(index);\n\t\t\t\tconst item = registry.getItems()[index];\n\t\t\t\tif (item && details) onActiveChange?.(item.value, details);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tcontroller,\n\t\temitActiveIndex,\n\t\tonActiveChange,\n\t\tregistry\n\t]);\n\tconst setActiveIndex = React.useCallback((index, details) => {\n\t\tsetActiveIndexFast(index, details);\n\t\tsetActiveIndexState(index);\n\t}, [setActiveIndexFast]);\n\tconst activeDetails = React.useCallback((reason, index, event) => ({\n\t\treason,\n\t\tevent,\n\t\ttrigger: void 0,\n\t\tindex\n\t}), []);\n\tconst moveActive = React.useCallback((direction, event) => {\n\t\tconst nextIndex = registry.nextEnabledIndex(activeIndexRef.current, direction);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tconst typeaheadRef = React.useRef({\n\t\ttext: \"\",\n\t\ttimeout: null\n\t});\n\tconst search = React.useCallback((text, event) => {\n\t\tclearTimeout(typeaheadRef.current.timeout);\n\t\ttypeaheadRef.current.text += text;\n\t\tlet nextIndex = registry.findTypeaheadIndex(typeaheadRef.current.text, activeIndexRef.current);\n\t\tif (nextIndex < 0 && typeaheadRef.current.text.length > 1) {\n\t\t\ttypeaheadRef.current.text = text;\n\t\t\tnextIndex = registry.findTypeaheadIndex(text, activeIndexRef.current);\n\t\t}\n\t\ttypeaheadRef.current.timeout = setTimeout(() => {\n\t\t\ttypeaheadRef.current.text = \"\";\n\t\t}, 750);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tReact.useEffect(() => {\n\t\treturn () => clearTimeout(typeaheadRef.current.timeout);\n\t}, []);\n\tReact.useEffect(() => {\n\t\tif (open) {\n\t\t\tconst nextIndex = controller.initialActiveIndex();\n\t\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"list-navigation\", nextIndex));\n\t\t} else {\n\t\t\tsetActiveIndexFast(null);\n\t\t\tsetActiveIndexState(null);\n\t\t}\n\t}, [\n\t\topen,\n\t\tselectedIndex,\n\t\tregistry.getItems().length\n\t]);\n\tconst content = /* @__PURE__ */ jsxs(SelectItemParentProvider, {\n\t\tscopeName: scope,\n\t\tscope,\n\t\tadaptScope,\n\t\tmode,\n\t\tselectedValues,\n\t\tregistry,\n\t\tsize: sizeProp,\n\t\tactiveIndexSubscribe,\n\t\tactiveIndexRef,\n\t\trequestOpenChange,\n\t\tid,\n\t\tname,\n\t\tform,\n\t\tselectValue: React.useCallback((nextItemValue, details) => {\n\t\t\tconst item = registry.getItem(nextItemValue);\n\t\t\tif (!item || item.disabled) return;\n\t\t\tcontroller.setMode(mode);\n\t\t\tcontroller.setValue(value);\n\t\t\tconst previousValue = controller.value;\n\t\t\trequestValueChange(controller.toggle(nextItemValue), details);\n\t\t\tif (details.isCanceled) {\n\t\t\t\tcontroller.setValue(previousValue);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (controller.shouldCloseOnSelect) requestOpenChange(false, createChangeEventDetails(details.reason === \"keyboard\" ? \"keyboard\" : \"item-press\", details.event, details.trigger));\n\t\t}, [\n\t\t\tcontroller,\n\t\t\tmode,\n\t\t\tregistry,\n\t\t\trequestOpenChange,\n\t\t\trequestValueChange,\n\t\t\tvalue\n\t\t]),\n\t\tchangeNativeValue: React.useCallback((nextValue, event) => {\n\t\t\tconst details = createChangeEventDetails(\"native-change\", event);\n\t\t\trequestValueChange(nextValue, details);\n\t\t\tif (!details.isCanceled) controller.setValue(nextValue);\n\t\t}, [controller, requestValueChange]),\n\t\tshouldRenderWebNative,\n\t\tsetActiveIndexFast,\n\t\tlistRef,\n\t\tmoveActive,\n\t\tsearch,\n\t\tchildren: [/* @__PURE__ */ jsx(SelectProvider, {\n\t\t\tscope,\n\t\t\tscopeName: scope,\n\t\t\tadaptScope,\n\t\t\tdisablePreventBodyScroll,\n\t\t\tdir,\n\t\t\tblockSelection: false,\n\t\t\tfallback: false,\n\t\t\tvalueNode,\n\t\t\tonValueNodeChange: setValueNode,\n\t\t\tactiveIndex,\n\t\t\tactiveIndexRef,\n\t\t\tselectedIndex,\n\t\t\tsetActiveIndex,\n\t\t\tvalue,\n\t\t\tmode,\n\t\t\tselectedValues,\n\t\t\tactiveItem: activeIndex == null ? void 0 : registry.getItems()[activeIndex]?.value,\n\t\t\tselectionAnchor: controller.selectionAnchor()?.value,\n\t\t\topen,\n\t\t\tnative,\n\t\t\trenderValue,\n\t\t\tlazyMount,\n\t\t\tchildren: shouldRenderWebNative ? children : /* @__PURE__ */ jsx(SelectImpl, {\n\t\t\t\tactiveIndexRef,\n\t\t\t\tlistContentRef,\n\t\t\t\tselectedIndexRef,\n\t\t\t\tsetActiveIndexFast,\n\t\t\t\t...props,\n\t\t\t\topen,\n\t\t\t\tvalue,\n\t\t\t\tchildren\n\t\t\t})\n\t\t}), isWeb && !shouldRenderWebNative && name ? (mode === \"multiple\" ? selectedValues : [value]).map((inputValue) => /* @__PURE__ */ jsx(\"input\", {\n\t\t\ttype: \"hidden\",\n\t\t\tname,\n\t\t\tform,\n\t\t\tvalue: inputValue\n\t\t}, inputValue)) : null]\n\t});\n\tif (zIndex !== void 0) return /* @__PURE__ */ jsx(SelectZIndexContext.Provider, {\n\t\tvalue: zIndex,\n\t\tchildren: content\n\t});\n\treturn content;\n}\n\nexport { Select, SelectGroup, SelectGroupFrame, SelectIcon, SelectIndicator, SelectIndicatorFrame, SelectItemIndicator, SelectItemIndicatorFrame, SelectLabel, SelectLabelFrame, SelectRoot, SelectSeparator, SelectValue, SelectValueFrame };"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","names":[],"sources":["esm/Select.js"],"sourcesContent":["import { Adapt, AdaptParent, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { Text, View, createChangeEventDetails, createStyledContext, createStyledHOC, styled } from \"@tamagui/core\";\nimport { FocusScopeController } from \"@tamagui/focus-scope\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport * as React from \"react\";\nimport { SelectItemParentProvider, SelectNativeComponentContext, SelectProvider, SelectZIndexContext, useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { SelectContent } from \"./SelectContent\";\nimport { SelectInlineImpl } from \"./SelectImpl\";\nimport { SelectItem, useSelectItemContext } from \"./SelectItem\";\nimport { SelectItemText } from \"./SelectItemText\";\nimport { SelectScrollDownButton, SelectScrollUpButton } from \"./SelectScrollButton\";\nimport { SelectTrigger } from \"./SelectTrigger\";\nimport { SelectViewport } from \"./SelectViewport\";\nimport { createSelectItemRegistry, createSelectSelectionController, selectedValuesFromSelection } from \"./selectionController\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nconst SelectValueFrame = styled(Text, { displayName: \"SelectValue\" });\nconst SelectValue = createStyledHOC(SelectValueFrame, function SelectValue2({ scope, children: childrenProp, placeholder, ...props }, forwardedRef) {\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n\tconst isEmptyValue = context.selectedValues.length === 0;\n\tconst [, rerender] = React.useReducer((version) => version + 1, 0);\n\tuseIsomorphicLayoutEffect(() => itemParentContext.registry.subscribe(rerender), [itemParentContext.registry]);\n\tconst registeredValue = context.mode === \"multiple\" ? context.selectedValues.map((value, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? \", \" : null, itemParentContext.registry.getItem(value)?.label ?? value] }, value)) : itemParentContext.registry.getItem(context.selectedValues[0])?.label ?? context.value;\n\tconst children = childrenProp !== void 0 ? childrenProp : context.renderValue ? context.renderValue(context.value) : registeredValue;\n\tconst selectValueChildren = isEmptyValue ? placeholder ?? children : children;\n\treturn /* @__PURE__ */ jsx(SelectValueFrame, {\n\t\tpointerEvents: \"none\",\n\t\tref: composedRefs,\n\t\t...props,\n\t\tchildren: selectValueChildren\n\t});\n});\nconst SelectIcon = styled(View, {\n\tdisplayName: \"SelectIcon\",\n\t\"aria-hidden\": true\n});\nconst SelectItemIndicatorFrame = styled(View, { displayName: \"SelectItemIndicator\" });\nconst SelectItemIndicator = createStyledHOC(SelectItemIndicatorFrame, function SelectItemIndicator2(props, forwardedRef) {\n\tconst { scope, ...itemIndicatorProps } = props;\n\tconst context = useSelectItemParentContext(scope);\n\tconst itemContext = useSelectItemContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn itemContext.isSelected ? /* @__PURE__ */ jsx(SelectItemIndicatorFrame, {\n\t\t\"aria-hidden\": true,\n\t\t...itemIndicatorProps,\n\t\tref: forwardedRef\n\t}) : null;\n});\nconst SelectIndicatorFrame = styled(View, {\n\tdisplayName: \"SelectIndicator\",\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tpointerEvents: \"none\",\n\tzIndex: 10\n});\nconst SelectIndicator = createStyledHOC(SelectIndicatorFrame, function SelectIndicator2({ scope, ...props }, forwardedRef) {\n\tconst itemContext = useSelectItemParentContext(scope);\n\tconst context = useSelectContext(scope);\n\tconst [layout, setLayout] = React.useState(null);\n\tconst rafRef = React.useRef(0);\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconst update = (index) => {\n\t\t\tif (typeof index !== \"number\") return;\n\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\trafRef.current = requestAnimationFrame(() => {\n\t\t\t\tconst node = itemContext.listRef?.current?.[index];\n\t\t\t\tif (node) setLayout({\n\t\t\t\t\twidth: Math.round(node.offsetWidth),\n\t\t\t\t\theight: Math.round(node.offsetHeight),\n\t\t\t\t\tx: Math.round(node.offsetLeft),\n\t\t\t\t\ty: Math.round(node.offsetTop)\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tif (context.open && context.activeIndexRef.current !== null) update(context.activeIndexRef.current);\n\t\treturn itemContext.activeIndexSubscribe(update);\n\t}, [context.open, itemContext.listRef]);\n\tif (!layout) return null;\n\treturn /* @__PURE__ */ jsx(SelectIndicatorFrame, {\n\t\tref: forwardedRef,\n\t\t...props,\n\t\twidth: layout.width,\n\t\theight: layout.height,\n\t\tx: layout.x,\n\t\ty: layout.y\n\t});\n});\nconst GROUP_NAME = \"SelectGroup\";\nconst { Provider: SelectGroupContextProvider, useStyledContext: useSelectGroupContext } = createStyledContext({ id: \"\" }, \"SelectGroup\");\nconst SelectGroupFrame = styled(View, { displayName: GROUP_NAME });\nconst NativeSelect = styled(Text, {\n\tdisplayName: \"NativeSelect\",\n\trender: \"select\"\n});\nconst SelectGroup = createStyledHOC(SelectGroupFrame, (props, forwardedRef) => {\n\tconst { scope, ...groupProps } = props;\n\tconst groupId = React.useId();\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst StyledNativeSelect = React.useContext(SelectNativeComponentContext);\n\tconst nativeSelectRef = React.useRef(null);\n\tconst content = (() => {\n\t\tif (itemParentContext.shouldRenderWebNative) return /* @__PURE__ */ jsx(NativeSelect, {\n\t\t\t...StyledNativeSelect && {\n\t\t\t\trender: StyledNativeSelect,\n\t\t\t\tsize: itemParentContext.size,\n\t\t\t\tstyle: { appearance: \"none\" }\n\t\t\t},\n\t\t\t...groupProps,\n\t\t\tvalue: context.value,\n\t\t\tmultiple: context.mode === \"multiple\",\n\t\t\tname: itemParentContext.name,\n\t\t\tform: itemParentContext.form,\n\t\t\tid: itemParentContext.id,\n\t\t\tonChange: ((event) => {\n\t\t\t\tconst value = context.mode === \"multiple\" ? Array.from(event.currentTarget.selectedOptions, (option) => option.value) : event.currentTarget.value;\n\t\t\t\titemParentContext.changeNativeValue(value, event.nativeEvent);\n\t\t\t}),\n\t\t\tref: nativeSelectRef,\n\t\t\tchildren: props.children\n\t\t});\n\t\treturn /* @__PURE__ */ jsx(SelectGroupFrame, {\n\t\t\trole: \"group\",\n\t\t\t\"aria-labelledby\": groupId,\n\t\t\t...groupProps,\n\t\t\tref: forwardedRef\n\t\t});\n\t})();\n\treturn /* @__PURE__ */ jsx(SelectGroupContextProvider, {\n\t\tscope,\n\t\tid: groupId || \"\",\n\t\tchildren: content\n\t});\n});\nSelectGroup.displayName = GROUP_NAME;\nconst SelectLabelFrame = styled(Text, { displayName: \"SelectLabel\" });\nconst SelectLabel = createStyledHOC(SelectLabelFrame, (props, forwardedRef) => {\n\tconst { scope, ...labelProps } = props;\n\tconst context = useSelectItemParentContext(scope);\n\tconst groupContext = useSelectGroupContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ jsx(SelectLabelFrame, {\n\t\trender: \"div\",\n\t\tid: groupContext.id,\n\t\t...labelProps,\n\t\tref: forwardedRef\n\t});\n});\nconst SelectSeparator = styled(View, { displayName: \"SelectSeparator\" });\nconst SelectSheetImpl = (props) => {\n\treturn /* @__PURE__ */ jsx(Fragment, { children: props.children });\n};\nfunction SelectRoot(props) {\n\tconst adaptScope = `AdaptSelect${props.scope || \"\"}`;\n\tconst [open, requestOpenChange] = useControllableState({\n\t\tprop: props.open,\n\t\tdefaultProp: props.defaultOpen || false,\n\t\tonChange: props.onOpenChange\n\t});\n\tconst handleAdaptOpenChange = React.useCallback((nextOpen) => {\n\t\trequestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? \"trigger-press\" : \"outside-press\"));\n\t}, [requestOpenChange]);\n\treturn /* @__PURE__ */ jsx(AdaptParent, {\n\t\tscope: adaptScope,\n\t\tadaptChildren: props.children,\n\t\topen,\n\t\tonOpenChange: handleAdaptOpenChange,\n\t\tchildren: /* @__PURE__ */ jsx(SelectInner, {\n\t\t\t...props,\n\t\t\tscope: props.scope,\n\t\t\tadaptScope,\n\t\t\topen,\n\t\t\trequestOpenChange\n\t\t})\n\t});\n}\nconst Select = withStaticProperties(SelectRoot, {\n\tRoot: SelectRoot,\n\tAdapt,\n\tContent: SelectContent,\n\tGroup: SelectGroup,\n\tIcon: SelectIcon,\n\tItem: SelectItem,\n\tItemIndicator: SelectItemIndicator,\n\tItemText: SelectItemText,\n\tLabel: SelectLabel,\n\tScrollDownButton: SelectScrollDownButton,\n\tScrollUpButton: SelectScrollUpButton,\n\tSeparator: SelectSeparator,\n\tTrigger: SelectTrigger,\n\tValue: SelectValue,\n\tViewport: SelectViewport,\n\tIndicator: SelectIndicator,\n\tFocusScope: FocusScopeController\n});\nfunction useEmitter() {\n\tconst listenersRef = React.useRef(/* @__PURE__ */ new Set());\n\treturn [React.useCallback((value) => {\n\t\tlistenersRef.current.forEach((l) => l(value));\n\t}, []), React.useCallback((listener) => {\n\t\tlistenersRef.current.add(listener);\n\t\treturn () => {\n\t\t\tlistenersRef.current.delete(listener);\n\t\t};\n\t}, [])];\n}\nfunction SelectInner(props) {\n\tconst { scope = \"\", adaptScope, native, children, open, requestOpenChange, defaultOpen: _defaultOpen, onOpenChange: _onOpenChange, value: valueProp, defaultValue, onValueChange, multiple = false, name, form, disablePreventBodyScroll, size: sizeProp = true, onActiveChange, dir, id, renderValue, lazyMount, zIndex } = props;\n\tconst SelectImpl = useAdaptIsActive(adaptScope) ? SelectSheetImpl : SelectInlineImpl;\n\tconst mode = multiple ? \"multiple\" : \"single\";\n\tconst [valueState, requestValueChange] = useControllableState({\n\t\tprop: valueProp,\n\t\tdefaultProp: defaultValue ?? (mode === \"multiple\" ? [] : \"\"),\n\t\tonChange: onValueChange,\n\t\ttransition: true\n\t});\n\tconst value = React.useMemo(() => mode === \"multiple\" ? selectedValuesFromSelection(mode, valueState) : typeof valueState === \"string\" ? valueState : \"\", [mode, valueState]);\n\tconst selectedValues = React.useMemo(() => selectedValuesFromSelection(mode, value), [mode, value]);\n\tconst [, rerenderRegistry] = React.useReducer((version) => version + 1, 0);\n\tconst registryRef = React.useRef(null);\n\tif (!registryRef.current) registryRef.current = createSelectItemRegistry(rerenderRegistry);\n\tconst registry = registryRef.current;\n\tconst controllerRef = React.useRef(null);\n\tif (!controllerRef.current) controllerRef.current = createSelectSelectionController({\n\t\tmode,\n\t\tvalue,\n\t\tregistry\n\t});\n\tconst controller = controllerRef.current;\n\tcontroller.setMode(mode);\n\tcontroller.setValue(value);\n\tReact.useEffect(() => {}, [props.id, requestOpenChange]);\n\tconst activeIndexRef = React.useRef(null);\n\tconst [emitActiveIndex, activeIndexSubscribe] = useEmitter();\n\tconst selectedIndexRef = React.useRef(null);\n\tconst lastPointerRef = React.useRef({\n\t\tx: -1,\n\t\ty: -1\n\t});\n\tconst listContentRef = React.useRef([]);\n\tconst listRef = React.useRef([]);\n\tconst [valueNode, setValueNode] = React.useState(null);\n\tconst selectedIndex = Math.max(0, controller.selectionAnchorIndex());\n\tlistContentRef.current = registry.getTypeaheadLabels();\n\tconst itemNodes = registry.getNodes();\n\tlistRef.current.length = itemNodes.length;\n\tfor (let i = 0; i < itemNodes.length; i++) listRef.current[i] = itemNodes[i];\n\tuseIsomorphicLayoutEffect(() => {\n\t\tselectedIndexRef.current = selectedIndex;\n\t});\n\tconst shouldRenderWebNative = isWeb && (native === true || native === \"web\" || Array.isArray(native) && native.includes(\"web\"));\n\tconst setActiveIndex = React.useCallback((index, details) => {\n\t\tif (activeIndexRef.current === index) return;\n\t\tactiveIndexRef.current = index;\n\t\tcontroller.setActiveIndex(index);\n\t\temitActiveIndex(index);\n\t\tif (typeof index === \"number\") {\n\t\t\tconst item = registry.getItems()[index];\n\t\t\tif (item && details) onActiveChange?.(item.value, details);\n\t\t}\n\t}, [\n\t\tcontroller,\n\t\temitActiveIndex,\n\t\tonActiveChange,\n\t\tregistry\n\t]);\n\tconst activeDetails = React.useCallback((reason, index, event) => ({\n\t\treason,\n\t\tevent,\n\t\ttrigger: void 0,\n\t\tindex\n\t}), []);\n\tconst moveActive = React.useCallback((direction, event) => {\n\t\tconst nextIndex = registry.nextEnabledIndex(activeIndexRef.current, direction);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tconst typeaheadRef = React.useRef({\n\t\ttext: \"\",\n\t\ttimeout: null\n\t});\n\tconst search = React.useCallback((text, event) => {\n\t\tclearTimeout(typeaheadRef.current.timeout);\n\t\ttypeaheadRef.current.text += text;\n\t\tlet nextIndex = registry.findTypeaheadIndex(typeaheadRef.current.text, activeIndexRef.current);\n\t\tif (nextIndex < 0 && typeaheadRef.current.text.length > 1) {\n\t\t\ttypeaheadRef.current.text = text;\n\t\t\tnextIndex = registry.findTypeaheadIndex(text, activeIndexRef.current);\n\t\t}\n\t\ttypeaheadRef.current.timeout = setTimeout(() => {\n\t\t\ttypeaheadRef.current.text = \"\";\n\t\t}, 750);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tReact.useEffect(() => {\n\t\treturn () => clearTimeout(typeaheadRef.current.timeout);\n\t}, []);\n\tReact.useEffect(() => {\n\t\tif (open) {\n\t\t\tconst nextIndex = controller.initialActiveIndex();\n\t\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"list-navigation\", nextIndex));\n\t\t} else setActiveIndex(null);\n\t}, [\n\t\topen,\n\t\tselectedIndex,\n\t\tregistry.getItems().length\n\t]);\n\tconst content = /* @__PURE__ */ jsxs(SelectItemParentProvider, {\n\t\tscopeName: scope,\n\t\tscope,\n\t\tadaptScope,\n\t\tmode,\n\t\tselectedValues,\n\t\tregistry,\n\t\tsize: sizeProp,\n\t\tactiveIndexSubscribe,\n\t\tactiveIndexRef,\n\t\trequestOpenChange,\n\t\tid,\n\t\tname,\n\t\tform,\n\t\tselectValue: React.useCallback((nextItemValue, details) => {\n\t\t\tconst item = registry.getItem(nextItemValue);\n\t\t\tif (!item || item.disabled) return;\n\t\t\tcontroller.setMode(mode);\n\t\t\tcontroller.setValue(value);\n\t\t\tconst previousValue = controller.value;\n\t\t\trequestValueChange(controller.toggle(nextItemValue), details);\n\t\t\tif (details.isCanceled) {\n\t\t\t\tcontroller.setValue(previousValue);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (controller.shouldCloseOnSelect) requestOpenChange(false, createChangeEventDetails(details.reason === \"keyboard\" ? \"keyboard\" : \"item-press\", details.event, details.trigger));\n\t\t}, [\n\t\t\tcontroller,\n\t\t\tmode,\n\t\t\tregistry,\n\t\t\trequestOpenChange,\n\t\t\trequestValueChange,\n\t\t\tvalue\n\t\t]),\n\t\tchangeNativeValue: React.useCallback((nextValue, event) => {\n\t\t\tconst details = createChangeEventDetails(\"native-change\", event);\n\t\t\trequestValueChange(nextValue, details);\n\t\t\tif (!details.isCanceled) controller.setValue(nextValue);\n\t\t}, [controller, requestValueChange]),\n\t\tshouldRenderWebNative,\n\t\tsetActiveIndex,\n\t\tselectedIndex,\n\t\tlastPointerRef,\n\t\tlistRef,\n\t\tmoveActive,\n\t\tsearch,\n\t\tchildren: [/* @__PURE__ */ jsx(SelectProvider, {\n\t\t\tscope,\n\t\t\tscopeName: scope,\n\t\t\tadaptScope,\n\t\t\tdisablePreventBodyScroll,\n\t\t\tdir,\n\t\t\tblockSelection: false,\n\t\t\tfallback: false,\n\t\t\tvalueNode,\n\t\t\tonValueNodeChange: setValueNode,\n\t\t\tactiveIndexRef,\n\t\t\tselectedIndex,\n\t\t\tsetActiveIndex,\n\t\t\tvalue,\n\t\t\tmode,\n\t\t\tselectedValues,\n\t\t\topen,\n\t\t\tnative,\n\t\t\trenderValue,\n\t\t\tlazyMount,\n\t\t\tchildren: shouldRenderWebNative ? children : /* @__PURE__ */ jsx(SelectImpl, {\n\t\t\t\tactiveIndexRef,\n\t\t\t\tlistContentRef,\n\t\t\t\tselectedIndexRef,\n\t\t\t\t...props,\n\t\t\t\topen,\n\t\t\t\tvalue,\n\t\t\t\tchildren\n\t\t\t})\n\t\t}), isWeb && !shouldRenderWebNative && name ? (mode === \"multiple\" ? selectedValues : [value]).map((inputValue) => /* @__PURE__ */ jsx(\"input\", {\n\t\t\ttype: \"hidden\",\n\t\t\tname,\n\t\t\tform,\n\t\t\tvalue: inputValue\n\t\t}, inputValue)) : null]\n\t});\n\tif (zIndex !== void 0) return /* @__PURE__ */ jsx(SelectZIndexContext.Provider, {\n\t\tvalue: zIndex,\n\t\tchildren: content\n\t});\n\treturn content;\n}\n\nexport { Select, SelectGroup, SelectGroupFrame, SelectIcon, SelectIndicator, SelectIndicatorFrame, SelectItemIndicator, SelectItemIndicatorFrame, SelectLabel, SelectLabelFrame, SelectRoot, SelectSeparator, SelectValue, SelectValueFrame };"],"mappings":"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"}
@@ -26,6 +26,12 @@ var SelectValue = createStyledHOC(SelectValueFrame, function SelectValue2(param,
26
26
  var itemParentContext = useSelectItemParentContext(scope);
27
27
  var composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);
28
28
  var isEmptyValue = context.selectedValues.length === 0;
29
+ var [, rerender] = React.useReducer(function(version) {
30
+ return version + 1;
31
+ }, 0);
32
+ useIsomorphicLayoutEffect(function() {
33
+ return itemParentContext.registry.subscribe(rerender);
34
+ }, [itemParentContext.registry]);
29
35
  var _itemParentContext_registry_getItem_label;
30
36
  var registeredValue = context.mode === "multiple" ? context.selectedValues.map(function(value, index) {
31
37
  var _itemParentContext_registry_getItem2;
@@ -71,7 +77,7 @@ var SelectIndicator = createStyledHOC(SelectIndicatorFrame, function SelectIndic
71
77
  var context = useSelectContext(scope);
72
78
  var [layout, setLayout] = React.useState(null);
73
79
  var rafRef = React.useRef(0);
74
- React.useLayoutEffect(function() {
80
+ useIsomorphicLayoutEffect(function() {
75
81
  var update = function(index) {
76
82
  if (typeof index !== "number") return;
77
83
  cancelAnimationFrame(rafRef.current);
@@ -173,12 +179,14 @@ function SelectRoot(props) {
173
179
  defaultProp: props.defaultOpen || false,
174
180
  onChange: props.onOpenChange
175
181
  });
182
+ var handleAdaptOpenChange = React.useCallback(function(nextOpen) {
183
+ requestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? "trigger-press" : "outside-press"));
184
+ }, [requestOpenChange]);
176
185
  return /* @__PURE__ */ jsx(AdaptParent, {
177
186
  scope: adaptScope,
187
+ adaptChildren: props.children,
178
188
  open,
179
- onOpenChange: React.useCallback(function(nextOpen) {
180
- requestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? "trigger-press" : "outside-press"));
181
- }, [requestOpenChange]),
189
+ onOpenChange: handleAdaptOpenChange,
182
190
  children: /* @__PURE__ */ jsx(SelectInner, {
183
191
  ...props,
184
192
  scope: props.scope,
@@ -221,7 +229,6 @@ function useEmitter() {
221
229
  }, [])];
222
230
  }
223
231
  function SelectInner(props) {
224
- var _registry_getItems_activeIndex, _controller_selectionAnchor;
225
232
  var { scope = "", adaptScope, native, children, open, requestOpenChange, defaultOpen: _defaultOpen, onOpenChange: _onOpenChange, value: valueProp, defaultValue, onValueChange, multiple = false, name, form, disablePreventBodyScroll, size: sizeProp = true, onActiveChange, dir, id, renderValue, lazyMount, zIndex } = props;
226
233
  var SelectImpl = useAdaptIsActive(adaptScope) ? SelectSheetImpl : SelectInlineImpl;
227
234
  var mode = multiple ? "multiple" : "single";
@@ -264,28 +271,32 @@ function SelectInner(props) {
264
271
  });
265
272
  }, [props.id, requestOpenChange]);
266
273
  var activeIndexRef = React.useRef(null);
267
- var [activeIndex, setActiveIndexState] = React.useState(null);
268
274
  var [emitActiveIndex, activeIndexSubscribe] = useEmitter();
269
275
  var selectedIndexRef = React.useRef(null);
276
+ var lastPointerRef = React.useRef({
277
+ x: -1,
278
+ y: -1
279
+ });
270
280
  var listContentRef = React.useRef([]);
271
281
  var listRef = React.useRef([]);
272
282
  var [valueNode, setValueNode] = React.useState(null);
273
283
  var selectedIndex = Math.max(0, controller.selectionAnchorIndex());
274
284
  listContentRef.current = registry.getTypeaheadLabels();
275
- listRef.current.length = registry.getItems().length;
285
+ var itemNodes = registry.getNodes();
286
+ listRef.current.length = itemNodes.length;
287
+ for (var i = 0; i < itemNodes.length; i++) listRef.current[i] = itemNodes[i];
276
288
  useIsomorphicLayoutEffect(function() {
277
289
  selectedIndexRef.current = selectedIndex;
278
290
  });
279
291
  var shouldRenderWebNative = isWeb && (native === true || native === "web" || Array.isArray(native) && native.includes("web"));
280
- var setActiveIndexFast = React.useCallback(function(index, details) {
281
- if (activeIndexRef.current !== index) {
282
- activeIndexRef.current = index;
283
- controller.setActiveIndex(index);
284
- if (typeof index === "number") {
285
- emitActiveIndex(index);
286
- var item = registry.getItems()[index];
287
- if (item && details) onActiveChange === null || onActiveChange === void 0 || onActiveChange(item.value, details);
288
- }
292
+ var setActiveIndex = React.useCallback(function(index, details) {
293
+ if (activeIndexRef.current === index) return;
294
+ activeIndexRef.current = index;
295
+ controller.setActiveIndex(index);
296
+ emitActiveIndex(index);
297
+ if (typeof index === "number") {
298
+ var item = registry.getItems()[index];
299
+ if (item && details) onActiveChange === null || onActiveChange === void 0 || onActiveChange(item.value, details);
289
300
  }
290
301
  }, [
291
302
  controller,
@@ -293,10 +304,6 @@ function SelectInner(props) {
293
304
  onActiveChange,
294
305
  registry
295
306
  ]);
296
- var setActiveIndex = React.useCallback(function(index, details) {
297
- setActiveIndexFast(index, details);
298
- setActiveIndexState(index);
299
- }, [setActiveIndexFast]);
300
307
  var activeDetails = React.useCallback(function(reason, index, event) {
301
308
  return {
302
309
  reason,
@@ -343,10 +350,7 @@ function SelectInner(props) {
343
350
  if (open) {
344
351
  var nextIndex = controller.initialActiveIndex();
345
352
  if (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails("list-navigation", nextIndex));
346
- } else {
347
- setActiveIndexFast(null);
348
- setActiveIndexState(null);
349
- }
353
+ } else setActiveIndex(null);
350
354
  }, [
351
355
  open,
352
356
  selectedIndex,
@@ -392,7 +396,9 @@ function SelectInner(props) {
392
396
  if (!details.isCanceled) controller.setValue(nextValue);
393
397
  }, [controller, requestValueChange]),
394
398
  shouldRenderWebNative,
395
- setActiveIndexFast,
399
+ setActiveIndex,
400
+ selectedIndex,
401
+ lastPointerRef,
396
402
  listRef,
397
403
  moveActive,
398
404
  search,
@@ -406,15 +412,12 @@ function SelectInner(props) {
406
412
  fallback: false,
407
413
  valueNode,
408
414
  onValueNodeChange: setValueNode,
409
- activeIndex,
410
415
  activeIndexRef,
411
416
  selectedIndex,
412
417
  setActiveIndex,
413
418
  value,
414
419
  mode,
415
420
  selectedValues,
416
- activeItem: activeIndex == null ? void 0 : (_registry_getItems_activeIndex = registry.getItems()[activeIndex]) === null || _registry_getItems_activeIndex === void 0 ? void 0 : _registry_getItems_activeIndex.value,
417
- selectionAnchor: (_controller_selectionAnchor = controller.selectionAnchor()) === null || _controller_selectionAnchor === void 0 ? void 0 : _controller_selectionAnchor.value,
418
421
  open,
419
422
  native,
420
423
  renderValue,
@@ -423,7 +426,6 @@ function SelectInner(props) {
423
426
  activeIndexRef,
424
427
  listContentRef,
425
428
  selectedIndexRef,
426
- setActiveIndexFast,
427
429
  ...props,
428
430
  open,
429
431
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.native.js","names":[],"sources":["esm/Select.native.js"],"sourcesContent":["import { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { Adapt, AdaptParent, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { Text, View, createChangeEventDetails, createStyledContext, createStyledHOC, styled } from \"@tamagui/core\";\nimport { FocusScopeController } from \"@tamagui/focus-scope\";\nimport { registerFocusable } from \"@tamagui/focusable\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport * as React from \"react\";\nimport { SelectItemParentProvider, SelectNativeComponentContext, SelectProvider, SelectZIndexContext, useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { SelectContent } from \"./SelectContent\";\nimport { SelectInlineImpl } from \"./SelectImpl\";\nimport { SelectItem, useSelectItemContext } from \"./SelectItem\";\nimport { SelectItemText } from \"./SelectItemText\";\nimport { SelectScrollDownButton, SelectScrollUpButton } from \"./SelectScrollButton\";\nimport { SelectTrigger } from \"./SelectTrigger\";\nimport { SelectViewport } from \"./SelectViewport\";\nimport { createSelectItemRegistry, createSelectSelectionController, selectedValuesFromSelection } from \"./selectionController\";\n\nvar SelectValueFrame = styled(Text, { displayName: \"SelectValue\" });\nvar SelectValue = createStyledHOC(SelectValueFrame, function SelectValue2(param, forwardedRef) {\n\tvar { scope, children: childrenProp, placeholder, ...props } = param;\n\tvar _itemParentContext_registry_getItem;\n\tvar context = useSelectContext(scope);\n\tvar itemParentContext = useSelectItemParentContext(scope);\n\tvar composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n\tvar isEmptyValue = context.selectedValues.length === 0;\n\tvar _itemParentContext_registry_getItem_label;\n\tvar registeredValue = context.mode === \"multiple\" ? context.selectedValues.map(function(value, index) {\n\t\tvar _itemParentContext_registry_getItem2;\n\t\tvar _itemParentContext_registry_getItem_label2;\n\t\treturn /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? \", \" : null, (_itemParentContext_registry_getItem_label2 = (_itemParentContext_registry_getItem2 = itemParentContext.registry.getItem(value)) === null || _itemParentContext_registry_getItem2 === void 0 ? void 0 : _itemParentContext_registry_getItem2.label) !== null && _itemParentContext_registry_getItem_label2 !== void 0 ? _itemParentContext_registry_getItem_label2 : value] }, value);\n\t}) : (_itemParentContext_registry_getItem_label = (_itemParentContext_registry_getItem = itemParentContext.registry.getItem(context.selectedValues[0])) === null || _itemParentContext_registry_getItem === void 0 ? void 0 : _itemParentContext_registry_getItem.label) !== null && _itemParentContext_registry_getItem_label !== void 0 ? _itemParentContext_registry_getItem_label : context.value;\n\tvar children = childrenProp !== void 0 ? childrenProp : context.renderValue ? context.renderValue(context.value) : registeredValue;\n\tvar selectValueChildren = isEmptyValue ? placeholder !== null && placeholder !== void 0 ? placeholder : children : children;\n\treturn /* @__PURE__ */ jsx(SelectValueFrame, {\n\t\tpointerEvents: \"none\",\n\t\tref: composedRefs,\n\t\t...props,\n\t\tchildren: selectValueChildren\n\t});\n});\nvar SelectIcon = styled(View, {\n\tdisplayName: \"SelectIcon\",\n\t\"aria-hidden\": true\n});\nvar SelectItemIndicatorFrame = styled(View, { displayName: \"SelectItemIndicator\" });\nvar SelectItemIndicator = createStyledHOC(SelectItemIndicatorFrame, function SelectItemIndicator2(props, forwardedRef) {\n\tvar { scope, ...itemIndicatorProps } = props;\n\tvar context = useSelectItemParentContext(scope);\n\tvar itemContext = useSelectItemContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn itemContext.isSelected ? /* @__PURE__ */ jsx(SelectItemIndicatorFrame, {\n\t\t\"aria-hidden\": true,\n\t\t...itemIndicatorProps,\n\t\tref: forwardedRef\n\t}) : null;\n});\nvar SelectIndicatorFrame = styled(View, {\n\tdisplayName: \"SelectIndicator\",\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tpointerEvents: \"none\",\n\tzIndex: 10\n});\nvar SelectIndicator = createStyledHOC(SelectIndicatorFrame, function SelectIndicator2(param, forwardedRef) {\n\tvar { scope, ...props } = param;\n\tvar itemContext = useSelectItemParentContext(scope);\n\tvar context = useSelectContext(scope);\n\tvar [layout, setLayout] = React.useState(null);\n\tvar rafRef = React.useRef(0);\n\tReact.useLayoutEffect(function() {\n\t\tvar update = function(index) {\n\t\t\tif (typeof index !== \"number\") return;\n\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\trafRef.current = requestAnimationFrame(function() {\n\t\t\t\tvar _itemContext_listRef_current, _itemContext_listRef;\n\t\t\t\tvar node = (_itemContext_listRef = itemContext.listRef) === null || _itemContext_listRef === void 0 ? void 0 : (_itemContext_listRef_current = _itemContext_listRef.current) === null || _itemContext_listRef_current === void 0 ? void 0 : _itemContext_listRef_current[index];\n\t\t\t\tif (node) setLayout({\n\t\t\t\t\twidth: Math.round(node.offsetWidth),\n\t\t\t\t\theight: Math.round(node.offsetHeight),\n\t\t\t\t\tx: Math.round(node.offsetLeft),\n\t\t\t\t\ty: Math.round(node.offsetTop)\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tif (context.open && context.activeIndexRef.current !== null) update(context.activeIndexRef.current);\n\t\treturn itemContext.activeIndexSubscribe(update);\n\t}, [context.open, itemContext.listRef]);\n\tif (!layout) return null;\n\treturn /* @__PURE__ */ jsx(SelectIndicatorFrame, {\n\t\tref: forwardedRef,\n\t\t...props,\n\t\twidth: layout.width,\n\t\theight: layout.height,\n\t\tx: layout.x,\n\t\ty: layout.y\n\t});\n});\nvar GROUP_NAME = \"SelectGroup\";\nvar { Provider: SelectGroupContextProvider, useStyledContext: useSelectGroupContext } = createStyledContext({ id: \"\" }, \"SelectGroup\");\nvar SelectGroupFrame = styled(View, { displayName: GROUP_NAME });\nvar NativeSelect = styled(Text, {\n\tdisplayName: \"NativeSelect\",\n\trender: \"select\"\n});\nvar SelectGroup = createStyledHOC(SelectGroupFrame, function(props, forwardedRef) {\n\tvar { scope, ...groupProps } = props;\n\tvar groupId = React.useId();\n\tvar context = useSelectContext(scope);\n\tvar itemParentContext = useSelectItemParentContext(scope);\n\tvar StyledNativeSelect = React.useContext(SelectNativeComponentContext);\n\tvar nativeSelectRef = React.useRef(null);\n\tvar content = (function() {\n\t\tif (itemParentContext.shouldRenderWebNative) return /* @__PURE__ */ jsx(NativeSelect, {\n\t\t\t...StyledNativeSelect && {\n\t\t\t\trender: StyledNativeSelect,\n\t\t\t\tsize: itemParentContext.size,\n\t\t\t\tstyle: { appearance: \"none\" }\n\t\t\t},\n\t\t\t...groupProps,\n\t\t\tvalue: context.value,\n\t\t\tmultiple: context.mode === \"multiple\",\n\t\t\tname: itemParentContext.name,\n\t\t\tform: itemParentContext.form,\n\t\t\tid: itemParentContext.id,\n\t\t\tonChange: function(event) {\n\t\t\t\tvar value = context.mode === \"multiple\" ? Array.from(event.currentTarget.selectedOptions, function(option) {\n\t\t\t\t\treturn option.value;\n\t\t\t\t}) : event.currentTarget.value;\n\t\t\t\titemParentContext.changeNativeValue(value, event.nativeEvent);\n\t\t\t},\n\t\t\tref: nativeSelectRef,\n\t\t\tchildren: props.children\n\t\t});\n\t\treturn /* @__PURE__ */ jsx(SelectGroupFrame, {\n\t\t\trole: \"group\",\n\t\t\t\"aria-labelledby\": groupId,\n\t\t\t...groupProps,\n\t\t\tref: forwardedRef\n\t\t});\n\t})();\n\treturn /* @__PURE__ */ jsx(SelectGroupContextProvider, {\n\t\tscope,\n\t\tid: groupId || \"\",\n\t\tchildren: content\n\t});\n});\nSelectGroup.displayName = GROUP_NAME;\nvar SelectLabelFrame = styled(Text, { displayName: \"SelectLabel\" });\nvar SelectLabel = createStyledHOC(SelectLabelFrame, function(props, forwardedRef) {\n\tvar { scope, ...labelProps } = props;\n\tvar context = useSelectItemParentContext(scope);\n\tvar groupContext = useSelectGroupContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ jsx(SelectLabelFrame, {\n\t\trender: \"div\",\n\t\tid: groupContext.id,\n\t\t...labelProps,\n\t\tref: forwardedRef\n\t});\n});\nvar SelectSeparator = styled(View, { displayName: \"SelectSeparator\" });\nvar SelectSheetImpl = function(props) {\n\treturn /* @__PURE__ */ jsx(Fragment, { children: props.children });\n};\nfunction SelectRoot(props) {\n\tvar adaptScope = `AdaptSelect${props.scope || \"\"}`;\n\tvar [open, requestOpenChange] = useControllableState({\n\t\tprop: props.open,\n\t\tdefaultProp: props.defaultOpen || false,\n\t\tonChange: props.onOpenChange\n\t});\n\treturn /* @__PURE__ */ jsx(AdaptParent, {\n\t\tscope: adaptScope,\n\t\topen,\n\t\tonOpenChange: React.useCallback(function(nextOpen) {\n\t\t\trequestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? \"trigger-press\" : \"outside-press\"));\n\t\t}, [requestOpenChange]),\n\t\tchildren: /* @__PURE__ */ jsx(SelectInner, {\n\t\t\t...props,\n\t\t\tscope: props.scope,\n\t\t\tadaptScope,\n\t\t\topen,\n\t\t\trequestOpenChange\n\t\t})\n\t});\n}\nvar Select = withStaticProperties(SelectRoot, {\n\tRoot: SelectRoot,\n\tAdapt,\n\tContent: SelectContent,\n\tGroup: SelectGroup,\n\tIcon: SelectIcon,\n\tItem: SelectItem,\n\tItemIndicator: SelectItemIndicator,\n\tItemText: SelectItemText,\n\tLabel: SelectLabel,\n\tScrollDownButton: SelectScrollDownButton,\n\tScrollUpButton: SelectScrollUpButton,\n\tSeparator: SelectSeparator,\n\tTrigger: SelectTrigger,\n\tValue: SelectValue,\n\tViewport: SelectViewport,\n\tIndicator: SelectIndicator,\n\tFocusScope: FocusScopeController\n});\nfunction useEmitter() {\n\tvar listenersRef = React.useRef(/* @__PURE__ */ new Set());\n\treturn [React.useCallback(function(value) {\n\t\tlistenersRef.current.forEach(function(l) {\n\t\t\treturn l(value);\n\t\t});\n\t}, []), React.useCallback(function(listener) {\n\t\tlistenersRef.current.add(listener);\n\t\treturn function() {\n\t\t\tlistenersRef.current.delete(listener);\n\t\t};\n\t}, [])];\n}\nfunction SelectInner(props) {\n\tvar _registry_getItems_activeIndex, _controller_selectionAnchor;\n\tvar { scope = \"\", adaptScope, native, children, open, requestOpenChange, defaultOpen: _defaultOpen, onOpenChange: _onOpenChange, value: valueProp, defaultValue, onValueChange, multiple = false, name, form, disablePreventBodyScroll, size: sizeProp = true, onActiveChange, dir, id, renderValue, lazyMount, zIndex } = props;\n\tvar SelectImpl = useAdaptIsActive(adaptScope) ? SelectSheetImpl : SelectInlineImpl;\n\tvar mode = multiple ? \"multiple\" : \"single\";\n\tvar [valueState, requestValueChange] = useControllableState({\n\t\tprop: valueProp,\n\t\tdefaultProp: defaultValue !== null && defaultValue !== void 0 ? defaultValue : mode === \"multiple\" ? [] : \"\",\n\t\tonChange: onValueChange,\n\t\ttransition: true\n\t});\n\tvar value = React.useMemo(function() {\n\t\treturn mode === \"multiple\" ? selectedValuesFromSelection(mode, valueState) : typeof valueState === \"string\" ? valueState : \"\";\n\t}, [mode, valueState]);\n\tvar selectedValues = React.useMemo(function() {\n\t\treturn selectedValuesFromSelection(mode, value);\n\t}, [mode, value]);\n\tvar [, rerenderRegistry] = React.useReducer(function(version) {\n\t\treturn version + 1;\n\t}, 0);\n\tvar registryRef = React.useRef(null);\n\tif (!registryRef.current) registryRef.current = createSelectItemRegistry(rerenderRegistry);\n\tvar registry = registryRef.current;\n\tvar controllerRef = React.useRef(null);\n\tif (!controllerRef.current) controllerRef.current = createSelectSelectionController({\n\t\tmode,\n\t\tvalue,\n\t\tregistry\n\t});\n\tvar controller = controllerRef.current;\n\tcontroller.setMode(mode);\n\tcontroller.setValue(value);\n\tReact.useEffect(function() {\n\t\tif (!props.id) return;\n\t\treturn registerFocusable(props.id, {\n\t\t\tfocusAndSelect: function() {\n\t\t\t\trequestOpenChange(function(current) {\n\t\t\t\t\treturn !current;\n\t\t\t\t}, createChangeEventDetails(\"trigger-press\"));\n\t\t\t},\n\t\t\tfocus: function() {}\n\t\t});\n\t}, [props.id, requestOpenChange]);\n\tvar activeIndexRef = React.useRef(null);\n\tvar [activeIndex, setActiveIndexState] = React.useState(null);\n\tvar [emitActiveIndex, activeIndexSubscribe] = useEmitter();\n\tvar selectedIndexRef = React.useRef(null);\n\tvar listContentRef = React.useRef([]);\n\tvar listRef = React.useRef([]);\n\tvar [valueNode, setValueNode] = React.useState(null);\n\tvar selectedIndex = Math.max(0, controller.selectionAnchorIndex());\n\tlistContentRef.current = registry.getTypeaheadLabels();\n\tlistRef.current.length = registry.getItems().length;\n\tuseIsomorphicLayoutEffect(function() {\n\t\tselectedIndexRef.current = selectedIndex;\n\t});\n\tvar shouldRenderWebNative = isWeb && (native === true || native === \"web\" || Array.isArray(native) && native.includes(\"web\"));\n\tvar setActiveIndexFast = React.useCallback(function(index, details) {\n\t\tif (activeIndexRef.current !== index) {\n\t\t\tactiveIndexRef.current = index;\n\t\t\tcontroller.setActiveIndex(index);\n\t\t\tif (typeof index === \"number\") {\n\t\t\t\temitActiveIndex(index);\n\t\t\t\tvar item = registry.getItems()[index];\n\t\t\t\tif (item && details) onActiveChange === null || onActiveChange === void 0 || onActiveChange(item.value, details);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tcontroller,\n\t\temitActiveIndex,\n\t\tonActiveChange,\n\t\tregistry\n\t]);\n\tvar setActiveIndex = React.useCallback(function(index, details) {\n\t\tsetActiveIndexFast(index, details);\n\t\tsetActiveIndexState(index);\n\t}, [setActiveIndexFast]);\n\tvar activeDetails = React.useCallback(function(reason, index, event) {\n\t\treturn {\n\t\t\treason,\n\t\t\tevent,\n\t\t\ttrigger: void 0,\n\t\t\tindex\n\t\t};\n\t}, []);\n\tvar moveActive = React.useCallback(function(direction, event) {\n\t\tvar nextIndex = registry.nextEnabledIndex(activeIndexRef.current, direction);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tvar typeaheadRef = React.useRef({\n\t\ttext: \"\",\n\t\ttimeout: null\n\t});\n\tvar search = React.useCallback(function(text, event) {\n\t\tclearTimeout(typeaheadRef.current.timeout);\n\t\ttypeaheadRef.current.text += text;\n\t\tvar nextIndex = registry.findTypeaheadIndex(typeaheadRef.current.text, activeIndexRef.current);\n\t\tif (nextIndex < 0 && typeaheadRef.current.text.length > 1) {\n\t\t\ttypeaheadRef.current.text = text;\n\t\t\tnextIndex = registry.findTypeaheadIndex(text, activeIndexRef.current);\n\t\t}\n\t\ttypeaheadRef.current.timeout = setTimeout(function() {\n\t\t\ttypeaheadRef.current.text = \"\";\n\t\t}, 750);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tReact.useEffect(function() {\n\t\treturn function() {\n\t\t\treturn clearTimeout(typeaheadRef.current.timeout);\n\t\t};\n\t}, []);\n\tReact.useEffect(function() {\n\t\tif (open) {\n\t\t\tvar nextIndex = controller.initialActiveIndex();\n\t\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"list-navigation\", nextIndex));\n\t\t} else {\n\t\t\tsetActiveIndexFast(null);\n\t\t\tsetActiveIndexState(null);\n\t\t}\n\t}, [\n\t\topen,\n\t\tselectedIndex,\n\t\tregistry.getItems().length\n\t]);\n\tvar content = /* @__PURE__ */ jsxs(SelectItemParentProvider, {\n\t\tscopeName: scope,\n\t\tscope,\n\t\tadaptScope,\n\t\tmode,\n\t\tselectedValues,\n\t\tregistry,\n\t\tsize: sizeProp,\n\t\tactiveIndexSubscribe,\n\t\tactiveIndexRef,\n\t\trequestOpenChange,\n\t\tid,\n\t\tname,\n\t\tform,\n\t\tselectValue: React.useCallback(function(nextItemValue, details) {\n\t\t\tvar item = registry.getItem(nextItemValue);\n\t\t\tif (!item || item.disabled) return;\n\t\t\tcontroller.setMode(mode);\n\t\t\tcontroller.setValue(value);\n\t\t\tvar previousValue = controller.value;\n\t\t\trequestValueChange(controller.toggle(nextItemValue), details);\n\t\t\tif (details.isCanceled) {\n\t\t\t\tcontroller.setValue(previousValue);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (controller.shouldCloseOnSelect) requestOpenChange(false, createChangeEventDetails(details.reason === \"keyboard\" ? \"keyboard\" : \"item-press\", details.event, details.trigger));\n\t\t}, [\n\t\t\tcontroller,\n\t\t\tmode,\n\t\t\tregistry,\n\t\t\trequestOpenChange,\n\t\t\trequestValueChange,\n\t\t\tvalue\n\t\t]),\n\t\tchangeNativeValue: React.useCallback(function(nextValue, event) {\n\t\t\tvar details = createChangeEventDetails(\"native-change\", event);\n\t\t\trequestValueChange(nextValue, details);\n\t\t\tif (!details.isCanceled) controller.setValue(nextValue);\n\t\t}, [controller, requestValueChange]),\n\t\tshouldRenderWebNative,\n\t\tsetActiveIndexFast,\n\t\tlistRef,\n\t\tmoveActive,\n\t\tsearch,\n\t\tchildren: [/* @__PURE__ */ jsx(SelectProvider, {\n\t\t\tscope,\n\t\t\tscopeName: scope,\n\t\t\tadaptScope,\n\t\t\tdisablePreventBodyScroll,\n\t\t\tdir,\n\t\t\tblockSelection: false,\n\t\t\tfallback: false,\n\t\t\tvalueNode,\n\t\t\tonValueNodeChange: setValueNode,\n\t\t\tactiveIndex,\n\t\t\tactiveIndexRef,\n\t\t\tselectedIndex,\n\t\t\tsetActiveIndex,\n\t\t\tvalue,\n\t\t\tmode,\n\t\t\tselectedValues,\n\t\t\tactiveItem: activeIndex == null ? void 0 : (_registry_getItems_activeIndex = registry.getItems()[activeIndex]) === null || _registry_getItems_activeIndex === void 0 ? void 0 : _registry_getItems_activeIndex.value,\n\t\t\tselectionAnchor: (_controller_selectionAnchor = controller.selectionAnchor()) === null || _controller_selectionAnchor === void 0 ? void 0 : _controller_selectionAnchor.value,\n\t\t\topen,\n\t\t\tnative,\n\t\t\trenderValue,\n\t\t\tlazyMount,\n\t\t\tchildren: shouldRenderWebNative ? children : /* @__PURE__ */ jsx(SelectImpl, {\n\t\t\t\tactiveIndexRef,\n\t\t\t\tlistContentRef,\n\t\t\t\tselectedIndexRef,\n\t\t\t\tsetActiveIndexFast,\n\t\t\t\t...props,\n\t\t\t\topen,\n\t\t\t\tvalue,\n\t\t\t\tchildren\n\t\t\t})\n\t\t}), isWeb && !shouldRenderWebNative && name ? (mode === \"multiple\" ? selectedValues : [value]).map(function(inputValue) {\n\t\t\treturn /* @__PURE__ */ jsx(\"input\", {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname,\n\t\t\t\tform,\n\t\t\t\tvalue: inputValue\n\t\t\t}, inputValue);\n\t\t}) : null]\n\t});\n\tif (zIndex !== void 0) return /* @__PURE__ */ jsx(SelectZIndexContext.Provider, {\n\t\tvalue: zIndex,\n\t\tchildren: content\n\t});\n\treturn content;\n}\n\nexport { Select, SelectGroup, SelectGroupFrame, SelectIcon, SelectIndicator, SelectIndicatorFrame, SelectItemIndicator, SelectItemIndicatorFrame, SelectLabel, SelectLabelFrame, SelectRoot, SelectSeparator, SelectValue, SelectValueFrame };"],"mappings":"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"}
1
+ {"version":3,"file":"Select.native.js","names":[],"sources":["esm/Select.native.js"],"sourcesContent":["import { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { Adapt, AdaptParent, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { Text, View, createChangeEventDetails, createStyledContext, createStyledHOC, styled } from \"@tamagui/core\";\nimport { FocusScopeController } from \"@tamagui/focus-scope\";\nimport { registerFocusable } from \"@tamagui/focusable\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport * as React from \"react\";\nimport { SelectItemParentProvider, SelectNativeComponentContext, SelectProvider, SelectZIndexContext, useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { SelectContent } from \"./SelectContent\";\nimport { SelectInlineImpl } from \"./SelectImpl\";\nimport { SelectItem, useSelectItemContext } from \"./SelectItem\";\nimport { SelectItemText } from \"./SelectItemText\";\nimport { SelectScrollDownButton, SelectScrollUpButton } from \"./SelectScrollButton\";\nimport { SelectTrigger } from \"./SelectTrigger\";\nimport { SelectViewport } from \"./SelectViewport\";\nimport { createSelectItemRegistry, createSelectSelectionController, selectedValuesFromSelection } from \"./selectionController\";\n\nvar SelectValueFrame = styled(Text, { displayName: \"SelectValue\" });\nvar SelectValue = createStyledHOC(SelectValueFrame, function SelectValue2(param, forwardedRef) {\n\tvar { scope, children: childrenProp, placeholder, ...props } = param;\n\tvar _itemParentContext_registry_getItem;\n\tvar context = useSelectContext(scope);\n\tvar itemParentContext = useSelectItemParentContext(scope);\n\tvar composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n\tvar isEmptyValue = context.selectedValues.length === 0;\n\tvar [, rerender] = React.useReducer(function(version) {\n\t\treturn version + 1;\n\t}, 0);\n\tuseIsomorphicLayoutEffect(function() {\n\t\treturn itemParentContext.registry.subscribe(rerender);\n\t}, [itemParentContext.registry]);\n\tvar _itemParentContext_registry_getItem_label;\n\tvar registeredValue = context.mode === \"multiple\" ? context.selectedValues.map(function(value, index) {\n\t\tvar _itemParentContext_registry_getItem2;\n\t\tvar _itemParentContext_registry_getItem_label2;\n\t\treturn /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? \", \" : null, (_itemParentContext_registry_getItem_label2 = (_itemParentContext_registry_getItem2 = itemParentContext.registry.getItem(value)) === null || _itemParentContext_registry_getItem2 === void 0 ? void 0 : _itemParentContext_registry_getItem2.label) !== null && _itemParentContext_registry_getItem_label2 !== void 0 ? _itemParentContext_registry_getItem_label2 : value] }, value);\n\t}) : (_itemParentContext_registry_getItem_label = (_itemParentContext_registry_getItem = itemParentContext.registry.getItem(context.selectedValues[0])) === null || _itemParentContext_registry_getItem === void 0 ? void 0 : _itemParentContext_registry_getItem.label) !== null && _itemParentContext_registry_getItem_label !== void 0 ? _itemParentContext_registry_getItem_label : context.value;\n\tvar children = childrenProp !== void 0 ? childrenProp : context.renderValue ? context.renderValue(context.value) : registeredValue;\n\tvar selectValueChildren = isEmptyValue ? placeholder !== null && placeholder !== void 0 ? placeholder : children : children;\n\treturn /* @__PURE__ */ jsx(SelectValueFrame, {\n\t\tpointerEvents: \"none\",\n\t\tref: composedRefs,\n\t\t...props,\n\t\tchildren: selectValueChildren\n\t});\n});\nvar SelectIcon = styled(View, {\n\tdisplayName: \"SelectIcon\",\n\t\"aria-hidden\": true\n});\nvar SelectItemIndicatorFrame = styled(View, { displayName: \"SelectItemIndicator\" });\nvar SelectItemIndicator = createStyledHOC(SelectItemIndicatorFrame, function SelectItemIndicator2(props, forwardedRef) {\n\tvar { scope, ...itemIndicatorProps } = props;\n\tvar context = useSelectItemParentContext(scope);\n\tvar itemContext = useSelectItemContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn itemContext.isSelected ? /* @__PURE__ */ jsx(SelectItemIndicatorFrame, {\n\t\t\"aria-hidden\": true,\n\t\t...itemIndicatorProps,\n\t\tref: forwardedRef\n\t}) : null;\n});\nvar SelectIndicatorFrame = styled(View, {\n\tdisplayName: \"SelectIndicator\",\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tpointerEvents: \"none\",\n\tzIndex: 10\n});\nvar SelectIndicator = createStyledHOC(SelectIndicatorFrame, function SelectIndicator2(param, forwardedRef) {\n\tvar { scope, ...props } = param;\n\tvar itemContext = useSelectItemParentContext(scope);\n\tvar context = useSelectContext(scope);\n\tvar [layout, setLayout] = React.useState(null);\n\tvar rafRef = React.useRef(0);\n\tuseIsomorphicLayoutEffect(function() {\n\t\tvar update = function(index) {\n\t\t\tif (typeof index !== \"number\") return;\n\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\trafRef.current = requestAnimationFrame(function() {\n\t\t\t\tvar _itemContext_listRef_current, _itemContext_listRef;\n\t\t\t\tvar node = (_itemContext_listRef = itemContext.listRef) === null || _itemContext_listRef === void 0 ? void 0 : (_itemContext_listRef_current = _itemContext_listRef.current) === null || _itemContext_listRef_current === void 0 ? void 0 : _itemContext_listRef_current[index];\n\t\t\t\tif (node) setLayout({\n\t\t\t\t\twidth: Math.round(node.offsetWidth),\n\t\t\t\t\theight: Math.round(node.offsetHeight),\n\t\t\t\t\tx: Math.round(node.offsetLeft),\n\t\t\t\t\ty: Math.round(node.offsetTop)\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tif (context.open && context.activeIndexRef.current !== null) update(context.activeIndexRef.current);\n\t\treturn itemContext.activeIndexSubscribe(update);\n\t}, [context.open, itemContext.listRef]);\n\tif (!layout) return null;\n\treturn /* @__PURE__ */ jsx(SelectIndicatorFrame, {\n\t\tref: forwardedRef,\n\t\t...props,\n\t\twidth: layout.width,\n\t\theight: layout.height,\n\t\tx: layout.x,\n\t\ty: layout.y\n\t});\n});\nvar GROUP_NAME = \"SelectGroup\";\nvar { Provider: SelectGroupContextProvider, useStyledContext: useSelectGroupContext } = createStyledContext({ id: \"\" }, \"SelectGroup\");\nvar SelectGroupFrame = styled(View, { displayName: GROUP_NAME });\nvar NativeSelect = styled(Text, {\n\tdisplayName: \"NativeSelect\",\n\trender: \"select\"\n});\nvar SelectGroup = createStyledHOC(SelectGroupFrame, function(props, forwardedRef) {\n\tvar { scope, ...groupProps } = props;\n\tvar groupId = React.useId();\n\tvar context = useSelectContext(scope);\n\tvar itemParentContext = useSelectItemParentContext(scope);\n\tvar StyledNativeSelect = React.useContext(SelectNativeComponentContext);\n\tvar nativeSelectRef = React.useRef(null);\n\tvar content = (function() {\n\t\tif (itemParentContext.shouldRenderWebNative) return /* @__PURE__ */ jsx(NativeSelect, {\n\t\t\t...StyledNativeSelect && {\n\t\t\t\trender: StyledNativeSelect,\n\t\t\t\tsize: itemParentContext.size,\n\t\t\t\tstyle: { appearance: \"none\" }\n\t\t\t},\n\t\t\t...groupProps,\n\t\t\tvalue: context.value,\n\t\t\tmultiple: context.mode === \"multiple\",\n\t\t\tname: itemParentContext.name,\n\t\t\tform: itemParentContext.form,\n\t\t\tid: itemParentContext.id,\n\t\t\tonChange: function(event) {\n\t\t\t\tvar value = context.mode === \"multiple\" ? Array.from(event.currentTarget.selectedOptions, function(option) {\n\t\t\t\t\treturn option.value;\n\t\t\t\t}) : event.currentTarget.value;\n\t\t\t\titemParentContext.changeNativeValue(value, event.nativeEvent);\n\t\t\t},\n\t\t\tref: nativeSelectRef,\n\t\t\tchildren: props.children\n\t\t});\n\t\treturn /* @__PURE__ */ jsx(SelectGroupFrame, {\n\t\t\trole: \"group\",\n\t\t\t\"aria-labelledby\": groupId,\n\t\t\t...groupProps,\n\t\t\tref: forwardedRef\n\t\t});\n\t})();\n\treturn /* @__PURE__ */ jsx(SelectGroupContextProvider, {\n\t\tscope,\n\t\tid: groupId || \"\",\n\t\tchildren: content\n\t});\n});\nSelectGroup.displayName = GROUP_NAME;\nvar SelectLabelFrame = styled(Text, { displayName: \"SelectLabel\" });\nvar SelectLabel = createStyledHOC(SelectLabelFrame, function(props, forwardedRef) {\n\tvar { scope, ...labelProps } = props;\n\tvar context = useSelectItemParentContext(scope);\n\tvar groupContext = useSelectGroupContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ jsx(SelectLabelFrame, {\n\t\trender: \"div\",\n\t\tid: groupContext.id,\n\t\t...labelProps,\n\t\tref: forwardedRef\n\t});\n});\nvar SelectSeparator = styled(View, { displayName: \"SelectSeparator\" });\nvar SelectSheetImpl = function(props) {\n\treturn /* @__PURE__ */ jsx(Fragment, { children: props.children });\n};\nfunction SelectRoot(props) {\n\tvar adaptScope = `AdaptSelect${props.scope || \"\"}`;\n\tvar [open, requestOpenChange] = useControllableState({\n\t\tprop: props.open,\n\t\tdefaultProp: props.defaultOpen || false,\n\t\tonChange: props.onOpenChange\n\t});\n\tvar handleAdaptOpenChange = React.useCallback(function(nextOpen) {\n\t\trequestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? \"trigger-press\" : \"outside-press\"));\n\t}, [requestOpenChange]);\n\treturn /* @__PURE__ */ jsx(AdaptParent, {\n\t\tscope: adaptScope,\n\t\tadaptChildren: props.children,\n\t\topen,\n\t\tonOpenChange: handleAdaptOpenChange,\n\t\tchildren: /* @__PURE__ */ jsx(SelectInner, {\n\t\t\t...props,\n\t\t\tscope: props.scope,\n\t\t\tadaptScope,\n\t\t\topen,\n\t\t\trequestOpenChange\n\t\t})\n\t});\n}\nvar Select = withStaticProperties(SelectRoot, {\n\tRoot: SelectRoot,\n\tAdapt,\n\tContent: SelectContent,\n\tGroup: SelectGroup,\n\tIcon: SelectIcon,\n\tItem: SelectItem,\n\tItemIndicator: SelectItemIndicator,\n\tItemText: SelectItemText,\n\tLabel: SelectLabel,\n\tScrollDownButton: SelectScrollDownButton,\n\tScrollUpButton: SelectScrollUpButton,\n\tSeparator: SelectSeparator,\n\tTrigger: SelectTrigger,\n\tValue: SelectValue,\n\tViewport: SelectViewport,\n\tIndicator: SelectIndicator,\n\tFocusScope: FocusScopeController\n});\nfunction useEmitter() {\n\tvar listenersRef = React.useRef(/* @__PURE__ */ new Set());\n\treturn [React.useCallback(function(value) {\n\t\tlistenersRef.current.forEach(function(l) {\n\t\t\treturn l(value);\n\t\t});\n\t}, []), React.useCallback(function(listener) {\n\t\tlistenersRef.current.add(listener);\n\t\treturn function() {\n\t\t\tlistenersRef.current.delete(listener);\n\t\t};\n\t}, [])];\n}\nfunction SelectInner(props) {\n\tvar { scope = \"\", adaptScope, native, children, open, requestOpenChange, defaultOpen: _defaultOpen, onOpenChange: _onOpenChange, value: valueProp, defaultValue, onValueChange, multiple = false, name, form, disablePreventBodyScroll, size: sizeProp = true, onActiveChange, dir, id, renderValue, lazyMount, zIndex } = props;\n\tvar SelectImpl = useAdaptIsActive(adaptScope) ? SelectSheetImpl : SelectInlineImpl;\n\tvar mode = multiple ? \"multiple\" : \"single\";\n\tvar [valueState, requestValueChange] = useControllableState({\n\t\tprop: valueProp,\n\t\tdefaultProp: defaultValue !== null && defaultValue !== void 0 ? defaultValue : mode === \"multiple\" ? [] : \"\",\n\t\tonChange: onValueChange,\n\t\ttransition: true\n\t});\n\tvar value = React.useMemo(function() {\n\t\treturn mode === \"multiple\" ? selectedValuesFromSelection(mode, valueState) : typeof valueState === \"string\" ? valueState : \"\";\n\t}, [mode, valueState]);\n\tvar selectedValues = React.useMemo(function() {\n\t\treturn selectedValuesFromSelection(mode, value);\n\t}, [mode, value]);\n\tvar [, rerenderRegistry] = React.useReducer(function(version) {\n\t\treturn version + 1;\n\t}, 0);\n\tvar registryRef = React.useRef(null);\n\tif (!registryRef.current) registryRef.current = createSelectItemRegistry(rerenderRegistry);\n\tvar registry = registryRef.current;\n\tvar controllerRef = React.useRef(null);\n\tif (!controllerRef.current) controllerRef.current = createSelectSelectionController({\n\t\tmode,\n\t\tvalue,\n\t\tregistry\n\t});\n\tvar controller = controllerRef.current;\n\tcontroller.setMode(mode);\n\tcontroller.setValue(value);\n\tReact.useEffect(function() {\n\t\tif (!props.id) return;\n\t\treturn registerFocusable(props.id, {\n\t\t\tfocusAndSelect: function() {\n\t\t\t\trequestOpenChange(function(current) {\n\t\t\t\t\treturn !current;\n\t\t\t\t}, createChangeEventDetails(\"trigger-press\"));\n\t\t\t},\n\t\t\tfocus: function() {}\n\t\t});\n\t}, [props.id, requestOpenChange]);\n\tvar activeIndexRef = React.useRef(null);\n\tvar [emitActiveIndex, activeIndexSubscribe] = useEmitter();\n\tvar selectedIndexRef = React.useRef(null);\n\tvar lastPointerRef = React.useRef({\n\t\tx: -1,\n\t\ty: -1\n\t});\n\tvar listContentRef = React.useRef([]);\n\tvar listRef = React.useRef([]);\n\tvar [valueNode, setValueNode] = React.useState(null);\n\tvar selectedIndex = Math.max(0, controller.selectionAnchorIndex());\n\tlistContentRef.current = registry.getTypeaheadLabels();\n\tvar itemNodes = registry.getNodes();\n\tlistRef.current.length = itemNodes.length;\n\tfor (var i = 0; i < itemNodes.length; i++) listRef.current[i] = itemNodes[i];\n\tuseIsomorphicLayoutEffect(function() {\n\t\tselectedIndexRef.current = selectedIndex;\n\t});\n\tvar shouldRenderWebNative = isWeb && (native === true || native === \"web\" || Array.isArray(native) && native.includes(\"web\"));\n\tvar setActiveIndex = React.useCallback(function(index, details) {\n\t\tif (activeIndexRef.current === index) return;\n\t\tactiveIndexRef.current = index;\n\t\tcontroller.setActiveIndex(index);\n\t\temitActiveIndex(index);\n\t\tif (typeof index === \"number\") {\n\t\t\tvar item = registry.getItems()[index];\n\t\t\tif (item && details) onActiveChange === null || onActiveChange === void 0 || onActiveChange(item.value, details);\n\t\t}\n\t}, [\n\t\tcontroller,\n\t\temitActiveIndex,\n\t\tonActiveChange,\n\t\tregistry\n\t]);\n\tvar activeDetails = React.useCallback(function(reason, index, event) {\n\t\treturn {\n\t\t\treason,\n\t\t\tevent,\n\t\t\ttrigger: void 0,\n\t\t\tindex\n\t\t};\n\t}, []);\n\tvar moveActive = React.useCallback(function(direction, event) {\n\t\tvar nextIndex = registry.nextEnabledIndex(activeIndexRef.current, direction);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tvar typeaheadRef = React.useRef({\n\t\ttext: \"\",\n\t\ttimeout: null\n\t});\n\tvar search = React.useCallback(function(text, event) {\n\t\tclearTimeout(typeaheadRef.current.timeout);\n\t\ttypeaheadRef.current.text += text;\n\t\tvar nextIndex = registry.findTypeaheadIndex(typeaheadRef.current.text, activeIndexRef.current);\n\t\tif (nextIndex < 0 && typeaheadRef.current.text.length > 1) {\n\t\t\ttypeaheadRef.current.text = text;\n\t\t\tnextIndex = registry.findTypeaheadIndex(text, activeIndexRef.current);\n\t\t}\n\t\ttypeaheadRef.current.timeout = setTimeout(function() {\n\t\t\ttypeaheadRef.current.text = \"\";\n\t\t}, 750);\n\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"keyboard\", nextIndex, event));\n\t}, [\n\t\tactiveDetails,\n\t\tregistry,\n\t\tsetActiveIndex\n\t]);\n\tReact.useEffect(function() {\n\t\treturn function() {\n\t\t\treturn clearTimeout(typeaheadRef.current.timeout);\n\t\t};\n\t}, []);\n\tReact.useEffect(function() {\n\t\tif (open) {\n\t\t\tvar nextIndex = controller.initialActiveIndex();\n\t\t\tif (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails(\"list-navigation\", nextIndex));\n\t\t} else setActiveIndex(null);\n\t}, [\n\t\topen,\n\t\tselectedIndex,\n\t\tregistry.getItems().length\n\t]);\n\tvar content = /* @__PURE__ */ jsxs(SelectItemParentProvider, {\n\t\tscopeName: scope,\n\t\tscope,\n\t\tadaptScope,\n\t\tmode,\n\t\tselectedValues,\n\t\tregistry,\n\t\tsize: sizeProp,\n\t\tactiveIndexSubscribe,\n\t\tactiveIndexRef,\n\t\trequestOpenChange,\n\t\tid,\n\t\tname,\n\t\tform,\n\t\tselectValue: React.useCallback(function(nextItemValue, details) {\n\t\t\tvar item = registry.getItem(nextItemValue);\n\t\t\tif (!item || item.disabled) return;\n\t\t\tcontroller.setMode(mode);\n\t\t\tcontroller.setValue(value);\n\t\t\tvar previousValue = controller.value;\n\t\t\trequestValueChange(controller.toggle(nextItemValue), details);\n\t\t\tif (details.isCanceled) {\n\t\t\t\tcontroller.setValue(previousValue);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (controller.shouldCloseOnSelect) requestOpenChange(false, createChangeEventDetails(details.reason === \"keyboard\" ? \"keyboard\" : \"item-press\", details.event, details.trigger));\n\t\t}, [\n\t\t\tcontroller,\n\t\t\tmode,\n\t\t\tregistry,\n\t\t\trequestOpenChange,\n\t\t\trequestValueChange,\n\t\t\tvalue\n\t\t]),\n\t\tchangeNativeValue: React.useCallback(function(nextValue, event) {\n\t\t\tvar details = createChangeEventDetails(\"native-change\", event);\n\t\t\trequestValueChange(nextValue, details);\n\t\t\tif (!details.isCanceled) controller.setValue(nextValue);\n\t\t}, [controller, requestValueChange]),\n\t\tshouldRenderWebNative,\n\t\tsetActiveIndex,\n\t\tselectedIndex,\n\t\tlastPointerRef,\n\t\tlistRef,\n\t\tmoveActive,\n\t\tsearch,\n\t\tchildren: [/* @__PURE__ */ jsx(SelectProvider, {\n\t\t\tscope,\n\t\t\tscopeName: scope,\n\t\t\tadaptScope,\n\t\t\tdisablePreventBodyScroll,\n\t\t\tdir,\n\t\t\tblockSelection: false,\n\t\t\tfallback: false,\n\t\t\tvalueNode,\n\t\t\tonValueNodeChange: setValueNode,\n\t\t\tactiveIndexRef,\n\t\t\tselectedIndex,\n\t\t\tsetActiveIndex,\n\t\t\tvalue,\n\t\t\tmode,\n\t\t\tselectedValues,\n\t\t\topen,\n\t\t\tnative,\n\t\t\trenderValue,\n\t\t\tlazyMount,\n\t\t\tchildren: shouldRenderWebNative ? children : /* @__PURE__ */ jsx(SelectImpl, {\n\t\t\t\tactiveIndexRef,\n\t\t\t\tlistContentRef,\n\t\t\t\tselectedIndexRef,\n\t\t\t\t...props,\n\t\t\t\topen,\n\t\t\t\tvalue,\n\t\t\t\tchildren\n\t\t\t})\n\t\t}), isWeb && !shouldRenderWebNative && name ? (mode === \"multiple\" ? selectedValues : [value]).map(function(inputValue) {\n\t\t\treturn /* @__PURE__ */ jsx(\"input\", {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname,\n\t\t\t\tform,\n\t\t\t\tvalue: inputValue\n\t\t\t}, inputValue);\n\t\t}) : null]\n\t});\n\tif (zIndex !== void 0) return /* @__PURE__ */ jsx(SelectZIndexContext.Provider, {\n\t\tvalue: zIndex,\n\t\tchildren: content\n\t});\n\treturn content;\n}\n\nexport { Select, SelectGroup, SelectGroupFrame, SelectIcon, SelectIndicator, SelectIndicatorFrame, SelectItemIndicator, SelectItemIndicatorFrame, SelectLabel, SelectLabelFrame, SelectRoot, SelectSeparator, SelectValue, SelectValueFrame };"],"mappings":"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"}
@@ -3,7 +3,6 @@ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
3
3
  import { createChangeEventDetails, useEvent, useIsTouchDevice } from "@tamagui/core";
4
4
  import { composeEventHandlers } from "@tamagui/helpers";
5
5
  import * as React from "react";
6
- import { flushSync } from "react-dom";
7
6
  import { SCROLL_ARROW_THRESHOLD } from "./constants.mjs";
8
7
  import { SelectItemParentProvider, SelectProvider, useSelectContext, useSelectItemParentContext } from "./context.mjs";
9
8
  import { jsx } from "react/jsx-runtime";
@@ -14,7 +13,6 @@ const SelectInlineImpl = (props) => {
14
13
  const selectItemParentContext = useSelectItemParentContext(scope);
15
14
  const { setActiveIndex, selectedIndex, activeIndexRef } = selectContext;
16
15
  const { requestOpenChange, registry } = selectItemParentContext;
17
- const [scrollTop, setScrollTop] = React.useState(0);
18
16
  const touch = useIsTouchDevice();
19
17
  const listItemsRef = selectItemParentContext.listRef;
20
18
  const overflowRef = React.useRef(null);
@@ -32,10 +30,10 @@ const SelectInlineImpl = (props) => {
32
30
  const [fallback, setFallback] = React.useState(false);
33
31
  const [innerOffset, setInnerOffset] = React.useState(0);
34
32
  const [blockSelection, setBlockSelection] = React.useState(false);
35
- const floatingStyle = React.useRef({});
36
33
  React.useEffect(() => {
37
34
  if (!open) {
38
- setScrollTop(0);
35
+ setCanScrollUp(false);
36
+ setCanScrollDown(false);
39
37
  setFallback(false);
40
38
  setControlledScrolling(false);
41
39
  }
@@ -55,9 +53,8 @@ const SelectInlineImpl = (props) => {
55
53
  placement: "bottom-start",
56
54
  whileElementsMounted: autoUpdate,
57
55
  middleware: [
58
- size({ apply({ rects: { reference: { width } } }) {
59
- Object.assign(floatingStyle.current, { minWidth: width + 8 });
60
- if (refs.floating.current) Object.assign(refs.floating.current.style, floatingStyle.current);
56
+ size({ apply({ rects, elements }) {
57
+ elements.floating.style.minWidth = `${rects.reference.width + 8}px`;
61
58
  } }),
62
59
  inner({
63
60
  listRef: listItemsRef,
@@ -69,18 +66,22 @@ const SelectInlineImpl = (props) => {
69
66
  minItemsVisible: touch ? 10 : 4,
70
67
  referenceOverflowThreshold: 20
71
68
  }),
72
- offset({ crossAxis: -5 })
69
+ offset({ crossAxis: -4 })
73
70
  ]
74
71
  });
75
- const floatingRef = refs.floating;
76
- const showUpArrow = open && scrollTop > SCROLL_ARROW_THRESHOLD;
77
- const showDownArrow = open && floatingRef.current && scrollTop < floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD;
72
+ const [canScrollUp, setCanScrollUp] = React.useState(false);
73
+ const [canScrollDown, setCanScrollDown] = React.useState(false);
74
+ const updateScrollArrows = React.useCallback(() => {
75
+ const el = refs.floating.current;
76
+ if (!el) return;
77
+ setCanScrollUp(el.scrollTop > SCROLL_ARROW_THRESHOLD);
78
+ setCanScrollDown(el.scrollTop < el.scrollHeight - el.clientHeight - SCROLL_ARROW_THRESHOLD);
79
+ }, [refs]);
80
+ const showUpArrow = open && canScrollUp;
81
+ const showDownArrow = open && canScrollDown;
78
82
  const isScrollable = showDownArrow || showUpArrow;
79
83
  useIsomorphicLayoutEffect(() => {
80
- if (typeof window === "undefined") return;
81
- window.addEventListener("resize", update);
82
84
  if (open) update();
83
- return () => window.removeEventListener("resize", update);
84
85
  }, [update, open]);
85
86
  const onMatch = useEvent((index) => {
86
87
  if (!open) return;
@@ -93,23 +94,32 @@ const SelectInlineImpl = (props) => {
93
94
  });
94
95
  const dataRef = React.useRef({});
95
96
  dataRef.current.placement = computedPlacement;
96
- const interactionContext = {
97
+ const onOpenChange = useEvent((nextOpen, event, reason) => {
98
+ requestOpenChange(nextOpen, createChangeEventDetails(reason === "list-navigation" ? "keyboard" : "trigger-press", event, refs.reference.current));
99
+ });
100
+ const referenceElement = refs.reference.current || null;
101
+ const floatingElement = refs.floating.current || null;
102
+ const interactionContext = React.useMemo(() => ({
97
103
  open,
98
- onOpenChange: (nextOpen, event, reason) => {
99
- requestOpenChange(nextOpen, createChangeEventDetails(reason === "list-navigation" ? "keyboard" : "trigger-press", event, refs.reference.current));
100
- },
104
+ onOpenChange,
101
105
  refs: {
102
106
  reference: refs.reference,
103
107
  floating: refs.floating,
104
108
  domReference: refs.reference
105
109
  },
106
110
  elements: {
107
- reference: refs.reference?.current || null,
108
- floating: refs.floating?.current || null,
109
- domReference: refs.reference?.current || null
111
+ reference: referenceElement,
112
+ floating: floatingElement,
113
+ domReference: referenceElement
110
114
  },
111
115
  dataRef
112
- };
116
+ }), [
117
+ open,
118
+ onOpenChange,
119
+ refs,
120
+ referenceElement,
121
+ floatingElement
122
+ ]);
113
123
  const interactionsProps = [
114
124
  useClick(interactionContext, {
115
125
  event: "mousedown",
@@ -124,7 +134,7 @@ const SelectInlineImpl = (props) => {
124
134
  }),
125
135
  useListNavigation(interactionContext, {
126
136
  listRef: listItemsRef,
127
- activeIndex: selectContext.activeIndex ?? 0,
137
+ activeIndex: null,
128
138
  selectedIndex,
129
139
  onNavigate: (index) => {
130
140
  if (index !== null) setActiveIndex(index, {
@@ -135,13 +145,14 @@ const SelectInlineImpl = (props) => {
135
145
  });
136
146
  },
137
147
  disabledIndices: registry.getDisabledIndices(),
138
- scrollItemIntoView: false
148
+ scrollItemIntoView: false,
149
+ focusItemOnHover: false
139
150
  }),
140
151
  useTypeahead(interactionContext, {
141
152
  listRef: listContentRef,
142
153
  onMatch,
143
154
  selectedIndex,
144
- activeIndex: selectContext.activeIndex,
155
+ activeIndex: null,
145
156
  onTypingChange: (e) => {
146
157
  state.current.isTyping = e;
147
158
  }
@@ -152,7 +163,6 @@ const SelectInlineImpl = (props) => {
152
163
  }, interactionsProps));
153
164
  const interactionsContext = React.useMemo(() => {
154
165
  return {
155
- ...interactions,
156
166
  getReferenceProps(props2 = {}) {
157
167
  return interactions.getReferenceProps({
158
168
  ...props2,
@@ -168,17 +178,7 @@ const SelectInlineImpl = (props) => {
168
178
  getFloatingProps(props2) {
169
179
  return interactions.getFloatingProps({
170
180
  ref: refs.floating,
171
- className: "Select",
172
181
  ...props2,
173
- style: {
174
- position: strategy,
175
- top: y ?? "",
176
- left: x ?? "",
177
- outline: 0,
178
- scrollbarWidth: "none",
179
- ...floatingStyle.current,
180
- ...props2?.style
181
- },
182
182
  onPointerEnter() {
183
183
  setControlledScrolling(false);
184
184
  state.current.isMouseOutside = false;
@@ -197,20 +197,24 @@ const SelectInlineImpl = (props) => {
197
197
  onContextMenu(e) {
198
198
  e.preventDefault();
199
199
  },
200
- onScroll(event) {
201
- flushSync(() => {
202
- setScrollTop(event.currentTarget.scrollTop);
203
- });
204
- }
200
+ onScroll: updateScrollArrows
205
201
  });
206
202
  }
207
203
  };
208
204
  }, [
209
- refs.reference.current,
205
+ refs,
206
+ interactions,
207
+ requestOpenChange,
208
+ updateScrollArrows
209
+ ]);
210
+ const floatingPosition = React.useMemo(() => ({
211
+ position: strategy,
212
+ top: y ?? "",
213
+ left: x ?? ""
214
+ }), [
215
+ strategy,
210
216
  x,
211
- y,
212
- refs.floating.current,
213
- interactions
217
+ y
214
218
  ]);
215
219
  useIsomorphicLayoutEffect(() => {
216
220
  if (open) {
@@ -236,15 +240,15 @@ const SelectInlineImpl = (props) => {
236
240
  if (!open) return;
237
241
  const scrollActiveIntoView = (index) => {
238
242
  if (controlledScrolling && index != null) listItemsRef.current[index]?.scrollIntoView({ block: "nearest" });
239
- setScrollTop(refs.floating.current?.scrollTop ?? 0);
243
+ updateScrollArrows();
240
244
  };
241
245
  scrollActiveIntoView(activeIndexRef.current);
242
246
  return selectItemParentContext.activeIndexSubscribe(scrollActiveIntoView);
243
247
  }, [
244
248
  open,
245
- refs,
246
249
  controlledScrolling,
247
- selectItemParentContext.activeIndexSubscribe
250
+ selectItemParentContext.activeIndexSubscribe,
251
+ updateScrollArrows
248
252
  ]);
249
253
  React.useEffect(() => {
250
254
  if (open && fallback) {
@@ -265,10 +269,12 @@ const SelectInlineImpl = (props) => {
265
269
  return /* @__PURE__ */ jsx(SelectProvider, {
266
270
  scope,
267
271
  ...selectContext,
268
- setScrollTop,
272
+ updateScrollArrows,
269
273
  setInnerOffset,
270
274
  fallback,
271
275
  floatingContext,
276
+ interactions: interactionsContext,
277
+ floatingPosition,
272
278
  canScrollDown: !!showDownArrow,
273
279
  canScrollUp: !!showUpArrow,
274
280
  controlledScrolling,
@@ -282,7 +288,7 @@ const SelectInlineImpl = (props) => {
282
288
  allowMouseUpRef,
283
289
  allowSelectRef,
284
290
  dataRef,
285
- interactions: interactionsContext,
291
+ getItemProps: interactions.getItemProps,
286
292
  listRef: listItemsRef,
287
293
  selectTimeoutRef,
288
294
  children