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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/dist/cjs/BubbleSelect.cjs +28 -23
  2. package/dist/cjs/BubbleSelect.native.js +12 -10
  3. package/dist/cjs/BubbleSelect.native.js.map +1 -1
  4. package/dist/cjs/Select.cjs +402 -376
  5. package/dist/cjs/Select.native.js +428 -414
  6. package/dist/cjs/Select.native.js.map +1 -1
  7. package/dist/cjs/SelectContent.cjs +73 -66
  8. package/dist/cjs/SelectContent.native.js +12 -10
  9. package/dist/cjs/SelectContent.native.js.map +1 -1
  10. package/dist/cjs/SelectImpl.cjs +239 -176
  11. package/dist/cjs/SelectImpl.native.js +21 -16
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +189 -137
  14. package/dist/cjs/SelectItem.native.js +211 -164
  15. package/dist/cjs/SelectItem.native.js.map +1 -1
  16. package/dist/cjs/SelectItemText.cjs +82 -68
  17. package/dist/cjs/SelectItemText.native.js +81 -69
  18. package/dist/cjs/SelectItemText.native.js.map +1 -1
  19. package/dist/cjs/SelectScrollButton.cjs +104 -83
  20. package/dist/cjs/SelectScrollButton.native.js +17 -15
  21. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  22. package/dist/cjs/SelectTrigger.cjs +81 -77
  23. package/dist/cjs/SelectTrigger.native.js +43 -40
  24. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  25. package/dist/cjs/SelectViewport.cjs +141 -103
  26. package/dist/cjs/SelectViewport.native.js +39 -37
  27. package/dist/cjs/SelectViewport.native.js.map +1 -1
  28. package/dist/cjs/constants.cjs +19 -17
  29. package/dist/cjs/constants.native.js +19 -17
  30. package/dist/cjs/constants.native.js.map +1 -1
  31. package/dist/cjs/context.cjs +38 -27
  32. package/dist/cjs/context.native.js +46 -38
  33. package/dist/cjs/context.native.js.map +1 -1
  34. package/dist/cjs/index.cjs +7 -5
  35. package/dist/cjs/index.native.js +7 -5
  36. package/dist/cjs/index.native.js.map +1 -1
  37. package/dist/cjs/types.cjs +7 -5
  38. package/dist/cjs/types.native.js +7 -5
  39. package/dist/cjs/types.native.js.map +1 -1
  40. package/dist/cjs/useSelectBreakpointActive.cjs +13 -11
  41. package/dist/cjs/useSelectBreakpointActive.native.js +17 -15
  42. package/dist/cjs/useSelectBreakpointActive.native.js.map +1 -1
  43. package/dist/esm/BubbleSelect.mjs +16 -13
  44. package/dist/esm/BubbleSelect.mjs.map +1 -1
  45. package/dist/esm/Select.mjs +356 -331
  46. package/dist/esm/Select.mjs.map +1 -1
  47. package/dist/esm/Select.native.js +381 -369
  48. package/dist/esm/Select.native.js.map +1 -1
  49. package/dist/esm/SelectContent.mjs +55 -39
  50. package/dist/esm/SelectContent.mjs.map +1 -1
  51. package/dist/esm/SelectImpl.mjs +208 -147
  52. package/dist/esm/SelectImpl.mjs.map +1 -1
  53. package/dist/esm/SelectImpl.native.js +4 -1
  54. package/dist/esm/SelectImpl.native.js.map +1 -1
  55. package/dist/esm/SelectItem.mjs +157 -107
  56. package/dist/esm/SelectItem.mjs.map +1 -1
  57. package/dist/esm/SelectItem.native.js +180 -135
  58. package/dist/esm/SelectItem.native.js.map +1 -1
  59. package/dist/esm/SelectItemText.mjs +50 -38
  60. package/dist/esm/SelectItemText.mjs.map +1 -1
  61. package/dist/esm/SelectItemText.native.js +50 -40
  62. package/dist/esm/SelectItemText.native.js.map +1 -1
  63. package/dist/esm/SelectScrollButton.mjs +74 -55
  64. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  65. package/dist/esm/SelectScrollButton.native.js +5 -5
  66. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  67. package/dist/esm/SelectTrigger.mjs +51 -49
  68. package/dist/esm/SelectTrigger.mjs.map +1 -1
  69. package/dist/esm/SelectTrigger.native.js +13 -12
  70. package/dist/esm/SelectTrigger.native.js.map +1 -1
  71. package/dist/esm/SelectViewport.mjs +108 -83
  72. package/dist/esm/SelectViewport.mjs.map +1 -1
  73. package/dist/esm/SelectViewport.native.js +7 -7
  74. package/dist/esm/SelectViewport.native.js.map +1 -1
  75. package/dist/esm/constants.mjs +7 -7
  76. package/dist/esm/constants.mjs.map +1 -1
  77. package/dist/esm/constants.native.js +7 -7
  78. package/dist/esm/constants.native.js.map +1 -1
  79. package/dist/esm/context.mjs +22 -14
  80. package/dist/esm/context.mjs.map +1 -1
  81. package/dist/esm/context.native.js +30 -25
  82. package/dist/esm/context.native.js.map +1 -1
  83. package/dist/esm/index.js +2 -2
  84. package/dist/esm/index.js.map +1 -6
  85. package/dist/esm/useSelectBreakpointActive.mjs +1 -1
  86. package/dist/esm/useSelectBreakpointActive.mjs.map +1 -1
  87. package/dist/esm/useSelectBreakpointActive.native.js +1 -1
  88. package/dist/esm/useSelectBreakpointActive.native.js.map +1 -1
  89. package/dist/jsx/BubbleSelect.mjs +16 -13
  90. package/dist/jsx/BubbleSelect.mjs.map +1 -1
  91. package/dist/jsx/BubbleSelect.native.js +12 -10
  92. package/dist/jsx/BubbleSelect.native.js.map +1 -1
  93. package/dist/jsx/Select.mjs +356 -331
  94. package/dist/jsx/Select.mjs.map +1 -1
  95. package/dist/jsx/Select.native.js +428 -414
  96. package/dist/jsx/Select.native.js.map +1 -1
  97. package/dist/jsx/SelectContent.mjs +55 -39
  98. package/dist/jsx/SelectContent.mjs.map +1 -1
  99. package/dist/jsx/SelectContent.native.js +12 -10
  100. package/dist/jsx/SelectContent.native.js.map +1 -1
  101. package/dist/jsx/SelectImpl.mjs +208 -147
  102. package/dist/jsx/SelectImpl.mjs.map +1 -1
  103. package/dist/jsx/SelectImpl.native.js +21 -16
  104. package/dist/jsx/SelectImpl.native.js.map +1 -1
  105. package/dist/jsx/SelectItem.mjs +157 -107
  106. package/dist/jsx/SelectItem.mjs.map +1 -1
  107. package/dist/jsx/SelectItem.native.js +211 -164
  108. package/dist/jsx/SelectItem.native.js.map +1 -1
  109. package/dist/jsx/SelectItemText.mjs +50 -38
  110. package/dist/jsx/SelectItemText.mjs.map +1 -1
  111. package/dist/jsx/SelectItemText.native.js +81 -69
  112. package/dist/jsx/SelectItemText.native.js.map +1 -1
  113. package/dist/jsx/SelectScrollButton.mjs +74 -55
  114. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  115. package/dist/jsx/SelectScrollButton.native.js +17 -15
  116. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  117. package/dist/jsx/SelectTrigger.mjs +51 -49
  118. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  119. package/dist/jsx/SelectTrigger.native.js +43 -40
  120. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  121. package/dist/jsx/SelectViewport.mjs +108 -83
  122. package/dist/jsx/SelectViewport.mjs.map +1 -1
  123. package/dist/jsx/SelectViewport.native.js +39 -37
  124. package/dist/jsx/SelectViewport.native.js.map +1 -1
  125. package/dist/jsx/constants.mjs +7 -7
  126. package/dist/jsx/constants.mjs.map +1 -1
  127. package/dist/jsx/constants.native.js +19 -17
  128. package/dist/jsx/constants.native.js.map +1 -1
  129. package/dist/jsx/context.mjs +22 -14
  130. package/dist/jsx/context.mjs.map +1 -1
  131. package/dist/jsx/context.native.js +46 -38
  132. package/dist/jsx/context.native.js.map +1 -1
  133. package/dist/jsx/index.js +2 -2
  134. package/dist/jsx/index.js.map +1 -6
  135. package/dist/jsx/index.native.js +7 -5
  136. package/dist/jsx/types.native.js +7 -5
  137. package/dist/jsx/useSelectBreakpointActive.mjs +1 -1
  138. package/dist/jsx/useSelectBreakpointActive.mjs.map +1 -1
  139. package/dist/jsx/useSelectBreakpointActive.native.js +17 -15
  140. package/dist/jsx/useSelectBreakpointActive.native.js.map +1 -1
  141. package/package.json +31 -35
  142. package/src/Select.tsx +16 -1
  143. package/src/SelectContent.tsx +47 -36
  144. package/src/SelectImpl.tsx +51 -49
  145. package/src/SelectItem.tsx +17 -7
  146. package/src/SelectScrollButton.tsx +1 -1
  147. package/src/SelectTrigger.tsx +1 -1
  148. package/src/SelectViewport.tsx +42 -22
  149. package/src/context.tsx +4 -0
  150. package/src/types.tsx +44 -4
  151. package/types/Select.d.ts +2 -2
  152. package/types/Select.d.ts.map +1 -1
  153. package/types/SelectContent.d.ts +1 -1
  154. package/types/SelectContent.d.ts.map +1 -1
  155. package/types/SelectImpl.d.ts.map +1 -1
  156. package/types/SelectItem.d.ts.map +1 -1
  157. package/types/SelectTrigger.d.ts +1 -1
  158. package/types/SelectViewport.d.ts.map +1 -1
  159. package/types/context.d.ts +1 -0
  160. package/types/context.d.ts.map +1 -1
  161. package/types/types.d.ts +33 -3
  162. package/types/types.d.ts.map +1 -1
  163. package/dist/cjs/BubbleSelect.js +0 -34
  164. package/dist/cjs/BubbleSelect.js.map +0 -6
  165. package/dist/cjs/Select.js +0 -402
  166. package/dist/cjs/Select.js.map +0 -6
  167. package/dist/cjs/SelectContent.js +0 -57
  168. package/dist/cjs/SelectContent.js.map +0 -6
  169. package/dist/cjs/SelectImpl.js +0 -222
  170. package/dist/cjs/SelectImpl.js.map +0 -6
  171. package/dist/cjs/SelectItem.js +0 -166
  172. package/dist/cjs/SelectItem.js.map +0 -6
  173. package/dist/cjs/SelectItemText.js +0 -64
  174. package/dist/cjs/SelectItemText.js.map +0 -6
  175. package/dist/cjs/SelectScrollButton.js +0 -105
  176. package/dist/cjs/SelectScrollButton.js.map +0 -6
  177. package/dist/cjs/SelectTrigger.js +0 -81
  178. package/dist/cjs/SelectTrigger.js.map +0 -6
  179. package/dist/cjs/SelectViewport.js +0 -114
  180. package/dist/cjs/SelectViewport.js.map +0 -6
  181. package/dist/cjs/constants.js +0 -27
  182. package/dist/cjs/constants.js.map +0 -6
  183. package/dist/cjs/context.js +0 -33
  184. package/dist/cjs/context.js.map +0 -6
  185. package/dist/cjs/index.js +0 -16
  186. package/dist/cjs/index.js.map +0 -6
  187. package/dist/cjs/types.js +0 -14
  188. package/dist/cjs/types.js.map +0 -6
  189. package/dist/cjs/useSelectBreakpointActive.js +0 -25
  190. package/dist/cjs/useSelectBreakpointActive.js.map +0 -6
  191. package/dist/esm/BubbleSelect.js +0 -17
  192. package/dist/esm/BubbleSelect.js.map +0 -6
  193. package/dist/esm/Select.js +0 -412
  194. package/dist/esm/Select.js.map +0 -6
  195. package/dist/esm/SelectContent.js +0 -39
  196. package/dist/esm/SelectContent.js.map +0 -6
  197. package/dist/esm/SelectImpl.js +0 -223
  198. package/dist/esm/SelectImpl.js.map +0 -6
  199. package/dist/esm/SelectItem.js +0 -148
  200. package/dist/esm/SelectItem.js.map +0 -6
  201. package/dist/esm/SelectItemText.js +0 -46
  202. package/dist/esm/SelectItemText.js.map +0 -6
  203. package/dist/esm/SelectScrollButton.js +0 -87
  204. package/dist/esm/SelectScrollButton.js.map +0 -6
  205. package/dist/esm/SelectTrigger.js +0 -61
  206. package/dist/esm/SelectTrigger.js.map +0 -6
  207. package/dist/esm/SelectViewport.js +0 -112
  208. package/dist/esm/SelectViewport.js.map +0 -6
  209. package/dist/esm/constants.js +0 -11
  210. package/dist/esm/constants.js.map +0 -6
  211. package/dist/esm/context.js +0 -19
  212. package/dist/esm/context.js.map +0 -6
  213. package/dist/esm/types.js +0 -1
  214. package/dist/esm/types.js.map +0 -6
  215. package/dist/esm/useSelectBreakpointActive.js +0 -9
  216. package/dist/esm/useSelectBreakpointActive.js.map +0 -6
  217. package/dist/jsx/BubbleSelect.js +0 -17
  218. package/dist/jsx/BubbleSelect.js.map +0 -6
  219. package/dist/jsx/Select.js +0 -412
  220. package/dist/jsx/Select.js.map +0 -6
  221. package/dist/jsx/SelectContent.js +0 -39
  222. package/dist/jsx/SelectContent.js.map +0 -6
  223. package/dist/jsx/SelectImpl.js +0 -223
  224. package/dist/jsx/SelectImpl.js.map +0 -6
  225. package/dist/jsx/SelectItem.js +0 -148
  226. package/dist/jsx/SelectItem.js.map +0 -6
  227. package/dist/jsx/SelectItemText.js +0 -46
  228. package/dist/jsx/SelectItemText.js.map +0 -6
  229. package/dist/jsx/SelectScrollButton.js +0 -87
  230. package/dist/jsx/SelectScrollButton.js.map +0 -6
  231. package/dist/jsx/SelectTrigger.js +0 -61
  232. package/dist/jsx/SelectTrigger.js.map +0 -6
  233. package/dist/jsx/SelectViewport.js +0 -112
  234. package/dist/jsx/SelectViewport.js.map +0 -6
  235. package/dist/jsx/constants.js +0 -11
  236. package/dist/jsx/constants.js.map +0 -6
  237. package/dist/jsx/context.js +0 -19
  238. package/dist/jsx/context.js.map +0 -6
  239. package/dist/jsx/types.js +0 -1
  240. package/dist/jsx/types.js.map +0 -6
  241. package/dist/jsx/useSelectBreakpointActive.js +0 -9
  242. package/dist/jsx/useSelectBreakpointActive.js.map +0 -6
@@ -1,74 +1,88 @@
1
- import { autoUpdate, offset, useFloating } from "@floating-ui/react";
1
+ import { autoUpdate, offset, useFloatingRaw as useFloating } from "@tamagui/floating";
2
2
  import { useComposedRefs } from "@tamagui/compose-refs";
3
3
  import { YStack } from "@tamagui/stacks";
4
4
  import * as React from "react";
5
5
  import { flushSync } from "react-dom";
6
6
  import { useSelectContext } from "./context.mjs";
7
7
  import { jsx } from "react/jsx-runtime";
8
- const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton",
9
- SelectScrollUpButton = React.forwardRef((props, forwardedRef) => /* @__PURE__ */jsx(SelectScrollButtonImpl, {
8
+ const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
9
+ const SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {
10
+ return /* @__PURE__ */jsx(SelectScrollButtonImpl, {
10
11
  componentName: SCROLL_UP_BUTTON_NAME,
11
12
  ...props,
12
13
  dir: "up",
13
14
  ref: forwardedRef
14
- }));
15
+ });
16
+ });
15
17
  SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
16
- const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton",
17
- SelectScrollDownButton = React.forwardRef((props, forwardedRef) => /* @__PURE__ */jsx(SelectScrollButtonImpl, {
18
+ const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
19
+ const SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {
20
+ return /* @__PURE__ */jsx(SelectScrollButtonImpl, {
18
21
  componentName: SCROLL_DOWN_BUTTON_NAME,
19
22
  ...props,
20
23
  dir: "down",
21
24
  ref: forwardedRef
22
- }));
25
+ });
26
+ });
23
27
  SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
24
28
  const SelectScrollButtonImpl = React.memo(React.forwardRef((props, forwardedRef) => {
25
29
  const {
26
- scope,
27
- dir,
28
- componentName,
29
- ...scrollIndicatorProps
30
- } = props,
31
- {
32
- forceUpdate,
33
- open,
34
- fallback,
35
- setScrollTop,
36
- setInnerOffset,
37
- ...context
38
- } = useSelectContext(scope),
39
- floatingRef = context.floatingContext?.refs.floating,
40
- statusRef = React.useRef("idle"),
41
- isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"],
42
- frameRef = React.useRef(null),
43
- {
44
- x,
45
- y,
46
- refs,
47
- strategy
48
- } = useFloating({
49
- open: open && isVisible,
50
- strategy: "fixed",
51
- elements: {
52
- reference: floatingRef?.current
53
- },
54
- placement: dir === "up" ? "top" : "bottom",
55
- middleware: [offset(({
56
- rects
57
- }) => -rects.floating.height)],
58
- whileElementsMounted: (...args) => autoUpdate(...args, {
59
- animationFrame: !0
60
- })
61
- }),
62
- composedRef = useComposedRefs(forwardedRef, refs.setFloating);
63
- if (!isVisible) return null;
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
+ }
64
70
  const onScroll = amount => {
65
71
  const floating = floatingRef;
66
- floating && (fallback ? floating.current && (floating.current.scrollTop -= amount, flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0))) : flushSync(() => setInnerOffset(value => value - amount)));
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
+ }
67
81
  };
68
82
  return /* @__PURE__ */jsx(YStack, {
69
83
  ref: composedRef,
70
84
  componentName,
71
- "aria-hidden": !0,
85
+ "aria-hidden": true,
72
86
  ...scrollIndicatorProps,
73
87
  zIndex: 1e3,
74
88
  position: strategy,
@@ -81,19 +95,24 @@ const SelectScrollButtonImpl = React.memo(React.forwardRef((props, forwardedRef)
81
95
  function frame() {
82
96
  const element = floatingRef?.current;
83
97
  if (element) {
84
- const currentNow = Date.now(),
85
- msElapsed = currentNow - prevNow;
98
+ const currentNow = Date.now();
99
+ const msElapsed = currentNow - prevNow;
86
100
  prevNow = currentNow;
87
- const pixelsToScroll = msElapsed / 2,
88
- remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop,
89
- scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
90
- onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)), scrollRemaining && (frameRef.current = requestAnimationFrame(frame));
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
+ }
91
108
  }
92
109
  }
93
- cancelAnimationFrame(frameRef.current), frameRef.current = requestAnimationFrame(frame);
110
+ cancelAnimationFrame(frameRef.current);
111
+ frameRef.current = requestAnimationFrame(frame);
94
112
  },
95
113
  onPointerLeave: () => {
96
- statusRef.current = "idle", cancelAnimationFrame(frameRef.current);
114
+ statusRef.current = "idle";
115
+ cancelAnimationFrame(frameRef.current);
97
116
  }
98
117
  });
99
118
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["autoUpdate","offset","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,"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,8 +1,8 @@
1
1
  var SelectScrollUpButton = function (_) {
2
- return null;
3
- },
4
- SelectScrollDownButton = function (_) {
5
- return null;
6
- };
2
+ return null;
3
+ };
4
+ var SelectScrollDownButton = function (_) {
5
+ return null;
6
+ };
7
7
  export { SelectScrollDownButton, SelectScrollUpButton };
8
8
  //# 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;IAC1C,OAAO;EACX;EACWC,sBAAA,GAAyB,SAAAA,CAASD,CAAA,EAAG;IAC5C,OAAO;EACX","ignoreList":[]}
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":[]}
@@ -3,59 +3,61 @@ import { ListItem } from "@tamagui/list-item";
3
3
  import * as React from "react";
4
4
  import { useSelectContext, useSelectItemParentContext } from "./context.mjs";
5
5
  import { jsx } from "react/jsx-runtime";
6
- const TRIGGER_NAME = "SelectTrigger",
7
- isPointerCoarse = typeof window < "u" ? window.matchMedia("(pointer:coarse)").matches : !0,
8
- SelectTrigger = React.forwardRef(function (props, forwardedRef) {
9
- const {
10
- scope,
11
- disabled = !1,
12
- unstyled = !1,
13
- ...triggerProps
14
- } = props,
15
- context = useSelectContext(scope),
16
- itemParentContext = useSelectItemParentContext(scope),
17
- composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);
18
- return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */jsx(ListItem, {
19
- componentName: TRIGGER_NAME,
20
- unstyled,
21
- render: "button",
22
- type: "button",
23
- id: itemParentContext.id,
24
- ...(!unstyled && {
25
- focusVisibleStyle: {
26
- outlineStyle: "solid",
27
- outlineWidth: 2,
28
- outlineColor: "$outlineColor"
29
- },
30
- borderWidth: 1,
31
- size: itemParentContext.size
32
- }),
33
- role: "combobox",
34
- "aria-haspopup": "listbox",
35
- "aria-expanded": context.open,
36
- "aria-autocomplete": "none",
37
- dir: context.dir,
38
- disabled,
39
- "data-disabled": disabled ? "" : void 0,
40
- ...triggerProps,
41
- ref: composedRefs,
42
- ...(itemParentContext.interactions ? {
43
- ...itemParentContext.interactions.getReferenceProps(),
44
- ...(isPointerCoarse ? {
45
- onPress() {
46
- itemParentContext.setOpen(!context.open);
47
- }
48
- } : {
49
- onMouseDown() {
50
- context.floatingContext?.update(), itemParentContext.setOpen(!context.open);
51
- }
52
- })
53
- } : {
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 ? {
54
46
  onPress() {
55
47
  itemParentContext.setOpen(!context.open);
56
48
  }
49
+ } : {
50
+ onMouseDown() {
51
+ context.floatingContext?.update?.();
52
+ itemParentContext.setOpen(!context.open);
53
+ }
57
54
  })
58
- });
55
+ } : {
56
+ onPress() {
57
+ itemParentContext.setOpen(!context.open);
58
+ }
59
+ })
59
60
  });
61
+ });
60
62
  export { SelectTrigger };
61
63
  //# sourceMappingURL=SelectTrigger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","ListItem","React","useSelectContext","useSelectItemParentContext","jsx","TRIGGER_NAME","isPointerCoarse","window","matchMedia","matches","SelectTrigger","forwardRef","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":["../../src/SelectTrigger.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAGhC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AAEvB,SAASC,gBAAA,EAAkBC,0BAAA,QAAkC;AAiCvD,SAAAC,GAAA;AA3BN,MAAMC,YAAA,GAAe;EAIfC,eAAA,GACJ,OAAOC,MAAA,GAAW,MACdA,MAAA,CAAOC,UAAA,CAAW,kBAAkB,EAAEC,OAAA,GACtC;EAEOC,aAAA,GAAgBT,KAAA,CAAMU,UAAA,CACjC,UAAuBC,KAAA,EAA2BC,YAAA,EAAc;IAC9D,MAAM;QAAEC,KAAA;QAAOC,QAAA,GAAW;QAAOC,QAAA,GAAW;QAAO,GAAGC;MAAa,IAAIL,KAAA;MAEjEM,OAAA,GAAUhB,gBAAA,CAAiBY,KAAK;MAChCK,iBAAA,GAAoBhB,0BAAA,CAA2BW,KAAK;MACpDM,YAAA,GAAerB,eAAA,CACnBc,YAAA,EACAK,OAAA,CAAQG,eAAA,EAAiBC,IAAA,CAAKC,YAChC;IAIA,OAAIJ,iBAAA,CAAkBK,qBAAA,GACb,OAIP,eAAApB,GAAA,CAACJ,QAAA;MACCyB,aAAA,EAAepB,YAAA;MACfW,QAAA;MACAU,MAAA,EAAO;MACPC,IAAA,EAAK;MACLC,EAAA,EAAIT,iBAAA,CAAkBS,EAAA;MACrB,IAAI,CAACZ,QAAA,IAAY;QAChBa,iBAAA,EAAmB;UACjBC,YAAA,EAAc;UACdC,YAAA,EAAc;UACdC,YAAA,EAAc;QAChB;QACAC,WAAA,EAAa;QACbC,IAAA,EAAMf,iBAAA,CAAkBe;MAC1B;MACAC,IAAA,EAAK;MACL,iBAAc;MACd,iBAAejB,OAAA,CAAQkB,IAAA;MACvB,qBAAkB;MAClBC,GAAA,EAAKnB,OAAA,CAAQmB,GAAA;MACbtB,QAAA;MACA,iBAAeA,QAAA,GAAW,KAAK;MAC9B,GAAGE,YAAA;MACJqB,GAAA,EAAKlB,YAAA;MACJ,IAA4CD,iBAAA,CAAkBoB,YAAA,GAC3D;QACE,GAAGpB,iBAAA,CAAkBoB,YAAA,CAAaC,iBAAA,CAAkB;QACpD,IAAIlC,eAAA,GACA;UACEmC,QAAA,EAAU;YACRtB,iBAAA,CAAkBuB,OAAA,CAAQ,CAACxB,OAAA,CAAQkB,IAAI;UACzC;QACF,IACA;UACEO,YAAA,EAAc;YACZzB,OAAA,CAAQG,eAAA,EAAiBuB,MAAA,CAAO,GAChCzB,iBAAA,CAAkBuB,OAAA,CAAQ,CAACxB,OAAA,CAAQkB,IAAI;UACzC;QACF;MACN,IACA;QACEK,QAAA,EAAU;UACRtB,iBAAA,CAAkBuB,OAAA,CAAQ,CAACxB,OAAA,CAAQkB,IAAI;QACzC;MACF;IAAA,CACN;EAEJ,CACF","ignoreList":[]}
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":["../../src/SelectTrigger.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAGhC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AAEvB,SAASC,gBAAA,EAAkBC,0BAAA,QAAkC;AAiCvD,SAAAC,GAAA;AA3BN,MAAMC,YAAA,GAAe;AAIrB,MAAMC,eAAA,GACJ,OAAOC,MAAA,KAAW,eAAe,OAAAA,MAAY,CAAAC,UAAA,mBACzC,EAAAC,OAAO,OAAW;AAGjB,MAAMC,aAAA,GAAgBT,KAAA,CAAMU,UAAA,UAAAC,eAAAC,KAAA,EAAAC,YAAA;EAAA,MACjC;IAAAC,KAAS;IAAAC,QAAA,GAAc;IAA2BC,QAAA,QAAc;IAAA,GAAAC;EAAA,IAAAL,KAAA;EAC9D,MAAAM,OAAQ,GAAAjB,gBAAkB,CAAAa,KAAO;EAEjC,MAAAK,iBAAgB,GAAAjB,0BAAsB,CAAAY,KAAA;EACtC,MAAAM,YAAM,GAAAtB,eAAoB,CAAAe,YAAA,EAAAK,OAA2B,CAAAG,eAAK,EAAAC,IAAA,CAAAC,YAAA;EAC1D,IAAAJ,iBAAM,CAAAK,qBAAe;EAAA,OACnB,eAAArB,GAAA,CAAAJ,QAAA;IAAA0B,aACQ,EAAArB,YAAA;IAAsBY,QAChC;IAIAU,MAAI;IACFC,IAAA,UAAO;IAAAC,EACT,EAAAT,iBAAA,CAAAS,EAAA;IAEA,KAAAZ,QACE;MAAAa,iBAAC;QAAAC,YAAA;QAAAC,YACC;QAAeC,YACf;MAAA;MACOC,WACF;MAAAC,IAAA,EACLf,iBAAI,CAAAe;IAAkB;IACJC,IAAA,YAChB;IAAmB,eACjB,WAAc;IAAA,eACd,EAAAjB,OAAc,CAAAkB,IAAA;IAAA,mBACd,QAAc;IAAAC,GAAA,EAAAnB,OAChB,CAAAmB,GAAA;IAAAtB,QACA;IAAa,eACP,EAAAA,QAAA,QAAkB;IAAA,GAAAE,YAC1B;IAAAqB,GAAA,EAAAlB,YACK;IAAA,IAAAD,iBACL,CAAAoB,YAAc;MAAA,GAAApB,iBACd,CAAAoB,YAAuB,CAAAC,iBAAA;MAAA,IAAAnC,eACvB;QAAAoC,OAAkBA,CAAA;UAAAtB,iBACL,CAAAuB,OAAA,EAAAxB,OAAA,CAAAkB,IAAA;QAAA;MAAA,IACb;QAAAO,YAAA;UAAAzB,OACA,CAAAG,eAAe,EAAAuB,MAAA,GAAW;UAAKzB,iBAC3B,CAAAuB,OAAA,EAAAxB,OAAA,CAAAkB,IAAA;QAAA;MAAA;IACC;MACJK,OAAIA,CAAA;QACDtB,iBACK,CAAAuB,OAAA,EAAAxB,OAAkB,CAAAkB,IAAA;MAA+B;IAAA;EAEhD;AAEI;AAAuC,SAAA3B,aACzC","ignoreList":[]}
@@ -4,18 +4,19 @@ import { ListItem } from "@tamagui/list-item";
4
4
  import * as React from "react";
5
5
  import { useSelectContext, useSelectItemParentContext } from "./context.native.js";
6
6
  var TRIGGER_NAME = "SelectTrigger";
7
- var SelectTrigger = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
8
- var _context_floatingContext,
9
- {
10
- scope,
11
- disabled = !1,
12
- unstyled = !1,
13
- ...triggerProps
14
- } = props,
15
- context = useSelectContext(scope),
16
- itemParentContext = useSelectItemParentContext(scope),
17
- composedRefs = useComposedRefs(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
18
- return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */_jsx(ListItem, {
7
+ var SelectTrigger = /* @__PURE__ */React.forwardRef(function SelectTrigger2(props, forwardedRef) {
8
+ var _context_floatingContext;
9
+ var {
10
+ scope,
11
+ disabled = false,
12
+ unstyled = false,
13
+ ...triggerProps
14
+ } = props;
15
+ var context = useSelectContext(scope);
16
+ var itemParentContext = useSelectItemParentContext(scope);
17
+ var composedRefs = useComposedRefs(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
18
+ if (itemParentContext.shouldRenderWebNative) return null;
19
+ return /* @__PURE__ */_jsx(ListItem, {
19
20
  componentName: TRIGGER_NAME,
20
21
  unstyled,
21
22
  render: "button",
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","useComposedRefs","ListItem","React","useSelectContext","useSelectItemParentContext","TRIGGER_NAME","SelectTrigger","forwardRef","props","forwardedRef","_context_floatingContext","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","onPress","setOpen"],"sources":["../../src/SelectTrigger.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAuB;AAGhC,SAASC,eAAA,QAAgB;AACzB,SAAAC,QAAY,QAAW;AAEvB,YAASC,KAAA,aAAkB;AAiCrB,SAAAC,gBAAA,EAAAC,0BAAA;AA3BN,IAAAC,YAAM,kBAAe;AASc,IACjCC,aAAuB,GAA2B,eAAcJ,KAAA,CAAAK,UAAA,WAAAC,KAAA,EAAAC,YAAA;EAC9D,IAAAC,wBAA0B;IAAA;MAAOC,KAAA;MAAAC,QAAkB,GAAG;MAAAC,QAAA,GAAa,EAAI;MAAA,GAAAC;IAEvD,IAAAN,KAAA;IAAAO,OAAiB,GAAKZ,gBAChC,CAAAQ,KAAA,CAAoB;IAAAK,iBAAA,GAAAZ,0BACpB,CAAAO,KAAe;IAAAM,YAAA,GAAAjB,eAAA,CAAAS,YAAA,GAAAC,wBAAA,GAAAK,OAAA,CAAAG,eAAA,cAAAR,wBAAA,uBAAAA,wBAAA,CAAAS,IAAA,CAAAC,YAAA;EAAA,OACnBJ,iBAAA,CAAAK,qBAAA,yBAAAtB,IAAA,CAAAE,QAAA;IAAAqB,aACQ,EAAAjB,YAAiB;IAC3BQ,QAAA;IAIAU,MAAA,EAAI;IAKFC,IAAC;IAAAC,EAAA,EAAAT,iBAAA,CAAAS,EAAA;IAAA,KACCZ,QAAA;MAAea,iBACf;QACAC,YAAO;QACPC,YAAK;QACLC,YAAI;MAAkB;MACJC,WAChB;MAAmBC,IAAA,EACjBf,iBAAc,CAAAe;IAAA;IACAC,IAAA,YACd;IAAc,eAChB;IAAA,eACA,EAAAjB,OAAa,CAAAkB,IAAA;IAAA,mBACP;IAAkBC,GAAA,EAC1BnB,OAAA,CAAAmB,GAAA;IAAAtB,QACA;IAAK,eACL,EAAAA,QAAc;IAAA,GAAAE,YACd;IAAuBqB,GAAA,EACvBlB,YAAA;IAAkBmB,OAClBA,CAAA,EAAK;MAAQpB,iBACb,CAAAqB,OAAA,EAAAtB,OAAA,CAAAkB,IAAA;IAAA;EAC+B;AAC3B;AACC,SAED3B,aACK","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","useComposedRefs","ListItem","React","useSelectContext","useSelectItemParentContext","TRIGGER_NAME","SelectTrigger","forwardRef","SelectTrigger2","props","forwardedRef","_context_floatingContext","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","onPress","setOpen"],"sources":["../../src/SelectTrigger.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAuB;AAGhC,SAASC,eAAA,QAAgB;AACzB,SAAAC,QAAY,QAAW;AAEvB,YAASC,KAAA,aAAkB;AAiCrB,SAAAC,gBAAA,EAAAC,0BAAA;AA3BN,IAAAC,YAAM,kBAAe;AAIrB,IAAAC,aAAM,kBACGJ,KAAA,CAAWK,UAAA,UAAeC,cAAYA,CAAAC,KAAA,EAAAC,YACzC;EAGC,IAAAC,wBAA4B;EAAA,IACjC;IAAAC,KAAS;IAAAC,QAAA,QAAc;IAAAC,QAA2B,QAAc;IAAA,GAAAC;EAAA,IAAAN,KAAA;EAC9D,IAAAO,OAAQ,GAAAb,gBAAkB,CAAAS,KAAO;EAEjC,IAAAK,iBAAgB,GAAAb,0BAAsB,CAAAQ,KAAA;EACtC,IAAAM,YAAM,GAAAlB,eAAoB,CAAAU,YAAA,GAAAC,wBAAgC,GAAAK,OAAA,CAAAG,eAAA,cAAAR,wBAAA,uBAAAA,wBAAA,CAAAS,IAAA,CAAAC,YAAA;EAC1D,IAAAJ,iBAAM,CAAAK,qBAAe;EAAA,OACnB,eAAAvB,IAAA,CAAAE,QAAA;IAAAsB,aACQ,EAAAlB,YAAA;IAAsBS,QAChC;IAIAU,MAAI;IACFC,IAAA,UAAO;IAAAC,EACT,EAAAT,iBAAA,CAAAS,EAAA;IAEA,KAAAZ,QACE;MAAAa,iBAAC;QAAAC,YAAA;QAAAC,YACC;QAAeC,YACf;MAAA;MACOC,WACF;MAAAC,IAAA,EACLf,iBAAI,CAAAe;IAAkB;IACJC,IAAA,YAChB;IAAmB,eACjB,WAAc;IAAA,eACd,EAAAjB,OAAc,CAAAkB,IAAA;IAAA,mBACd,QAAc;IAAAC,GAAA,EAAAnB,OAChB,CAAAmB,GAAA;IAAAtB,QACA;IAAa,eACP,EAAAA,QAAA,QAAkB;IAAA,GAAAE,YAC1B;IAAAqB,GAAA,EAAAlB,YACK;IAAAmB,OACLA,CAAA;MAAcpB,iBACd,CAAAqB,OAAe,EAAAtB,OAAQ,CAAAkB,IAAA;IAAA;EACL;AACL;AACb,SACA5B,aAAA","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { FloatingFocusManager } from "@floating-ui/react";
2
1
  import { AdaptPortalContents, useAdaptIsActive } from "@tamagui/adapt";
3
2
  import { AnimatePresence } from "@tamagui/animate-presence";
4
3
  import { useComposedRefs } from "@tamagui/compose-refs";
@@ -6,104 +5,130 @@ import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
6
5
  import { styled } from "@tamagui/core";
7
6
  import { needsPortalRepropagation } from "@tamagui/portal";
8
7
  import { YStack } from "@tamagui/stacks";
8
+ import { startTransition } from "@tamagui/start-transition";
9
+ import * as React from "react";
9
10
  import { VIEWPORT_NAME } from "./constants.mjs";
10
11
  import { ForwardSelectContext, useSelectContext, useSelectItemParentContext } from "./context.mjs";
11
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
13
  const SelectViewportFrame = styled(YStack, {
13
- name: VIEWPORT_NAME,
14
- variants: {
15
- unstyled: {
16
- false: {
17
- size: "$2",
18
- backgroundColor: "$background",
19
- elevate: !0,
20
- bordered: !0,
21
- userSelect: "none",
22
- outlineWidth: 0
23
- }
24
- },
25
- size: {
26
- "...size": (val, {
27
- tokens
28
- }) => ({
29
- borderRadius: tokens.radius[val] ?? val
30
- })
14
+ name: VIEWPORT_NAME,
15
+ variants: {
16
+ unstyled: {
17
+ false: {
18
+ size: "$2",
19
+ backgroundColor: "$background",
20
+ elevate: true,
21
+ bordered: true,
22
+ userSelect: "none",
23
+ outlineWidth: 0
31
24
  }
32
25
  },
33
- defaultVariants: {
34
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
26
+ size: {
27
+ "...size": (val, {
28
+ tokens
29
+ }) => {
30
+ return {
31
+ borderRadius: tokens.radius[val] ?? val
32
+ };
33
+ }
34
+ }
35
+ },
36
+ defaultVariants: {
37
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
38
+ }
39
+ });
40
+ const needsRepropagation = needsPortalRepropagation();
41
+ const SelectViewport = SelectViewportFrame.styleable(function SelectViewport2(props, forwardedRef) {
42
+ const {
43
+ scope,
44
+ children,
45
+ disableScroll,
46
+ ...viewportProps
47
+ } = props;
48
+ const context = useSelectContext(scope);
49
+ const itemContext = useSelectItemParentContext(scope);
50
+ const isAdapted = useAdaptIsActive(context.adaptScope);
51
+ const [lazyMounted, setLazyMounted] = React.useState(context.lazyMount ? false : true);
52
+ React.useEffect(() => {
53
+ if (!context.lazyMount) return;
54
+ if (!context.open) return;
55
+ if (lazyMounted) return;
56
+ startTransition(() => {
57
+ setLazyMounted(true);
58
+ });
59
+ }, [context.lazyMount, context.open, lazyMounted]);
60
+ const composedRefs = useComposedRefs(
61
+ // @ts-ignore TODO react 19 type needs fix
62
+ forwardedRef, context.floatingContext?.refs.setFloating);
63
+ useIsomorphicLayoutEffect(() => {
64
+ if (context.update) {
65
+ context.update();
35
66
  }
36
- }),
37
- needsRepropagation = needsPortalRepropagation(),
38
- SelectViewport = SelectViewportFrame.styleable(function (props, forwardedRef) {
39
- const {
40
- scope,
41
- children,
42
- disableScroll,
43
- ...viewportProps
44
- } = props,
45
- context = useSelectContext(scope),
46
- itemContext = useSelectItemParentContext(scope),
47
- isAdapted = useAdaptIsActive(context.adaptScope),
48
- composedRefs = useComposedRefs(
49
- // @ts-ignore TODO react 19 type needs fix
50
- forwardedRef, context.floatingContext?.refs.setFloating);
51
- if (useIsomorphicLayoutEffect(() => {
52
- context.update && context.update();
53
- }, [isAdapted]), itemContext.shouldRenderWebNative) return /* @__PURE__ */jsx(YStack, {
67
+ }, [isAdapted]);
68
+ useIsomorphicLayoutEffect(() => {
69
+ if (context.lazyMount && lazyMounted && context.open && context.update) {
70
+ context.update();
71
+ }
72
+ }, [lazyMounted]);
73
+ if (itemContext.shouldRenderWebNative) {
74
+ return /* @__PURE__ */jsx(YStack, {
54
75
  position: "relative",
55
76
  children
56
77
  });
57
- if (isAdapted || !isWeb) {
58
- let content = children;
59
- return needsRepropagation && (content = /* @__PURE__ */jsx(ForwardSelectContext, {
78
+ }
79
+ if (isAdapted || !isWeb) {
80
+ let content = children;
81
+ if (needsRepropagation) {
82
+ content = /* @__PURE__ */jsx(ForwardSelectContext, {
60
83
  itemContext,
61
84
  context,
62
85
  children: content
63
- })), /* @__PURE__ */jsx(AdaptPortalContents, {
64
- scope: context.adaptScope,
65
- children: content
66
86
  });
67
87
  }
68
- if (!itemContext.interactions) return process.env.NODE_ENV === "development" && console.warn("No interactions provided to Select, potentially missing Adapt"), null;
69
- const {
70
- style,
71
- // remove this, it was set to "Select" always
72
- className,
73
- ...floatingProps
74
- } = itemContext.interactions.getFloatingProps();
75
- return /* @__PURE__ */jsxs(Fragment, {
76
- children: [!disableScroll && !props.unstyled && /* @__PURE__ */jsx("style", {
77
- dangerouslySetInnerHTML: {
78
- __html: selectViewportCSS
79
- }
80
- }), /* @__PURE__ */jsx(AnimatePresence, {
81
- children: context.open ? /* @__PURE__ */jsx(FloatingFocusManager, {
82
- context: context.floatingContext,
83
- modal: !1,
84
- initialFocus: -1,
85
- children: /* @__PURE__ */jsx(SelectViewportFrame, {
86
- size: itemContext.size,
87
- role: "presentation",
88
- ...viewportProps,
89
- ...style,
90
- ...floatingProps,
91
- ...(!props.unstyled && {
92
- overflowY: disableScroll ? void 0 : style.overflow ?? "auto"
93
- }),
94
- ref: composedRefs,
95
- children
96
- }, "select-viewport")
97
- }) : null
98
- }), !context.open && /* @__PURE__ */jsx("div", {
99
- style: {
100
- display: "none"
101
- },
102
- children: props.children
103
- })]
88
+ return /* @__PURE__ */jsx(AdaptPortalContents, {
89
+ scope: context.adaptScope,
90
+ children: content
104
91
  });
105
- }),
106
- selectViewportCSS = `
92
+ }
93
+ if (!itemContext.interactions) {
94
+ if (process.env.NODE_ENV === "development") {
95
+ console.warn(`No interactions provided to Select, potentially missing Adapt`);
96
+ }
97
+ return null;
98
+ }
99
+ const {
100
+ style,
101
+ // remove this, it was set to "Select" always
102
+ className,
103
+ ...floatingProps
104
+ } = itemContext.interactions.getFloatingProps();
105
+ return /* @__PURE__ */jsxs(Fragment, {
106
+ children: [!disableScroll && !props.unstyled && /* @__PURE__ */jsx("style", {
107
+ dangerouslySetInnerHTML: {
108
+ __html: selectViewportCSS
109
+ }
110
+ }), /* @__PURE__ */jsx(AnimatePresence, {
111
+ children: context.open ? /* @__PURE__ */jsx(SelectViewportFrame, {
112
+ size: itemContext.size,
113
+ role: "presentation",
114
+ ...viewportProps,
115
+ ...style,
116
+ ...floatingProps,
117
+ ...(!props.unstyled && {
118
+ overflowY: disableScroll ? void 0 : style.overflow ?? "auto"
119
+ }),
120
+ ref: composedRefs,
121
+ children: lazyMounted ? children : null
122
+ }, "select-viewport") : null
123
+ }), !context.open && !(context.lazyMount && context.renderValue) && lazyMounted && /* @__PURE__ */jsx("div", {
124
+ style: {
125
+ display: "none"
126
+ },
127
+ children
128
+ })]
129
+ });
130
+ });
131
+ const selectViewportCSS = `
107
132
  .is_SelectViewport {
108
133
  scrollbar-width: none;
109
134
  -webkit-overflow-scrolling: touch;