@tamagui/select 2.7.6 → 3.0.0-beta.637.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/dist/cjs/Select.cjs +409 -467
  2. package/dist/cjs/Select.native.cjs +495 -0
  3. package/dist/cjs/Select.native.js +445 -492
  4. package/dist/cjs/Select.native.js.map +1 -1
  5. package/dist/cjs/SelectContent.cjs +80 -79
  6. package/dist/cjs/SelectContent.native.cjs +30 -0
  7. package/dist/cjs/SelectContent.native.js +18 -22
  8. package/dist/cjs/SelectContent.native.js.map +1 -1
  9. package/dist/cjs/SelectImpl.cjs +299 -319
  10. package/dist/cjs/SelectImpl.native.cjs +30 -0
  11. package/dist/cjs/SelectImpl.native.js +17 -24
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +268 -205
  14. package/dist/cjs/SelectItem.native.cjs +317 -0
  15. package/dist/cjs/SelectItem.native.js +291 -211
  16. package/dist/cjs/SelectItem.native.js.map +1 -1
  17. package/dist/cjs/SelectItemText.cjs +49 -79
  18. package/dist/cjs/SelectItemText.native.cjs +74 -0
  19. package/dist/cjs/SelectItemText.native.js +50 -79
  20. package/dist/cjs/SelectItemText.native.js.map +1 -1
  21. package/dist/cjs/SelectScrollButton.cjs +111 -130
  22. package/dist/cjs/SelectScrollButton.native.cjs +38 -0
  23. package/dist/cjs/SelectScrollButton.native.js +25 -22
  24. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  25. package/dist/cjs/SelectTrigger.cjs +69 -84
  26. package/dist/cjs/SelectTrigger.native.cjs +91 -0
  27. package/dist/cjs/SelectTrigger.native.js +71 -66
  28. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  29. package/dist/cjs/SelectViewport.cjs +119 -142
  30. package/dist/cjs/SelectViewport.native.cjs +73 -0
  31. package/dist/cjs/SelectViewport.native.js +54 -50
  32. package/dist/cjs/SelectViewport.native.js.map +1 -1
  33. package/dist/cjs/constants.cjs +21 -22
  34. package/dist/cjs/constants.native.cjs +41 -0
  35. package/dist/cjs/constants.native.js +21 -21
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/context.cjs +38 -48
  38. package/dist/cjs/context.native.cjs +58 -0
  39. package/dist/cjs/context.native.js +40 -49
  40. package/dist/cjs/context.native.js.map +1 -1
  41. package/dist/cjs/index.cjs +15 -11
  42. package/dist/cjs/index.native.cjs +27 -0
  43. package/dist/cjs/index.native.js +15 -10
  44. package/dist/cjs/index.native.js.map +1 -1
  45. package/dist/cjs/selectionController.cjs +334 -0
  46. package/dist/cjs/selectionController.native.cjs +403 -0
  47. package/dist/cjs/selectionController.native.js +405 -0
  48. package/dist/cjs/selectionController.native.js.map +1 -0
  49. package/dist/cjs/types.cjs +10 -11
  50. package/dist/cjs/types.native.cjs +19 -0
  51. package/dist/cjs/types.native.js +10 -10
  52. package/dist/cjs/types.native.js.map +1 -1
  53. package/dist/esm/Select.mjs +382 -443
  54. package/dist/esm/Select.mjs.map +1 -1
  55. package/dist/esm/Select.native.js +418 -469
  56. package/dist/esm/Select.native.js.map +1 -1
  57. package/dist/esm/SelectContent.mjs +67 -61
  58. package/dist/esm/SelectContent.mjs.map +1 -1
  59. package/dist/esm/SelectContent.native.js +4 -5
  60. package/dist/esm/SelectContent.native.js.map +1 -1
  61. package/dist/esm/SelectImpl.mjs +284 -294
  62. package/dist/esm/SelectImpl.mjs.map +1 -1
  63. package/dist/esm/SelectImpl.native.js +5 -8
  64. package/dist/esm/SelectImpl.native.js.map +1 -1
  65. package/dist/esm/SelectItem.mjs +252 -182
  66. package/dist/esm/SelectItem.mjs.map +1 -1
  67. package/dist/esm/SelectItem.native.js +276 -190
  68. package/dist/esm/SelectItem.native.js.map +1 -1
  69. package/dist/esm/SelectItemText.mjs +33 -55
  70. package/dist/esm/SelectItemText.mjs.map +1 -1
  71. package/dist/esm/SelectItemText.native.js +34 -56
  72. package/dist/esm/SelectItemText.native.js.map +1 -1
  73. package/dist/esm/SelectScrollButton.mjs +95 -107
  74. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  75. package/dist/esm/SelectScrollButton.native.js +11 -7
  76. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  77. package/dist/esm/SelectTrigger.mjs +56 -58
  78. package/dist/esm/SelectTrigger.mjs.map +1 -1
  79. package/dist/esm/SelectTrigger.native.js +54 -44
  80. package/dist/esm/SelectTrigger.native.js.map +1 -1
  81. package/dist/esm/SelectViewport.mjs +104 -119
  82. package/dist/esm/SelectViewport.mjs.map +1 -1
  83. package/dist/esm/SelectViewport.native.js +44 -39
  84. package/dist/esm/SelectViewport.native.js.map +1 -1
  85. package/dist/esm/constants.mjs +1 -0
  86. package/dist/esm/constants.mjs.map +1 -1
  87. package/dist/esm/constants.native.js +1 -0
  88. package/dist/esm/constants.native.js.map +1 -1
  89. package/dist/esm/context.mjs +20 -28
  90. package/dist/esm/context.mjs.map +1 -1
  91. package/dist/esm/context.native.js +23 -31
  92. package/dist/esm/context.native.js.map +1 -1
  93. package/dist/esm/index.js +13 -3
  94. package/dist/esm/index.mjs +13 -3
  95. package/dist/esm/index.native.js +13 -3
  96. package/dist/esm/selectionController.mjs +305 -0
  97. package/dist/esm/selectionController.mjs.map +1 -0
  98. package/dist/esm/selectionController.native.js +372 -0
  99. package/dist/esm/selectionController.native.js.map +1 -0
  100. package/dist/esm/types.mjs +0 -2
  101. package/dist/esm/types.native.js +0 -2
  102. package/dist/jsx/Select.mjs +382 -443
  103. package/dist/jsx/Select.mjs.map +1 -1
  104. package/dist/jsx/Select.native.cjs +495 -0
  105. package/dist/jsx/Select.native.js +445 -492
  106. package/dist/jsx/Select.native.js.map +1 -1
  107. package/dist/jsx/SelectContent.mjs +67 -61
  108. package/dist/jsx/SelectContent.mjs.map +1 -1
  109. package/dist/jsx/SelectContent.native.cjs +30 -0
  110. package/dist/jsx/SelectContent.native.js +18 -22
  111. package/dist/jsx/SelectContent.native.js.map +1 -1
  112. package/dist/jsx/SelectImpl.mjs +284 -294
  113. package/dist/jsx/SelectImpl.mjs.map +1 -1
  114. package/dist/jsx/SelectImpl.native.cjs +30 -0
  115. package/dist/jsx/SelectImpl.native.js +17 -24
  116. package/dist/jsx/SelectImpl.native.js.map +1 -1
  117. package/dist/jsx/SelectItem.mjs +252 -182
  118. package/dist/jsx/SelectItem.mjs.map +1 -1
  119. package/dist/jsx/SelectItem.native.cjs +317 -0
  120. package/dist/jsx/SelectItem.native.js +291 -211
  121. package/dist/jsx/SelectItem.native.js.map +1 -1
  122. package/dist/jsx/SelectItemText.mjs +33 -55
  123. package/dist/jsx/SelectItemText.mjs.map +1 -1
  124. package/dist/jsx/SelectItemText.native.cjs +74 -0
  125. package/dist/jsx/SelectItemText.native.js +50 -79
  126. package/dist/jsx/SelectItemText.native.js.map +1 -1
  127. package/dist/jsx/SelectScrollButton.mjs +95 -107
  128. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  129. package/dist/jsx/SelectScrollButton.native.cjs +38 -0
  130. package/dist/jsx/SelectScrollButton.native.js +25 -22
  131. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  132. package/dist/jsx/SelectTrigger.mjs +56 -58
  133. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  134. package/dist/jsx/SelectTrigger.native.cjs +91 -0
  135. package/dist/jsx/SelectTrigger.native.js +71 -66
  136. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  137. package/dist/jsx/SelectViewport.mjs +104 -119
  138. package/dist/jsx/SelectViewport.mjs.map +1 -1
  139. package/dist/jsx/SelectViewport.native.cjs +73 -0
  140. package/dist/jsx/SelectViewport.native.js +54 -50
  141. package/dist/jsx/SelectViewport.native.js.map +1 -1
  142. package/dist/jsx/constants.mjs +1 -0
  143. package/dist/jsx/constants.mjs.map +1 -1
  144. package/dist/jsx/constants.native.cjs +41 -0
  145. package/dist/jsx/constants.native.js +21 -21
  146. package/dist/jsx/constants.native.js.map +1 -1
  147. package/dist/jsx/context.mjs +20 -28
  148. package/dist/jsx/context.mjs.map +1 -1
  149. package/dist/jsx/context.native.cjs +58 -0
  150. package/dist/jsx/context.native.js +40 -49
  151. package/dist/jsx/context.native.js.map +1 -1
  152. package/dist/jsx/index.js +13 -3
  153. package/dist/jsx/index.mjs +13 -3
  154. package/dist/jsx/index.native.cjs +27 -0
  155. package/dist/jsx/index.native.js +15 -10
  156. package/dist/jsx/index.native.js.map +1 -1
  157. package/dist/jsx/selectionController.mjs +305 -0
  158. package/dist/jsx/selectionController.mjs.map +1 -0
  159. package/dist/jsx/selectionController.native.cjs +403 -0
  160. package/dist/jsx/selectionController.native.js +405 -0
  161. package/dist/jsx/selectionController.native.js.map +1 -0
  162. package/dist/jsx/types.mjs +0 -2
  163. package/dist/jsx/types.native.cjs +19 -0
  164. package/dist/jsx/types.native.js +10 -10
  165. package/dist/jsx/types.native.js.map +1 -1
  166. package/package.json +28 -28
  167. package/src/Select.tsx +457 -357
  168. package/src/SelectContent.tsx +46 -16
  169. package/src/SelectImpl.native.tsx +0 -8
  170. package/src/SelectImpl.tsx +87 -100
  171. package/src/SelectItem.tsx +282 -136
  172. package/src/SelectItemText.tsx +16 -33
  173. package/src/SelectScrollButton.native.tsx +13 -4
  174. package/src/SelectScrollButton.tsx +56 -41
  175. package/src/SelectTrigger.tsx +77 -53
  176. package/src/SelectViewport.native.tsx +42 -25
  177. package/src/SelectViewport.tsx +52 -51
  178. package/src/context.tsx +6 -2
  179. package/src/index.tsx +5 -2
  180. package/src/selectionController.ts +389 -0
  181. package/src/types.tsx +88 -45
  182. package/types/Select.d.ts +139 -201
  183. package/types/Select.d.ts.map +1 -1
  184. package/types/SelectContent.d.ts +1 -1
  185. package/types/SelectContent.d.ts.map +1 -1
  186. package/types/SelectContent.native.d.ts.map +1 -1
  187. package/types/SelectImpl.d.ts +2 -1
  188. package/types/SelectImpl.d.ts.map +1 -1
  189. package/types/SelectImpl.native.d.ts +1 -5
  190. package/types/SelectImpl.native.d.ts.map +1 -1
  191. package/types/SelectItem.d.ts +13 -16
  192. package/types/SelectItem.d.ts.map +1 -1
  193. package/types/SelectItemText.d.ts +9 -13
  194. package/types/SelectItemText.d.ts.map +1 -1
  195. package/types/SelectScrollButton.d.ts +15 -2
  196. package/types/SelectScrollButton.d.ts.map +1 -1
  197. package/types/SelectScrollButton.native.d.ts +16 -3
  198. package/types/SelectScrollButton.native.d.ts.map +1 -1
  199. package/types/SelectTrigger.d.ts +11 -23
  200. package/types/SelectTrigger.d.ts.map +1 -1
  201. package/types/SelectViewport.d.ts +11 -38
  202. package/types/SelectViewport.d.ts.map +1 -1
  203. package/types/SelectViewport.native.d.ts +15 -4
  204. package/types/SelectViewport.native.d.ts.map +1 -1
  205. package/types/context.d.ts +2 -0
  206. package/types/context.d.ts.map +1 -1
  207. package/types/index.d.ts +5 -2
  208. package/types/index.d.ts.map +1 -1
  209. package/types/selectionController.d.ts +88 -0
  210. package/types/selectionController.d.ts.map +1 -0
  211. package/types/types.d.ts +47 -37
  212. package/types/types.d.ts.map +1 -1
  213. package/dist/cjs/BubbleSelect.cjs +0 -50
  214. package/dist/cjs/BubbleSelect.native.js +0 -30
  215. package/dist/cjs/BubbleSelect.native.js.map +0 -1
  216. package/dist/cjs/useSelectBreakpointActive.cjs +0 -32
  217. package/dist/cjs/useSelectBreakpointActive.native.js +0 -35
  218. package/dist/cjs/useSelectBreakpointActive.native.js.map +0 -1
  219. package/dist/esm/BubbleSelect.mjs +0 -27
  220. package/dist/esm/BubbleSelect.mjs.map +0 -1
  221. package/dist/esm/BubbleSelect.native.js +0 -4
  222. package/dist/esm/BubbleSelect.native.js.map +0 -1
  223. package/dist/esm/index.js.map +0 -1
  224. package/dist/esm/index.mjs.map +0 -1
  225. package/dist/esm/index.native.js.map +0 -1
  226. package/dist/esm/types.mjs.map +0 -1
  227. package/dist/esm/types.native.js.map +0 -1
  228. package/dist/esm/useSelectBreakpointActive.mjs +0 -7
  229. package/dist/esm/useSelectBreakpointActive.mjs.map +0 -1
  230. package/dist/esm/useSelectBreakpointActive.native.js +0 -7
  231. package/dist/esm/useSelectBreakpointActive.native.js.map +0 -1
  232. package/dist/jsx/BubbleSelect.mjs +0 -27
  233. package/dist/jsx/BubbleSelect.mjs.map +0 -1
  234. package/dist/jsx/BubbleSelect.native.js +0 -30
  235. package/dist/jsx/BubbleSelect.native.js.map +0 -1
  236. package/dist/jsx/index.js.map +0 -1
  237. package/dist/jsx/index.mjs.map +0 -1
  238. package/dist/jsx/types.mjs.map +0 -1
  239. package/dist/jsx/useSelectBreakpointActive.mjs +0 -7
  240. package/dist/jsx/useSelectBreakpointActive.mjs.map +0 -1
  241. package/dist/jsx/useSelectBreakpointActive.native.js +0 -35
  242. package/dist/jsx/useSelectBreakpointActive.native.js.map +0 -1
  243. package/src/BubbleSelect.tsx +0 -50
  244. package/src/useSelectBreakpointActive.tsx +0 -7
  245. package/types/BubbleSelect.d.ts +0 -2
  246. package/types/BubbleSelect.d.ts.map +0 -1
  247. package/types/useSelectBreakpointActive.d.ts +0 -3
  248. package/types/useSelectBreakpointActive.d.ts.map +0 -1
@@ -1,64 +1,42 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { styled, useIsomorphicLayoutEffect } from "@tamagui/core";
3
- import { SizableText } from "@tamagui/text";
2
+ import { Text, createStyledHOC, styled, useIsomorphicLayoutEffect } from "@tamagui/core";
4
3
  import * as React from "react";
5
4
  import { useSelectItemParentContext } from "./context.mjs";
5
+ import { getSelectLabelText } from "./selectionController.mjs";
6
6
  import { useSelectItemContext } from "./SelectItem.mjs";
7
7
  import { Fragment, jsx } from "react/jsx-runtime";
8
+
8
9
  const ITEM_TEXT_NAME = "SelectItemText";
9
- const 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
- const SelectItemText = SelectItemTextFrame.styleable(function SelectItemText2(props, forwardedRef) {
25
- const {
26
- scope,
27
- className,
28
- ...itemTextProps
29
- } = props;
30
- const itemParentContext = useSelectItemParentContext(scope);
31
- const ref = React.useRef(null);
32
- const composedRefs = useComposedRefs(forwardedRef, ref);
33
- const itemContext = useSelectItemContext(scope);
34
- const 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(() => {
43
- if (itemParentContext.initialValue === itemContext.value) {
44
- itemParentContext.setSelectedItem(contents.current);
45
- }
46
- }, []);
47
- useIsomorphicLayoutEffect(() => {
48
- return itemParentContext.valueSubscribe(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
+ const SelectItemTextFrame = styled(Text, { displayName: ITEM_TEXT_NAME });
11
+ const SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
12
+ const { scope, className, ...itemTextProps } = props;
13
+ const itemParentContext = useSelectItemParentContext(scope);
14
+ const ref = React.useRef(null);
15
+ const composedRefs = useComposedRefs(forwardedRef, ref);
16
+ const itemContext = useSelectItemContext(scope);
17
+ const contents = React.useRef(null);
18
+ const label = React.useRef(props.children);
19
+ label.current = props.children;
20
+ const labelText = getSelectLabelText(props.children);
21
+ contents.current = /* @__PURE__ */ jsx(SelectItemTextFrame, {
22
+ className,
23
+ id: itemContext.textId,
24
+ ...itemTextProps,
25
+ ref: composedRefs
26
+ });
27
+ useIsomorphicLayoutEffect(() => {
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.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","styled","useIsomorphicLayoutEffect","SizableText","React","useSelectItemParentContext","useSelectItemContext","Fragment","jsx","ITEM_TEXT_NAME","SelectItemTextFrame","name","variants","unstyled","false","userSelect","color","ellipsis","defaultVariants","process","env","TAMAGUI_HEADLESS","SelectItemText","styleable","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,eAAA,QAAuB;AAEhC,SAASC,MAAA,EAAQC,yBAAA,QAAiC;AAClD,SAASC,WAAA,QAAmB;AAC5B,YAAYC,KAAA,MAAW;AAEvB,SAASC,0BAAA,QAAkC;AAC3C,SAASC,oBAAA,QAA4B;AA6C/B,SAwBOC,QAAA,EAxBPC,GAAA;AAtCC,MAAMC,cAAA,GAAiB;AAEvB,MAAMC,mBAAA,GAAsBT,MAAA,CAAOE,WAAA,EAAa;EACrDQ,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,MAAMC,cAAA,GAAiBZ,mBAAA,CAAoBa,SAAA,CAChD,SAASD,gBAAeE,KAAA,EAAOC,YAAA,EAAc;EAC3C,MAAM;IAAEC,KAAA;IAAOC,SAAA;IAAW,GAAGC;EAAc,IAAIJ,KAAA;EAG/C,MAAMK,iBAAA,GAAoBxB,0BAAA,CAA2BqB,KAAK;EAC1D,MAAMI,GAAA,GAAM1B,KAAA,CAAM2B,MAAA,CAAkC,IAAI;EACxD,MAAMC,YAAA,GAAehC,eAAA,CAAgByB,YAAA,EAAcK,GAAG;EACtD,MAAMG,WAAA,GAAc3B,oBAAA,CAAqBoB,KAAK;EAC9C,MAAMQ,QAAA,GAAW9B,KAAA,CAAM2B,MAAA,CAAwB,IAAI;EAInDG,QAAA,CAASC,OAAA,GACP,eAAA3B,GAAA,CAACE,mBAAA;IACCiB,SAAA;IACAS,IAAA,EAAMP,iBAAA,CAAkBO,IAAA;IACxBC,EAAA,EAAIJ,WAAA,CAAYK,MAAA;IACf,GAAGV,aAAA;IACJE,GAAA,EAAKE;EAAA,CACP;EAGF9B,yBAAA,CAA0B,MAAM;IAC9B,IAAI2B,iBAAA,CAAkBU,YAAA,KAAiBN,WAAA,CAAYO,KAAA,EAAO;MACxDX,iBAAA,CAAkBY,eAAA,CAAgBP,QAAA,CAASC,OAAO;IACpD;EACF,GAAG,EAAE;EAELjC,yBAAA,CAA0B,MAAM;IAC9B,OAAO2B,iBAAA,CAAkBa,cAAA,CAAgBC,GAAA,IAAQ;MAC/C,IAAIA,GAAA,KAAQV,WAAA,CAAYO,KAAA,EAAO;QAC7BX,iBAAA,CAAkBY,eAAA,CAAgBP,QAAA,CAASC,OAAO;MACpD;IACF,CAAC;EACH,GAAG,CAACF,WAAA,CAAYO,KAAK,CAAC;EAEtB,IAAIX,iBAAA,CAAkBe,qBAAA,EAAuB;IAC3C,OAAO,eAAApC,GAAA,CAAAD,QAAA;MAAGsC,QAAA,EAAArB,KAAA,CAAMqB;IAAA,CAAS;EAC3B;EAEA,OAAO,eAAArC,GAAA,CAAAD,QAAA;IAAGsC,QAAA,EAAAX,QAAA,CAASC;EAAA,CAAQ;AAC7B,CACF","ignoreList":[]}
1
+ {"version":3,"file":"SelectItemText.js","names":[],"sources":["jsx/SelectItemText.js"],"sourcesContent":["import { 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\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nconst ITEM_TEXT_NAME = \"SelectItemText\";\nconst SelectItemTextFrame = styled(Text, {\n displayName: ITEM_TEXT_NAME\n});\nconst SelectItemText = createStyledHOC(\n SelectItemTextFrame,\n function SelectItemText2(props, forwardedRef) {\n const { scope, className, ...itemTextProps } = props;\n const itemParentContext = useSelectItemParentContext(scope);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const itemContext = useSelectItemContext(scope);\n const contents = React.useRef(null);\n const label = React.useRef(props.children);\n label.current = props.children;\n const labelText = getSelectLabelText(props.children);\n contents.current = /* @__PURE__ */ jsx(\n SelectItemTextFrame,\n {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n }\n );\n useIsomorphicLayoutEffect(() => {\n return itemParentContext.registry.registerLabel(\n itemContext.value,\n label.current,\n itemContext.textValue\n );\n }, [itemContext.textValue, itemContext.value, itemParentContext.registry, labelText]);\n if (itemParentContext.shouldRenderWebNative) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n }\n return /* @__PURE__ */ jsx(Fragment, { children: contents.current });\n }\n);\nexport {\n ITEM_TEXT_NAME,\n SelectItemText,\n SelectItemTextFrame\n};\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":";;;;;;;;;AAOA,MAAM,iBAAiB;AACvB,MAAM,sBAAsB,OAAO,MAAM,EACvC,aAAa,eACf,CAAC;AACD,MAAM,iBAAiB,gBACrB,qBACA,SAAS,gBAAgB,OAAO,cAAc;CAC5C,MAAM,EAAE,OAAO,WAAW,GAAG,kBAAkB;CAC/C,MAAM,oBAAoB,2BAA2B,KAAK;CAC1D,MAAM,MAAM,MAAM,OAAO,IAAI;CAC7B,MAAM,eAAe,gBAAgB,cAAc,GAAG;CACtD,MAAM,cAAc,qBAAqB,KAAK;CAC9C,MAAM,WAAW,MAAM,OAAO,IAAI;CAClC,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ;CACzC,MAAM,UAAU,MAAM;CACtB,MAAM,YAAY,mBAAmB,MAAM,QAAQ;CACnD,SAAS,UAA0B,oBACjC,qBACA;EACE;EACA,IAAI,YAAY;EAChB,GAAG;EACH,KAAK;CACP,CACF;CACA,gCAAgC;EAC9B,OAAO,kBAAkB,SAAS,cAChC,YAAY,OACZ,MAAM,SACN,YAAY,SACd;CACF,GAAG;EAAC,YAAY;EAAW,YAAY;EAAO,kBAAkB;EAAU;CAAS,CAAC;CACpF,IAAI,kBAAkB,uBAAuB;EAC3C,OAAuB,oBAAI,UAAU,EAAE,UAAU,MAAM,SAAS,CAAC;CACnE;CACA,OAAuB,oBAAI,UAAU,EAAE,UAAU,SAAS,QAAQ,CAAC;AACrE,CACF"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var SelectItemText_exports = {};
31
+ __export(SelectItemText_exports, {
32
+ ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,
33
+ SelectItemText: () => SelectItemText,
34
+ SelectItemTextFrame: () => SelectItemTextFrame
35
+ });
36
+ module.exports = __toCommonJS(SelectItemText_exports);
37
+ var import_jsx_runtime = require("react/jsx-runtime");
38
+ var import_compose_refs = require("@tamagui/compose-refs");
39
+ var import_core = require("@tamagui/core");
40
+ var React = __toESM(require("react"), 1);
41
+ var import_context = require("./context.native.js");
42
+ var import_selectionController = require("./selectionController.native.js");
43
+ var import_SelectItem = require("./SelectItem.native.js");
44
+ var ITEM_TEXT_NAME = "SelectItemText";
45
+ var SelectItemTextFrame = (0, import_core.styled)(import_core.Text, { displayName: ITEM_TEXT_NAME });
46
+ var SelectItemText = (0, import_core.createStyledHOC)(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
47
+ var { scope, className, ...itemTextProps } = props;
48
+ var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
49
+ var ref = React.useRef(null);
50
+ var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);
51
+ var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);
52
+ var contents = React.useRef(null);
53
+ var label = React.useRef(props.children);
54
+ label.current = props.children;
55
+ var labelText = (0, import_selectionController.getSelectLabelText)(props.children);
56
+ contents.current = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemTextFrame, {
57
+ className,
58
+ id: itemContext.textId,
59
+ ...itemTextProps,
60
+ ref: composedRefs
61
+ });
62
+ (0, import_core.useIsomorphicLayoutEffect)(function() {
63
+ return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
64
+ }, [
65
+ itemContext.textValue,
66
+ itemContext.value,
67
+ itemParentContext.registry,
68
+ labelText
69
+ ]);
70
+ if (itemParentContext.shouldRenderWebNative) {
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });
72
+ }
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: contents.current });
74
+ });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __create = Object.create;
4
5
  var __defProp = Object.defineProperty;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -7,99 +8,69 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
8
  var __getProtoOf = Object.getPrototypeOf;
8
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
10
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
14
15
  };
15
16
  var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
- get: () => from[key],
19
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
- });
21
- }
22
- return to;
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
23
24
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
- // If the importer is in node compatibility mode or this is not an ESM
26
- // file that has been converted to a CommonJS file using a Babel-
27
- // compatible transform (i.e. "__esModule" has not been set), then set
28
- // "default" to the CommonJS "module.exports" for node compatibility.
29
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
- value: mod,
31
- enumerable: true
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
32
28
  }) : target, mod));
33
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
- value: true
35
- }), mod);
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
30
  var SelectItemText_exports = {};
37
31
  __export(SelectItemText_exports, {
38
- ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,
39
- SelectItemText: () => SelectItemText,
40
- SelectItemTextFrame: () => SelectItemTextFrame
32
+ ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,
33
+ SelectItemText: () => SelectItemText,
34
+ SelectItemTextFrame: () => SelectItemTextFrame
41
35
  });
42
36
  module.exports = __toCommonJS(SelectItemText_exports);
43
37
  var import_jsx_runtime = require("react/jsx-runtime");
44
38
  var import_compose_refs = require("@tamagui/compose-refs");
45
39
  var import_core = require("@tamagui/core");
46
- var import_text = require("@tamagui/text");
47
40
  var React = __toESM(require("react"), 1);
48
41
  var import_context = require("./context.native.js");
42
+ var import_selectionController = require("./selectionController.native.js");
49
43
  var import_SelectItem = require("./SelectItem.native.js");
50
44
  var ITEM_TEXT_NAME = "SelectItemText";
51
- var SelectItemTextFrame = (0, import_core.styled)(import_text.SizableText, {
52
- name: ITEM_TEXT_NAME,
53
- variants: {
54
- unstyled: {
55
- false: {
56
- userSelect: "none",
57
- color: "$color",
58
- ellipsis: true
59
- }
60
- }
61
- },
62
- defaultVariants: {
63
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
64
- }
65
- });
66
- var SelectItemText = SelectItemTextFrame.styleable(function SelectItemText2(props, forwardedRef) {
67
- var {
68
- scope,
69
- className,
70
- ...itemTextProps
71
- } = props;
72
- var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
73
- var ref = React.useRef(null);
74
- var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);
75
- var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);
76
- var contents = React.useRef(null);
77
- contents.current = /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemTextFrame, {
78
- className,
79
- size: itemParentContext.size,
80
- id: itemContext.textId,
81
- ...itemTextProps,
82
- ref: composedRefs
83
- });
84
- (0, import_core.useIsomorphicLayoutEffect)(function () {
85
- if (itemParentContext.initialValue === itemContext.value) {
86
- itemParentContext.setSelectedItem(contents.current);
87
- }
88
- }, []);
89
- (0, import_core.useIsomorphicLayoutEffect)(function () {
90
- return itemParentContext.valueSubscribe(function (val) {
91
- if (val === itemContext.value) {
92
- itemParentContext.setSelectedItem(contents.current);
93
- }
94
- });
95
- }, [itemContext.value]);
96
- if (itemParentContext.shouldRenderWebNative) {
97
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
98
- children: props.children
99
- });
100
- }
101
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
102
- children: contents.current
103
- });
45
+ var SelectItemTextFrame = (0, import_core.styled)(import_core.Text, { displayName: ITEM_TEXT_NAME });
46
+ var SelectItemText = (0, import_core.createStyledHOC)(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
47
+ var { scope, className, ...itemTextProps } = props;
48
+ var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
49
+ var ref = React.useRef(null);
50
+ var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);
51
+ var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);
52
+ var contents = React.useRef(null);
53
+ var label = React.useRef(props.children);
54
+ label.current = props.children;
55
+ var labelText = (0, import_selectionController.getSelectLabelText)(props.children);
56
+ contents.current = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemTextFrame, {
57
+ className,
58
+ id: itemContext.textId,
59
+ ...itemTextProps,
60
+ ref: composedRefs
61
+ });
62
+ (0, import_core.useIsomorphicLayoutEffect)(function() {
63
+ return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
64
+ }, [
65
+ itemContext.textValue,
66
+ itemContext.value,
67
+ itemParentContext.registry,
68
+ labelText
69
+ ]);
70
+ if (itemParentContext.shouldRenderWebNative) {
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });
72
+ }
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: contents.current });
104
74
  });
75
+
105
76
  //# sourceMappingURL=SelectItemText.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","SelectItemText_exports","ITEM_TEXT_NAME","SelectItemText","SelectItemTextFrame","module","exports","import_jsx_runtime","require","import_compose_refs","import_core","import_text","React","import_context","import_SelectItem","styled","SizableText","variants","unstyled","false","userSelect","color","ellipsis","defaultVariants","process","env","TAMAGUI_HEADLESS","styleable","SelectItemText2","props","forwardedRef"],"sources":["../../src/SelectItemText.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAET,IAAAA,QAAS,GAAAC,MAAQ,CAAAC,MAAA;AACjB,IAAAC,SAAS,GAAAF,MAAA,CAAAG,cAAmB;AAC5B,IAAAC,gBAAY,GAAWJ,MAAA,CAAAK,wBAAA;AAEvB,IAAAC,iBAAS,GAAAN,MAAA,CAAAO,mBAAkC;AAC3C,IAAAC,YAAS,GAAAR,MAAA,CAAAS,cAA4B;AA6C/B,IAAAC,YAwBO,GAxBPV,MAAA,CAAAW,SAAA,CAAAC,cAAA;AAtCC,IAAAC,QAAM,GAAAA,CAAAC,MAAA,EAAiBC,GAAA;EAEvB,KAAM,IAAAC,IAAA,IAAAD,GAAA,EACXb,SAAM,CAAAY,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAEI,IACRC,WAAU,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACRF,IAAA,IAAO,OAAAA,IAAA,wBAAAA,IAAA;IAAA,KACL,IAAAG,GAAA,IAAYlB,iBAAA,CAAAe,IAAA,OACZ,CAAAX,YAAO,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACPpB,SAAA,CAAUkB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAnB,gBAAA,CAAAiB,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACZ,OACFE,EAAA;AAAA;AACF,IAEAM,OAAA,GAAAA,CAAAC,GAAA,EAAiBC,UAAA,EAAAd,MAAA,MAAAA,MAAA,GAAAa,GAAA,WAAA5B,QAAA,CAAAS,YAAA,CAAAmB,GAAA,SAAAR,WAAA;AAAA;AAEjB;AACD;AAMM;AACLS,UAAS,KAAAD,GAAA,KAAAA,GAAe,CAAAE,UAAO,GAAA3B,SAAc,CAAAY,MAAA;EAAAgB,KAAA,EAAAH,GAAA;EAAAT,UAAA;AAAA,KAAAJ,MAAA,EAC3Ca,GAGA;AACA,IAAAI,YAAY,GAAAJ,GAAM,IAAAR,WAAsC,CAAAjB,SAAA;EAAA4B,KAAA;AAAA,IAAAH,GAAA;AACxD,IAAAK,sBAAqB;AACrBnB,QAAA,CAAAmB,sBAAoB;EACpBC,cAAM,EAAAA,CAAA,KAAWA,cAAkC;EAInDC,cAAS,EAAAA,CAAA,KACPA,cAAA;EAAAC,mBAAC,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OACC,GAAAN,YAAA,CAAAC,sBAAA;AAAA,IAAAM,kBACM,GAAAC,OAAkB;AAAA,IAAAC,mBACpB,GAAYD,OAAA;AAAA,IAAAE,WACZ,GAAAF,OAAA;AAAA,IAAAG,WACC,GAAAH,OAAA;AAAA,IAAAI,KAAA,GAAAjB,OAAA,CAAAa,OAAA;AAAA,IACPK,cAAA,GAAAL,OAAA;AAGF,IAAAM,iBAAA,GAAAN,OAA0B,yBAAM;AAC9B,IAAAN,cAAI,mBAAkB;AACpB,IAAAE,mBAAA,GAAkB,IAAAM,WAAA,CAAgBK,MAAA,EAAAJ,WAAgB,CAAAK,WAAA;EAAA/B,IACpD,EAAAiB,cAAA;EAAAe,QACG;IAELC,QAAA;MACEC,KAAA,EAAO;QACLC,UAAI,EAAQ;QACVC,KAAA;QACFC,QAAA;MACF;IACF;EAEA;EACEC,eAAO;IACTL,QAAA,EAAAM,OAAA,CAAAC,GAAA,CAAAC,gBAAA;EAEA;AAA2B,EAC7B;AACF,IAAAvB,cAAA,GAAAC,mBAAA,CAAAuB,SAAA,UAAAC,gBAAAC,KAAA,EAAAC,YAAA","ignoreList":[]}
1
+ {"version":3,"file":"SelectItemText.native.js","names":[],"sources":["jsx/SelectItemText.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n 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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectItemText_exports = {};\n__export(SelectItemText_exports, {\n ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,\n SelectItemText: () => SelectItemText,\n SelectItemTextFrame: () => SelectItemTextFrame\n});\nmodule.exports = __toCommonJS(SelectItemText_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_core = require(\"@tamagui/core\");\nvar React = __toESM(require(\"react\"), 1);\nvar import_context = require(\"./context\");\nvar import_selectionController = require(\"./selectionController\");\nvar import_SelectItem = require(\"./SelectItem\");\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemTextFrame = (0, import_core.styled)(import_core.Text, {\n displayName: ITEM_TEXT_NAME\n});\nvar SelectItemText = (0, import_core.createStyledHOC)(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {\n var { scope, className, ...itemTextProps } = props;\n var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n var ref = React.useRef(null);\n var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);\n var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);\n var contents = React.useRef(null);\n var label = React.useRef(props.children);\n label.current = props.children;\n var labelText = (0, import_selectionController.getSelectLabelText)(props.children);\n contents.current = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemTextFrame, {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n });\n (0, import_core.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__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: props.children\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: contents.current\n });\n});\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":"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"}
@@ -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