@tamagui/select 2.7.7 → 3.0.0-beta.643.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,64 +1,42 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { styled, useIsomorphicLayoutEffect } from "@tamagui/core";
4
- import { SizableText } from "@tamagui/text";
3
+ import { Text, createStyledHOC, styled, useIsomorphicLayoutEffect } from "@tamagui/core";
5
4
  import * as React from "react";
6
5
  import { useSelectItemParentContext } from "./context.native.js";
6
+ import { getSelectLabelText } from "./selectionController.native.js";
7
7
  import { useSelectItemContext } from "./SelectItem.native.js";
8
+
8
9
  var ITEM_TEXT_NAME = "SelectItemText";
9
- var SelectItemTextFrame = styled(SizableText, {
10
- name: ITEM_TEXT_NAME,
11
- variants: {
12
- unstyled: {
13
- false: {
14
- userSelect: "none",
15
- color: "$color",
16
- ellipsis: true
17
- }
18
- }
19
- },
20
- defaultVariants: {
21
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
22
- }
23
- });
24
- var SelectItemText = SelectItemTextFrame.styleable(function SelectItemText2(props, forwardedRef) {
25
- var {
26
- scope,
27
- className,
28
- ...itemTextProps
29
- } = props;
30
- var itemParentContext = useSelectItemParentContext(scope);
31
- var ref = React.useRef(null);
32
- var composedRefs = useComposedRefs(forwardedRef, ref);
33
- var itemContext = useSelectItemContext(scope);
34
- var contents = React.useRef(null);
35
- contents.current = /* @__PURE__ */_jsx(SelectItemTextFrame, {
36
- className,
37
- size: itemParentContext.size,
38
- id: itemContext.textId,
39
- ...itemTextProps,
40
- ref: composedRefs
41
- });
42
- useIsomorphicLayoutEffect(function () {
43
- if (itemParentContext.initialValue === itemContext.value) {
44
- itemParentContext.setSelectedItem(contents.current);
45
- }
46
- }, []);
47
- useIsomorphicLayoutEffect(function () {
48
- return itemParentContext.valueSubscribe(function (val) {
49
- if (val === itemContext.value) {
50
- itemParentContext.setSelectedItem(contents.current);
51
- }
52
- });
53
- }, [itemContext.value]);
54
- if (itemParentContext.shouldRenderWebNative) {
55
- return /* @__PURE__ */_jsx(_Fragment, {
56
- children: props.children
57
- });
58
- }
59
- return /* @__PURE__ */_jsx(_Fragment, {
60
- children: contents.current
61
- });
10
+ var SelectItemTextFrame = styled(Text, { displayName: ITEM_TEXT_NAME });
11
+ var SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
12
+ var { scope, className, ...itemTextProps } = props;
13
+ var itemParentContext = useSelectItemParentContext(scope);
14
+ var ref = React.useRef(null);
15
+ var composedRefs = useComposedRefs(forwardedRef, ref);
16
+ var itemContext = useSelectItemContext(scope);
17
+ var contents = React.useRef(null);
18
+ var label = React.useRef(props.children);
19
+ label.current = props.children;
20
+ var labelText = getSelectLabelText(props.children);
21
+ contents.current = /* @__PURE__ */ jsx(SelectItemTextFrame, {
22
+ className,
23
+ id: itemContext.textId,
24
+ ...itemTextProps,
25
+ ref: composedRefs
26
+ });
27
+ useIsomorphicLayoutEffect(function() {
28
+ return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
29
+ }, [
30
+ itemContext.textValue,
31
+ itemContext.value,
32
+ itemParentContext.registry,
33
+ labelText
34
+ ]);
35
+ if (itemParentContext.shouldRenderWebNative) {
36
+ return /* @__PURE__ */ jsx(Fragment, { children: props.children });
37
+ }
38
+ return /* @__PURE__ */ jsx(Fragment, { children: contents.current });
62
39
  });
40
+
63
41
  export { ITEM_TEXT_NAME, SelectItemText, SelectItemTextFrame };
64
42
  //# sourceMappingURL=SelectItemText.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","Fragment","_Fragment","useComposedRefs","styled","useIsomorphicLayoutEffect","SizableText","React","useSelectItemParentContext","useSelectItemContext","ITEM_TEXT_NAME","SelectItemTextFrame","name","variants","unstyled","false","userSelect","color","ellipsis","defaultVariants","process","env","TAMAGUI_HEADLESS","SelectItemText","styleable","SelectItemText2","props","forwardedRef","scope","className","itemTextProps","itemParentContext","ref","useRef","composedRefs","itemContext","contents","current","size","id","textId","initialValue","value","setSelectedItem","valueSubscribe","val","shouldRenderWebNative","children"],"sources":["../../src/SelectItemText.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAuBC,SAAA;AAEhC,SAASC,eAAQ,+BAAiC;AAClD,SAASC,MAAA,EAAAC,yBAAmB;AAC5B,SAAAC,WAAY,QAAW;AAEvB,YAASC,KAAA;AACT,SAASC,0BAAA,QAA4B;AA6C/B,SAwBOC,oBAxBP;AAtCC,IAAAC,cAAM,mBAAiB;AAEvB,IAAAC,mBAAM,GAAAP,MAAsB,CAAAE,WAAO;EACxCM,IAAA,EAAMF,cAAA;EAENG,QAAA,EAAU;IACRC,QAAA,EAAU;MACRC,KAAA,EAAO;QACLC,UAAA,EAAY;QACZC,KAAA,EAAO;QACPC,QAAA,EAAU;MACZ;IACF;EACF;EAEAC,eAAA,EAAiB;IACfL,QAAA,EAAUM,OAAA,CAAQC,GAAA,CAAIC,gBAAA,KAAqB;EAC7C;AACF,CAAC;AAMM,IAAAC,cAAM,GAAAZ,mBAAiB,CAAAa,SAAoB,UAAAC,gBAAAC,KAAA,EAAAC,YAAA;EAChD;IAAAC,KAAS;IAAAC,SAAA;IAAA,GAAeC;EAAO,IAAAJ,KAAc;EAC3C,IAAAK,iBAAe,GAAAvB,0BAAgC,CAAAoB,KAAA;EAG/C,IAAAI,GAAA,GAAMzB,KAAA,CAAA0B,MAAA,MAAoB;EAC1B,IAAAC,YAAY,GAAA/B,eAA4C,CAAAwB,YAAA,EAAAK,GAAA;EACxD,IAAAG,WAAM,GAAA1B,oBAAe,CAAgBmB,KAAA;EACrC,IAAAQ,QAAM,GAAA7B,KAAA,CAAA0B,MAAc;EACpBG,QAAM,CAAAC,OAAA,GAAW,eAA8BrC,IAAI,CAAAW,mBAAA;IAInDkB,SAAS;IACPS,IAAC,EAAAP,iBAAA,CAAAO,IAAA;IAAAC,EAAA,EAAAJ,WAAA,CAAAK,MAAA;IAAA,GAAAV,aACC;IAAAE,GAAA,EACAE;EAAwB;EACR7B,yBACZ;IAAA,IACJ0B,iBAAK,CAAAU,YAAA,KAAAN,WAAA,CAAAO,KAAA;MAAAX,iBAAA,CAAAY,eAAA,CAAAP,QAAA,CAAAC,OAAA;IACP;EAGF;EACEhC,yBAAI,CAAkB;IACpB,OAAA0B,iBAAkB,CAAAa,cAAgB,WAASC,GAAA,EAAO;MACpD,IAAAA,GAAA,KAAAV,WAAA,CAAAO,KAAA;QACEX,iBAAC,CAAAY,eAAA,CAAAP,QAAA,CAAAC,OAAA;MAEL;IACE;EACE,IACEF,WAAA,CAAAO,KAAA,CAAkD;EACpD,IACFX,iBAAC,CAAAe,qBAAA;IACH,OAAI,eAAkB9C,IAAA,CAAAE,SAAA;MAEtB6C,QAAI,EAAArB,KAAA,CAAAqB;IACF;EAAyB;EAG3B,sBAAO/C,IAAA,CAAAE,SAAA;IACT6C,QAAA,EAAAX,QAAA,CAAAC;EACF","ignoreList":[]}
1
+ {"version":3,"file":"SelectItemText.native.js","names":["_Fragment"],"sources":["esm/SelectItemText.native.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, styled, Text, useIsomorphicLayoutEffect } from \"@tamagui/core\";\nimport * as React from \"react\";\nimport { useSelectItemParentContext } from \"./context\";\nimport { getSelectLabelText } from \"./selectionController\";\nimport { useSelectItemContext } from \"./SelectItem\";\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemTextFrame = styled(Text, {\n displayName: ITEM_TEXT_NAME\n});\nvar SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {\n var { scope, className, ...itemTextProps } = props;\n var itemParentContext = useSelectItemParentContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var itemContext = useSelectItemContext(scope);\n var contents = React.useRef(null);\n var label = React.useRef(props.children);\n label.current = props.children;\n var labelText = getSelectLabelText(props.children);\n contents.current = /* @__PURE__ */ _jsx(SelectItemTextFrame, {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n });\n useIsomorphicLayoutEffect(function() {\n return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);\n }, [\n itemContext.textValue,\n itemContext.value,\n itemParentContext.registry,\n labelText\n ]);\n if (itemParentContext.shouldRenderWebNative) {\n return /* @__PURE__ */ _jsx(_Fragment, {\n children: props.children\n });\n }\n return /* @__PURE__ */ _jsx(_Fragment, {\n children: contents.current\n });\n});\nexport {\n ITEM_TEXT_NAME,\n SelectItemText,\n SelectItemTextFrame\n};\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":";;;;;;;;;AAOA,IAAI,iBAAiB;AACrB,IAAI,sBAAsB,OAAO,MAAM,EACrC,aAAa,eACf,CAAC;AACD,IAAI,iBAAiB,gBAAgB,qBAAqB,SAAS,gBAAgB,OAAO,cAAc;CACtG,IAAI,EAAE,OAAO,WAAW,GAAG,kBAAkB;CAC7C,IAAI,oBAAoB,2BAA2B,KAAK;CACxD,IAAI,MAAM,MAAM,OAAO,IAAI;CAC3B,IAAI,eAAe,gBAAgB,cAAc,GAAG;CACpD,IAAI,cAAc,qBAAqB,KAAK;CAC5C,IAAI,WAAW,MAAM,OAAO,IAAI;CAChC,IAAI,QAAQ,MAAM,OAAO,MAAM,QAAQ;CACvC,MAAM,UAAU,MAAM;CACtB,IAAI,YAAY,mBAAmB,MAAM,QAAQ;CACjD,SAAS,UAA0B,oBAAK,qBAAqB;EAC3D;EACA,IAAI,YAAY;EAChB,GAAG;EACH,KAAK;CACP,CAAC;CACD,0BAA0B,WAAW;EACnC,OAAO,kBAAkB,SAAS,cAAc,YAAY,OAAO,MAAM,SAAS,YAAY,SAAS;CACzG,GAAG;EACD,YAAY;EACZ,YAAY;EACZ,kBAAkB;EAClB;CACF,CAAC;CACD,IAAI,kBAAkB,uBAAuB;EAC3C,OAAuB,oBAAKA,UAAW,EACrC,UAAU,MAAM,SAClB,CAAC;CACH;CACA,OAAuB,oBAAKA,UAAW,EACrC,UAAU,SAAS,QACrB,CAAC;AACH,CAAC"}
@@ -1,120 +1,108 @@
1
- import { autoUpdate, offset, useFloatingRaw as useFloating } from "@tamagui/floating";
1
+ import { View, createStyledHOC, styled } from "@tamagui/core";
2
+ import { autoUpdate, offset, useFloatingRaw } from "@tamagui/floating";
2
3
  import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { YStack } from "@tamagui/stacks";
4
+ import { composeEventHandlers } from "@tamagui/helpers";
4
5
  import * as React from "react";
5
6
  import { flushSync } from "react-dom";
6
7
  import { useSelectContext } from "./context.mjs";
7
8
  import { jsx } from "react/jsx-runtime";
9
+
8
10
  const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
9
- const SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {
10
- return /* @__PURE__ */jsx(SelectScrollButtonImpl, {
11
- componentName: SCROLL_UP_BUTTON_NAME,
12
- ...props,
13
- dir: "up",
14
- ref: forwardedRef
15
- });
11
+ const SelectScrollButtonFrame = styled(View, { displayName: "SelectScrollButton" });
12
+ const SelectScrollUpButton = createStyledHOC(SelectScrollButtonFrame, (props, forwardedRef) => {
13
+ return /* @__PURE__ */ jsx(SelectScrollButtonImpl, {
14
+ partClassName: `is_${SCROLL_UP_BUTTON_NAME}`,
15
+ ...props,
16
+ dir: "up",
17
+ ref: forwardedRef
18
+ });
16
19
  });
17
20
  SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
18
21
  const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
19
- const SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {
20
- return /* @__PURE__ */jsx(SelectScrollButtonImpl, {
21
- componentName: SCROLL_DOWN_BUTTON_NAME,
22
- ...props,
23
- dir: "down",
24
- ref: forwardedRef
25
- });
22
+ const SelectScrollDownButton = createStyledHOC(SelectScrollButtonFrame, (props, forwardedRef) => {
23
+ return /* @__PURE__ */ jsx(SelectScrollButtonImpl, {
24
+ partClassName: `is_${SCROLL_DOWN_BUTTON_NAME}`,
25
+ ...props,
26
+ dir: "down",
27
+ ref: forwardedRef
28
+ });
26
29
  });
27
30
  SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
28
- const SelectScrollButtonImpl = React.memo(React.forwardRef((props, forwardedRef) => {
29
- const {
30
- scope,
31
- dir,
32
- componentName,
33
- ...scrollIndicatorProps
34
- } = props;
35
- const {
36
- forceUpdate,
37
- open,
38
- fallback,
39
- setScrollTop,
40
- setInnerOffset,
41
- ...context
42
- } = useSelectContext(scope);
43
- const floatingRef = context.floatingContext?.refs.floating;
44
- const statusRef = React.useRef("idle");
45
- const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
46
- const frameRef = React.useRef(null);
47
- const {
48
- x,
49
- y,
50
- refs,
51
- strategy
52
- } = useFloating({
53
- open: open && isVisible,
54
- strategy: "fixed",
55
- elements: {
56
- reference: floatingRef?.current
57
- },
58
- placement: dir === "up" ? "top" : "bottom",
59
- middleware: [offset(({
60
- rects
61
- }) => -rects.floating.height)],
62
- whileElementsMounted: (...args) => autoUpdate(...args, {
63
- animationFrame: true
64
- })
65
- });
66
- const composedRef = useComposedRefs(forwardedRef, refs.setFloating);
67
- if (!isVisible) {
68
- return null;
69
- }
70
- const onScroll = amount => {
71
- const floating = floatingRef;
72
- if (!floating) return;
73
- if (fallback) {
74
- if (floating.current) {
75
- floating.current.scrollTop -= amount;
76
- flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0));
77
- }
78
- } else {
79
- flushSync(() => setInnerOffset(value => value - amount));
80
- }
81
- };
82
- return /* @__PURE__ */jsx(YStack, {
83
- ref: composedRef,
84
- componentName,
85
- "aria-hidden": true,
86
- ...scrollIndicatorProps,
87
- zIndex: 1e3,
88
- position: strategy,
89
- left: x || 0,
90
- top: y || 0,
91
- width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
92
- onPointerEnter: () => {
93
- statusRef.current = "active";
94
- let prevNow = Date.now();
95
- function frame() {
96
- const element = floatingRef?.current;
97
- if (element) {
98
- const currentNow = Date.now();
99
- const msElapsed = currentNow - prevNow;
100
- prevNow = currentNow;
101
- const pixelsToScroll = msElapsed / 2;
102
- const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
103
- const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
104
- onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels));
105
- if (scrollRemaining) {
106
- frameRef.current = requestAnimationFrame(frame);
107
- }
108
- }
109
- }
110
- cancelAnimationFrame(frameRef.current);
111
- frameRef.current = requestAnimationFrame(frame);
112
- },
113
- onPointerLeave: () => {
114
- statusRef.current = "idle";
115
- cancelAnimationFrame(frameRef.current);
116
- }
117
- });
31
+ const SelectScrollButtonImpl = React.memo(createStyledHOC(SelectScrollButtonFrame, (props, forwardedRef) => {
32
+ const { scope, dir, partClassName, ...scrollIndicatorProps } = props;
33
+ const { className, onPointerEnter, onPointerLeave, ...frameProps } = scrollIndicatorProps;
34
+ const { open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(scope);
35
+ const floatingRef = context.floatingContext?.refs.floating;
36
+ const statusRef = React.useRef("idle");
37
+ const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
38
+ const frameRef = React.useRef(null);
39
+ const { x, y, refs, strategy } = useFloatingRaw({
40
+ open: open && isVisible,
41
+ strategy: "fixed",
42
+ elements: { reference: floatingRef?.current },
43
+ placement: dir === "up" ? "top" : "bottom",
44
+ middleware: [offset(({ rects }) => -rects.floating.height)],
45
+ whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: true })
46
+ });
47
+ const setFloatingRef = React.useCallback((node) => {
48
+ refs.setFloating(node);
49
+ }, [refs.setFloating]);
50
+ const composedRef = useComposedRefs(forwardedRef, setFloatingRef);
51
+ React.useEffect(() => {
52
+ return () => cancelAnimationFrame(frameRef.current);
53
+ }, []);
54
+ if (!isVisible) {
55
+ return null;
56
+ }
57
+ const onScroll = (amount) => {
58
+ const floating = floatingRef;
59
+ if (!floating) return;
60
+ if (fallback) {
61
+ if (floating.current) {
62
+ floating.current.scrollTop -= amount;
63
+ flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0));
64
+ }
65
+ } else {
66
+ flushSync(() => setInnerOffset((value) => value - amount));
67
+ }
68
+ };
69
+ return /* @__PURE__ */ jsx(SelectScrollButtonFrame, {
70
+ ref: composedRef,
71
+ className: `${partClassName} ${className || ""}`.trim(),
72
+ "aria-hidden": true,
73
+ ...frameProps,
74
+ zIndex: 1e3,
75
+ position: strategy,
76
+ left: x || 0,
77
+ top: y || 0,
78
+ width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
79
+ onPointerEnter: composeEventHandlers(onPointerEnter, () => {
80
+ statusRef.current = "active";
81
+ let prevNow = Date.now();
82
+ function frame() {
83
+ const element = floatingRef?.current;
84
+ if (element) {
85
+ const currentNow = Date.now();
86
+ const msElapsed = currentNow - prevNow;
87
+ prevNow = currentNow;
88
+ const pixelsToScroll = msElapsed / 2;
89
+ const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
90
+ const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
91
+ onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels));
92
+ if (scrollRemaining) {
93
+ frameRef.current = requestAnimationFrame(frame);
94
+ }
95
+ }
96
+ }
97
+ cancelAnimationFrame(frameRef.current);
98
+ frameRef.current = requestAnimationFrame(frame);
99
+ }),
100
+ onPointerLeave: composeEventHandlers(onPointerLeave, () => {
101
+ statusRef.current = "idle";
102
+ cancelAnimationFrame(frameRef.current);
103
+ })
104
+ });
118
105
  }));
119
- export { SelectScrollDownButton, SelectScrollUpButton };
106
+
107
+ export { SelectScrollButtonFrame, SelectScrollDownButton, SelectScrollUpButton };
120
108
  //# sourceMappingURL=SelectScrollButton.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["autoUpdate","offset","useFloatingRaw","useFloating","useComposedRefs","YStack","React","flushSync","useSelectContext","jsx","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","forwardRef","props","forwardedRef","SelectScrollButtonImpl","componentName","dir","ref","displayName","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","memo","scope","scrollIndicatorProps","forceUpdate","open","fallback","setScrollTop","setInnerOffset","context","floatingRef","floatingContext","refs","floating","statusRef","useRef","isVisible","frameRef","x","y","strategy","elements","reference","current","placement","middleware","rects","height","whileElementsMounted","args","animationFrame","composedRef","setFloating","onScroll","amount","scrollTop","value","zIndex","position","left","top","width","offsetWidth","onPointerEnter","prevNow","Date","now","frame","element","currentNow","msElapsed","pixelsToScroll","remainingPixels","scrollHeight","clientHeight","scrollRemaining","Math","min","max","requestAnimationFrame","cancelAnimationFrame","onPointerLeave"],"sources":["../../src/SelectScrollButton.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectScrollButton.js","names":["useFloating"],"sources":["esm/SelectScrollButton.js"],"sourcesContent":["import { createStyledHOC, styled, View } from \"@tamagui/core\";\nimport { autoUpdate, offset, useFloatingRaw as useFloating } from \"@tamagui/floating\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useSelectContext } from \"./context\";\nimport { jsx } from \"react/jsx-runtime\";\nconst SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nconst SelectScrollButtonFrame = styled(View, {\n displayName: \"SelectScrollButton\"\n});\nconst SelectScrollUpButton = createStyledHOC(\n SelectScrollButtonFrame,\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n partClassName: `is_${SCROLL_UP_BUTTON_NAME}`,\n ...props,\n dir: \"up\",\n ref: forwardedRef\n }\n );\n }\n);\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nconst SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nconst SelectScrollDownButton = createStyledHOC(\n SelectScrollButtonFrame,\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n partClassName: `is_${SCROLL_DOWN_BUTTON_NAME}`,\n ...props,\n dir: \"down\",\n ref: forwardedRef\n }\n );\n }\n);\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nconst SelectScrollButtonImpl = React.memo(\n createStyledHOC(\n SelectScrollButtonFrame,\n (props, forwardedRef) => {\n const { scope, dir, partClassName, ...scrollIndicatorProps } = props;\n const { className, onPointerEnter, onPointerLeave, ...frameProps } = scrollIndicatorProps;\n const { open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(scope);\n const floatingRef = context.floatingContext?.refs.floating;\n const statusRef = React.useRef(\"idle\");\n const isVisible = context[dir === \"down\" ? \"canScrollDown\" : \"canScrollUp\"];\n const frameRef = React.useRef(null);\n const { x, y, refs, strategy } = useFloating({\n open: open && isVisible,\n strategy: \"fixed\",\n elements: {\n reference: floatingRef?.current\n },\n placement: dir === \"up\" ? \"top\" : \"bottom\",\n middleware: [offset(({ rects }) => -rects.floating.height)],\n whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: true })\n });\n const setFloatingRef = React.useCallback(\n (node) => {\n refs.setFloating(node);\n },\n [refs.setFloating]\n );\n const composedRef = useComposedRefs(forwardedRef, setFloatingRef);\n React.useEffect(() => {\n return () => cancelAnimationFrame(frameRef.current);\n }, []);\n if (!isVisible) {\n return null;\n }\n const onScroll = (amount) => {\n const floating = floatingRef;\n if (!floating) return;\n if (fallback) {\n if (floating.current) {\n floating.current.scrollTop -= amount;\n flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0));\n }\n } else {\n flushSync(() => setInnerOffset((value) => value - amount));\n }\n };\n return /* @__PURE__ */ jsx(\n SelectScrollButtonFrame,\n {\n ref: composedRef,\n className: `${partClassName} ${className || \"\"}`.trim(),\n \"aria-hidden\": true,\n ...frameProps,\n zIndex: 1e3,\n position: strategy,\n left: x || 0,\n top: y || 0,\n width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,\n onPointerEnter: composeEventHandlers(onPointerEnter, () => {\n statusRef.current = \"active\";\n let prevNow = Date.now();\n function frame() {\n const element = floatingRef?.current;\n if (element) {\n const currentNow = Date.now();\n const msElapsed = currentNow - prevNow;\n prevNow = currentNow;\n const pixelsToScroll = msElapsed / 2;\n const remainingPixels = dir === \"up\" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;\n const scrollRemaining = dir === \"up\" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;\n onScroll(\n dir === \"up\" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)\n );\n if (scrollRemaining) {\n frameRef.current = requestAnimationFrame(frame);\n }\n }\n }\n cancelAnimationFrame(frameRef.current);\n frameRef.current = requestAnimationFrame(frame);\n }),\n onPointerLeave: composeEventHandlers(onPointerLeave, () => {\n statusRef.current = \"idle\";\n cancelAnimationFrame(frameRef.current);\n })\n }\n );\n }\n )\n);\nexport {\n SelectScrollButtonFrame,\n SelectScrollDownButton,\n SelectScrollUpButton\n};\n//# sourceMappingURL=SelectScrollButton.js.map\n"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- var SelectScrollUpButton = function (_) {
2
- return null;
3
- };
4
- var SelectScrollDownButton = function (_) {
5
- return null;
6
- };
7
- export { SelectScrollDownButton, SelectScrollUpButton };
1
+ import { View, createStyledHOC, styled } from "@tamagui/core";
2
+
3
+ var SelectScrollButtonFrame = styled(View, { displayName: "SelectScrollButton" });
4
+ var SelectScrollUpButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {
5
+ return null;
6
+ });
7
+ var SelectScrollDownButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {
8
+ return null;
9
+ });
10
+
11
+ export { SelectScrollButtonFrame, SelectScrollDownButton, SelectScrollUpButton };
8
12
  //# sourceMappingURL=SelectScrollButton.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SelectScrollUpButton","_","SelectScrollDownButton"],"sources":["../../src/SelectScrollButton.native.tsx"],"sourcesContent":[null],"mappings":"AAAO,IAAIA,oBAAA,GAAuB,SAAAA,CAASC,CAAA,EAAG;EAC1C,OAAO;AACX;AACO,IAAIC,sBAAA,GAAyB,SAAAA,CAASD,CAAA,EAAG;EAC5C,OAAO;AACX","ignoreList":[]}
1
+ {"version":3,"file":"SelectScrollButton.native.js","names":[],"sources":["esm/SelectScrollButton.native.js"],"sourcesContent":["import { createStyledHOC, styled, View } from \"@tamagui/core\";\nvar SelectScrollButtonFrame = styled(View, {\n displayName: \"SelectScrollButton\"\n});\nvar SelectScrollUpButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {\n return null;\n});\nvar SelectScrollDownButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {\n return null;\n});\nexport {\n SelectScrollButtonFrame,\n SelectScrollDownButton,\n SelectScrollUpButton\n};\n//# sourceMappingURL=SelectScrollButton.native.js.map\n"],"mappings":";;;AACA,IAAI,0BAA0B,OAAO,MAAM,EACzC,aAAa,qBACf,CAAC;AACD,IAAI,uBAAuB,gBAAgB,yBAAyB,SAAS,QAAQ;CACnF,OAAO;AACT,CAAC;AACD,IAAI,yBAAyB,gBAAgB,yBAAyB,SAAS,QAAQ;CACrF,OAAO;AACT,CAAC"}
@@ -1,63 +1,61 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { ListItem } from "@tamagui/list-item";
3
- import * as React from "react";
2
+ import { isWeb } from "@tamagui/constants";
3
+ import { View, createChangeEventDetails, createStyledHOC, styled } from "@tamagui/core";
4
+ import { composeEventHandlers } from "@tamagui/helpers";
4
5
  import { useSelectContext, useSelectItemParentContext } from "./context.mjs";
5
6
  import { jsx } from "react/jsx-runtime";
6
- const TRIGGER_NAME = "SelectTrigger";
7
- const isPointerCoarse = typeof window !== "undefined" && true ? window.matchMedia("(pointer:coarse)").matches : true;
8
- const SelectTrigger = React.forwardRef(function SelectTrigger2(props, forwardedRef) {
9
- const {
10
- scope,
11
- disabled = false,
12
- unstyled = false,
13
- ...triggerProps
14
- } = props;
15
- const context = useSelectContext(scope);
16
- const itemParentContext = useSelectItemParentContext(scope);
17
- const composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);
18
- if (itemParentContext.shouldRenderWebNative) return null;
19
- return /* @__PURE__ */jsx(ListItem, {
20
- componentName: TRIGGER_NAME,
21
- unstyled,
22
- render: "button",
23
- type: "button",
24
- id: itemParentContext.id,
25
- ...(!unstyled && {
26
- focusVisibleStyle: {
27
- outlineStyle: "solid",
28
- outlineWidth: 2,
29
- outlineColor: "$outlineColor"
30
- },
31
- borderWidth: 1,
32
- size: itemParentContext.size
33
- }),
34
- role: "combobox",
35
- "aria-haspopup": "listbox",
36
- "aria-expanded": context.open,
37
- "aria-autocomplete": "none",
38
- dir: context.dir,
39
- disabled,
40
- "data-disabled": disabled ? "" : void 0,
41
- ...triggerProps,
42
- ref: composedRefs,
43
- ...(itemParentContext.interactions ? {
44
- ...itemParentContext.interactions.getReferenceProps(),
45
- ...(isPointerCoarse ? {
46
- onPress() {
47
- itemParentContext.setOpen(!context.open);
48
- }
49
- } : {
50
- onMouseDown() {
51
- context.floatingContext?.update?.();
52
- itemParentContext.setOpen(!context.open);
53
- }
54
- })
55
- } : {
56
- onPress() {
57
- itemParentContext.setOpen(!context.open);
58
- }
59
- })
60
- });
7
+
8
+ const SelectTriggerFrame = styled(View, {
9
+ displayName: "SelectTrigger",
10
+ alignItems: "center",
11
+ flexDirection: "row",
12
+ render: /* @__PURE__ */ jsx("button", { type: "button" })
61
13
  });
62
- export { SelectTrigger };
14
+ const SelectTrigger = createStyledHOC(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {
15
+ const { scope, disabled = false, ...triggerProps } = props;
16
+ const context = useSelectContext(scope);
17
+ const itemParentContext = useSelectItemParentContext(scope);
18
+ const composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);
19
+ if (itemParentContext.shouldRenderWebNative) return null;
20
+ const toggleOpen = (event, reason = "trigger-press") => {
21
+ if (!disabled) itemParentContext.requestOpenChange(!context.open, createChangeEventDetails(reason, event?.nativeEvent || event, event?.currentTarget));
22
+ };
23
+ const interactionProps = itemParentContext.interactions ? itemParentContext.interactions.getReferenceProps({
24
+ ...triggerProps,
25
+ onMouseDown: composeEventHandlers(triggerProps.onMouseDown, () => context.floatingContext?.update?.())
26
+ }) : {
27
+ ...triggerProps,
28
+ ...isWeb ? { onMouseDown: composeEventHandlers(triggerProps.onMouseDown, (event) => {
29
+ event.preventDefault();
30
+ toggleOpen(event);
31
+ }) } : { onPress: composeEventHandlers(triggerProps.onPress, toggleOpen) },
32
+ onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {
33
+ if (event.key === "Enter" || event.key === " ") {
34
+ event.preventDefault();
35
+ toggleOpen(event, "keyboard");
36
+ }
37
+ })
38
+ };
39
+ return /* @__PURE__ */ jsx(SelectTriggerFrame, {
40
+ type: "button",
41
+ id: itemParentContext.id,
42
+ role: "combobox",
43
+ "aria-haspopup": "listbox",
44
+ "aria-expanded": context.open,
45
+ "data-state": context.open ? "open" : "closed",
46
+ "aria-autocomplete": "none",
47
+ accessibilityRole: isWeb ? void 0 : "button",
48
+ accessibilityState: isWeb ? void 0 : {
49
+ expanded: context.open,
50
+ disabled
51
+ },
52
+ dir: context.dir,
53
+ disabled,
54
+ "data-disabled": disabled ? "" : void 0,
55
+ ...interactionProps,
56
+ ref: composedRefs
57
+ });
58
+ });
59
+
60
+ export { SelectTrigger, SelectTriggerFrame };
63
61
  //# sourceMappingURL=SelectTrigger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","ListItem","React","useSelectContext","useSelectItemParentContext","jsx","TRIGGER_NAME","isPointerCoarse","window","matchMedia","matches","SelectTrigger","forwardRef","SelectTrigger2","props","forwardedRef","scope","disabled","unstyled","triggerProps","context","itemParentContext","composedRefs","floatingContext","refs","setReference","shouldRenderWebNative","componentName","render","type","id","focusVisibleStyle","outlineStyle","outlineWidth","outlineColor","borderWidth","size","role","open","dir","ref","interactions","getReferenceProps","onPress","setOpen","onMouseDown","update"],"sources":["SelectTrigger.mjs"],"sourcesContent":["import { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { ListItem } from \"@tamagui/list-item\";\nimport * as React from \"react\";\nimport { useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst TRIGGER_NAME = \"SelectTrigger\";\nconst isPointerCoarse = typeof window !== \"undefined\" && true ? window.matchMedia(\"(pointer:coarse)\").matches : true;\nconst SelectTrigger = React.forwardRef(function SelectTrigger2(props, forwardedRef) {\n\tconst { scope, disabled = false, unstyled = false, ...triggerProps } = props;\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);\n\tif (itemParentContext.shouldRenderWebNative) return null;\n\treturn /* @__PURE__ */ jsx(ListItem, {\n\t\tcomponentName: TRIGGER_NAME,\n\t\tunstyled,\n\t\trender: \"button\",\n\t\ttype: \"button\",\n\t\tid: itemParentContext.id,\n\t\t...!unstyled && {\n\t\t\tfocusVisibleStyle: {\n\t\t\t\toutlineStyle: \"solid\",\n\t\t\t\toutlineWidth: 2,\n\t\t\t\toutlineColor: \"$outlineColor\"\n\t\t\t},\n\t\t\tborderWidth: 1,\n\t\t\tsize: itemParentContext.size\n\t\t},\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\tdir: context.dir,\n\t\tdisabled,\n\t\t\"data-disabled\": disabled ? \"\" : void 0,\n\t\t...triggerProps,\n\t\tref: composedRefs,\n\t\t...itemParentContext.interactions ? {\n\t\t\t...itemParentContext.interactions.getReferenceProps(),\n\t\t\t...isPointerCoarse ? { onPress() {\n\t\t\t\titemParentContext.setOpen(!context.open);\n\t\t\t} } : { onMouseDown() {\n\t\t\t\tcontext.floatingContext?.update?.();\n\t\t\t\titemParentContext.setOpen(!context.open);\n\t\t\t} }\n\t\t} : { onPress() {\n\t\t\titemParentContext.setOpen(!context.open);\n\t\t} }\n\t});\n});\n\nexport { SelectTrigger };"],"mappings":"AAAA,SAASA,eAAe,QAAQ,uBAAuB;AACvD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,gBAAgB,EAAEC,0BAA0B,QAAQ,eAAW;AACxE,SAASC,GAAG,QAAQ,mBAAmB;AAEvC,MAAMC,YAAY,GAAG,eAAe;AACpC,MAAMC,eAAe,GAAG,OAAOC,MAAM,KAAK,WAAW,IAAI,IAAI,GAAGA,MAAM,CAACC,UAAU,CAAC,kBAAkB,CAAC,CAACC,OAAO,GAAG,IAAI;AACpH,MAAMC,aAAa,GAAGT,KAAK,CAACU,UAAU,CAAC,SAASC,cAAcA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACnF,MAAM;IAAEC,KAAK;IAAEC,QAAQ,GAAG,KAAK;IAAEC,QAAQ,GAAG,KAAK;IAAE,GAAGC;EAAa,CAAC,GAAGL,KAAK;EAC5E,MAAMM,OAAO,GAAGjB,gBAAgB,CAACa,KAAK,CAAC;EACvC,MAAMK,iBAAiB,GAAGjB,0BAA0B,CAACY,KAAK,CAAC;EAC3D,MAAMM,YAAY,GAAGtB,eAAe,CAACe,YAAY,EAAEK,OAAO,CAACG,eAAe,EAAEC,IAAI,CAACC,YAAY,CAAC;EAC9F,IAAIJ,iBAAiB,CAACK,qBAAqB,EAAE,OAAO,IAAI;EACxD,OAAO,eAAgBrB,GAAG,CAACJ,QAAQ,EAAE;IACpC0B,aAAa,EAAErB,YAAY;IAC3BY,QAAQ;IACRU,MAAM,EAAE,QAAQ;IAChBC,IAAI,EAAE,QAAQ;IACdC,EAAE,EAAET,iBAAiB,CAACS,EAAE;IACxB,IAAG,CAACZ,QAAQ,IAAI;MACfa,iBAAiB,EAAE;QAClBC,YAAY,EAAE,OAAO;QACrBC,YAAY,EAAE,CAAC;QACfC,YAAY,EAAE;MACf,CAAC;MACDC,WAAW,EAAE,CAAC;MACdC,IAAI,EAAEf,iBAAiB,CAACe;IACzB,CAAC;IACDC,IAAI,EAAE,UAAU;IAChB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAEjB,OAAO,CAACkB,IAAI;IAC7B,mBAAmB,EAAE,MAAM;IAC3BC,GAAG,EAAEnB,OAAO,CAACmB,GAAG;IAChBtB,QAAQ;IACR,eAAe,EAAEA,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC;IACvC,GAAGE,YAAY;IACfqB,GAAG,EAAElB,YAAY;IACjB,IAAGD,iBAAiB,CAACoB,YAAY,GAAG;MACnC,GAAGpB,iBAAiB,CAACoB,YAAY,CAACC,iBAAiB,CAAC,CAAC;MACrD,IAAGnC,eAAe,GAAG;QAAEoC,OAAOA,CAAA,EAAG;UAChCtB,iBAAiB,CAACuB,OAAO,CAAC,CAACxB,OAAO,CAACkB,IAAI,CAAC;QACzC;MAAE,CAAC,GAAG;QAAEO,WAAWA,CAAA,EAAG;UACrBzB,OAAO,CAACG,eAAe,EAAEuB,MAAM,GAAG,CAAC;UACnCzB,iBAAiB,CAACuB,OAAO,CAAC,CAACxB,OAAO,CAACkB,IAAI,CAAC;QACzC;MAAE,CAAC;IACJ,CAAC,GAAG;MAAEK,OAAOA,CAAA,EAAG;QACftB,iBAAiB,CAACuB,OAAO,CAAC,CAACxB,OAAO,CAACkB,IAAI,CAAC;MACzC;IAAE,CAAC;EACJ,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,SAAS3B,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"SelectTrigger.js","names":[],"sources":["esm/SelectTrigger.js"],"sourcesContent":["import { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { View, createChangeEventDetails, createStyledHOC, styled } from \"@tamagui/core\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport { useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst SelectTriggerFrame = styled(View, {\n\tdisplayName: \"SelectTrigger\",\n\talignItems: \"center\",\n\tflexDirection: \"row\",\n\trender: /* @__PURE__ */ jsx(\"button\", { type: \"button\" })\n});\nconst SelectTrigger = createStyledHOC(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {\n\tconst { scope, disabled = false, ...triggerProps } = props;\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);\n\tif (itemParentContext.shouldRenderWebNative) return null;\n\tconst toggleOpen = (event, reason = \"trigger-press\") => {\n\t\tif (!disabled) itemParentContext.requestOpenChange(!context.open, createChangeEventDetails(reason, event?.nativeEvent || event, event?.currentTarget));\n\t};\n\tconst interactionProps = itemParentContext.interactions ? itemParentContext.interactions.getReferenceProps({\n\t\t...triggerProps,\n\t\tonMouseDown: composeEventHandlers(triggerProps.onMouseDown, () => context.floatingContext?.update?.())\n\t}) : {\n\t\t...triggerProps,\n\t\t...isWeb ? { onMouseDown: composeEventHandlers(triggerProps.onMouseDown, (event) => {\n\t\t\tevent.preventDefault();\n\t\t\ttoggleOpen(event);\n\t\t}) } : { onPress: composeEventHandlers(triggerProps.onPress, toggleOpen) },\n\t\tonKeyDown: composeEventHandlers(triggerProps.onKeyDown, (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__ */ 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\"data-state\": context.open ? \"open\" : \"closed\",\n\t\t\"aria-autocomplete\": \"none\",\n\t\taccessibilityRole: isWeb ? void 0 : \"button\",\n\t\taccessibilityState: 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\nexport { SelectTrigger, SelectTriggerFrame };"],"mappings":";;;;;;;;AAOA,MAAM,qBAAqB,OAAO,MAAM;CACvC,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAwB,oBAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,CAAC;AACD,MAAM,gBAAgB,gBAAgB,oBAAoB,SAAS,eAAe,OAAO,cAAc;CACtG,MAAM,EAAE,OAAO,WAAW,OAAO,GAAG,iBAAiB;CACrD,MAAM,UAAU,iBAAiB,KAAK;CACtC,MAAM,oBAAoB,2BAA2B,KAAK;CAC1D,MAAM,eAAe,gBAAgB,cAAc,QAAQ,iBAAiB,KAAK,YAAY;CAC7F,IAAI,kBAAkB,uBAAuB,OAAO;CACpD,MAAM,cAAc,OAAO,SAAS,oBAAoB;EACvD,IAAI,CAAC,UAAU,kBAAkB,kBAAkB,CAAC,QAAQ,MAAM,yBAAyB,QAAQ,OAAO,eAAe,OAAO,OAAO,aAAa,CAAC;CACtJ;CACA,MAAM,mBAAmB,kBAAkB,eAAe,kBAAkB,aAAa,kBAAkB;EAC1G,GAAG;EACH,aAAa,qBAAqB,aAAa,mBAAmB,QAAQ,iBAAiB,SAAS,CAAC;CACtG,CAAC,IAAI;EACJ,GAAG;EACH,GAAG,QAAQ,EAAE,aAAa,qBAAqB,aAAa,cAAc,UAAU;GACnF,MAAM,eAAe;GACrB,WAAW,KAAK;EACjB,CAAC,EAAE,IAAI,EAAE,SAAS,qBAAqB,aAAa,SAAS,UAAU,EAAE;EACzE,WAAW,qBAAqB,aAAa,YAAY,UAAU;GAClE,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;IAC/C,MAAM,eAAe;IACrB,WAAW,OAAO,UAAU;GAC7B;EACD,CAAC;CACF;CACA,OAAuB,oBAAI,oBAAoB;EAC9C,MAAM;EACN,IAAI,kBAAkB;EACtB,MAAM;EACN,iBAAiB;EACjB,iBAAiB,QAAQ;EACzB,cAAc,QAAQ,OAAO,SAAS;EACtC,qBAAqB;EACrB,mBAAmB,QAAQ,KAAK,IAAI;EACpC,oBAAoB,QAAQ,KAAK,IAAI;GACpC,UAAU,QAAQ;GAClB;EACD;EACA,KAAK,QAAQ;EACb;EACA,iBAAiB,WAAW,KAAK,KAAK;EACtC,GAAG;EACH,KAAK;CACN,CAAC;AACF,CAAC"}