@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,3 +1,4 @@
1
+
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -5,153 +6,133 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
21
22
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
30
26
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
28
  var SelectScrollButton_exports = {};
35
29
  __export(SelectScrollButton_exports, {
36
- SelectScrollDownButton: () => SelectScrollDownButton,
37
- SelectScrollUpButton: () => SelectScrollUpButton
30
+ SelectScrollButtonFrame: () => SelectScrollButtonFrame,
31
+ SelectScrollDownButton: () => SelectScrollDownButton,
32
+ SelectScrollUpButton: () => SelectScrollUpButton
38
33
  });
39
34
  module.exports = __toCommonJS(SelectScrollButton_exports);
35
+ var import_core = require("@tamagui/core");
40
36
  var import_floating = require("@tamagui/floating");
41
37
  var import_compose_refs = require("@tamagui/compose-refs");
42
- var import_stacks = require("@tamagui/stacks");
38
+ var import_helpers = require("@tamagui/helpers");
43
39
  var React = __toESM(require("react"), 1);
44
40
  var import_react_dom = require("react-dom");
45
41
  var import_context = require("./context.cjs");
46
42
  var import_jsx_runtime = require("react/jsx-runtime");
47
43
  const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
48
- const SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {
49
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectScrollButtonImpl, {
50
- componentName: SCROLL_UP_BUTTON_NAME,
51
- ...props,
52
- dir: "up",
53
- ref: forwardedRef
54
- });
44
+ const SelectScrollButtonFrame = (0, import_core.styled)(import_core.View, { displayName: "SelectScrollButton" });
45
+ const SelectScrollUpButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, (props, forwardedRef) => {
46
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollButtonImpl, {
47
+ partClassName: `is_${SCROLL_UP_BUTTON_NAME}`,
48
+ ...props,
49
+ dir: "up",
50
+ ref: forwardedRef
51
+ });
55
52
  });
56
53
  SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
57
54
  const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
58
- const SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {
59
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectScrollButtonImpl, {
60
- componentName: SCROLL_DOWN_BUTTON_NAME,
61
- ...props,
62
- dir: "down",
63
- ref: forwardedRef
64
- });
55
+ const SelectScrollDownButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, (props, forwardedRef) => {
56
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollButtonImpl, {
57
+ partClassName: `is_${SCROLL_DOWN_BUTTON_NAME}`,
58
+ ...props,
59
+ dir: "down",
60
+ ref: forwardedRef
61
+ });
65
62
  });
66
63
  SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
67
- const SelectScrollButtonImpl = React.memo(React.forwardRef((props, forwardedRef) => {
68
- const {
69
- scope,
70
- dir,
71
- componentName,
72
- ...scrollIndicatorProps
73
- } = props;
74
- const {
75
- forceUpdate,
76
- open,
77
- fallback,
78
- setScrollTop,
79
- setInnerOffset,
80
- ...context
81
- } = (0, import_context.useSelectContext)(scope);
82
- const floatingRef = context.floatingContext?.refs.floating;
83
- const statusRef = React.useRef("idle");
84
- const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
85
- const frameRef = React.useRef(null);
86
- const {
87
- x,
88
- y,
89
- refs,
90
- strategy
91
- } = (0, import_floating.useFloatingRaw)({
92
- open: open && isVisible,
93
- strategy: "fixed",
94
- elements: {
95
- reference: floatingRef?.current
96
- },
97
- placement: dir === "up" ? "top" : "bottom",
98
- middleware: [(0, import_floating.offset)(({
99
- rects
100
- }) => -rects.floating.height)],
101
- whileElementsMounted: (...args) => (0, import_floating.autoUpdate)(...args, {
102
- animationFrame: true
103
- })
104
- });
105
- const composedRef = (0, import_compose_refs.useComposedRefs)(forwardedRef, refs.setFloating);
106
- if (!isVisible) {
107
- return null;
108
- }
109
- const onScroll = amount => {
110
- const floating = floatingRef;
111
- if (!floating) return;
112
- if (fallback) {
113
- if (floating.current) {
114
- floating.current.scrollTop -= amount;
115
- (0, import_react_dom.flushSync)(() => setScrollTop(floating.current?.scrollTop ?? 0));
116
- }
117
- } else {
118
- (0, import_react_dom.flushSync)(() => setInnerOffset(value => value - amount));
119
- }
120
- };
121
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
122
- ref: composedRef,
123
- componentName,
124
- "aria-hidden": true,
125
- ...scrollIndicatorProps,
126
- zIndex: 1e3,
127
- position: strategy,
128
- left: x || 0,
129
- top: y || 0,
130
- width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
131
- onPointerEnter: () => {
132
- statusRef.current = "active";
133
- let prevNow = Date.now();
134
- function frame() {
135
- const element = floatingRef?.current;
136
- if (element) {
137
- const currentNow = Date.now();
138
- const msElapsed = currentNow - prevNow;
139
- prevNow = currentNow;
140
- const pixelsToScroll = msElapsed / 2;
141
- const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
142
- const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
143
- onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels));
144
- if (scrollRemaining) {
145
- frameRef.current = requestAnimationFrame(frame);
146
- }
147
- }
148
- }
149
- cancelAnimationFrame(frameRef.current);
150
- frameRef.current = requestAnimationFrame(frame);
151
- },
152
- onPointerLeave: () => {
153
- statusRef.current = "idle";
154
- cancelAnimationFrame(frameRef.current);
155
- }
156
- });
157
- }));
64
+ const SelectScrollButtonImpl = React.memo((0, import_core.createStyledHOC)(SelectScrollButtonFrame, (props, forwardedRef) => {
65
+ const { scope, dir, partClassName, ...scrollIndicatorProps } = props;
66
+ const { className, onPointerEnter, onPointerLeave, ...frameProps } = scrollIndicatorProps;
67
+ const { open, fallback, setScrollTop, setInnerOffset, ...context } = (0, import_context.useSelectContext)(scope);
68
+ const floatingRef = context.floatingContext?.refs.floating;
69
+ const statusRef = React.useRef("idle");
70
+ const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
71
+ const frameRef = React.useRef(null);
72
+ const { x, y, refs, strategy } = (0, import_floating.useFloatingRaw)({
73
+ open: open && isVisible,
74
+ strategy: "fixed",
75
+ elements: { reference: floatingRef?.current },
76
+ placement: dir === "up" ? "top" : "bottom",
77
+ middleware: [(0, import_floating.offset)(({ rects }) => -rects.floating.height)],
78
+ whileElementsMounted: (...args) => (0, import_floating.autoUpdate)(...args, { animationFrame: true })
79
+ });
80
+ const setFloatingRef = React.useCallback((node) => {
81
+ refs.setFloating(node);
82
+ }, [refs.setFloating]);
83
+ const composedRef = (0, import_compose_refs.useComposedRefs)(forwardedRef, setFloatingRef);
84
+ React.useEffect(() => {
85
+ return () => cancelAnimationFrame(frameRef.current);
86
+ }, []);
87
+ if (!isVisible) {
88
+ return null;
89
+ }
90
+ const onScroll = (amount) => {
91
+ const floating = floatingRef;
92
+ if (!floating) return;
93
+ if (fallback) {
94
+ if (floating.current) {
95
+ floating.current.scrollTop -= amount;
96
+ (0, import_react_dom.flushSync)(() => setScrollTop(floating.current?.scrollTop ?? 0));
97
+ }
98
+ } else {
99
+ (0, import_react_dom.flushSync)(() => setInnerOffset((value) => value - amount));
100
+ }
101
+ };
102
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollButtonFrame, {
103
+ ref: composedRef,
104
+ className: `${partClassName} ${className || ""}`.trim(),
105
+ "aria-hidden": true,
106
+ ...frameProps,
107
+ zIndex: 1e3,
108
+ position: strategy,
109
+ left: x || 0,
110
+ top: y || 0,
111
+ width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
112
+ onPointerEnter: (0, import_helpers.composeEventHandlers)(onPointerEnter, () => {
113
+ statusRef.current = "active";
114
+ let prevNow = Date.now();
115
+ function frame() {
116
+ const element = floatingRef?.current;
117
+ if (element) {
118
+ const currentNow = Date.now();
119
+ const msElapsed = currentNow - prevNow;
120
+ prevNow = currentNow;
121
+ const pixelsToScroll = msElapsed / 2;
122
+ const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
123
+ const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
124
+ onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels));
125
+ if (scrollRemaining) {
126
+ frameRef.current = requestAnimationFrame(frame);
127
+ }
128
+ }
129
+ }
130
+ cancelAnimationFrame(frameRef.current);
131
+ frameRef.current = requestAnimationFrame(frame);
132
+ }),
133
+ onPointerLeave: (0, import_helpers.composeEventHandlers)(onPointerLeave, () => {
134
+ statusRef.current = "idle";
135
+ cancelAnimationFrame(frameRef.current);
136
+ })
137
+ });
138
+ }));
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var SelectScrollButton_native_exports = {};
25
+ __export(SelectScrollButton_native_exports, {
26
+ SelectScrollButtonFrame: () => SelectScrollButtonFrame,
27
+ SelectScrollDownButton: () => SelectScrollDownButton,
28
+ SelectScrollUpButton: () => SelectScrollUpButton
29
+ });
30
+ module.exports = __toCommonJS(SelectScrollButton_native_exports);
31
+ var import_core = require("@tamagui/core");
32
+ var SelectScrollButtonFrame = (0, import_core.styled)(import_core.View, { displayName: "SelectScrollButton" });
33
+ var SelectScrollUpButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, function(_props) {
34
+ return null;
35
+ });
36
+ var SelectScrollDownButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, function(_props) {
37
+ return null;
38
+ });
@@ -1,37 +1,40 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
21
22
  };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
24
  var SelectScrollButton_native_exports = {};
26
25
  __export(SelectScrollButton_native_exports, {
27
- SelectScrollDownButton: () => SelectScrollDownButton,
28
- SelectScrollUpButton: () => SelectScrollUpButton
26
+ SelectScrollButtonFrame: () => SelectScrollButtonFrame,
27
+ SelectScrollDownButton: () => SelectScrollDownButton,
28
+ SelectScrollUpButton: () => SelectScrollUpButton
29
29
  });
30
30
  module.exports = __toCommonJS(SelectScrollButton_native_exports);
31
- var SelectScrollUpButton = function (_) {
32
- return null;
33
- };
34
- var SelectScrollDownButton = function (_) {
35
- return null;
36
- };
31
+ var import_core = require("@tamagui/core");
32
+ var SelectScrollButtonFrame = (0, import_core.styled)(import_core.View, { displayName: "SelectScrollButton" });
33
+ var SelectScrollUpButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, function(_props) {
34
+ return null;
35
+ });
36
+ var SelectScrollDownButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, function(_props) {
37
+ return null;
38
+ });
39
+
37
40
  //# sourceMappingURL=SelectScrollButton.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SelectScrollButton_native_exports","__export","SelectScrollDownButton","SelectScrollUpButton","module","exports","__toCommonJS","_"],"sources":["../../src/SelectScrollButton.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iCAAA;AAAAC,QAAA,CAAAD,iCAAA;EAAAE,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,iCAAA;AAAO,IAAIG,oBAAA,GAAuB,SAAAA,CAASI,CAAA,EAAG;EAC1C,OAAO;AACX;AACO,IAAIL,sBAAA,GAAyB,SAAAA,CAASK,CAAA,EAAG;EAC5C,OAAO;AACX","ignoreList":[]}
1
+ {"version":3,"file":"SelectScrollButton.native.js","names":[],"sources":["cjs/SelectScrollButton.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectScrollButton_native_exports = {};\n__export(SelectScrollButton_native_exports, {\n SelectScrollButtonFrame: () => SelectScrollButtonFrame,\n SelectScrollDownButton: () => SelectScrollDownButton,\n SelectScrollUpButton: () => SelectScrollUpButton\n});\nmodule.exports = __toCommonJS(SelectScrollButton_native_exports);\nvar import_core = require(\"@tamagui/core\");\nvar SelectScrollButtonFrame = (0, import_core.styled)(import_core.View, {\n displayName: \"SelectScrollButton\"\n});\nvar SelectScrollUpButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, function(_props) {\n return null;\n});\nvar SelectScrollDownButton = (0, import_core.createStyledHOC)(SelectScrollButtonFrame, function(_props) {\n return null;\n});\n//# sourceMappingURL=SelectScrollButton.native.js.map\n"],"mappings":";;;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,oCAAoC,CAAC;AACzC,SAAS,mCAAmC;CAC1C,+BAA+B;CAC/B,8BAA8B;CAC9B,4BAA4B;AAC9B,CAAC;AACD,OAAO,UAAU,aAAa,iCAAiC;AAC/D,IAAI,cAAc,QAAQ,eAAe;AACzC,IAAI,2BAA2B,GAAG,YAAY,QAAQ,YAAY,MAAM,EACtE,aAAa,qBACf,CAAC;AACD,IAAI,wBAAwB,GAAG,YAAY,iBAAiB,yBAAyB,SAAS,QAAQ;CACpG,OAAO;AACT,CAAC;AACD,IAAI,0BAA0B,GAAG,YAAY,iBAAiB,yBAAyB,SAAS,QAAQ;CACtG,OAAO;AACT,CAAC"}
@@ -1,99 +1,84 @@
1
- var __create = Object.create;
1
+
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
6
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
7
+ for (var name in all) __defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
12
11
  };
13
12
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
21
20
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
30
- }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
22
  var SelectTrigger_exports = {};
35
23
  __export(SelectTrigger_exports, {
36
- SelectTrigger: () => SelectTrigger
24
+ SelectTrigger: () => SelectTrigger,
25
+ SelectTriggerFrame: () => SelectTriggerFrame
37
26
  });
38
27
  module.exports = __toCommonJS(SelectTrigger_exports);
39
28
  var import_compose_refs = require("@tamagui/compose-refs");
40
- var import_list_item = require("@tamagui/list-item");
41
- var React = __toESM(require("react"), 1);
29
+ var import_constants = require("@tamagui/constants");
30
+ var import_core = require("@tamagui/core");
31
+ var import_helpers = require("@tamagui/helpers");
42
32
  var import_context = require("./context.cjs");
43
33
  var import_jsx_runtime = require("react/jsx-runtime");
44
- const TRIGGER_NAME = "SelectTrigger";
45
- const isPointerCoarse = typeof window !== "undefined" && true ? window.matchMedia("(pointer:coarse)").matches : true;
46
- const SelectTrigger = React.forwardRef(function SelectTrigger2(props, forwardedRef) {
47
- const {
48
- scope,
49
- disabled = false,
50
- unstyled = false,
51
- ...triggerProps
52
- } = props;
53
- const context = (0, import_context.useSelectContext)(scope);
54
- const itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
55
- const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, context.floatingContext?.refs.setReference);
56
- if (itemParentContext.shouldRenderWebNative) return null;
57
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_list_item.ListItem, {
58
- componentName: TRIGGER_NAME,
59
- unstyled,
60
- render: "button",
61
- type: "button",
62
- id: itemParentContext.id,
63
- ...(!unstyled && {
64
- focusVisibleStyle: {
65
- outlineStyle: "solid",
66
- outlineWidth: 2,
67
- outlineColor: "$outlineColor"
68
- },
69
- borderWidth: 1,
70
- size: itemParentContext.size
71
- }),
72
- role: "combobox",
73
- "aria-haspopup": "listbox",
74
- "aria-expanded": context.open,
75
- "aria-autocomplete": "none",
76
- dir: context.dir,
77
- disabled,
78
- "data-disabled": disabled ? "" : void 0,
79
- ...triggerProps,
80
- ref: composedRefs,
81
- ...(itemParentContext.interactions ? {
82
- ...itemParentContext.interactions.getReferenceProps(),
83
- ...(isPointerCoarse ? {
84
- onPress() {
85
- itemParentContext.setOpen(!context.open);
86
- }
87
- } : {
88
- onMouseDown() {
89
- context.floatingContext?.update?.();
90
- itemParentContext.setOpen(!context.open);
91
- }
92
- })
93
- } : {
94
- onPress() {
95
- itemParentContext.setOpen(!context.open);
96
- }
97
- })
98
- });
99
- });
34
+ const SelectTriggerFrame = (0, import_core.styled)(import_core.View, {
35
+ displayName: "SelectTrigger",
36
+ alignItems: "center",
37
+ flexDirection: "row",
38
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button" })
39
+ });
40
+ const SelectTrigger = (0, import_core.createStyledHOC)(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {
41
+ const { scope, disabled = false, ...triggerProps } = props;
42
+ const context = (0, import_context.useSelectContext)(scope);
43
+ const itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
44
+ const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, context.floatingContext?.refs.setReference);
45
+ if (itemParentContext.shouldRenderWebNative) return null;
46
+ const toggleOpen = (event, reason = "trigger-press") => {
47
+ if (!disabled) itemParentContext.requestOpenChange(!context.open, (0, import_core.createChangeEventDetails)(reason, event?.nativeEvent || event, event?.currentTarget));
48
+ };
49
+ const interactionProps = itemParentContext.interactions ? itemParentContext.interactions.getReferenceProps({
50
+ ...triggerProps,
51
+ onMouseDown: (0, import_helpers.composeEventHandlers)(triggerProps.onMouseDown, () => context.floatingContext?.update?.())
52
+ }) : {
53
+ ...triggerProps,
54
+ ...import_constants.isWeb ? { onMouseDown: (0, import_helpers.composeEventHandlers)(triggerProps.onMouseDown, (event) => {
55
+ event.preventDefault();
56
+ toggleOpen(event);
57
+ }) } : { onPress: (0, import_helpers.composeEventHandlers)(triggerProps.onPress, toggleOpen) },
58
+ onKeyDown: (0, import_helpers.composeEventHandlers)(triggerProps.onKeyDown, (event) => {
59
+ if (event.key === "Enter" || event.key === " ") {
60
+ event.preventDefault();
61
+ toggleOpen(event, "keyboard");
62
+ }
63
+ })
64
+ };
65
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectTriggerFrame, {
66
+ type: "button",
67
+ id: itemParentContext.id,
68
+ role: "combobox",
69
+ "aria-haspopup": "listbox",
70
+ "aria-expanded": context.open,
71
+ "data-state": context.open ? "open" : "closed",
72
+ "aria-autocomplete": "none",
73
+ accessibilityRole: import_constants.isWeb ? void 0 : "button",
74
+ accessibilityState: import_constants.isWeb ? void 0 : {
75
+ expanded: context.open,
76
+ disabled
77
+ },
78
+ dir: context.dir,
79
+ disabled,
80
+ "data-disabled": disabled ? "" : void 0,
81
+ ...interactionProps,
82
+ ref: composedRefs
83
+ });
84
+ });
@@ -0,0 +1,91 @@
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 SelectTrigger_exports = {};
31
+ __export(SelectTrigger_exports, {
32
+ SelectTrigger: () => SelectTrigger,
33
+ SelectTriggerFrame: () => SelectTriggerFrame
34
+ });
35
+ module.exports = __toCommonJS(SelectTrigger_exports);
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_compose_refs = require("@tamagui/compose-refs");
38
+ var import_constants = require("@tamagui/constants");
39
+ var import_core = require("@tamagui/core");
40
+ var import_helpers = require("@tamagui/helpers");
41
+ __toESM(require("react"), 1);
42
+ var import_context = require("./context.native.js");
43
+ var SelectTriggerFrame = (0, import_core.styled)(import_core.View, {
44
+ displayName: "SelectTrigger",
45
+ alignItems: "center",
46
+ flexDirection: "row",
47
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button" })
48
+ });
49
+ var SelectTrigger = (0, import_core.createStyledHOC)(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {
50
+ var _context_floatingContext;
51
+ var { scope, disabled = false, ...triggerProps } = props;
52
+ var context = (0, import_context.useSelectContext)(scope);
53
+ var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
54
+ var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
55
+ if (itemParentContext.shouldRenderWebNative) return null;
56
+ var toggleOpen = function(event) {
57
+ var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "trigger-press";
58
+ if (!disabled) itemParentContext.requestOpenChange(!context.open, (0, import_core.createChangeEventDetails)(reason, (event === null || event === void 0 ? void 0 : event.nativeEvent) || event, event === null || event === void 0 ? void 0 : event.currentTarget));
59
+ };
60
+ var interactionProps = {
61
+ ...triggerProps,
62
+ ...import_constants.isWeb ? { onMouseDown: (0, import_helpers.composeEventHandlers)(triggerProps.onMouseDown, function(event) {
63
+ event.preventDefault();
64
+ toggleOpen(event);
65
+ }) } : { onPress: (0, import_helpers.composeEventHandlers)(triggerProps.onPress, toggleOpen) },
66
+ onKeyDown: (0, import_helpers.composeEventHandlers)(triggerProps.onKeyDown, function(event) {
67
+ if (event.key === "Enter" || event.key === " ") {
68
+ event.preventDefault();
69
+ toggleOpen(event, "keyboard");
70
+ }
71
+ })
72
+ };
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectTriggerFrame, {
74
+ type: "button",
75
+ id: itemParentContext.id,
76
+ role: "combobox",
77
+ "aria-haspopup": "listbox",
78
+ "aria-expanded": context.open,
79
+ "aria-autocomplete": "none",
80
+ accessibilityRole: import_constants.isWeb ? void 0 : "button",
81
+ accessibilityState: import_constants.isWeb ? void 0 : {
82
+ expanded: context.open,
83
+ disabled
84
+ },
85
+ dir: context.dir,
86
+ disabled,
87
+ "data-disabled": disabled ? "" : void 0,
88
+ ...interactionProps,
89
+ ref: composedRefs
90
+ });
91
+ });