@tamagui/select 2.7.7 → 3.0.0-beta.1093.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 +406 -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 +79 -79
  6. package/dist/cjs/SelectContent.native.cjs +29 -0
  7. package/dist/cjs/SelectContent.native.js +17 -22
  8. package/dist/cjs/SelectContent.native.js.map +1 -1
  9. package/dist/cjs/SelectImpl.cjs +305 -320
  10. package/dist/cjs/SelectImpl.native.cjs +29 -0
  11. package/dist/cjs/SelectImpl.native.js +16 -24
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +256 -205
  14. package/dist/cjs/SelectItem.native.cjs +288 -0
  15. package/dist/cjs/SelectItem.native.js +264 -213
  16. package/dist/cjs/SelectItem.native.js.map +1 -1
  17. package/dist/cjs/SelectItemText.cjs +48 -79
  18. package/dist/cjs/SelectItemText.native.cjs +73 -0
  19. package/dist/cjs/SelectItemText.native.js +49 -79
  20. package/dist/cjs/SelectItemText.native.js.map +1 -1
  21. package/dist/cjs/SelectScrollButton.cjs +110 -130
  22. package/dist/cjs/SelectScrollButton.native.cjs +37 -0
  23. package/dist/cjs/SelectScrollButton.native.js +24 -22
  24. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  25. package/dist/cjs/SelectTrigger.cjs +68 -84
  26. package/dist/cjs/SelectTrigger.native.cjs +90 -0
  27. package/dist/cjs/SelectTrigger.native.js +70 -66
  28. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  29. package/dist/cjs/SelectViewport.cjs +121 -142
  30. package/dist/cjs/SelectViewport.native.cjs +72 -0
  31. package/dist/cjs/SelectViewport.native.js +53 -50
  32. package/dist/cjs/SelectViewport.native.js.map +1 -1
  33. package/dist/cjs/constants.cjs +20 -22
  34. package/dist/cjs/constants.native.cjs +40 -0
  35. package/dist/cjs/constants.native.js +20 -21
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/context.cjs +37 -48
  38. package/dist/cjs/context.native.cjs +57 -0
  39. package/dist/cjs/context.native.js +39 -49
  40. package/dist/cjs/context.native.js.map +1 -1
  41. package/dist/cjs/index.cjs +14 -11
  42. package/dist/cjs/index.native.cjs +26 -0
  43. package/dist/cjs/index.native.js +14 -10
  44. package/dist/cjs/index.native.js.map +1 -1
  45. package/dist/cjs/selectionController.cjs +343 -0
  46. package/dist/cjs/selectionController.native.cjs +407 -0
  47. package/dist/cjs/selectionController.native.js +409 -0
  48. package/dist/cjs/selectionController.native.js.map +1 -0
  49. package/dist/cjs/types.cjs +9 -11
  50. package/dist/cjs/types.native.cjs +18 -0
  51. package/dist/cjs/types.native.js +9 -10
  52. package/dist/cjs/types.native.js.map +1 -1
  53. package/dist/esm/Select.mjs +381 -443
  54. package/dist/esm/Select.mjs.map +1 -1
  55. package/dist/esm/Select.native.js +420 -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 +291 -295
  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 +240 -181
  66. package/dist/esm/SelectItem.mjs.map +1 -1
  67. package/dist/esm/SelectItem.native.js +249 -191
  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 +107 -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 +315 -0
  97. package/dist/esm/selectionController.mjs.map +1 -0
  98. package/dist/esm/selectionController.native.js +377 -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 +381 -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 +29 -0
  110. package/dist/jsx/SelectContent.native.js +17 -22
  111. package/dist/jsx/SelectContent.native.js.map +1 -1
  112. package/dist/jsx/SelectImpl.mjs +291 -295
  113. package/dist/jsx/SelectImpl.mjs.map +1 -1
  114. package/dist/jsx/SelectImpl.native.cjs +29 -0
  115. package/dist/jsx/SelectImpl.native.js +16 -24
  116. package/dist/jsx/SelectImpl.native.js.map +1 -1
  117. package/dist/jsx/SelectItem.mjs +240 -181
  118. package/dist/jsx/SelectItem.mjs.map +1 -1
  119. package/dist/jsx/SelectItem.native.cjs +288 -0
  120. package/dist/jsx/SelectItem.native.js +264 -213
  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 +73 -0
  125. package/dist/jsx/SelectItemText.native.js +49 -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 +37 -0
  130. package/dist/jsx/SelectScrollButton.native.js +24 -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 +90 -0
  135. package/dist/jsx/SelectTrigger.native.js +70 -66
  136. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  137. package/dist/jsx/SelectViewport.mjs +107 -119
  138. package/dist/jsx/SelectViewport.mjs.map +1 -1
  139. package/dist/jsx/SelectViewport.native.cjs +72 -0
  140. package/dist/jsx/SelectViewport.native.js +53 -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 +40 -0
  145. package/dist/jsx/constants.native.js +20 -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 +57 -0
  150. package/dist/jsx/context.native.js +39 -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 +26 -0
  155. package/dist/jsx/index.native.js +14 -10
  156. package/dist/jsx/index.native.js.map +1 -1
  157. package/dist/jsx/selectionController.mjs +315 -0
  158. package/dist/jsx/selectionController.mjs.map +1 -0
  159. package/dist/jsx/selectionController.native.cjs +407 -0
  160. package/dist/jsx/selectionController.native.js +409 -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 +18 -0
  164. package/dist/jsx/types.native.js +9 -10
  165. package/dist/jsx/types.native.js.map +1 -1
  166. package/package.json +31 -30
  167. package/src/Select.tsx +478 -378
  168. package/src/SelectContent.tsx +46 -16
  169. package/src/SelectImpl.native.tsx +0 -8
  170. package/src/SelectImpl.tsx +149 -160
  171. package/src/SelectItem.tsx +280 -159
  172. package/src/SelectItemText.tsx +16 -33
  173. package/src/SelectScrollButton.native.tsx +13 -4
  174. package/src/SelectScrollButton.tsx +57 -42
  175. package/src/SelectTrigger.tsx +77 -53
  176. package/src/SelectViewport.native.tsx +42 -25
  177. package/src/SelectViewport.tsx +60 -60
  178. package/src/context.tsx +6 -2
  179. package/src/index.tsx +5 -2
  180. package/src/selectionController.ts +404 -0
  181. package/src/types.tsx +105 -59
  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 +90 -0
  210. package/types/selectionController.d.ts.map +1 -0
  211. package/types/types.d.ts +66 -50
  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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ 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;
21
+ };
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var SelectImpl_native_exports = {};
24
+ __export(SelectImpl_native_exports, { SelectInlineImpl: () => SelectInlineImpl });
25
+ module.exports = __toCommonJS(SelectImpl_native_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ var SelectInlineImpl = function(props) {
28
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });
29
+ };
@@ -5,35 +5,27 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
12
  };
13
13
  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;
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;
21
21
  };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
23
  var SelectImpl_native_exports = {};
26
- __export(SelectImpl_native_exports, {
27
- SelectInlineImpl: () => SelectInlineImpl
28
- });
24
+ __export(SelectImpl_native_exports, { SelectInlineImpl: () => SelectInlineImpl });
29
25
  module.exports = __toCommonJS(SelectImpl_native_exports);
30
26
  var import_jsx_runtime = require("react/jsx-runtime");
31
- var SelectInlineImpl = function (props) {
32
- if (process.env.NODE_ENV === "development") {
33
- console.warn("Sheet not implemented inline on native");
34
- }
35
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
36
- children: props.children
37
- });
27
+ var SelectInlineImpl = function(props) {
28
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });
38
29
  };
30
+
39
31
  //# sourceMappingURL=SelectImpl.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SelectImpl_native_exports","__export","SelectInlineImpl","module","exports","__toCommonJS","import_jsx_runtime","require","props","process","env","NODE_ENV","console","warn","jsx","Fragment","children"],"sources":["../../src/SelectImpl.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,yBAAA;AAAAC,QAAA,CAAAD,yBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAL,yBAAA;AAAA,IAAAM,kBAAA,GAAmDC,OAAA;AAIxC,IAAIL,gBAAA,GAAmB,SAAAA,CAASM,KAAA,EAAO;EAC9C,IAAIC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;IACxCC,OAAA,CAAQC,IAAA,CAAK,wCAAwC;EACzD;EACA,OAAqB,mBAAAP,kBAAA,CAAAQ,GAAA,EAAKR,kBAAA,CAAAS,QAAA,EAAW;IACjCC,QAAA,EAAUR,KAAA,CAAMQ;EACpB,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"SelectImpl.native.js","names":[],"sources":["cjs/SelectImpl.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectImpl_native_exports = {};\n__export(SelectImpl_native_exports, {\n SelectInlineImpl: () => SelectInlineImpl\n});\nmodule.exports = __toCommonJS(SelectImpl_native_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar SelectInlineImpl = function(props) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: props.children\n });\n};\n//# sourceMappingURL=SelectImpl.native.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,4BAA4B,CAAC;AACjC,SAAS,2BAA2B,EAClC,wBAAwB,iBAC1B,CAAC;AACD,OAAO,UAAU,aAAa,yBAAyB;AACvD,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,mBAAmB,SAAS,OAAO;CACrC,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,mBAAmB,UAAU,EAC9E,UAAU,MAAM,SAClB,CAAC;AACH"}
@@ -5,223 +5,274 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
12
  };
13
13
  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;
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;
21
21
  };
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
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
30
25
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
27
  var SelectItem_exports = {};
35
28
  __export(SelectItem_exports, {
36
- SelectItem: () => SelectItem,
37
- SelectItemContextProvider: () => SelectItemContextProvider,
38
- useSelectItemContext: () => useSelectItemContext
29
+ SelectItem: () => SelectItem,
30
+ SelectItemContextProvider: () => SelectItemContextProvider,
31
+ SelectItemFrame: () => SelectItemFrame,
32
+ useSelectItemContext: () => useSelectItemContext
39
33
  });
40
34
  module.exports = __toCommonJS(SelectItem_exports);
41
35
  var import_compose_refs = require("@tamagui/compose-refs");
36
+ var import_adapt = require("@tamagui/adapt");
42
37
  var import_constants = require("@tamagui/constants");
43
38
  var import_core = require("@tamagui/core");
44
- var import_list_item = require("@tamagui/list-item");
39
+ var import_helpers = require("@tamagui/helpers");
45
40
  var React = __toESM(require("react"), 1);
46
41
  var import_context = require("./context.cjs");
42
+ var import_selectionController = require("./selectionController.cjs");
47
43
  var import_jsx_runtime = require("react/jsx-runtime");
48
44
  const ITEM_NAME = "SelectItem";
49
- const {
50
- Provider: SelectItemContextProvider,
51
- useStyledContext: useSelectItemContext
52
- } = (0, import_core.createStyledContext)(null, ITEM_NAME);
53
- const SelectItem = import_list_item.ListItem.Frame.styleable(function SelectItem2(props, forwardedRef) {
54
- const {
55
- scope,
56
- value,
57
- disabled = false,
58
- textValue: textValueProp,
59
- index,
60
- ...restProps
61
- } = props;
62
- const context = (0, import_context.useSelectItemParentContext)(scope);
63
- const {
64
- setSelectedIndex,
65
- listRef,
66
- setOpen,
67
- onChange,
68
- activeIndexSubscribe,
69
- activeIndexRef,
70
- valueSubscribe,
71
- allowMouseUpRef,
72
- allowSelectRef,
73
- setValueAtIndex,
74
- selectTimeoutRef,
75
- dataRef,
76
- interactions,
77
- shouldRenderWebNative,
78
- size,
79
- onActiveChange,
80
- initialValue,
81
- setActiveIndexFast
82
- } = context;
83
- const [isSelected, setSelected] = React.useState(initialValue === value);
84
- (0, import_constants.useIsomorphicLayoutEffect)(() => {
85
- if (initialValue === value) {
86
- setSelectedIndex(index);
87
- }
88
- }, []);
89
- React.useEffect(() => {
90
- const handleActiveIndex = i => {
91
- if (index === i) {
92
- onActiveChange(value, index);
93
- if (import_constants.isWeb) {
94
- requestAnimationFrame(() => {
95
- listRef?.current[index]?.focus();
96
- });
97
- }
98
- }
99
- };
100
- const currentActiveIndex = activeIndexRef?.current;
101
- if (currentActiveIndex !== null && currentActiveIndex !== void 0) {
102
- handleActiveIndex(currentActiveIndex);
103
- }
104
- return activeIndexSubscribe(handleActiveIndex);
105
- }, [index]);
106
- React.useEffect(() => {
107
- return valueSubscribe(val => {
108
- setSelected(val === value);
109
- });
110
- }, [value]);
111
- const textId = React.useId();
112
- const refCallback = React.useCallback(node => {
113
- if (!import_constants.isWeb) return;
114
- if (node instanceof HTMLElement) {
115
- if (listRef) {
116
- listRef.current[index] = node;
117
- }
118
- }
119
- }, [index, listRef]);
120
- const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);
121
- (0, import_constants.useIsomorphicLayoutEffect)(() => {
122
- setValueAtIndex(index, value);
123
- }, [index, setValueAtIndex, value]);
124
- function handleSelect() {
125
- setSelectedIndex(index);
126
- onChange(value);
127
- setOpen(false);
128
- }
129
- const selectItemProps = React.useMemo(() => {
130
- return interactions ? interactions.getItemProps({
131
- onTouchMove() {
132
- allowSelectRef.current = true;
133
- allowMouseUpRef.current = false;
134
- },
135
- onTouchEnd() {
136
- allowSelectRef.current = false;
137
- allowMouseUpRef.current = true;
138
- },
139
- onKeyDown(event) {
140
- if (event.key === "Enter" || event.key === " " && !dataRef?.current.typing) {
141
- event.preventDefault();
142
- handleSelect();
143
- } else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
144
- event.preventDefault();
145
- event.stopPropagation();
146
- const itemCount = listRef?.current.length ?? 0;
147
- if (itemCount === 0) return;
148
- let nextIndex;
149
- if (event.key === "ArrowDown") {
150
- nextIndex = index + 1 >= itemCount ? 0 : index + 1;
151
- } else {
152
- nextIndex = index - 1 < 0 ? itemCount - 1 : index - 1;
153
- }
154
- setActiveIndexFast?.(nextIndex);
155
- } else {
156
- allowSelectRef.current = true;
157
- }
158
- },
159
- onClick() {
160
- if (allowSelectRef.current) {
161
- handleSelect();
162
- }
163
- },
164
- onMouseUp() {
165
- if (!allowMouseUpRef.current) {
166
- allowMouseUpRef.current = true;
167
- allowSelectRef.current = true;
168
- return;
169
- }
170
- if (allowSelectRef.current) {
171
- handleSelect();
172
- }
173
- clearTimeout(selectTimeoutRef.current);
174
- selectTimeoutRef.current = setTimeout(() => {
175
- allowSelectRef.current = true;
176
- });
177
- }
178
- }) : {
179
- onPress: handleSelect
180
- };
181
- }, [handleSelect, index, listRef, setActiveIndexFast]);
182
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
183
- scope,
184
- value,
185
- textId: textId || "",
186
- isSelected,
187
- children: shouldRenderWebNative ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
188
- value,
189
- children: props.children
190
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_list_item.ListItem.Frame, {
191
- render: "div",
192
- componentName: ITEM_NAME,
193
- ref: composedRefs,
194
- role: "option",
195
- "aria-labelledby": textId,
196
- "aria-selected": isSelected,
197
- "data-state": isSelected ? "active" : "inactive",
198
- "aria-disabled": disabled || void 0,
199
- "data-disabled": disabled ? "" : void 0,
200
- tabIndex: disabled ? void 0 : -1,
201
- ...(!props.unstyled && {
202
- cursor: "default",
203
- size,
204
- outlineOffset: -0.5,
205
- zIndex: 100,
206
- hoverStyle: {
207
- backgroundColor: "$backgroundHover"
208
- },
209
- pressStyle: {
210
- backgroundColor: "$backgroundPress"
211
- },
212
- focusStyle: {
213
- backgroundColor: "$backgroundFocus"
214
- },
215
- focusVisibleStyle: {
216
- outlineColor: "$outlineColor",
217
- outlineWidth: 1,
218
- outlineStyle: "solid"
219
- }
220
- }),
221
- ...restProps,
222
- ...selectItemProps
223
- })
224
- });
225
- }, {
226
- disableTheme: true
227
- });
45
+ const { Provider: SelectItemContextProvider, useStyledContext: useSelectItemContext } = (0, import_core.createStyledContext)(null, ITEM_NAME);
46
+ const SelectItemFrame = (0, import_core.styled)(import_core.View, {
47
+ displayName: ITEM_NAME,
48
+ alignItems: "center",
49
+ flexDirection: "row"
50
+ });
51
+ const SelectItem = (0, import_core.createStyledHOC)(SelectItemFrame, function SelectItem2(props, forwardedRef) {
52
+ const { scope, value, disabled: disabledProp, "aria-disabled": ariaDisabled, textValue: textValueProp, ...restProps } = props;
53
+ const disabled = disabledProp ?? ariaDisabled === true;
54
+ const context = (0, import_context.useSelectItemParentContext)(scope);
55
+ const isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
56
+ const { registry, mode, selectedValues, selectValue, activeIndexSubscribe, activeIndexRef, allowMouseUpRef, allowSelectRef, selectTimeoutRef, getItemProps, shouldRenderWebNative, setActiveIndex, lastPointerRef, moveActive, search } = context;
57
+ const isSelected = selectedValues.includes(value);
58
+ const pendingMouseUpSelectionRef = React.useRef(false);
59
+ const itemNodeRef = React.useRef(null);
60
+ const registrationRef = React.useRef(null);
61
+ const initialRegistration = React.useRef({
62
+ value,
63
+ disabled,
64
+ textValue: textValueProp
65
+ });
66
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
67
+ const registration = registry.registerItem(initialRegistration.current);
68
+ registrationRef.current = registration;
69
+ registration.setNode(itemNodeRef.current);
70
+ return () => {
71
+ registrationRef.current = null;
72
+ registration.unregister();
73
+ };
74
+ }, [registry]);
75
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
76
+ registrationRef.current?.update({
77
+ value,
78
+ disabled,
79
+ textValue: textValueProp
80
+ });
81
+ }, [
82
+ disabled,
83
+ textValueProp,
84
+ value
85
+ ]);
86
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
87
+ registrationRef.current?.setNode(itemNodeRef.current);
88
+ });
89
+ const [isActive, setIsActive] = React.useState(false);
90
+ const isActiveRef = React.useRef(false);
91
+ React.useEffect(() => {
92
+ const handleActiveIndex = (i) => {
93
+ const next = i != null && registry.getIndex(value) === i;
94
+ if (next !== isActiveRef.current) {
95
+ isActiveRef.current = next;
96
+ setIsActive(next);
97
+ }
98
+ if (next && import_constants.isWeb) {
99
+ requestAnimationFrame(() => {
100
+ itemNodeRef.current?.focus?.();
101
+ });
102
+ }
103
+ };
104
+ handleActiveIndex(activeIndexRef?.current ?? null);
105
+ return activeIndexSubscribe(handleActiveIndex);
106
+ }, [
107
+ activeIndexRef,
108
+ activeIndexSubscribe,
109
+ registry,
110
+ value
111
+ ]);
112
+ const textId = React.useId();
113
+ const refCallback = React.useCallback((node) => {
114
+ itemNodeRef.current = node;
115
+ registrationRef.current?.setNode(node);
116
+ }, []);
117
+ const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);
118
+ const handleSelect = React.useCallback((event, reason = "item-press") => {
119
+ if (disabled) return;
120
+ const nativeEvent = event?.nativeEvent || event;
121
+ selectValue(value, (0, import_core.createChangeEventDetails)(reason, nativeEvent, event?.currentTarget));
122
+ }, [
123
+ disabled,
124
+ selectValue,
125
+ value
126
+ ]);
127
+ const handleMouseMove = React.useCallback((event) => {
128
+ if (disabled) return;
129
+ const index = registry.getIndex(value);
130
+ if (index < 0) return;
131
+ const last = lastPointerRef.current;
132
+ if (event.clientX === last.x && event.clientY === last.y) return;
133
+ last.x = event.clientX;
134
+ last.y = event.clientY;
135
+ setActiveIndex(index, {
136
+ reason: "item-hover",
137
+ event: event.nativeEvent || event,
138
+ trigger: event.currentTarget,
139
+ index
140
+ });
141
+ }, [
142
+ disabled,
143
+ lastPointerRef,
144
+ registry,
145
+ setActiveIndex,
146
+ value
147
+ ]);
148
+ const handleKeyDown = React.useCallback((event) => {
149
+ if (disabled) return;
150
+ if (event.key === "Enter" || event.key === " ") {
151
+ event.preventDefault();
152
+ handleSelect(event, "keyboard");
153
+ return;
154
+ }
155
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
156
+ event.preventDefault();
157
+ event.stopPropagation();
158
+ moveActive(event.key === "ArrowDown" ? 1 : -1, event.nativeEvent || event);
159
+ return;
160
+ }
161
+ if (!getItemProps && event.key?.length === 1 && !event.metaKey && !event.ctrlKey) {
162
+ search(event.key, event.nativeEvent || event);
163
+ }
164
+ if (allowSelectRef) {
165
+ allowSelectRef.current = true;
166
+ }
167
+ }, [
168
+ allowSelectRef,
169
+ disabled,
170
+ handleSelect,
171
+ getItemProps,
172
+ moveActive,
173
+ search
174
+ ]);
175
+ const selectItemProps = React.useMemo(() => {
176
+ if (getItemProps) {
177
+ const { onTouchMove, onTouchEnd, onKeyDown, onClick, onMouseUp, onMouseMove, onPress, ...itemProps } = restProps;
178
+ const interactionProps = getItemProps({
179
+ ...itemProps,
180
+ onTouchMove() {
181
+ allowSelectRef.current = true;
182
+ allowMouseUpRef.current = false;
183
+ },
184
+ onTouchEnd() {
185
+ allowSelectRef.current = false;
186
+ allowMouseUpRef.current = true;
187
+ },
188
+ onMouseMove: handleMouseMove,
189
+ onKeyDown: handleKeyDown,
190
+ onClick(event) {
191
+ if (disabled) return;
192
+ const shouldSelect = pendingMouseUpSelectionRef.current || allowSelectRef.current;
193
+ pendingMouseUpSelectionRef.current = false;
194
+ clearTimeout(selectTimeoutRef.current);
195
+ allowSelectRef.current = true;
196
+ if (shouldSelect) {
197
+ handleSelect(event);
198
+ }
199
+ },
200
+ onMouseUp(event) {
201
+ if (disabled) return;
202
+ if (!allowMouseUpRef.current) {
203
+ allowMouseUpRef.current = true;
204
+ allowSelectRef.current = true;
205
+ return;
206
+ }
207
+ pendingMouseUpSelectionRef.current = allowSelectRef.current;
208
+ clearTimeout(selectTimeoutRef.current);
209
+ selectTimeoutRef.current = setTimeout(() => {
210
+ allowSelectRef.current = true;
211
+ if (pendingMouseUpSelectionRef.current) {
212
+ pendingMouseUpSelectionRef.current = false;
213
+ handleSelect(event);
214
+ }
215
+ });
216
+ }
217
+ });
218
+ return {
219
+ ...interactionProps,
220
+ onTouchMove: (0, import_helpers.composeEventHandlers)(onTouchMove, interactionProps.onTouchMove),
221
+ onTouchEnd: (0, import_helpers.composeEventHandlers)(onTouchEnd, interactionProps.onTouchEnd),
222
+ onKeyDown: (0, import_helpers.composeEventHandlers)(onKeyDown, interactionProps.onKeyDown),
223
+ onClick(event) {
224
+ onClick?.(event);
225
+ if (event.defaultPrevented) {
226
+ pendingMouseUpSelectionRef.current = false;
227
+ clearTimeout(selectTimeoutRef.current);
228
+ allowSelectRef.current = true;
229
+ return;
230
+ }
231
+ interactionProps.onClick?.(event);
232
+ },
233
+ onMouseUp: (0, import_helpers.composeEventHandlers)(onMouseUp, interactionProps.onMouseUp),
234
+ onMouseMove: (0, import_helpers.composeEventHandlers)(onMouseMove, interactionProps.onMouseMove),
235
+ onPress
236
+ };
237
+ }
238
+ return {
239
+ ...restProps,
240
+ onKeyDown: (0, import_helpers.composeEventHandlers)(restProps.onKeyDown, handleKeyDown),
241
+ onMouseMove: (0, import_helpers.composeEventHandlers)(restProps.onMouseMove, handleMouseMove),
242
+ onPress: (0, import_helpers.composeEventHandlers)(restProps.onPress, handleSelect)
243
+ };
244
+ }, [
245
+ allowMouseUpRef,
246
+ allowSelectRef,
247
+ disabled,
248
+ handleKeyDown,
249
+ handleMouseMove,
250
+ handleSelect,
251
+ getItemProps,
252
+ restProps,
253
+ selectTimeoutRef
254
+ ]);
255
+ const accessibilityProps = (0, import_selectionController.getSelectOptionProps)(mode, isSelected, disabled, import_constants.isWeb ? "web" : "native");
256
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
257
+ scope,
258
+ value,
259
+ textId: textId || "",
260
+ textValue: textValueProp,
261
+ isSelected,
262
+ children: shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", {
263
+ value,
264
+ disabled,
265
+ children: props.children
266
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemFrame, {
267
+ render: "div",
268
+ ref: composedRefs,
269
+ "aria-labelledby": textId,
270
+ "data-state": isSelected ? "active" : "inactive",
271
+ "data-disabled": disabled ? "" : void 0,
272
+ tabIndex: disabled ? void 0 : import_constants.isWeb && isAdapted && (isActive || activeIndexRef?.current == null && isSelected) ? 0 : -1,
273
+ zIndex: 100,
274
+ ...selectItemProps,
275
+ ...accessibilityProps
276
+ })
277
+ });
278
+ }, { disableTheme: true });