@tamagui/select 2.0.0-rc.4 → 2.0.0-rc.40

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 (242) hide show
  1. package/dist/cjs/BubbleSelect.cjs +28 -23
  2. package/dist/cjs/BubbleSelect.native.js +12 -10
  3. package/dist/cjs/BubbleSelect.native.js.map +1 -1
  4. package/dist/cjs/Select.cjs +402 -376
  5. package/dist/cjs/Select.native.js +428 -414
  6. package/dist/cjs/Select.native.js.map +1 -1
  7. package/dist/cjs/SelectContent.cjs +73 -66
  8. package/dist/cjs/SelectContent.native.js +12 -10
  9. package/dist/cjs/SelectContent.native.js.map +1 -1
  10. package/dist/cjs/SelectImpl.cjs +239 -176
  11. package/dist/cjs/SelectImpl.native.js +21 -16
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +189 -137
  14. package/dist/cjs/SelectItem.native.js +211 -164
  15. package/dist/cjs/SelectItem.native.js.map +1 -1
  16. package/dist/cjs/SelectItemText.cjs +82 -68
  17. package/dist/cjs/SelectItemText.native.js +81 -69
  18. package/dist/cjs/SelectItemText.native.js.map +1 -1
  19. package/dist/cjs/SelectScrollButton.cjs +104 -83
  20. package/dist/cjs/SelectScrollButton.native.js +17 -15
  21. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  22. package/dist/cjs/SelectTrigger.cjs +81 -77
  23. package/dist/cjs/SelectTrigger.native.js +43 -40
  24. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  25. package/dist/cjs/SelectViewport.cjs +141 -103
  26. package/dist/cjs/SelectViewport.native.js +39 -37
  27. package/dist/cjs/SelectViewport.native.js.map +1 -1
  28. package/dist/cjs/constants.cjs +19 -17
  29. package/dist/cjs/constants.native.js +19 -17
  30. package/dist/cjs/constants.native.js.map +1 -1
  31. package/dist/cjs/context.cjs +38 -27
  32. package/dist/cjs/context.native.js +46 -38
  33. package/dist/cjs/context.native.js.map +1 -1
  34. package/dist/cjs/index.cjs +7 -5
  35. package/dist/cjs/index.native.js +7 -5
  36. package/dist/cjs/index.native.js.map +1 -1
  37. package/dist/cjs/types.cjs +7 -5
  38. package/dist/cjs/types.native.js +7 -5
  39. package/dist/cjs/types.native.js.map +1 -1
  40. package/dist/cjs/useSelectBreakpointActive.cjs +13 -11
  41. package/dist/cjs/useSelectBreakpointActive.native.js +17 -15
  42. package/dist/cjs/useSelectBreakpointActive.native.js.map +1 -1
  43. package/dist/esm/BubbleSelect.mjs +16 -13
  44. package/dist/esm/BubbleSelect.mjs.map +1 -1
  45. package/dist/esm/Select.mjs +356 -331
  46. package/dist/esm/Select.mjs.map +1 -1
  47. package/dist/esm/Select.native.js +381 -369
  48. package/dist/esm/Select.native.js.map +1 -1
  49. package/dist/esm/SelectContent.mjs +55 -39
  50. package/dist/esm/SelectContent.mjs.map +1 -1
  51. package/dist/esm/SelectImpl.mjs +208 -147
  52. package/dist/esm/SelectImpl.mjs.map +1 -1
  53. package/dist/esm/SelectImpl.native.js +4 -1
  54. package/dist/esm/SelectImpl.native.js.map +1 -1
  55. package/dist/esm/SelectItem.mjs +157 -107
  56. package/dist/esm/SelectItem.mjs.map +1 -1
  57. package/dist/esm/SelectItem.native.js +180 -135
  58. package/dist/esm/SelectItem.native.js.map +1 -1
  59. package/dist/esm/SelectItemText.mjs +50 -38
  60. package/dist/esm/SelectItemText.mjs.map +1 -1
  61. package/dist/esm/SelectItemText.native.js +50 -40
  62. package/dist/esm/SelectItemText.native.js.map +1 -1
  63. package/dist/esm/SelectScrollButton.mjs +74 -55
  64. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  65. package/dist/esm/SelectScrollButton.native.js +5 -5
  66. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  67. package/dist/esm/SelectTrigger.mjs +51 -49
  68. package/dist/esm/SelectTrigger.mjs.map +1 -1
  69. package/dist/esm/SelectTrigger.native.js +13 -12
  70. package/dist/esm/SelectTrigger.native.js.map +1 -1
  71. package/dist/esm/SelectViewport.mjs +108 -83
  72. package/dist/esm/SelectViewport.mjs.map +1 -1
  73. package/dist/esm/SelectViewport.native.js +7 -7
  74. package/dist/esm/SelectViewport.native.js.map +1 -1
  75. package/dist/esm/constants.mjs +7 -7
  76. package/dist/esm/constants.mjs.map +1 -1
  77. package/dist/esm/constants.native.js +7 -7
  78. package/dist/esm/constants.native.js.map +1 -1
  79. package/dist/esm/context.mjs +22 -14
  80. package/dist/esm/context.mjs.map +1 -1
  81. package/dist/esm/context.native.js +30 -25
  82. package/dist/esm/context.native.js.map +1 -1
  83. package/dist/esm/index.js +2 -2
  84. package/dist/esm/index.js.map +1 -6
  85. package/dist/esm/useSelectBreakpointActive.mjs +1 -1
  86. package/dist/esm/useSelectBreakpointActive.mjs.map +1 -1
  87. package/dist/esm/useSelectBreakpointActive.native.js +1 -1
  88. package/dist/esm/useSelectBreakpointActive.native.js.map +1 -1
  89. package/dist/jsx/BubbleSelect.mjs +16 -13
  90. package/dist/jsx/BubbleSelect.mjs.map +1 -1
  91. package/dist/jsx/BubbleSelect.native.js +12 -10
  92. package/dist/jsx/BubbleSelect.native.js.map +1 -1
  93. package/dist/jsx/Select.mjs +356 -331
  94. package/dist/jsx/Select.mjs.map +1 -1
  95. package/dist/jsx/Select.native.js +428 -414
  96. package/dist/jsx/Select.native.js.map +1 -1
  97. package/dist/jsx/SelectContent.mjs +55 -39
  98. package/dist/jsx/SelectContent.mjs.map +1 -1
  99. package/dist/jsx/SelectContent.native.js +12 -10
  100. package/dist/jsx/SelectContent.native.js.map +1 -1
  101. package/dist/jsx/SelectImpl.mjs +208 -147
  102. package/dist/jsx/SelectImpl.mjs.map +1 -1
  103. package/dist/jsx/SelectImpl.native.js +21 -16
  104. package/dist/jsx/SelectImpl.native.js.map +1 -1
  105. package/dist/jsx/SelectItem.mjs +157 -107
  106. package/dist/jsx/SelectItem.mjs.map +1 -1
  107. package/dist/jsx/SelectItem.native.js +211 -164
  108. package/dist/jsx/SelectItem.native.js.map +1 -1
  109. package/dist/jsx/SelectItemText.mjs +50 -38
  110. package/dist/jsx/SelectItemText.mjs.map +1 -1
  111. package/dist/jsx/SelectItemText.native.js +81 -69
  112. package/dist/jsx/SelectItemText.native.js.map +1 -1
  113. package/dist/jsx/SelectScrollButton.mjs +74 -55
  114. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  115. package/dist/jsx/SelectScrollButton.native.js +17 -15
  116. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  117. package/dist/jsx/SelectTrigger.mjs +51 -49
  118. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  119. package/dist/jsx/SelectTrigger.native.js +43 -40
  120. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  121. package/dist/jsx/SelectViewport.mjs +108 -83
  122. package/dist/jsx/SelectViewport.mjs.map +1 -1
  123. package/dist/jsx/SelectViewport.native.js +39 -37
  124. package/dist/jsx/SelectViewport.native.js.map +1 -1
  125. package/dist/jsx/constants.mjs +7 -7
  126. package/dist/jsx/constants.mjs.map +1 -1
  127. package/dist/jsx/constants.native.js +19 -17
  128. package/dist/jsx/constants.native.js.map +1 -1
  129. package/dist/jsx/context.mjs +22 -14
  130. package/dist/jsx/context.mjs.map +1 -1
  131. package/dist/jsx/context.native.js +46 -38
  132. package/dist/jsx/context.native.js.map +1 -1
  133. package/dist/jsx/index.js +2 -2
  134. package/dist/jsx/index.js.map +1 -6
  135. package/dist/jsx/index.native.js +7 -5
  136. package/dist/jsx/types.native.js +7 -5
  137. package/dist/jsx/useSelectBreakpointActive.mjs +1 -1
  138. package/dist/jsx/useSelectBreakpointActive.mjs.map +1 -1
  139. package/dist/jsx/useSelectBreakpointActive.native.js +17 -15
  140. package/dist/jsx/useSelectBreakpointActive.native.js.map +1 -1
  141. package/package.json +31 -35
  142. package/src/Select.tsx +16 -1
  143. package/src/SelectContent.tsx +47 -36
  144. package/src/SelectImpl.tsx +51 -49
  145. package/src/SelectItem.tsx +17 -7
  146. package/src/SelectScrollButton.tsx +1 -1
  147. package/src/SelectTrigger.tsx +1 -1
  148. package/src/SelectViewport.tsx +42 -22
  149. package/src/context.tsx +4 -0
  150. package/src/types.tsx +44 -4
  151. package/types/Select.d.ts +2 -2
  152. package/types/Select.d.ts.map +1 -1
  153. package/types/SelectContent.d.ts +1 -1
  154. package/types/SelectContent.d.ts.map +1 -1
  155. package/types/SelectImpl.d.ts.map +1 -1
  156. package/types/SelectItem.d.ts.map +1 -1
  157. package/types/SelectTrigger.d.ts +1 -1
  158. package/types/SelectViewport.d.ts.map +1 -1
  159. package/types/context.d.ts +1 -0
  160. package/types/context.d.ts.map +1 -1
  161. package/types/types.d.ts +33 -3
  162. package/types/types.d.ts.map +1 -1
  163. package/dist/cjs/BubbleSelect.js +0 -34
  164. package/dist/cjs/BubbleSelect.js.map +0 -6
  165. package/dist/cjs/Select.js +0 -402
  166. package/dist/cjs/Select.js.map +0 -6
  167. package/dist/cjs/SelectContent.js +0 -57
  168. package/dist/cjs/SelectContent.js.map +0 -6
  169. package/dist/cjs/SelectImpl.js +0 -222
  170. package/dist/cjs/SelectImpl.js.map +0 -6
  171. package/dist/cjs/SelectItem.js +0 -166
  172. package/dist/cjs/SelectItem.js.map +0 -6
  173. package/dist/cjs/SelectItemText.js +0 -64
  174. package/dist/cjs/SelectItemText.js.map +0 -6
  175. package/dist/cjs/SelectScrollButton.js +0 -105
  176. package/dist/cjs/SelectScrollButton.js.map +0 -6
  177. package/dist/cjs/SelectTrigger.js +0 -81
  178. package/dist/cjs/SelectTrigger.js.map +0 -6
  179. package/dist/cjs/SelectViewport.js +0 -114
  180. package/dist/cjs/SelectViewport.js.map +0 -6
  181. package/dist/cjs/constants.js +0 -27
  182. package/dist/cjs/constants.js.map +0 -6
  183. package/dist/cjs/context.js +0 -33
  184. package/dist/cjs/context.js.map +0 -6
  185. package/dist/cjs/index.js +0 -16
  186. package/dist/cjs/index.js.map +0 -6
  187. package/dist/cjs/types.js +0 -14
  188. package/dist/cjs/types.js.map +0 -6
  189. package/dist/cjs/useSelectBreakpointActive.js +0 -25
  190. package/dist/cjs/useSelectBreakpointActive.js.map +0 -6
  191. package/dist/esm/BubbleSelect.js +0 -17
  192. package/dist/esm/BubbleSelect.js.map +0 -6
  193. package/dist/esm/Select.js +0 -412
  194. package/dist/esm/Select.js.map +0 -6
  195. package/dist/esm/SelectContent.js +0 -39
  196. package/dist/esm/SelectContent.js.map +0 -6
  197. package/dist/esm/SelectImpl.js +0 -223
  198. package/dist/esm/SelectImpl.js.map +0 -6
  199. package/dist/esm/SelectItem.js +0 -148
  200. package/dist/esm/SelectItem.js.map +0 -6
  201. package/dist/esm/SelectItemText.js +0 -46
  202. package/dist/esm/SelectItemText.js.map +0 -6
  203. package/dist/esm/SelectScrollButton.js +0 -87
  204. package/dist/esm/SelectScrollButton.js.map +0 -6
  205. package/dist/esm/SelectTrigger.js +0 -61
  206. package/dist/esm/SelectTrigger.js.map +0 -6
  207. package/dist/esm/SelectViewport.js +0 -112
  208. package/dist/esm/SelectViewport.js.map +0 -6
  209. package/dist/esm/constants.js +0 -11
  210. package/dist/esm/constants.js.map +0 -6
  211. package/dist/esm/context.js +0 -19
  212. package/dist/esm/context.js.map +0 -6
  213. package/dist/esm/types.js +0 -1
  214. package/dist/esm/types.js.map +0 -6
  215. package/dist/esm/useSelectBreakpointActive.js +0 -9
  216. package/dist/esm/useSelectBreakpointActive.js.map +0 -6
  217. package/dist/jsx/BubbleSelect.js +0 -17
  218. package/dist/jsx/BubbleSelect.js.map +0 -6
  219. package/dist/jsx/Select.js +0 -412
  220. package/dist/jsx/Select.js.map +0 -6
  221. package/dist/jsx/SelectContent.js +0 -39
  222. package/dist/jsx/SelectContent.js.map +0 -6
  223. package/dist/jsx/SelectImpl.js +0 -223
  224. package/dist/jsx/SelectImpl.js.map +0 -6
  225. package/dist/jsx/SelectItem.js +0 -148
  226. package/dist/jsx/SelectItem.js.map +0 -6
  227. package/dist/jsx/SelectItemText.js +0 -46
  228. package/dist/jsx/SelectItemText.js.map +0 -6
  229. package/dist/jsx/SelectScrollButton.js +0 -87
  230. package/dist/jsx/SelectScrollButton.js.map +0 -6
  231. package/dist/jsx/SelectTrigger.js +0 -61
  232. package/dist/jsx/SelectTrigger.js.map +0 -6
  233. package/dist/jsx/SelectViewport.js +0 -112
  234. package/dist/jsx/SelectViewport.js.map +0 -6
  235. package/dist/jsx/constants.js +0 -11
  236. package/dist/jsx/constants.js.map +0 -6
  237. package/dist/jsx/context.js +0 -19
  238. package/dist/jsx/context.js.map +0 -6
  239. package/dist/jsx/types.js +0 -1
  240. package/dist/jsx/types.js.map +0 -6
  241. package/dist/jsx/useSelectBreakpointActive.js +0 -9
  242. package/dist/jsx/useSelectBreakpointActive.js.map +0 -6
@@ -5,57 +5,65 @@ 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: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
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, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: !0
23
+ value: true
22
24
  }), mod);
23
25
  var context_exports = {};
24
26
  __export(context_exports, {
25
27
  ForwardSelectContext: () => ForwardSelectContext,
26
28
  SelectItemParentProvider: () => SelectItemParentProvider,
27
29
  SelectProvider: () => SelectProvider,
30
+ SelectZIndexContext: () => SelectZIndexContext,
28
31
  useSelectContext: () => useSelectContext,
29
32
  useSelectItemParentContext: () => useSelectItemParentContext
30
33
  });
31
34
  module.exports = __toCommonJS(context_exports);
32
- var import_jsx_runtime = require("react/jsx-runtime"),
33
- import_core = require("@tamagui/core"),
34
- import_native = require("@tamagui/native"),
35
- {
36
- Provider: SelectProvider,
37
- useStyledContext: useSelectContext
38
- } = (0, import_core.createStyledContext)(null, "Select"),
39
- {
40
- Provider: SelectItemParentProvider,
41
- useStyledContext: useSelectItemParentContext
42
- } = (0, import_core.createStyledContext)(null, "SelectItem"),
43
- ForwardSelectContext = function (param) {
44
- var {
45
- context,
46
- itemContext,
47
- children
48
- } = param,
49
- portalState = (0, import_native.getPortal)().state;
50
- return portalState.type === "teleport" ? children : /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectProvider, {
51
- isInSheet: !0,
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_core = require("@tamagui/core");
37
+ var import_native = require("@tamagui/native");
38
+ var import_react = require("react");
39
+ var SelectZIndexContext = /* @__PURE__ */(0, import_react.createContext)(void 0);
40
+ var {
41
+ Provider: SelectProvider,
42
+ useStyledContext: useSelectContext
43
+ } = (0, import_core.createStyledContext)(null, "Select");
44
+ var {
45
+ Provider: SelectItemParentProvider,
46
+ useStyledContext: useSelectItemParentContext
47
+ } = (0, import_core.createStyledContext)(null, "SelectItem");
48
+ var ForwardSelectContext = function (param) {
49
+ var {
50
+ context,
51
+ itemContext,
52
+ children
53
+ } = param;
54
+ var portalState = (0, import_native.getPortal)().state;
55
+ if (portalState.type === "teleport") {
56
+ return children;
57
+ }
58
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectProvider, {
59
+ isInSheet: true,
60
+ scope: context.scopeName,
61
+ ...context,
62
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemParentProvider, {
52
63
  scope: context.scopeName,
53
- ...context,
54
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemParentProvider, {
55
- scope: context.scopeName,
56
- ...itemContext,
57
- children
58
- })
59
- });
60
- };
64
+ ...itemContext,
65
+ children
66
+ })
67
+ });
68
+ };
61
69
  //# sourceMappingURL=context.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key"],"sources":["../../src/context.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAiB;AAgCpB,IAAAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AA7BC,IAAAC,iBAAkB,GAAAJ,MAAA,CAAAK,mBAAgB;AAK5B,IACXC,YAAU,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACVC,QAAA,GAAAA,CAAAC,MAAkB,EAAAC,GAAA;IACpB,KAAI,IAAAC,IAAA,IAAAD,GAAA,EAGFZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;MAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;MAAAE,UAAA;IAAA;EAAA;EACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;IACA,IAAAF,IAAA,WAAAA,IAAA,uBAAAA,IAAA,gBACF,KAOsB,IAAAG,GAAU,IAAEhB,iBACP,CAAAa,IAAA,G","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","context_exports","ForwardSelectContext"],"sources":["../../src/context.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAiB;AAC1B,IAAAC,gBAAS,GAAAF,MAAA,CAAqBG,wBAAA;AAmCxB,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AA/BC,IAAAC,YAAM,GAAAN,MAAA,CAAAO,SAAsB,CAAAC,cAA2C;AAEvE,IAAAC,QAAQ,GAAAA,CAAAC,MAAU,EAAAC,GAAA;EAKlB,KAAM,IAAAC,IAAA,IAAAD,GAAA,EACXZ,SAAU,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAEZ,IAAIC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAkD,EAAAC,MAAa,EAAAC,IAAA,KAAY;EAExE,IAAMF,IAAA,WAAAA,IAAA,KAAwB,mBAAAA,IAAA;IACnC,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACF;EAOE,OAAME,EAAA;AACN;AACE,IAAAM,YAAO,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACTE,eAAA;AAGAhB,QAAA,CACEgB,eAAA;EAMJC,oBAAA,EAAAA,CAAA,KAAAA,oBAAA","ignoreList":[]}
package/dist/jsx/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./Select";
2
- export * from "./context";
1
+ export * from "./Select.mjs";
2
+ export * from "./context.mjs";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.tsx"],
4
- "mappings": "AAAA,cAAc;AAEd,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AAEd,cAAc","ignoreList":[]}
@@ -5,15 +5,17 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
9
10
  get: () => from[key],
10
11
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
11
12
  });
12
- return to;
13
- },
14
- __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
13
+ }
14
+ return to;
15
+ };
16
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
17
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
16
- value: !0
18
+ value: true
17
19
  }), mod);
18
20
  var index_exports = {};
19
21
  module.exports = __toCommonJS(index_exports);
@@ -5,14 +5,16 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
9
- get: () => from[key],
10
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
11
- });
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
12
14
  return to;
13
15
  };
14
16
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
15
- value: !0
17
+ value: true
16
18
  }), mod);
17
19
  var types_exports = {};
18
20
  module.exports = __toCommonJS(types_exports);
@@ -1,7 +1,7 @@
1
1
  import { useAdaptIsActive } from "@tamagui/adapt";
2
2
  const useShowSelectSheet = context => {
3
3
  const breakpointActive = useAdaptIsActive(context.adaptScope);
4
- return context.open === !1 ? !1 : breakpointActive;
4
+ return context.open === false ? false : breakpointActive;
5
5
  };
6
6
  export { useShowSelectSheet };
7
7
  //# sourceMappingURL=useSelectBreakpointActive.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useAdaptIsActive","useShowSelectSheet","context","breakpointActive","adaptScope","open"],"sources":["../../src/useSelectBreakpointActive.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,QAAwB;AAG1B,MAAMC,kBAAA,GAAsBC,OAAA,IAAgC;EACjE,MAAMC,gBAAA,GAAmBH,gBAAA,CAAiBE,OAAA,CAAQE,UAAU;EAC5D,OAAOF,OAAA,CAAQG,IAAA,KAAS,KAAQ,KAAQF,gBAAA;AAC1C","ignoreList":[]}
1
+ {"version":3,"names":["useAdaptIsActive","useShowSelectSheet","context","breakpointActive","adaptScope","open"],"sources":["../../src/useSelectBreakpointActive.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,QAAwB;AAG1B,MAAMC,kBAAA,GAAsBC,OAAA,IAAgC;EACjE,MAAMC,gBAAA,GAAmBH,gBAAA,CAAiBE,OAAA,CAAQE,UAAU;EAC5D,OAAOF,OAAA,CAAQG,IAAA,KAAS,QAAQ,QAAQF,gBAAA;AAC1C","ignoreList":[]}
@@ -5,29 +5,31 @@ 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: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
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, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: !0
23
+ value: true
22
24
  }), mod);
23
25
  var useSelectBreakpointActive_exports = {};
24
26
  __export(useSelectBreakpointActive_exports, {
25
27
  useShowSelectSheet: () => useShowSelectSheet
26
28
  });
27
29
  module.exports = __toCommonJS(useSelectBreakpointActive_exports);
28
- var import_adapt = require("@tamagui/adapt"),
29
- useShowSelectSheet = function (context) {
30
- var breakpointActive = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
31
- return context.open === !1 ? !1 : breakpointActive;
32
- };
30
+ var import_adapt = require("@tamagui/adapt");
31
+ var useShowSelectSheet = function (context) {
32
+ var breakpointActive = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
33
+ return context.open === false ? false : breakpointActive;
34
+ };
33
35
  //# sourceMappingURL=useSelectBreakpointActive.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty"],"sources":["../../src/useSelectBreakpointActive.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAGF,IAAAA,SAAM,GAAAC,MAAA,CAAAC,cAAsB;AACjC,IAAAC,gBAAM,GAAAF,MAAmB,CAAAG,wBAAyB;AAClD,IAAAC,iBAAe,GAAAJ,MAAS,CAAQK,mBAAQ;AAC1C,IAAAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty"],"sources":["../../src/useSelectBreakpointActive.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAGF,IAAAA,SAAM,GAAAC,MAAA,CAAAC,cAAsB;AACjC,IAAAC,gBAAM,GAAAF,MAAmB,CAAAG,wBAAyB;AAClD,IAAAC,iBAAe,GAAAJ,MAAS,CAAAK,mBAAgB;AAC1C,IAAAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/select",
3
- "version": "2.0.0-rc.4",
3
+ "version": "2.0.0-rc.40",
4
4
  "source": "src/index.tsx",
5
5
  "files": [
6
6
  "src",
@@ -18,15 +18,12 @@
18
18
  "./package.json": "./package.json",
19
19
  ".": {
20
20
  "types": "./types/index.d.ts",
21
- "react-native": {
22
- "module": "./dist/esm/index.native.js",
23
- "import": "./dist/esm/index.native.js",
24
- "require": "./dist/cjs/index.native.js"
25
- },
21
+ "react-native": "./dist/esm/index.native.js",
22
+ "browser": "./dist/esm/index.mjs",
26
23
  "module": "./dist/esm/index.mjs",
27
24
  "import": "./dist/esm/index.mjs",
28
25
  "require": "./dist/cjs/index.cjs",
29
- "default": "./dist/cjs/index.native.js"
26
+ "default": "./dist/esm/index.mjs"
30
27
  }
31
28
  },
32
29
  "publishConfig": {
@@ -39,38 +36,37 @@
39
36
  "clean:build": "tamagui-build clean:build"
40
37
  },
41
38
  "dependencies": {
42
- "@floating-ui/react": "^0.27.16",
43
- "@floating-ui/react-dom": "^2.1.6",
44
- "@floating-ui/react-native": "^0.10.7",
45
- "@tamagui/adapt": "2.0.0-rc.4",
46
- "@tamagui/animate-presence": "2.0.0-rc.4",
47
- "@tamagui/compose-refs": "2.0.0-rc.4",
48
- "@tamagui/constants": "2.0.0-rc.4",
49
- "@tamagui/core": "2.0.0-rc.4",
50
- "@tamagui/create-context": "2.0.0-rc.4",
51
- "@tamagui/dismissable": "2.0.0-rc.4",
52
- "@tamagui/focus-scope": "2.0.0-rc.4",
53
- "@tamagui/focusable": "2.0.0-rc.4",
54
- "@tamagui/get-token": "2.0.0-rc.4",
55
- "@tamagui/helpers": "2.0.0-rc.4",
56
- "@tamagui/list-item": "2.0.0-rc.4",
57
- "@tamagui/native": "2.0.0-rc.4",
58
- "@tamagui/portal": "2.0.0-rc.4",
59
- "@tamagui/remove-scroll": "2.0.0-rc.4",
60
- "@tamagui/separator": "2.0.0-rc.4",
61
- "@tamagui/sheet": "2.0.0-rc.4",
62
- "@tamagui/stacks": "2.0.0-rc.4",
63
- "@tamagui/text": "2.0.0-rc.4",
64
- "@tamagui/use-controllable-state": "2.0.0-rc.4",
65
- "@tamagui/use-debounce": "2.0.0-rc.4",
66
- "@tamagui/use-event": "2.0.0-rc.4",
67
- "@tamagui/use-previous": "2.0.0-rc.4"
39
+ "@tamagui/adapt": "2.0.0-rc.40",
40
+ "@tamagui/animate-presence": "2.0.0-rc.40",
41
+ "@tamagui/compose-refs": "2.0.0-rc.40",
42
+ "@tamagui/constants": "2.0.0-rc.40",
43
+ "@tamagui/core": "2.0.0-rc.40",
44
+ "@tamagui/create-context": "2.0.0-rc.40",
45
+ "@tamagui/dismissable": "2.0.0-rc.40",
46
+ "@tamagui/floating": "2.0.0-rc.40",
47
+ "@tamagui/focus-scope": "2.0.0-rc.40",
48
+ "@tamagui/focusable": "2.0.0-rc.40",
49
+ "@tamagui/get-token": "2.0.0-rc.40",
50
+ "@tamagui/helpers": "2.0.0-rc.40",
51
+ "@tamagui/list-item": "2.0.0-rc.40",
52
+ "@tamagui/native": "2.0.0-rc.40",
53
+ "@tamagui/portal": "2.0.0-rc.40",
54
+ "@tamagui/remove-scroll": "2.0.0-rc.40",
55
+ "@tamagui/separator": "2.0.0-rc.40",
56
+ "@tamagui/sheet": "2.0.0-rc.40",
57
+ "@tamagui/stacks": "2.0.0-rc.40",
58
+ "@tamagui/text": "2.0.0-rc.40",
59
+ "@tamagui/use-controllable-state": "2.0.0-rc.40",
60
+ "@tamagui/use-debounce": "2.0.0-rc.40",
61
+ "@tamagui/use-event": "2.0.0-rc.40",
62
+ "@tamagui/use-previous": "2.0.0-rc.40",
63
+ "@tamagui/z-index-stack": "2.0.0-rc.40"
68
64
  },
69
65
  "devDependencies": {
70
- "@tamagui/build": "2.0.0-rc.4",
66
+ "@tamagui/build": "2.0.0-rc.40",
71
67
  "react": ">=19",
72
68
  "react-dom": "*",
73
- "react-native": "0.81.5"
69
+ "react-native": "0.83.2"
74
70
  },
75
71
  "peerDependencies": {
76
72
  "react": ">=19",
package/src/Select.tsx CHANGED
@@ -22,6 +22,7 @@ import * as React from 'react'
22
22
  import {
23
23
  SelectItemParentProvider,
24
24
  SelectProvider,
25
+ SelectZIndexContext,
25
26
  useSelectContext,
26
27
  useSelectItemParentContext,
27
28
  } from './context'
@@ -511,6 +512,8 @@ function SelectInner(props: SelectScopedProps<SelectProps> & { adaptScope: strin
511
512
  dir,
512
513
  id,
513
514
  renderValue,
515
+ lazyMount,
516
+ zIndex,
514
517
  } = props
515
518
 
516
519
  const isAdapted = useAdaptIsActive(adaptScope)
@@ -604,7 +607,7 @@ function SelectInner(props: SelectScopedProps<SelectProps> & { adaptScope: strin
604
607
  [setActiveIndexFast]
605
608
  )
606
609
 
607
- return (
610
+ const content = (
608
611
  <SelectItemParentProvider
609
612
  scopeName={scope}
610
613
  scope={scope}
@@ -612,6 +615,7 @@ function SelectInner(props: SelectScopedProps<SelectProps> & { adaptScope: strin
612
615
  initialValue={React.useMemo(() => value, [open])}
613
616
  size={sizeProp}
614
617
  activeIndexSubscribe={activeIndexSubscribe}
618
+ activeIndexRef={activeIndexRef}
615
619
  valueSubscribe={valueSubscribe}
616
620
  setOpen={setOpen}
617
621
  id={id}
@@ -650,6 +654,7 @@ function SelectInner(props: SelectScopedProps<SelectProps> & { adaptScope: strin
650
654
  open={open}
651
655
  native={native}
652
656
  renderValue={renderValue}
657
+ lazyMount={lazyMount}
653
658
  >
654
659
  <SelectSheetController onOpenChange={setOpen} scope={scope}>
655
660
  {shouldRenderWebNative ? (
@@ -671,4 +676,14 @@ function SelectInner(props: SelectScopedProps<SelectProps> & { adaptScope: strin
671
676
  </SelectProvider>
672
677
  </SelectItemParentProvider>
673
678
  )
679
+
680
+ if (zIndex !== undefined) {
681
+ return (
682
+ <SelectZIndexContext.Provider value={zIndex}>
683
+ {content}
684
+ </SelectZIndexContext.Provider>
685
+ )
686
+ }
687
+
688
+ return content
674
689
  }
@@ -1,10 +1,16 @@
1
- import { FloatingOverlay, FloatingPortal } from '@floating-ui/react'
2
- import { isWeb, Theme, useIsTouchDevice, useThemeName } from '@tamagui/core'
1
+ import { isWeb } from '@tamagui/core'
2
+ import { Dismissable } from '@tamagui/dismissable'
3
3
  import type { FocusScopeProps } from '@tamagui/focus-scope'
4
4
  import { FocusScope } from '@tamagui/focus-scope'
5
- import React from 'react'
6
5
 
7
- import { useSelectContext, useSelectItemParentContext } from './context'
6
+ import { Portal } from '@tamagui/portal'
7
+ import { RemoveScroll } from '@tamagui/remove-scroll'
8
+ import { useContext } from 'react'
9
+ import {
10
+ SelectZIndexContext,
11
+ useSelectContext,
12
+ useSelectItemParentContext,
13
+ } from './context'
8
14
  import type { SelectContentProps } from './types'
9
15
  import { useShowSelectSheet } from './useSelectBreakpointActive'
10
16
 
@@ -15,25 +21,14 @@ import { useShowSelectSheet } from './useSelectBreakpointActive'
15
21
  export const SelectContent = ({
16
22
  children,
17
23
  scope,
18
- zIndex = 1000,
19
24
  ...focusScopeProps
20
25
  }: SelectContentProps & FocusScopeProps) => {
21
26
  const context = useSelectContext(scope)
22
27
  const itemParentContext = useSelectItemParentContext(scope)
23
- const themeName = useThemeName()
28
+ const zIndex = useContext(SelectZIndexContext)
24
29
  const showSheet = useShowSelectSheet(context)
25
30
 
26
- const contents = (
27
- <Theme forceClassName name={themeName}>
28
- {children}
29
- </Theme>
30
- )
31
-
32
- const touch = useIsTouchDevice()
33
-
34
- const overlayStyle = React.useMemo(() => {
35
- return { zIndex, pointerEvents: context.open ? 'auto' : 'none' } as const
36
- }, [context.open])
31
+ const contents = children
37
32
 
38
33
  if (itemParentContext.shouldRenderWebNative) {
39
34
  return <>{children}</>
@@ -47,25 +42,41 @@ export const SelectContent = ({
47
42
  }
48
43
 
49
44
  return (
50
- <FloatingPortal>
51
- <FloatingOverlay
52
- style={overlayStyle}
53
- lockScroll={!context.disablePreventBodyScroll && !!context.open && !touch}
54
- >
55
- <FocusScope
56
- {...focusScopeProps}
57
- loop
58
- enabled={!!context.open}
59
- trapped
60
- onMountAutoFocus={(e) => {
61
- // prevent FocusScope from auto-focusing - we handle focus in SelectItem
62
- e.preventDefault()
63
- }}
45
+ <Portal open={context.open} zIndex={zIndex} stackZIndex={100_000}>
46
+ <RemoveScroll enabled={context.open && !context.disablePreventBodyScroll}>
47
+ <Dismissable
48
+ asChild
49
+ forceUnmount={!context.open}
50
+ onDismiss={() => itemParentContext.setOpen(false)}
51
+ // prevent focus-outside and pointer-outside from triggering dismiss:
52
+ // SelectImpl has its own document pointerdown listener for outside clicks,
53
+ // and focus changes during open (e.g. FocusScope trapping) shouldn't dismiss.
54
+ // only escape key should trigger onDismiss here.
55
+ onFocusOutside={(e) => e.preventDefault()}
56
+ onPointerDownOutside={(e) => e.preventDefault()}
64
57
  >
65
- {/* wrap in div so FocusScope has a DOM element to attach ref to */}
66
- {isWeb ? <div style={{ display: 'contents' }}>{contents}</div> : contents}
67
- </FocusScope>
68
- </FloatingOverlay>
69
- </FloatingPortal>
58
+ <FocusScope
59
+ {...focusScopeProps}
60
+ enabled={!!context.open}
61
+ trapped
62
+ onMountAutoFocus={(e) => {
63
+ // prevent FocusScope from auto-focusing - floating-ui handles focus in SelectItem
64
+ e.preventDefault()
65
+ }}
66
+ onUnmountAutoFocus={(e) => {
67
+ // return focus to trigger on close
68
+ e.preventDefault()
69
+ const trigger = context.floatingContext?.refs?.reference?.current
70
+ if (trigger instanceof HTMLElement) {
71
+ trigger.focus()
72
+ }
73
+ }}
74
+ >
75
+ {/* div needed for FocusScope ref, display:contents keeps layout neutral */}
76
+ {isWeb ? <div style={{ display: 'contents' }}>{contents}</div> : contents}
77
+ </FocusScope>
78
+ </Dismissable>
79
+ </RemoveScroll>
80
+ </Portal>
70
81
  )
71
82
  }