@tamagui/select 2.7.6 → 3.0.0-beta.637.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 (248) hide show
  1. package/dist/cjs/Select.cjs +409 -467
  2. package/dist/cjs/Select.native.cjs +495 -0
  3. package/dist/cjs/Select.native.js +445 -492
  4. package/dist/cjs/Select.native.js.map +1 -1
  5. package/dist/cjs/SelectContent.cjs +80 -79
  6. package/dist/cjs/SelectContent.native.cjs +30 -0
  7. package/dist/cjs/SelectContent.native.js +18 -22
  8. package/dist/cjs/SelectContent.native.js.map +1 -1
  9. package/dist/cjs/SelectImpl.cjs +299 -319
  10. package/dist/cjs/SelectImpl.native.cjs +30 -0
  11. package/dist/cjs/SelectImpl.native.js +17 -24
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +268 -205
  14. package/dist/cjs/SelectItem.native.cjs +317 -0
  15. package/dist/cjs/SelectItem.native.js +291 -211
  16. package/dist/cjs/SelectItem.native.js.map +1 -1
  17. package/dist/cjs/SelectItemText.cjs +49 -79
  18. package/dist/cjs/SelectItemText.native.cjs +74 -0
  19. package/dist/cjs/SelectItemText.native.js +50 -79
  20. package/dist/cjs/SelectItemText.native.js.map +1 -1
  21. package/dist/cjs/SelectScrollButton.cjs +111 -130
  22. package/dist/cjs/SelectScrollButton.native.cjs +38 -0
  23. package/dist/cjs/SelectScrollButton.native.js +25 -22
  24. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  25. package/dist/cjs/SelectTrigger.cjs +69 -84
  26. package/dist/cjs/SelectTrigger.native.cjs +91 -0
  27. package/dist/cjs/SelectTrigger.native.js +71 -66
  28. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  29. package/dist/cjs/SelectViewport.cjs +119 -142
  30. package/dist/cjs/SelectViewport.native.cjs +73 -0
  31. package/dist/cjs/SelectViewport.native.js +54 -50
  32. package/dist/cjs/SelectViewport.native.js.map +1 -1
  33. package/dist/cjs/constants.cjs +21 -22
  34. package/dist/cjs/constants.native.cjs +41 -0
  35. package/dist/cjs/constants.native.js +21 -21
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/context.cjs +38 -48
  38. package/dist/cjs/context.native.cjs +58 -0
  39. package/dist/cjs/context.native.js +40 -49
  40. package/dist/cjs/context.native.js.map +1 -1
  41. package/dist/cjs/index.cjs +15 -11
  42. package/dist/cjs/index.native.cjs +27 -0
  43. package/dist/cjs/index.native.js +15 -10
  44. package/dist/cjs/index.native.js.map +1 -1
  45. package/dist/cjs/selectionController.cjs +334 -0
  46. package/dist/cjs/selectionController.native.cjs +403 -0
  47. package/dist/cjs/selectionController.native.js +405 -0
  48. package/dist/cjs/selectionController.native.js.map +1 -0
  49. package/dist/cjs/types.cjs +10 -11
  50. package/dist/cjs/types.native.cjs +19 -0
  51. package/dist/cjs/types.native.js +10 -10
  52. package/dist/cjs/types.native.js.map +1 -1
  53. package/dist/esm/Select.mjs +382 -443
  54. package/dist/esm/Select.mjs.map +1 -1
  55. package/dist/esm/Select.native.js +418 -469
  56. package/dist/esm/Select.native.js.map +1 -1
  57. package/dist/esm/SelectContent.mjs +67 -61
  58. package/dist/esm/SelectContent.mjs.map +1 -1
  59. package/dist/esm/SelectContent.native.js +4 -5
  60. package/dist/esm/SelectContent.native.js.map +1 -1
  61. package/dist/esm/SelectImpl.mjs +284 -294
  62. package/dist/esm/SelectImpl.mjs.map +1 -1
  63. package/dist/esm/SelectImpl.native.js +5 -8
  64. package/dist/esm/SelectImpl.native.js.map +1 -1
  65. package/dist/esm/SelectItem.mjs +252 -182
  66. package/dist/esm/SelectItem.mjs.map +1 -1
  67. package/dist/esm/SelectItem.native.js +276 -190
  68. package/dist/esm/SelectItem.native.js.map +1 -1
  69. package/dist/esm/SelectItemText.mjs +33 -55
  70. package/dist/esm/SelectItemText.mjs.map +1 -1
  71. package/dist/esm/SelectItemText.native.js +34 -56
  72. package/dist/esm/SelectItemText.native.js.map +1 -1
  73. package/dist/esm/SelectScrollButton.mjs +95 -107
  74. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  75. package/dist/esm/SelectScrollButton.native.js +11 -7
  76. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  77. package/dist/esm/SelectTrigger.mjs +56 -58
  78. package/dist/esm/SelectTrigger.mjs.map +1 -1
  79. package/dist/esm/SelectTrigger.native.js +54 -44
  80. package/dist/esm/SelectTrigger.native.js.map +1 -1
  81. package/dist/esm/SelectViewport.mjs +104 -119
  82. package/dist/esm/SelectViewport.mjs.map +1 -1
  83. package/dist/esm/SelectViewport.native.js +44 -39
  84. package/dist/esm/SelectViewport.native.js.map +1 -1
  85. package/dist/esm/constants.mjs +1 -0
  86. package/dist/esm/constants.mjs.map +1 -1
  87. package/dist/esm/constants.native.js +1 -0
  88. package/dist/esm/constants.native.js.map +1 -1
  89. package/dist/esm/context.mjs +20 -28
  90. package/dist/esm/context.mjs.map +1 -1
  91. package/dist/esm/context.native.js +23 -31
  92. package/dist/esm/context.native.js.map +1 -1
  93. package/dist/esm/index.js +13 -3
  94. package/dist/esm/index.mjs +13 -3
  95. package/dist/esm/index.native.js +13 -3
  96. package/dist/esm/selectionController.mjs +305 -0
  97. package/dist/esm/selectionController.mjs.map +1 -0
  98. package/dist/esm/selectionController.native.js +372 -0
  99. package/dist/esm/selectionController.native.js.map +1 -0
  100. package/dist/esm/types.mjs +0 -2
  101. package/dist/esm/types.native.js +0 -2
  102. package/dist/jsx/Select.mjs +382 -443
  103. package/dist/jsx/Select.mjs.map +1 -1
  104. package/dist/jsx/Select.native.cjs +495 -0
  105. package/dist/jsx/Select.native.js +445 -492
  106. package/dist/jsx/Select.native.js.map +1 -1
  107. package/dist/jsx/SelectContent.mjs +67 -61
  108. package/dist/jsx/SelectContent.mjs.map +1 -1
  109. package/dist/jsx/SelectContent.native.cjs +30 -0
  110. package/dist/jsx/SelectContent.native.js +18 -22
  111. package/dist/jsx/SelectContent.native.js.map +1 -1
  112. package/dist/jsx/SelectImpl.mjs +284 -294
  113. package/dist/jsx/SelectImpl.mjs.map +1 -1
  114. package/dist/jsx/SelectImpl.native.cjs +30 -0
  115. package/dist/jsx/SelectImpl.native.js +17 -24
  116. package/dist/jsx/SelectImpl.native.js.map +1 -1
  117. package/dist/jsx/SelectItem.mjs +252 -182
  118. package/dist/jsx/SelectItem.mjs.map +1 -1
  119. package/dist/jsx/SelectItem.native.cjs +317 -0
  120. package/dist/jsx/SelectItem.native.js +291 -211
  121. package/dist/jsx/SelectItem.native.js.map +1 -1
  122. package/dist/jsx/SelectItemText.mjs +33 -55
  123. package/dist/jsx/SelectItemText.mjs.map +1 -1
  124. package/dist/jsx/SelectItemText.native.cjs +74 -0
  125. package/dist/jsx/SelectItemText.native.js +50 -79
  126. package/dist/jsx/SelectItemText.native.js.map +1 -1
  127. package/dist/jsx/SelectScrollButton.mjs +95 -107
  128. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  129. package/dist/jsx/SelectScrollButton.native.cjs +38 -0
  130. package/dist/jsx/SelectScrollButton.native.js +25 -22
  131. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  132. package/dist/jsx/SelectTrigger.mjs +56 -58
  133. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  134. package/dist/jsx/SelectTrigger.native.cjs +91 -0
  135. package/dist/jsx/SelectTrigger.native.js +71 -66
  136. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  137. package/dist/jsx/SelectViewport.mjs +104 -119
  138. package/dist/jsx/SelectViewport.mjs.map +1 -1
  139. package/dist/jsx/SelectViewport.native.cjs +73 -0
  140. package/dist/jsx/SelectViewport.native.js +54 -50
  141. package/dist/jsx/SelectViewport.native.js.map +1 -1
  142. package/dist/jsx/constants.mjs +1 -0
  143. package/dist/jsx/constants.mjs.map +1 -1
  144. package/dist/jsx/constants.native.cjs +41 -0
  145. package/dist/jsx/constants.native.js +21 -21
  146. package/dist/jsx/constants.native.js.map +1 -1
  147. package/dist/jsx/context.mjs +20 -28
  148. package/dist/jsx/context.mjs.map +1 -1
  149. package/dist/jsx/context.native.cjs +58 -0
  150. package/dist/jsx/context.native.js +40 -49
  151. package/dist/jsx/context.native.js.map +1 -1
  152. package/dist/jsx/index.js +13 -3
  153. package/dist/jsx/index.mjs +13 -3
  154. package/dist/jsx/index.native.cjs +27 -0
  155. package/dist/jsx/index.native.js +15 -10
  156. package/dist/jsx/index.native.js.map +1 -1
  157. package/dist/jsx/selectionController.mjs +305 -0
  158. package/dist/jsx/selectionController.mjs.map +1 -0
  159. package/dist/jsx/selectionController.native.cjs +403 -0
  160. package/dist/jsx/selectionController.native.js +405 -0
  161. package/dist/jsx/selectionController.native.js.map +1 -0
  162. package/dist/jsx/types.mjs +0 -2
  163. package/dist/jsx/types.native.cjs +19 -0
  164. package/dist/jsx/types.native.js +10 -10
  165. package/dist/jsx/types.native.js.map +1 -1
  166. package/package.json +28 -28
  167. package/src/Select.tsx +457 -357
  168. package/src/SelectContent.tsx +46 -16
  169. package/src/SelectImpl.native.tsx +0 -8
  170. package/src/SelectImpl.tsx +87 -100
  171. package/src/SelectItem.tsx +282 -136
  172. package/src/SelectItemText.tsx +16 -33
  173. package/src/SelectScrollButton.native.tsx +13 -4
  174. package/src/SelectScrollButton.tsx +56 -41
  175. package/src/SelectTrigger.tsx +77 -53
  176. package/src/SelectViewport.native.tsx +42 -25
  177. package/src/SelectViewport.tsx +52 -51
  178. package/src/context.tsx +6 -2
  179. package/src/index.tsx +5 -2
  180. package/src/selectionController.ts +389 -0
  181. package/src/types.tsx +88 -45
  182. package/types/Select.d.ts +139 -201
  183. package/types/Select.d.ts.map +1 -1
  184. package/types/SelectContent.d.ts +1 -1
  185. package/types/SelectContent.d.ts.map +1 -1
  186. package/types/SelectContent.native.d.ts.map +1 -1
  187. package/types/SelectImpl.d.ts +2 -1
  188. package/types/SelectImpl.d.ts.map +1 -1
  189. package/types/SelectImpl.native.d.ts +1 -5
  190. package/types/SelectImpl.native.d.ts.map +1 -1
  191. package/types/SelectItem.d.ts +13 -16
  192. package/types/SelectItem.d.ts.map +1 -1
  193. package/types/SelectItemText.d.ts +9 -13
  194. package/types/SelectItemText.d.ts.map +1 -1
  195. package/types/SelectScrollButton.d.ts +15 -2
  196. package/types/SelectScrollButton.d.ts.map +1 -1
  197. package/types/SelectScrollButton.native.d.ts +16 -3
  198. package/types/SelectScrollButton.native.d.ts.map +1 -1
  199. package/types/SelectTrigger.d.ts +11 -23
  200. package/types/SelectTrigger.d.ts.map +1 -1
  201. package/types/SelectViewport.d.ts +11 -38
  202. package/types/SelectViewport.d.ts.map +1 -1
  203. package/types/SelectViewport.native.d.ts +15 -4
  204. package/types/SelectViewport.native.d.ts.map +1 -1
  205. package/types/context.d.ts +2 -0
  206. package/types/context.d.ts.map +1 -1
  207. package/types/index.d.ts +5 -2
  208. package/types/index.d.ts.map +1 -1
  209. package/types/selectionController.d.ts +88 -0
  210. package/types/selectionController.d.ts.map +1 -0
  211. package/types/types.d.ts +47 -37
  212. package/types/types.d.ts.map +1 -1
  213. package/dist/cjs/BubbleSelect.cjs +0 -50
  214. package/dist/cjs/BubbleSelect.native.js +0 -30
  215. package/dist/cjs/BubbleSelect.native.js.map +0 -1
  216. package/dist/cjs/useSelectBreakpointActive.cjs +0 -32
  217. package/dist/cjs/useSelectBreakpointActive.native.js +0 -35
  218. package/dist/cjs/useSelectBreakpointActive.native.js.map +0 -1
  219. package/dist/esm/BubbleSelect.mjs +0 -27
  220. package/dist/esm/BubbleSelect.mjs.map +0 -1
  221. package/dist/esm/BubbleSelect.native.js +0 -4
  222. package/dist/esm/BubbleSelect.native.js.map +0 -1
  223. package/dist/esm/index.js.map +0 -1
  224. package/dist/esm/index.mjs.map +0 -1
  225. package/dist/esm/index.native.js.map +0 -1
  226. package/dist/esm/types.mjs.map +0 -1
  227. package/dist/esm/types.native.js.map +0 -1
  228. package/dist/esm/useSelectBreakpointActive.mjs +0 -7
  229. package/dist/esm/useSelectBreakpointActive.mjs.map +0 -1
  230. package/dist/esm/useSelectBreakpointActive.native.js +0 -7
  231. package/dist/esm/useSelectBreakpointActive.native.js.map +0 -1
  232. package/dist/jsx/BubbleSelect.mjs +0 -27
  233. package/dist/jsx/BubbleSelect.mjs.map +0 -1
  234. package/dist/jsx/BubbleSelect.native.js +0 -30
  235. package/dist/jsx/BubbleSelect.native.js.map +0 -1
  236. package/dist/jsx/index.js.map +0 -1
  237. package/dist/jsx/index.mjs.map +0 -1
  238. package/dist/jsx/types.mjs.map +0 -1
  239. package/dist/jsx/useSelectBreakpointActive.mjs +0 -7
  240. package/dist/jsx/useSelectBreakpointActive.mjs.map +0 -1
  241. package/dist/jsx/useSelectBreakpointActive.native.js +0 -35
  242. package/dist/jsx/useSelectBreakpointActive.native.js.map +0 -1
  243. package/src/BubbleSelect.tsx +0 -50
  244. package/src/useSelectBreakpointActive.tsx +0 -7
  245. package/types/BubbleSelect.d.ts +0 -2
  246. package/types/BubbleSelect.d.ts.map +0 -1
  247. package/types/useSelectBreakpointActive.d.ts +0 -3
  248. package/types/useSelectBreakpointActive.d.ts.map +0 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __create = Object.create;
4
5
  var __defProp = Object.defineProperty;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -7,82 +8,86 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
8
  var __getProtoOf = Object.getPrototypeOf;
8
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
10
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
14
15
  };
15
16
  var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
- get: () => from[key],
19
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
- });
21
- }
22
- return to;
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
23
24
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
- // If the importer is in node compatibility mode or this is not an ESM
26
- // file that has been converted to a CommonJS file using a Babel-
27
- // compatible transform (i.e. "__esModule" has not been set), then set
28
- // "default" to the CommonJS "module.exports" for node compatibility.
29
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
- value: mod,
31
- enumerable: true
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
32
28
  }) : target, mod));
33
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
- value: true
35
- }), mod);
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
30
  var SelectTrigger_exports = {};
37
31
  __export(SelectTrigger_exports, {
38
- SelectTrigger: () => SelectTrigger
32
+ SelectTrigger: () => SelectTrigger,
33
+ SelectTriggerFrame: () => SelectTriggerFrame
39
34
  });
40
35
  module.exports = __toCommonJS(SelectTrigger_exports);
41
36
  var import_jsx_runtime = require("react/jsx-runtime");
42
37
  var import_compose_refs = require("@tamagui/compose-refs");
43
- var import_list_item = require("@tamagui/list-item");
44
- var React = __toESM(require("react"), 1);
38
+ var import_constants = require("@tamagui/constants");
39
+ var import_core = require("@tamagui/core");
40
+ var import_helpers = require("@tamagui/helpers");
41
+ __toESM(require("react"), 1);
45
42
  var import_context = require("./context.native.js");
46
- var TRIGGER_NAME = "SelectTrigger";
47
- var SelectTrigger = /* @__PURE__ */React.forwardRef(function SelectTrigger2(props, forwardedRef) {
48
- var _context_floatingContext;
49
- var {
50
- scope,
51
- disabled = false,
52
- unstyled = false,
53
- ...triggerProps
54
- } = props;
55
- var context = (0, import_context.useSelectContext)(scope);
56
- var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
57
- var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
58
- if (itemParentContext.shouldRenderWebNative) return null;
59
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_list_item.ListItem, {
60
- componentName: TRIGGER_NAME,
61
- unstyled,
62
- render: "button",
63
- type: "button",
64
- id: itemParentContext.id,
65
- ...(!unstyled && {
66
- focusVisibleStyle: {
67
- outlineStyle: "solid",
68
- outlineWidth: 2,
69
- outlineColor: "$outlineColor"
70
- },
71
- borderWidth: 1,
72
- size: itemParentContext.size
73
- }),
74
- role: "combobox",
75
- "aria-haspopup": "listbox",
76
- "aria-expanded": context.open,
77
- "aria-autocomplete": "none",
78
- dir: context.dir,
79
- disabled,
80
- "data-disabled": disabled ? "" : void 0,
81
- ...triggerProps,
82
- ref: composedRefs,
83
- onPress() {
84
- itemParentContext.setOpen(!context.open);
85
- }
86
- });
43
+ var SelectTriggerFrame = (0, import_core.styled)(import_core.View, {
44
+ displayName: "SelectTrigger",
45
+ alignItems: "center",
46
+ flexDirection: "row",
47
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button" })
48
+ });
49
+ var SelectTrigger = (0, import_core.createStyledHOC)(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {
50
+ var _context_floatingContext;
51
+ var { scope, disabled = false, ...triggerProps } = props;
52
+ var context = (0, import_context.useSelectContext)(scope);
53
+ var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
54
+ var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
55
+ if (itemParentContext.shouldRenderWebNative) return null;
56
+ var toggleOpen = function(event) {
57
+ var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "trigger-press";
58
+ if (!disabled) itemParentContext.requestOpenChange(!context.open, (0, import_core.createChangeEventDetails)(reason, (event === null || event === void 0 ? void 0 : event.nativeEvent) || event, event === null || event === void 0 ? void 0 : event.currentTarget));
59
+ };
60
+ var interactionProps = {
61
+ ...triggerProps,
62
+ ...import_constants.isWeb ? { onMouseDown: (0, import_helpers.composeEventHandlers)(triggerProps.onMouseDown, function(event) {
63
+ event.preventDefault();
64
+ toggleOpen(event);
65
+ }) } : { onPress: (0, import_helpers.composeEventHandlers)(triggerProps.onPress, toggleOpen) },
66
+ onKeyDown: (0, import_helpers.composeEventHandlers)(triggerProps.onKeyDown, function(event) {
67
+ if (event.key === "Enter" || event.key === " ") {
68
+ event.preventDefault();
69
+ toggleOpen(event, "keyboard");
70
+ }
71
+ })
72
+ };
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectTriggerFrame, {
74
+ type: "button",
75
+ id: itemParentContext.id,
76
+ role: "combobox",
77
+ "aria-haspopup": "listbox",
78
+ "aria-expanded": context.open,
79
+ "aria-autocomplete": "none",
80
+ accessibilityRole: import_constants.isWeb ? void 0 : "button",
81
+ accessibilityState: import_constants.isWeb ? void 0 : {
82
+ expanded: context.open,
83
+ disabled
84
+ },
85
+ dir: context.dir,
86
+ disabled,
87
+ "data-disabled": disabled ? "" : void 0,
88
+ ...interactionProps,
89
+ ref: composedRefs
90
+ });
87
91
  });
92
+
88
93
  //# sourceMappingURL=SelectTrigger.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isNodeMode","mod","__esModule","__defProp","target","value","enumerable","__toCommonJS","__copyProps","SelectTrigger_exports","__export","SelectTrigger","module","exports","import_jsx_runtime","require","import_compose_refs","import_list_item","React","__toESM","import_context","TRIGGER_NAME","forwardRef","SelectTrigger2","props","forwardedRef","_context_floatingContext","scope","disabled","unstyled","triggerProps","context","useSelectContext","itemParentContext","useSelectItemParentContext","composedRefs","useComposedRefs","floatingContext","refs","setReference","shouldRenderWebNative","jsx","ListItem","componentName","render","type","id","focusVisibleStyle","outlineStyle","outlineWidth","outlineColor","borderWidth","size","role","open","dir","ref","onPress","setOpen"],"sources":["../../src/SelectTrigger.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAA,UAAA,KAAAC,GAAA,KAAAA,GAAA,CAAAC,UAAA,GAAAC,SAAA,CAAAC,MAAA;EAAAC,KAAA,EAAAJ,GAAA;EAAAK,UAAA;AAAA,KAAAF,MAAA,EAAAH,GAAA;AAGA,IAAAM,YAAA,GAAAN,GAAyB,IAAAO,WAAA,CAAAL,SAAA;EAAAE,KAAA;AAAA,IAAAJ,GAAA;AACzB,IAAAQ,qBAAuB;AAEvBC,QAAA,CAAAD,qBAA6D;EAAAE,aAAA,EAAAA,CAAA,KAAAA;AAAA;AAiCvDC,MAAA,CAAAC,OAAA,GAAAN,YAAA,CAAAE,qBAAA;AA3BN,IAAAK,kBAAqB,GAAAC,OAAA;AAIrB,IAAAC,mBAAM,GACJD,OAAO,wBAA0B;AAI5B,IAAAE,gBAAM,GAAgBF,OAAM;AAAA,IACjCG,KAAA,GAASC,OAAA,CAAAJ,OAAc,QAA2B;AAChD,IAAAK,cAAQ,GAAOL,OAAA,sBAAkB;AAEjC,IAAAM,YAAM,kBAAU;AAChB,IAAAV,aAAM,kBAAoBO,KAAA,CAAAI,UAAA,UAAAC,eAA2BC,KAAK,EAAAC,YAAA;EAC1D,IAAAC,wBAAqB;EAAA;IACnBC,KAAA;IAAAC,QAAA;IAAAC,QAAA;IAAA,GAAAC;EAAA,IAAAN,KAAA;EAAA,IAAAO,OACA,GAAQ,IAAAX,cAAiB,CAAAY,gBAAK,EAAAL,KAAA;EAAA,IAChCM,iBAAA,OAAAb,cAAA,CAAAc,0BAAA,EAAAP,KAAA;EAIA,IAAAQ,YAAI,OAAAnB,mBAAkB,CAAAoB,eAAuB,EAAAX,YAAA,GAAAC,wBAAA,GAAAK,OAAA,CAAAM,eAAA,cAAAX,wBAAA,uBAAAA,wBAAA,CAAAY,IAAA,CAAAC,YAAA;EAC3C,IAAAN,iBAAO,CAAAO,qBAAA;EAAA,OACT,mBAAA1B,kBAAA,CAAA2B,GAAA,EAAAxB,gBAAA,CAAAyB,QAAA;IAEAC,aACE,EAAAtB,YAAA;IAAAQ,QAAC;IAAAe,MAAA;IAAAC,IAAA,EACC;IAAeC,EAAA,EAAAb,iBACf,CAAAa,EAAA;IAAA,KAAAjB,QACA,IAAO;MAAAkB,iBACF;QAAAC,YACD;QAAkBC,YAChB;QAAYC,YAChB;MAAmB;MACHC,WACd;MAAcC,IAAA,EAAAnB,iBACA,CAAAmB;IAAA;IAChBC,IAAA,YACA;IAAa,eACP;IAAkB,eAC1B,EAAAtB,OAAA,CAAAuB,IAAA;IAAA,mBACK;IAAAC,GAAA,EAAAxB,OACL,CAAAwB,GAAA;IAAc3B,QACd;IAAuB,eACvB,EAAAA,QAAA,GAAkB;IAAA,GAAAE,YACb;IAAQ0B,GAAA,EAAArB,YACb;IAAAsB,OACAA,CAAA;MAA+BxB,iBAC3B,CAAAyB,OAAA,EAAA3B,OAAA,CAAAuB,IAAA;IAAA;EACC;AAED","ignoreList":[]}
1
+ {"version":3,"file":"SelectTrigger.native.js","names":[],"sources":["cjs/SelectTrigger.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 SelectTrigger_exports = {};\n__export(SelectTrigger_exports, {\n\tSelectTrigger: () => SelectTrigger,\n\tSelectTriggerFrame: () => SelectTriggerFrame\n});\nmodule.exports = __toCommonJS(SelectTrigger_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_core = require(\"@tamagui/core\");\nvar import_helpers = require(\"@tamagui/helpers\");\n__toESM(require(\"react\"), 1);\nvar import_context = require(\"./context\");\nvar SelectTriggerFrame = (0, import_core.styled)(import_core.View, {\n\tdisplayName: \"SelectTrigger\",\n\talignItems: \"center\",\n\tflexDirection: \"row\",\n\trender: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"button\", { type: \"button\" })\n});\nvar SelectTrigger = (0, import_core.createStyledHOC)(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {\n\tvar _context_floatingContext;\n\tvar { scope, disabled = false, ...triggerProps } = props;\n\tvar context = (0, import_context.useSelectContext)(scope);\n\tvar itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n\tvar composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);\n\tif (itemParentContext.shouldRenderWebNative) return null;\n\tvar toggleOpen = function(event) {\n\t\tvar reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"trigger-press\";\n\t\tif (!disabled) itemParentContext.requestOpenChange(!context.open, (0, import_core.createChangeEventDetails)(reason, (event === null || event === void 0 ? void 0 : event.nativeEvent) || event, event === null || event === void 0 ? void 0 : event.currentTarget));\n\t};\n\tvar interactionProps = {\n\t\t...triggerProps,\n\t\t...import_constants.isWeb ? { onMouseDown: (0, import_helpers.composeEventHandlers)(triggerProps.onMouseDown, function(event) {\n\t\t\tevent.preventDefault();\n\t\t\ttoggleOpen(event);\n\t\t}) } : { onPress: (0, import_helpers.composeEventHandlers)(triggerProps.onPress, toggleOpen) },\n\t\tonKeyDown: (0, import_helpers.composeEventHandlers)(triggerProps.onKeyDown, function(event) {\n\t\t\tif (event.key === \"Enter\" || event.key === \" \") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleOpen(event, \"keyboard\");\n\t\t\t}\n\t\t})\n\t};\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectTriggerFrame, {\n\t\ttype: \"button\",\n\t\tid: itemParentContext.id,\n\t\trole: \"combobox\",\n\t\t\"aria-haspopup\": \"listbox\",\n\t\t\"aria-expanded\": context.open,\n\t\t\"aria-autocomplete\": \"none\",\n\t\taccessibilityRole: import_constants.isWeb ? void 0 : \"button\",\n\t\taccessibilityState: import_constants.isWeb ? void 0 : {\n\t\t\texpanded: context.open,\n\t\t\tdisabled\n\t\t},\n\t\tdir: context.dir,\n\t\tdisabled,\n\t\t\"data-disabled\": disabled ? \"\" : void 0,\n\t\t...interactionProps,\n\t\tref: composedRefs\n\t});\n});\n//# sourceMappingURL=SelectTrigger.js.map\n"],"mappings":";;;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC/B,KAAK,IAAI,QAAQ,KAAK,UAAU,QAAQ,MAAM;EAC7C,KAAK,IAAI;EACT,YAAY;CACb,CAAC;AACF;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC7C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EACnE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QAAQ,UAAU,IAAI,KAAK;GAC9G,WAAW,KAAK;GAChB,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAC3D,CAAC;CACF;CACA,OAAO;AACR;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKpG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CACpE,OAAO;CACP,YAAY;AACb,CAAC,IAAI,QACL,GACD;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,wBAAwB,CAAC;AAC7B,SAAS,uBAAuB;CAC/B,qBAAqB;CACrB,0BAA0B;AAC3B,CAAC;AACD,OAAO,UAAU,aAAa,qBAAqB;AACnD,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,sBAAsB,QAAQ,uBAAuB;AACzD,IAAI,mBAAmB,QAAQ,oBAAoB;AACnD,IAAI,cAAc,QAAQ,eAAe;AACzC,IAAI,iBAAiB,QAAQ,kBAAkB;AAC/C,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC3B,IAAI,iBAAiB,QAAQ,qBAAW;AACxC,IAAI,sBAAsB,GAAG,YAAY,QAAQ,YAAY,MAAM;CAClE,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAwB,iBAAC,GAAG,mBAAmB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjF,CAAC;AACD,IAAI,iBAAiB,GAAG,YAAY,iBAAiB,oBAAoB,SAAS,eAAe,OAAO,cAAc;CACrH,IAAI;CACJ,IAAI,EAAE,OAAO,WAAW,OAAO,GAAG,iBAAiB;CACnD,IAAI,WAAW,GAAG,eAAe,kBAAkB,KAAK;CACxD,IAAI,qBAAqB,GAAG,eAAe,4BAA4B,KAAK;CAC5E,IAAI,gBAAgB,GAAG,oBAAoB,iBAAiB,eAAe,2BAA2B,QAAQ,qBAAqB,QAAQ,6BAA6B,KAAK,IAAI,KAAK,IAAI,yBAAyB,KAAK,YAAY;CACpO,IAAI,kBAAkB,uBAAuB,OAAO;CACpD,IAAI,aAAa,SAAS,OAAO;EAChC,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;EAC9E,IAAI,CAAC,UAAU,kBAAkB,kBAAkB,CAAC,QAAQ,OAAO,GAAG,YAAY,0BAA0B,SAAS,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,gBAAgB,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,aAAa,CAAC;CACnQ;CACA,IAAI,mBAAmB;EACtB,GAAG;EACH,GAAG,iBAAiB,QAAQ,EAAE,cAAc,GAAG,eAAe,sBAAsB,aAAa,aAAa,SAAS,OAAO;GAC7H,MAAM,eAAe;GACrB,WAAW,KAAK;EACjB,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,sBAAsB,aAAa,SAAS,UAAU,EAAE;EAC7F,YAAY,GAAG,eAAe,sBAAsB,aAAa,WAAW,SAAS,OAAO;GAC3F,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;IAC/C,MAAM,eAAe;IACrB,WAAW,OAAO,UAAU;GAC7B;EACD,CAAC;CACF;CACA,OAAuB,iBAAC,GAAG,mBAAmB,KAAK,oBAAoB;EACtE,MAAM;EACN,IAAI,kBAAkB;EACtB,MAAM;EACN,iBAAiB;EACjB,iBAAiB,QAAQ;EACzB,qBAAqB;EACrB,mBAAmB,iBAAiB,QAAQ,KAAK,IAAI;EACrD,oBAAoB,iBAAiB,QAAQ,KAAK,IAAI;GACrD,UAAU,QAAQ;GAClB;EACD;EACA,KAAK,QAAQ;EACb;EACA,iBAAiB,WAAW,KAAK,KAAK;EACtC,GAAG;EACH,KAAK;CACN,CAAC;AACF,CAAC"}
@@ -1,3 +1,4 @@
1
+
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -5,36 +6,29 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
21
22
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
30
26
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
28
  var SelectViewport_exports = {};
35
29
  __export(SelectViewport_exports, {
36
- SelectViewport: () => SelectViewport,
37
- SelectViewportFrame: () => SelectViewportFrame
30
+ SelectViewport: () => SelectViewport,
31
+ SelectViewportFrame: () => SelectViewportFrame
38
32
  });
39
33
  module.exports = __toCommonJS(SelectViewport_exports);
40
34
  var import_adapt = require("@tamagui/adapt");
@@ -48,133 +42,116 @@ var import_start_transition = require("@tamagui/start-transition");
48
42
  var React = __toESM(require("react"), 1);
49
43
  var import_constants2 = require("./constants.cjs");
50
44
  var import_context = require("./context.cjs");
45
+ var import_selectionController = require("./selectionController.cjs");
51
46
  var import_jsx_runtime = require("react/jsx-runtime");
52
- const SelectViewportFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
53
- name: import_constants2.VIEWPORT_NAME,
54
- variants: {
55
- unstyled: {
56
- false: {
57
- size: "$2",
58
- backgroundColor: "$background",
59
- elevate: true,
60
- bordered: true,
61
- userSelect: "none",
62
- outlineWidth: 0
63
- }
64
- },
65
- size: {
66
- "...size": (val, {
67
- tokens
68
- }) => {
69
- return {
70
- borderRadius: tokens.radius[val] ?? val
71
- };
72
- }
73
- }
74
- },
75
- defaultVariants: {
76
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
77
- }
47
+ const SelectViewportFrame = (0, import_core.styled)(import_core.View, {
48
+ displayName: import_constants2.VIEWPORT_NAME,
49
+ position: "relative"
78
50
  });
79
51
  const needsRepropagation = (0, import_portal.needsPortalRepropagation)();
80
- const SelectViewport = SelectViewportFrame.styleable(function SelectViewport2(props, forwardedRef) {
81
- const {
82
- scope,
83
- children,
84
- disableScroll,
85
- ...viewportProps
86
- } = props;
87
- const context = (0, import_context.useSelectContext)(scope);
88
- const itemContext = (0, import_context.useSelectItemParentContext)(scope);
89
- const isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
90
- const [lazyMounted, setLazyMounted] = React.useState(context.lazyMount ? false : true);
91
- React.useEffect(() => {
92
- if (!context.lazyMount) return;
93
- if (!context.open) return;
94
- if (lazyMounted) return;
95
- (0, import_start_transition.startTransition)(() => {
96
- setLazyMounted(true);
97
- });
98
- }, [context.lazyMount, context.open, lazyMounted]);
99
- const composedRefs = (0, import_compose_refs.useComposedRefs)(
100
- // @ts-ignore TODO react 19 type needs fix
101
- forwardedRef, context.floatingContext?.refs.setFloating);
102
- (0, import_constants.useIsomorphicLayoutEffect)(() => {
103
- if (context.update) {
104
- context.update();
105
- }
106
- }, [isAdapted]);
107
- (0, import_constants.useIsomorphicLayoutEffect)(() => {
108
- if (context.lazyMount && lazyMounted && context.open && context.update) {
109
- context.update();
110
- }
111
- }, [lazyMounted]);
112
- if (itemContext.shouldRenderWebNative) {
113
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
114
- position: "relative",
115
- children
116
- });
117
- }
118
- if (isAdapted || !import_constants.isWeb) {
119
- let content = children;
120
- if (needsRepropagation) {
121
- content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {
122
- itemContext,
123
- context,
124
- children: content
125
- });
126
- }
127
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
128
- scope: context.adaptScope,
129
- children: content
130
- });
131
- }
132
- if (!itemContext.interactions) {
133
- if (process.env.NODE_ENV === "development") {
134
- console.warn(`No interactions provided to Select, potentially missing Adapt`);
135
- }
136
- return null;
137
- }
138
- const {
139
- style,
140
- // remove this, it was set to "Select" always
141
- className,
142
- ...floatingProps
143
- } = itemContext.interactions.getFloatingProps();
144
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
145
- children: [!disableScroll && !props.unstyled && /* @__PURE__ */(0, import_jsx_runtime.jsx)("style", {
146
- dangerouslySetInnerHTML: {
147
- __html: selectViewportCSS
148
- }
149
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, {
150
- children: context.open ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectViewportFrame, {
151
- size: itemContext.size,
152
- role: "presentation",
153
- ...viewportProps,
154
- ...style,
155
- ...floatingProps,
156
- ...(!props.unstyled && {
157
- overflowY: disableScroll ? void 0 : style.overflow ?? "auto"
158
- }),
159
- ref: composedRefs,
160
- children: lazyMounted ? children : null
161
- }, "select-viewport") : null
162
- }), !context.open && !(context.lazyMount && context.renderValue) && lazyMounted && /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
163
- style: {
164
- display: "none"
165
- },
166
- children
167
- })]
168
- });
52
+ const SelectViewport = (0, import_core.createStyledHOC)(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {
53
+ const { scope, children, disableScroll, ...viewportProps } = props;
54
+ const context = (0, import_context.useSelectContext)(scope);
55
+ const itemContext = (0, import_context.useSelectItemParentContext)(scope);
56
+ const isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
57
+ const viewportRef = React.useRef(null);
58
+ const registeredItemCount = itemContext.registry.getItems().length;
59
+ const [lazyMounted, setLazyMounted] = React.useState(context.lazyMount ? false : true);
60
+ React.useEffect(() => {
61
+ if (!context.lazyMount) return;
62
+ if (!context.open) return;
63
+ if (lazyMounted) return;
64
+ (0, import_start_transition.startTransition)(() => {
65
+ setLazyMounted(true);
66
+ });
67
+ }, [
68
+ context.lazyMount,
69
+ context.open,
70
+ lazyMounted
71
+ ]);
72
+ React.useEffect(() => {
73
+ if (!import_constants.isWeb || !isAdapted || !context.open) return;
74
+ const frame = requestAnimationFrame(() => {
75
+ const index = context.activeIndexRef.current ?? itemContext.registry.firstEnabledIndex();
76
+ const activeItem = viewportRef.current?.querySelector("[role=\"option\"][tabindex=\"0\"]") ?? (index >= 0 ? itemContext.listRef?.current[index] : null);
77
+ activeItem?.focus();
78
+ });
79
+ return () => cancelAnimationFrame(frame);
80
+ }, [
81
+ context.activeIndex,
82
+ context.open,
83
+ isAdapted,
84
+ registeredItemCount
85
+ ]);
86
+ const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, viewportRef, context.floatingContext?.refs.setFloating);
87
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
88
+ if (context.update) {
89
+ context.update();
90
+ }
91
+ }, [isAdapted]);
92
+ React.useEffect(() => {
93
+ if (context.lazyMount && lazyMounted && context.open && context.update) {
94
+ const frame = requestAnimationFrame(context.update);
95
+ return () => cancelAnimationFrame(frame);
96
+ }
97
+ }, [lazyMounted, registeredItemCount]);
98
+ if (itemContext.shouldRenderWebNative) {
99
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
100
+ position: "relative",
101
+ children
102
+ });
103
+ }
104
+ if (isAdapted || !import_constants.isWeb) {
105
+ let content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {
106
+ ...viewportProps,
107
+ ...import_constants.isWeb ? (0, import_selectionController.getSelectListboxProps)(itemContext.mode) : {},
108
+ "data-select-viewport": "",
109
+ ref: composedRefs,
110
+ children: lazyMounted ? children : null
111
+ });
112
+ if (needsRepropagation) {
113
+ content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {
114
+ itemContext,
115
+ context,
116
+ children: content
117
+ });
118
+ }
119
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
120
+ scope: context.adaptScope,
121
+ children: content
122
+ });
123
+ }
124
+ if (!itemContext.interactions) {
125
+ return null;
126
+ }
127
+ const { style, className, ...floatingProps } = itemContext.interactions.getFloatingProps();
128
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
129
+ !disableScroll && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", { dangerouslySetInnerHTML: { __html: selectViewportCSS } }),
130
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, { children: context.open ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {
131
+ "data-select-viewport": "",
132
+ ...import_constants.isWeb && { "data-state": context.open ? "open" : "closed" },
133
+ ...viewportProps,
134
+ ...style,
135
+ ...floatingProps,
136
+ ...(0, import_selectionController.getSelectListboxProps)(itemContext.mode),
137
+ overflowY: disableScroll ? void 0 : style.overflow ?? "auto",
138
+ ref: composedRefs,
139
+ children: lazyMounted ? children : null
140
+ }, "select-viewport") : null }),
141
+ !context.open && !(context.lazyMount && context.renderValue) && lazyMounted && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
142
+ style: { display: "none" },
143
+ children
144
+ })
145
+ ] });
169
146
  });
170
147
  const selectViewportCSS = `
171
- .is_SelectViewport {
148
+ [data-select-viewport] {
172
149
  scrollbar-width: none;
173
150
  -webkit-overflow-scrolling: touch;
174
151
  overscroll-behavior: contain;
175
152
  }
176
153
 
177
- .is_SelectViewport::-webkit-scrollbar{
154
+ [data-select-viewport]::-webkit-scrollbar{
178
155
  display:none
179
156
  }
180
- `;
157
+ `;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var SelectViewport_native_exports = {};
25
+ __export(SelectViewport_native_exports, {
26
+ SelectViewport: () => SelectViewport,
27
+ SelectViewportFrame: () => SelectViewportFrame
28
+ });
29
+ module.exports = __toCommonJS(SelectViewport_native_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_adapt = require("@tamagui/adapt");
32
+ var import_core = require("@tamagui/core");
33
+ var import_constants = require("./constants.native.js");
34
+ var import_context = require("./context.native.js");
35
+ var SelectViewportFrame = (0, import_core.styled)(import_core.View, {
36
+ displayName: import_constants.VIEWPORT_NAME,
37
+ position: "relative"
38
+ });
39
+ var SelectViewport = (0, import_core.createStyledHOC)(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {
40
+ var { scope, children, disableScroll: _disableScroll, ...viewportProps } = props;
41
+ var context = (0, import_context.useSelectContext)(scope);
42
+ var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
43
+ var themeName = (0, import_core.useThemeName)();
44
+ var adaptContext = (0, import_adapt.useAdaptContext)();
45
+ var isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
46
+ var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {
47
+ name: themeName,
48
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {
49
+ itemContext: itemParentContext,
50
+ context,
51
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptContext.Provider, {
52
+ ...adaptContext,
53
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {
54
+ ...viewportProps,
55
+ ref: forwardedRef,
56
+ children
57
+ })
58
+ })
59
+ })
60
+ });
61
+ if (!context.open) {
62
+ if (context.lazyMount && context.renderValue) return null;
63
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {
64
+ display: "none",
65
+ children: contents
66
+ });
67
+ }
68
+ return isAdapted ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
69
+ scope: context.adaptScope,
70
+ children: contents
71
+ }) : contents;
72
+ });
73
+ SelectViewport.displayName = import_constants.VIEWPORT_NAME;