@tamagui/select 3.0.0-beta.924.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +67 -63
  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 +9 -25
  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 +29 -32
  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 +68 -64
  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 +10 -26
  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 +30 -33
  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 +68 -64
  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 +10 -26
  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 +30 -33
  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 +107 -95
  79. package/src/SelectItem.tsx +66 -91
  80. package/src/SelectScrollButton.tsx +14 -32
  81. package/src/SelectTrigger.tsx +19 -2
  82. package/src/SelectViewport.native.tsx +4 -4
  83. package/src/SelectViewport.tsx +34 -30
  84. package/src/selectionController.ts +20 -5
  85. package/src/types.tsx +26 -22
  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 -22
  106. package/types/types.d.ts.map +1 -1
@@ -71,6 +71,12 @@ var SelectValue = (0, import_core.createStyledHOC)(SelectValueFrame, function Se
71
71
  var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
72
72
  var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, context.onValueNodeChange);
73
73
  var isEmptyValue = context.selectedValues.length === 0;
74
+ var [, rerender] = React.useReducer(function(version) {
75
+ return version + 1;
76
+ }, 0);
77
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
78
+ return itemParentContext.registry.subscribe(rerender);
79
+ }, [itemParentContext.registry]);
74
80
  var _itemParentContext_registry_getItem_label;
75
81
  var registeredValue = context.mode === "multiple" ? context.selectedValues.map(function(value, index) {
76
82
  var _itemParentContext_registry_getItem2;
@@ -116,7 +122,7 @@ var SelectIndicator = (0, import_core.createStyledHOC)(SelectIndicatorFrame, fun
116
122
  var context = (0, import_context.useSelectContext)(scope);
117
123
  var [layout, setLayout] = React.useState(null);
118
124
  var rafRef = React.useRef(0);
119
- React.useLayoutEffect(function() {
125
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
120
126
  var update = function(index) {
121
127
  if (typeof index !== "number") return;
122
128
  cancelAnimationFrame(rafRef.current);
@@ -223,6 +229,7 @@ function SelectRoot(props) {
223
229
  }, [requestOpenChange]);
224
230
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptParent, {
225
231
  scope: adaptScope,
232
+ adaptChildren: props.children,
226
233
  open,
227
234
  onOpenChange: handleAdaptOpenChange,
228
235
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectInner, {
@@ -267,7 +274,6 @@ function useEmitter() {
267
274
  }, [])];
268
275
  }
269
276
  function SelectInner(props) {
270
- var _registry_getItems_activeIndex, _controller_selectionAnchor;
271
277
  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;
272
278
  var SelectImpl = (0, import_adapt.useAdaptIsActive)(adaptScope) ? SelectSheetImpl : import_SelectImpl.SelectInlineImpl;
273
279
  var mode = multiple ? "multiple" : "single";
@@ -310,28 +316,32 @@ function SelectInner(props) {
310
316
  });
311
317
  }, [props.id, requestOpenChange]);
312
318
  var activeIndexRef = React.useRef(null);
313
- var [activeIndex, setActiveIndexState] = React.useState(null);
314
319
  var [emitActiveIndex, activeIndexSubscribe] = useEmitter();
315
320
  var selectedIndexRef = React.useRef(null);
321
+ var lastPointerRef = React.useRef({
322
+ x: -1,
323
+ y: -1
324
+ });
316
325
  var listContentRef = React.useRef([]);
317
326
  var listRef = React.useRef([]);
318
327
  var [valueNode, setValueNode] = React.useState(null);
319
328
  var selectedIndex = Math.max(0, controller.selectionAnchorIndex());
320
329
  listContentRef.current = registry.getTypeaheadLabels();
321
- listRef.current.length = registry.getItems().length;
330
+ var itemNodes = registry.getNodes();
331
+ listRef.current.length = itemNodes.length;
332
+ for (var i = 0; i < itemNodes.length; i++) listRef.current[i] = itemNodes[i];
322
333
  (0, import_constants.useIsomorphicLayoutEffect)(function() {
323
334
  selectedIndexRef.current = selectedIndex;
324
335
  });
325
336
  var shouldRenderWebNative = import_constants.isWeb && (native === true || native === "web" || Array.isArray(native) && native.includes("web"));
326
- var setActiveIndexFast = React.useCallback(function(index, details) {
327
- if (activeIndexRef.current !== index) {
328
- activeIndexRef.current = index;
329
- controller.setActiveIndex(index);
330
- if (typeof index === "number") {
331
- emitActiveIndex(index);
332
- var item = registry.getItems()[index];
333
- if (item && details) onActiveChange === null || onActiveChange === void 0 || onActiveChange(item.value, details);
334
- }
337
+ var setActiveIndex = React.useCallback(function(index, details) {
338
+ if (activeIndexRef.current === index) return;
339
+ activeIndexRef.current = index;
340
+ controller.setActiveIndex(index);
341
+ emitActiveIndex(index);
342
+ if (typeof index === "number") {
343
+ var item = registry.getItems()[index];
344
+ if (item && details) onActiveChange === null || onActiveChange === void 0 || onActiveChange(item.value, details);
335
345
  }
336
346
  }, [
337
347
  controller,
@@ -339,10 +349,6 @@ function SelectInner(props) {
339
349
  onActiveChange,
340
350
  registry
341
351
  ]);
342
- var setActiveIndex = React.useCallback(function(index, details) {
343
- setActiveIndexFast(index, details);
344
- setActiveIndexState(index);
345
- }, [setActiveIndexFast]);
346
352
  var activeDetails = React.useCallback(function(reason, index, event) {
347
353
  return {
348
354
  reason,
@@ -389,10 +395,7 @@ function SelectInner(props) {
389
395
  if (open) {
390
396
  var nextIndex = controller.initialActiveIndex();
391
397
  if (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails("list-navigation", nextIndex));
392
- } else {
393
- setActiveIndexFast(null);
394
- setActiveIndexState(null);
395
- }
398
+ } else setActiveIndex(null);
396
399
  }, [
397
400
  open,
398
401
  selectedIndex,
@@ -440,7 +443,9 @@ function SelectInner(props) {
440
443
  selectValue,
441
444
  changeNativeValue,
442
445
  shouldRenderWebNative,
443
- setActiveIndexFast,
446
+ setActiveIndex,
447
+ selectedIndex,
448
+ lastPointerRef,
444
449
  listRef,
445
450
  moveActive,
446
451
  search,
@@ -454,15 +459,12 @@ function SelectInner(props) {
454
459
  fallback: false,
455
460
  valueNode,
456
461
  onValueNodeChange: setValueNode,
457
- activeIndex,
458
462
  activeIndexRef,
459
463
  selectedIndex,
460
464
  setActiveIndex,
461
465
  value,
462
466
  mode,
463
467
  selectedValues,
464
- activeItem: activeIndex == null ? void 0 : (_registry_getItems_activeIndex = registry.getItems()[activeIndex]) === null || _registry_getItems_activeIndex === void 0 ? void 0 : _registry_getItems_activeIndex.value,
465
- selectionAnchor: (_controller_selectionAnchor = controller.selectionAnchor()) === null || _controller_selectionAnchor === void 0 ? void 0 : _controller_selectionAnchor.value,
466
468
  open,
467
469
  native,
468
470
  renderValue,
@@ -471,7 +473,6 @@ function SelectInner(props) {
471
473
  activeIndexRef,
472
474
  listContentRef,
473
475
  selectedIndexRef,
474
- setActiveIndexFast,
475
476
  ...props,
476
477
  open,
477
478
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.native.js","names":[],"sources":["jsx/Select.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") {\n\t\tfor (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: () => from[key],\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n\t// If the importer is in node compatibility mode or this is not an ESM\n\t// file that has been converted to a CommonJS file using a Babel-\n\t// compatible transform (i.e. \"__esModule\" has not been set), then set\n\t// \"default\" to the CommonJS \"module.exports\" for node compatibility.\n\tisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\t\tvalue: mod,\n\t\tenumerable: true\n\t}) : target,\n\tmod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Select_exports = {};\n__export(Select_exports, {\n\tSelect: () => Select,\n\tSelectGroup: () => SelectGroup,\n\tSelectGroupFrame: () => SelectGroupFrame,\n\tSelectIcon: () => SelectIcon,\n\tSelectIndicator: () => SelectIndicator,\n\tSelectIndicatorFrame: () => SelectIndicatorFrame,\n\tSelectItemIndicator: () => SelectItemIndicator,\n\tSelectItemIndicatorFrame: () => SelectItemIndicatorFrame,\n\tSelectLabel: () => SelectLabel,\n\tSelectLabelFrame: () => SelectLabelFrame,\n\tSelectRoot: () => SelectRoot,\n\tSelectSeparator: () => SelectSeparator,\n\tSelectValue: () => SelectValue,\n\tSelectValueFrame: () => SelectValueFrame\n});\nmodule.exports = __toCommonJS(Select_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_core = require(\"@tamagui/core\");\nvar import_focus_scope = require(\"@tamagui/focus-scope\");\nvar import_focusable = require(\"@tamagui/focusable\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar React = __toESM(require(\"react\"), 1);\nvar import_context = require(\"./context\");\nvar import_SelectContent = require(\"./SelectContent\");\nvar import_SelectImpl = require(\"./SelectImpl\");\nvar import_SelectItem = require(\"./SelectItem\");\nvar import_SelectItemText = require(\"./SelectItemText\");\nvar import_SelectScrollButton = require(\"./SelectScrollButton\");\nvar import_SelectTrigger = require(\"./SelectTrigger\");\nvar import_SelectViewport = require(\"./SelectViewport\");\nvar import_selectionController = require(\"./selectionController\");\nvar SelectValueFrame = (0, import_core.styled)(import_core.Text, { displayName: \"SelectValue\" });\nvar SelectValue = (0, import_core.createStyledHOC)(SelectValueFrame, function SelectValue2(param, forwardedRef) {\n\tvar { scope, children: childrenProp, placeholder, ...props } = param;\n\tvar _itemParentContext_registry_getItem;\n\tvar context = (0, import_context.useSelectContext)(scope);\n\tvar itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar composedRefs = (0, import_compose_refs.useComposedRefs)(\n\t\t// @ts-ignore react 19 ref type mismatch\n\t\tforwardedRef,\n\t\tcontext.onValueNodeChange\n\t);\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__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.jsx)(SelectValueFrame, {\n\t\tpointerEvents: \"none\",\n\t\tref: composedRefs,\n\t\t...props,\n\t\tchildren: selectValueChildren\n\t});\n});\nvar SelectIcon = (0, import_core.styled)(import_core.View, {\n\tdisplayName: \"SelectIcon\",\n\t\"aria-hidden\": true\n});\nvar SelectItemIndicatorFrame = (0, import_core.styled)(import_core.View, { displayName: \"SelectItemIndicator\" });\nvar SelectItemIndicator = (0, import_core.createStyledHOC)(SelectItemIndicatorFrame, function SelectItemIndicator2(props, forwardedRef) {\n\tvar { scope, ...itemIndicatorProps } = props;\n\tvar context = (0, import_context.useSelectItemParentContext)(scope);\n\tvar itemContext = (0, import_SelectItem.useSelectItemContext)(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemIndicatorFrame, {\n\t\t\"aria-hidden\": true,\n\t\t...itemIndicatorProps,\n\t\tref: forwardedRef\n\t}) : null;\n});\nvar SelectIndicatorFrame = (0, import_core.styled)(import_core.View, {\n\tdisplayName: \"SelectIndicator\",\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tpointerEvents: \"none\",\n\tzIndex: 10\n});\nvar SelectIndicator = (0, import_core.createStyledHOC)(SelectIndicatorFrame, function SelectIndicator2(param, forwardedRef) {\n\tvar { scope, ...props } = param;\n\tvar itemContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar context = (0, import_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__ */ (0, import_jsx_runtime.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 } = (0, import_core.createStyledContext)({ id: \"\" }, \"SelectGroup\");\nvar SelectGroupFrame = (0, import_core.styled)(import_core.View, { displayName: GROUP_NAME });\nvar NativeSelect = (0, import_core.styled)(import_core.Text, {\n\tdisplayName: \"NativeSelect\",\n\trender: \"select\"\n});\nvar SelectGroup = (0, import_core.createStyledHOC)(SelectGroupFrame, function(props, forwardedRef) {\n\tvar { scope, ...groupProps } = props;\n\tvar groupId = React.useId();\n\tvar context = (0, import_context.useSelectContext)(scope);\n\tvar itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar StyledNativeSelect = React.useContext(import_context.SelectNativeComponentContext);\n\tvar nativeSelectRef = React.useRef(null);\n\tvar content = (function() {\n\t\tif (itemParentContext.shouldRenderWebNative) return /* @__PURE__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.jsx)(SelectGroupContextProvider, {\n\t\tscope,\n\t\tid: groupId || \"\",\n\t\tchildren: content\n\t});\n});\nSelectGroup.displayName = GROUP_NAME;\nvar SelectLabelFrame = (0, import_core.styled)(import_core.Text, { displayName: \"SelectLabel\" });\nvar SelectLabel = (0, import_core.createStyledHOC)(SelectLabelFrame, function(props, forwardedRef) {\n\tvar { scope, ...labelProps } = props;\n\tvar context = (0, import_context.useSelectItemParentContext)(scope);\n\tvar groupContext = useSelectGroupContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectLabelFrame, {\n\t\trender: \"div\",\n\t\tid: groupContext.id,\n\t\t...labelProps,\n\t\tref: forwardedRef\n\t});\n});\nvar SelectSeparator = (0, import_core.styled)(import_core.View, { displayName: \"SelectSeparator\" });\nvar SelectSheetImpl = function(props) {\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });\n};\nfunction SelectRoot(props) {\n\tvar adaptScope = `AdaptSelect${props.scope || \"\"}`;\n\tvar [open, requestOpenChange] = (0, import_use_controllable_state.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, (0, import_core.createChangeEventDetails)(nextOpen ? \"trigger-press\" : \"outside-press\"));\n\t}, [requestOpenChange]);\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptParent, {\n\t\tscope: adaptScope,\n\t\topen,\n\t\tonOpenChange: handleAdaptOpenChange,\n\t\tchildren: /* @__PURE__ */ (0, import_jsx_runtime.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 = (0, import_helpers.withStaticProperties)(SelectRoot, {\n\tRoot: SelectRoot,\n\tAdapt: import_adapt.Adapt,\n\tContent: import_SelectContent.SelectContent,\n\tGroup: SelectGroup,\n\tIcon: SelectIcon,\n\tItem: import_SelectItem.SelectItem,\n\tItemIndicator: SelectItemIndicator,\n\tItemText: import_SelectItemText.SelectItemText,\n\tLabel: SelectLabel,\n\tScrollDownButton: import_SelectScrollButton.SelectScrollDownButton,\n\tScrollUpButton: import_SelectScrollButton.SelectScrollUpButton,\n\tSeparator: SelectSeparator,\n\tTrigger: import_SelectTrigger.SelectTrigger,\n\tValue: SelectValue,\n\tViewport: import_SelectViewport.SelectViewport,\n\tIndicator: SelectIndicator,\n\tFocusScope: import_focus_scope.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 = (0, import_adapt.useAdaptIsActive)(adaptScope) ? SelectSheetImpl : import_SelectImpl.SelectInlineImpl;\n\tvar mode = multiple ? \"multiple\" : \"single\";\n\tvar [valueState, requestValueChange] = (0, import_use_controllable_state.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\" ? (0, import_selectionController.selectedValuesFromSelection)(mode, valueState) : typeof valueState === \"string\" ? valueState : \"\";\n\t}, [mode, valueState]);\n\tvar selectedValues = React.useMemo(function() {\n\t\treturn (0, import_selectionController.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 = (0, import_selectionController.createSelectItemRegistry)(rerenderRegistry);\n\tvar registry = registryRef.current;\n\tvar controllerRef = React.useRef(null);\n\tif (!controllerRef.current) controllerRef.current = (0, import_selectionController.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 (0, import_focusable.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}, (0, import_core.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\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tselectedIndexRef.current = selectedIndex;\n\t});\n\tvar shouldRenderWebNative = import_constants.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 selectValue = React.useCallback(function(nextItemValue, details) {\n\t\tvar item = registry.getItem(nextItemValue);\n\t\tif (!item || item.disabled) return;\n\t\tcontroller.setMode(mode);\n\t\tcontroller.setValue(value);\n\t\tvar previousValue = controller.value;\n\t\trequestValueChange(controller.toggle(nextItemValue), details);\n\t\tif (details.isCanceled) {\n\t\t\tcontroller.setValue(previousValue);\n\t\t\treturn;\n\t\t}\n\t\tif (controller.shouldCloseOnSelect) requestOpenChange(false, (0, import_core.createChangeEventDetails)(details.reason === \"keyboard\" ? \"keyboard\" : \"item-press\", details.event, details.trigger));\n\t}, [\n\t\tcontroller,\n\t\tmode,\n\t\tregistry,\n\t\trequestOpenChange,\n\t\trequestValueChange,\n\t\tvalue\n\t]);\n\tvar changeNativeValue = React.useCallback(function(nextValue, event) {\n\t\tvar details = (0, import_core.createChangeEventDetails)(\"native-change\", event);\n\t\trequestValueChange(nextValue, details);\n\t\tif (!details.isCanceled) controller.setValue(nextValue);\n\t}, [controller, requestValueChange]);\n\tvar content = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_context.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,\n\t\tchangeNativeValue,\n\t\tshouldRenderWebNative,\n\t\tsetActiveIndexFast,\n\t\tlistRef,\n\t\tmoveActive,\n\t\tsearch,\n\t\tchildren: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.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__ */ (0, import_jsx_runtime.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}), import_constants.isWeb && !shouldRenderWebNative && name ? (mode === \"multiple\" ? selectedValues : [value]).map(function(inputValue) {\n\t\t\treturn /* @__PURE__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.jsx)(import_context.SelectZIndexContext.Provider, {\n\t\tvalue: zIndex,\n\t\tchildren: content\n\t});\n\treturn content;\n}\n//# sourceMappingURL=Select.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select.native.js","names":[],"sources":["jsx/Select.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") {\n\t\tfor (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: () => from[key],\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n\t// If the importer is in node compatibility mode or this is not an ESM\n\t// file that has been converted to a CommonJS file using a Babel-\n\t// compatible transform (i.e. \"__esModule\" has not been set), then set\n\t// \"default\" to the CommonJS \"module.exports\" for node compatibility.\n\tisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\t\tvalue: mod,\n\t\tenumerable: true\n\t}) : target,\n\tmod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Select_exports = {};\n__export(Select_exports, {\n\tSelect: () => Select,\n\tSelectGroup: () => SelectGroup,\n\tSelectGroupFrame: () => SelectGroupFrame,\n\tSelectIcon: () => SelectIcon,\n\tSelectIndicator: () => SelectIndicator,\n\tSelectIndicatorFrame: () => SelectIndicatorFrame,\n\tSelectItemIndicator: () => SelectItemIndicator,\n\tSelectItemIndicatorFrame: () => SelectItemIndicatorFrame,\n\tSelectLabel: () => SelectLabel,\n\tSelectLabelFrame: () => SelectLabelFrame,\n\tSelectRoot: () => SelectRoot,\n\tSelectSeparator: () => SelectSeparator,\n\tSelectValue: () => SelectValue,\n\tSelectValueFrame: () => SelectValueFrame\n});\nmodule.exports = __toCommonJS(Select_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_core = require(\"@tamagui/core\");\nvar import_focus_scope = require(\"@tamagui/focus-scope\");\nvar import_focusable = require(\"@tamagui/focusable\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar React = __toESM(require(\"react\"), 1);\nvar import_context = require(\"./context\");\nvar import_SelectContent = require(\"./SelectContent\");\nvar import_SelectImpl = require(\"./SelectImpl\");\nvar import_SelectItem = require(\"./SelectItem\");\nvar import_SelectItemText = require(\"./SelectItemText\");\nvar import_SelectScrollButton = require(\"./SelectScrollButton\");\nvar import_SelectTrigger = require(\"./SelectTrigger\");\nvar import_SelectViewport = require(\"./SelectViewport\");\nvar import_selectionController = require(\"./selectionController\");\nvar SelectValueFrame = (0, import_core.styled)(import_core.Text, { displayName: \"SelectValue\" });\nvar SelectValue = (0, import_core.createStyledHOC)(SelectValueFrame, function SelectValue2(param, forwardedRef) {\n\tvar { scope, children: childrenProp, placeholder, ...props } = param;\n\tvar _itemParentContext_registry_getItem;\n\tvar context = (0, import_context.useSelectContext)(scope);\n\tvar itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar composedRefs = (0, import_compose_refs.useComposedRefs)(\n\t\t// @ts-ignore react 19 ref type mismatch\n\t\tforwardedRef,\n\t\tcontext.onValueNodeChange\n\t);\n\tvar isEmptyValue = context.selectedValues.length === 0;\n\tvar [, rerender] = React.useReducer(function(version) {\n\t\treturn version + 1;\n\t}, 0);\n\t(0, import_constants.useIsomorphicLayoutEffect)(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__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.jsx)(SelectValueFrame, {\n\t\tpointerEvents: \"none\",\n\t\tref: composedRefs,\n\t\t...props,\n\t\tchildren: selectValueChildren\n\t});\n});\nvar SelectIcon = (0, import_core.styled)(import_core.View, {\n\tdisplayName: \"SelectIcon\",\n\t\"aria-hidden\": true\n});\nvar SelectItemIndicatorFrame = (0, import_core.styled)(import_core.View, { displayName: \"SelectItemIndicator\" });\nvar SelectItemIndicator = (0, import_core.createStyledHOC)(SelectItemIndicatorFrame, function SelectItemIndicator2(props, forwardedRef) {\n\tvar { scope, ...itemIndicatorProps } = props;\n\tvar context = (0, import_context.useSelectItemParentContext)(scope);\n\tvar itemContext = (0, import_SelectItem.useSelectItemContext)(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemIndicatorFrame, {\n\t\t\"aria-hidden\": true,\n\t\t...itemIndicatorProps,\n\t\tref: forwardedRef\n\t}) : null;\n});\nvar SelectIndicatorFrame = (0, import_core.styled)(import_core.View, {\n\tdisplayName: \"SelectIndicator\",\n\tposition: \"absolute\",\n\ttop: 0,\n\tleft: 0,\n\tpointerEvents: \"none\",\n\tzIndex: 10\n});\nvar SelectIndicator = (0, import_core.createStyledHOC)(SelectIndicatorFrame, function SelectIndicator2(param, forwardedRef) {\n\tvar { scope, ...props } = param;\n\tvar itemContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar context = (0, import_context.useSelectContext)(scope);\n\tvar [layout, setLayout] = React.useState(null);\n\tvar rafRef = React.useRef(0);\n\t(0, import_constants.useIsomorphicLayoutEffect)(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__ */ (0, import_jsx_runtime.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 } = (0, import_core.createStyledContext)({ id: \"\" }, \"SelectGroup\");\nvar SelectGroupFrame = (0, import_core.styled)(import_core.View, { displayName: GROUP_NAME });\nvar NativeSelect = (0, import_core.styled)(import_core.Text, {\n\tdisplayName: \"NativeSelect\",\n\trender: \"select\"\n});\nvar SelectGroup = (0, import_core.createStyledHOC)(SelectGroupFrame, function(props, forwardedRef) {\n\tvar { scope, ...groupProps } = props;\n\tvar groupId = React.useId();\n\tvar context = (0, import_context.useSelectContext)(scope);\n\tvar itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar StyledNativeSelect = React.useContext(import_context.SelectNativeComponentContext);\n\tvar nativeSelectRef = React.useRef(null);\n\tvar content = (function() {\n\t\tif (itemParentContext.shouldRenderWebNative) return /* @__PURE__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.jsx)(SelectGroupContextProvider, {\n\t\tscope,\n\t\tid: groupId || \"\",\n\t\tchildren: content\n\t});\n});\nSelectGroup.displayName = GROUP_NAME;\nvar SelectLabelFrame = (0, import_core.styled)(import_core.Text, { displayName: \"SelectLabel\" });\nvar SelectLabel = (0, import_core.createStyledHOC)(SelectLabelFrame, function(props, forwardedRef) {\n\tvar { scope, ...labelProps } = props;\n\tvar context = (0, import_context.useSelectItemParentContext)(scope);\n\tvar groupContext = useSelectGroupContext(scope);\n\tif (context.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectLabelFrame, {\n\t\trender: \"div\",\n\t\tid: groupContext.id,\n\t\t...labelProps,\n\t\tref: forwardedRef\n\t});\n});\nvar SelectSeparator = (0, import_core.styled)(import_core.View, { displayName: \"SelectSeparator\" });\nvar SelectSheetImpl = function(props) {\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });\n};\nfunction SelectRoot(props) {\n\tvar adaptScope = `AdaptSelect${props.scope || \"\"}`;\n\tvar [open, requestOpenChange] = (0, import_use_controllable_state.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, (0, import_core.createChangeEventDetails)(nextOpen ? \"trigger-press\" : \"outside-press\"));\n\t}, [requestOpenChange]);\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptParent, {\n\t\tscope: adaptScope,\n\t\tadaptChildren: props.children,\n\t\topen,\n\t\tonOpenChange: handleAdaptOpenChange,\n\t\tchildren: /* @__PURE__ */ (0, import_jsx_runtime.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 = (0, import_helpers.withStaticProperties)(SelectRoot, {\n\tRoot: SelectRoot,\n\tAdapt: import_adapt.Adapt,\n\tContent: import_SelectContent.SelectContent,\n\tGroup: SelectGroup,\n\tIcon: SelectIcon,\n\tItem: import_SelectItem.SelectItem,\n\tItemIndicator: SelectItemIndicator,\n\tItemText: import_SelectItemText.SelectItemText,\n\tLabel: SelectLabel,\n\tScrollDownButton: import_SelectScrollButton.SelectScrollDownButton,\n\tScrollUpButton: import_SelectScrollButton.SelectScrollUpButton,\n\tSeparator: SelectSeparator,\n\tTrigger: import_SelectTrigger.SelectTrigger,\n\tValue: SelectValue,\n\tViewport: import_SelectViewport.SelectViewport,\n\tIndicator: SelectIndicator,\n\tFocusScope: import_focus_scope.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 = (0, import_adapt.useAdaptIsActive)(adaptScope) ? SelectSheetImpl : import_SelectImpl.SelectInlineImpl;\n\tvar mode = multiple ? \"multiple\" : \"single\";\n\tvar [valueState, requestValueChange] = (0, import_use_controllable_state.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\" ? (0, import_selectionController.selectedValuesFromSelection)(mode, valueState) : typeof valueState === \"string\" ? valueState : \"\";\n\t}, [mode, valueState]);\n\tvar selectedValues = React.useMemo(function() {\n\t\treturn (0, import_selectionController.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 = (0, import_selectionController.createSelectItemRegistry)(rerenderRegistry);\n\tvar registry = registryRef.current;\n\tvar controllerRef = React.useRef(null);\n\tif (!controllerRef.current) controllerRef.current = (0, import_selectionController.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 (0, import_focusable.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}, (0, import_core.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\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tselectedIndexRef.current = selectedIndex;\n\t});\n\tvar shouldRenderWebNative = import_constants.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 selectValue = React.useCallback(function(nextItemValue, details) {\n\t\tvar item = registry.getItem(nextItemValue);\n\t\tif (!item || item.disabled) return;\n\t\tcontroller.setMode(mode);\n\t\tcontroller.setValue(value);\n\t\tvar previousValue = controller.value;\n\t\trequestValueChange(controller.toggle(nextItemValue), details);\n\t\tif (details.isCanceled) {\n\t\t\tcontroller.setValue(previousValue);\n\t\t\treturn;\n\t\t}\n\t\tif (controller.shouldCloseOnSelect) requestOpenChange(false, (0, import_core.createChangeEventDetails)(details.reason === \"keyboard\" ? \"keyboard\" : \"item-press\", details.event, details.trigger));\n\t}, [\n\t\tcontroller,\n\t\tmode,\n\t\tregistry,\n\t\trequestOpenChange,\n\t\trequestValueChange,\n\t\tvalue\n\t]);\n\tvar changeNativeValue = React.useCallback(function(nextValue, event) {\n\t\tvar details = (0, import_core.createChangeEventDetails)(\"native-change\", event);\n\t\trequestValueChange(nextValue, details);\n\t\tif (!details.isCanceled) controller.setValue(nextValue);\n\t}, [controller, requestValueChange]);\n\tvar content = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_context.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,\n\t\tchangeNativeValue,\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__ */ (0, import_jsx_runtime.jsx)(import_context.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__ */ (0, import_jsx_runtime.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}), import_constants.isWeb && !shouldRenderWebNative && name ? (mode === \"multiple\" ? selectedValues : [value]).map(function(inputValue) {\n\t\t\treturn /* @__PURE__ */ (0, import_jsx_runtime.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__ */ (0, import_jsx_runtime.jsx)(import_context.SelectZIndexContext.Provider, {\n\t\tvalue: zIndex,\n\t\tchildren: content\n\t});\n\treturn content;\n}\n//# sourceMappingURL=Select.js.map\n"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import { autoUpdate, inner, offset, size, useClick, useFloatingRaw, useInnerOffset, useInteractions, useListNavigation, useRole, useTypeahead } from "@tamagui/floating";
1
+ import { inner, offset, size, useClick, useFloatingRaw, useInteractions, useListNavigation, useRole, useTypeahead } from "@tamagui/floating";
2
2
  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";
@@ -13,8 +12,7 @@ const SelectInlineImpl = (props) => {
13
12
  const selectContext = useSelectContext(scope);
14
13
  const selectItemParentContext = useSelectItemParentContext(scope);
15
14
  const { setActiveIndex, selectedIndex, activeIndexRef } = selectContext;
16
- const { requestOpenChange, registry } = selectItemParentContext;
17
- const [scrollTop, setScrollTop] = React.useState(0);
15
+ const { requestOpenChange, registry, lastPointerRef } = selectItemParentContext;
18
16
  const touch = useIsTouchDevice();
19
17
  const listItemsRef = selectItemParentContext.listRef;
20
18
  const overflowRef = React.useRef(null);
@@ -30,12 +28,11 @@ const SelectInlineImpl = (props) => {
30
28
  });
31
29
  const [controlledScrolling, setControlledScrolling] = React.useState(false);
32
30
  const [fallback, setFallback] = React.useState(false);
33
- const [innerOffset, setInnerOffset] = React.useState(0);
34
31
  const [blockSelection, setBlockSelection] = React.useState(false);
35
- const floatingStyle = React.useRef({});
36
32
  React.useEffect(() => {
37
33
  if (!open) {
38
- setScrollTop(0);
34
+ setCanScrollUp(false);
35
+ setCanScrollDown(false);
39
36
  setFallback(false);
40
37
  setControlledScrolling(false);
41
38
  }
@@ -53,33 +50,38 @@ const SelectInlineImpl = (props) => {
53
50
  const { x, y, strategy, refs, update, placement: computedPlacement } = useFloatingRaw({
54
51
  open,
55
52
  placement: "bottom-start",
56
- whileElementsMounted: autoUpdate,
57
53
  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);
54
+ size({ apply({ rects, elements }) {
55
+ elements.floating.style.minWidth = `${rects.reference.width + 8}px`;
61
56
  } }),
62
57
  inner({
63
58
  listRef: listItemsRef,
64
59
  overflowRef,
65
60
  index: selectedIndex,
66
- offset: innerOffset,
67
61
  onFallbackChange: setFallback,
68
- padding: 10,
62
+ get padding() {
63
+ return 10 + Math.max(upArrowRef.current?.offsetHeight ?? 0, downArrowRef.current?.offsetHeight ?? 0);
64
+ },
69
65
  minItemsVisible: touch ? 10 : 4,
70
66
  referenceOverflowThreshold: 20
71
67
  }),
72
- offset({ crossAxis: -5 })
68
+ offset({ crossAxis: -4 })
73
69
  ]
74
70
  });
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;
78
- const isScrollable = showDownArrow || showUpArrow;
71
+ const [canScrollUp, setCanScrollUp] = React.useState(false);
72
+ const [canScrollDown, setCanScrollDown] = React.useState(false);
73
+ const updateScrollArrows = React.useCallback(() => {
74
+ const el = refs.floating.current;
75
+ if (!el) return;
76
+ setCanScrollUp(el.scrollTop > SCROLL_ARROW_THRESHOLD);
77
+ setCanScrollDown(el.scrollTop < el.scrollHeight - el.clientHeight - SCROLL_ARROW_THRESHOLD);
78
+ }, [refs]);
79
+ const showUpArrow = open && canScrollUp;
80
+ const showDownArrow = open && canScrollDown;
79
81
  useIsomorphicLayoutEffect(() => {
80
- if (typeof window === "undefined") return;
82
+ if (!open) return;
83
+ update();
81
84
  window.addEventListener("resize", update);
82
- if (open) update();
83
85
  return () => window.removeEventListener("resize", update);
84
86
  }, [update, open]);
85
87
  const onMatch = useEvent((index) => {
@@ -93,38 +95,41 @@ const SelectInlineImpl = (props) => {
93
95
  });
94
96
  const dataRef = React.useRef({});
95
97
  dataRef.current.placement = computedPlacement;
96
- const interactionContext = {
98
+ const onOpenChange = useEvent((nextOpen, event, reason) => {
99
+ requestOpenChange(nextOpen, createChangeEventDetails(reason === "list-navigation" ? "keyboard" : "trigger-press", event, refs.reference.current));
100
+ });
101
+ const referenceElement = refs.reference.current || null;
102
+ const floatingElement = refs.floating.current || null;
103
+ const interactionContext = React.useMemo(() => ({
97
104
  open,
98
- onOpenChange: (nextOpen, event, reason) => {
99
- requestOpenChange(nextOpen, createChangeEventDetails(reason === "list-navigation" ? "keyboard" : "trigger-press", event, refs.reference.current));
100
- },
105
+ onOpenChange,
101
106
  refs: {
102
107
  reference: refs.reference,
103
108
  floating: refs.floating,
104
109
  domReference: refs.reference
105
110
  },
106
111
  elements: {
107
- reference: refs.reference?.current || null,
108
- floating: refs.floating?.current || null,
109
- domReference: refs.reference?.current || null
112
+ reference: referenceElement,
113
+ floating: floatingElement,
114
+ domReference: referenceElement
110
115
  },
111
116
  dataRef
112
- };
117
+ }), [
118
+ open,
119
+ onOpenChange,
120
+ refs,
121
+ referenceElement,
122
+ floatingElement
123
+ ]);
113
124
  const interactionsProps = [
114
125
  useClick(interactionContext, {
115
126
  event: "mousedown",
116
127
  keyboardHandlers: false
117
128
  }),
118
129
  useRole(interactionContext, { role: "listbox" }),
119
- useInnerOffset(interactionContext, {
120
- enabled: !fallback && isScrollable,
121
- onChange: setInnerOffset,
122
- overflowRef,
123
- scrollRef: refs.floating
124
- }),
125
130
  useListNavigation(interactionContext, {
126
131
  listRef: listItemsRef,
127
- activeIndex: selectContext.activeIndex ?? 0,
132
+ activeIndex: null,
128
133
  selectedIndex,
129
134
  onNavigate: (index) => {
130
135
  if (index !== null) setActiveIndex(index, {
@@ -135,13 +140,14 @@ const SelectInlineImpl = (props) => {
135
140
  });
136
141
  },
137
142
  disabledIndices: registry.getDisabledIndices(),
138
- scrollItemIntoView: false
143
+ scrollItemIntoView: false,
144
+ focusItemOnHover: false
139
145
  }),
140
146
  useTypeahead(interactionContext, {
141
147
  listRef: listContentRef,
142
148
  onMatch,
143
149
  selectedIndex,
144
- activeIndex: selectContext.activeIndex,
150
+ activeIndex: null,
145
151
  onTypingChange: (e) => {
146
152
  state.current.isTyping = e;
147
153
  }
@@ -152,10 +158,14 @@ const SelectInlineImpl = (props) => {
152
158
  }, interactionsProps));
153
159
  const interactionsContext = React.useMemo(() => {
154
160
  return {
155
- ...interactions,
156
161
  getReferenceProps(props2 = {}) {
157
162
  return interactions.getReferenceProps({
158
163
  ...props2,
164
+ onMouseDown: composeEventHandlers(props2.onMouseDown, (event) => {
165
+ const last = lastPointerRef.current;
166
+ last.x = event.clientX;
167
+ last.y = event.clientY;
168
+ }),
159
169
  onKeyDown: composeEventHandlers(props2.onKeyDown, (event) => {
160
170
  latestKeyboardEventRef.current = event.nativeEvent || event;
161
171
  if (event.key === "Enter" || event.code === "Space" || event.key === " " && !state.current.isTyping) {
@@ -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) {
@@ -225,7 +229,6 @@ const SelectInlineImpl = (props) => {
225
229
  }
226
230
  allowSelectRef.current = false;
227
231
  allowMouseUpRef.current = true;
228
- setInnerOffset(0);
229
232
  setFallback(false);
230
233
  setBlockSelection(false);
231
234
  }, [open]);
@@ -236,15 +239,15 @@ const SelectInlineImpl = (props) => {
236
239
  if (!open) return;
237
240
  const scrollActiveIntoView = (index) => {
238
241
  if (controlledScrolling && index != null) listItemsRef.current[index]?.scrollIntoView({ block: "nearest" });
239
- setScrollTop(refs.floating.current?.scrollTop ?? 0);
242
+ updateScrollArrows();
240
243
  };
241
244
  scrollActiveIntoView(activeIndexRef.current);
242
245
  return selectItemParentContext.activeIndexSubscribe(scrollActiveIntoView);
243
246
  }, [
244
247
  open,
245
- refs,
246
248
  controlledScrolling,
247
- selectItemParentContext.activeIndexSubscribe
249
+ selectItemParentContext.activeIndexSubscribe,
250
+ updateScrollArrows
248
251
  ]);
249
252
  React.useEffect(() => {
250
253
  if (open && fallback) {
@@ -265,10 +268,11 @@ const SelectInlineImpl = (props) => {
265
268
  return /* @__PURE__ */ jsx(SelectProvider, {
266
269
  scope,
267
270
  ...selectContext,
268
- setScrollTop,
269
- setInnerOffset,
271
+ updateScrollArrows,
270
272
  fallback,
271
273
  floatingContext,
274
+ interactions: interactionsContext,
275
+ floatingPosition,
272
276
  canScrollDown: !!showDownArrow,
273
277
  canScrollUp: !!showUpArrow,
274
278
  controlledScrolling,
@@ -282,7 +286,7 @@ const SelectInlineImpl = (props) => {
282
286
  allowMouseUpRef,
283
287
  allowSelectRef,
284
288
  dataRef,
285
- interactions: interactionsContext,
289
+ getItemProps: interactions.getItemProps,
286
290
  listRef: listItemsRef,
287
291
  selectTimeoutRef,
288
292
  children