@tamagui/select 1.46.2 → 1.47.0

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 (37) hide show
  1. package/package.json +19 -19
  2. package/types/Select.d.ts +2 -2
  3. package/types/SelectViewport.d.ts +1 -1
  4. package/dist/jsx/BubbleSelect.mjs +0 -25
  5. package/dist/jsx/BubbleSelect.mjs.map +0 -6
  6. package/dist/jsx/Select.mjs +0 -379
  7. package/dist/jsx/Select.mjs.map +0 -6
  8. package/dist/jsx/SelectContent.mjs +0 -35
  9. package/dist/jsx/SelectContent.mjs.map +0 -6
  10. package/dist/jsx/SelectContent.native.mjs +0 -7
  11. package/dist/jsx/SelectContent.native.mjs.map +0 -6
  12. package/dist/jsx/SelectImpl.mjs +0 -311
  13. package/dist/jsx/SelectImpl.mjs.map +0 -6
  14. package/dist/jsx/SelectImpl.native.mjs +0 -10
  15. package/dist/jsx/SelectImpl.native.mjs.map +0 -6
  16. package/dist/jsx/SelectItem.mjs +0 -140
  17. package/dist/jsx/SelectItem.mjs.map +0 -6
  18. package/dist/jsx/SelectScrollButton.mjs +0 -108
  19. package/dist/jsx/SelectScrollButton.mjs.map +0 -6
  20. package/dist/jsx/SelectScrollButton.native.mjs +0 -7
  21. package/dist/jsx/SelectScrollButton.native.mjs.map +0 -6
  22. package/dist/jsx/SelectTrigger.mjs +0 -58
  23. package/dist/jsx/SelectTrigger.mjs.map +0 -6
  24. package/dist/jsx/SelectViewport.mjs +0 -109
  25. package/dist/jsx/SelectViewport.mjs.map +0 -6
  26. package/dist/jsx/SelectViewport.native.mjs +0 -18
  27. package/dist/jsx/SelectViewport.native.mjs.map +0 -6
  28. package/dist/jsx/constants.mjs +0 -17
  29. package/dist/jsx/constants.mjs.map +0 -6
  30. package/dist/jsx/context.mjs +0 -15
  31. package/dist/jsx/context.mjs.map +0 -6
  32. package/dist/jsx/index.mjs +0 -3
  33. package/dist/jsx/index.mjs.map +0 -6
  34. package/dist/jsx/types.mjs +0 -1
  35. package/dist/jsx/types.mjs.map +0 -6
  36. package/dist/jsx/useSelectBreakpointActive.mjs +0 -18
  37. package/dist/jsx/useSelectBreakpointActive.mjs.map +0 -6
@@ -1,311 +0,0 @@
1
- import {
2
- flip,
3
- inner,
4
- offset,
5
- shift,
6
- size,
7
- useClick,
8
- useDismiss,
9
- useFloating,
10
- useInnerOffset,
11
- useInteractions,
12
- useListNavigation,
13
- useRole,
14
- useTypeahead
15
- } from "@floating-ui/react";
16
- import {
17
- isClient,
18
- isWeb,
19
- useIsTouchDevice,
20
- useIsomorphicLayoutEffect
21
- } from "@tamagui/core";
22
- import * as React from "react";
23
- import { flushSync } from "react-dom";
24
- import { SCROLL_ARROW_THRESHOLD, WINDOW_PADDING } from "./constants";
25
- import { SelectProvider, useSelectContext } from "./context";
26
- const SelectInlineImpl = (props) => {
27
- const {
28
- __scopeSelect,
29
- children,
30
- open = false,
31
- selectedIndexRef,
32
- listContentRef
33
- } = props;
34
- const selectContext = useSelectContext("SelectSheetImpl", __scopeSelect);
35
- const {
36
- setActiveIndex,
37
- setOpen,
38
- setSelectedIndex,
39
- selectedIndex,
40
- activeIndex,
41
- forceUpdate
42
- } = selectContext;
43
- const [scrollTop, setScrollTop] = React.useState(0);
44
- const touch = useIsTouchDevice();
45
- const listItemsRef = React.useRef([]);
46
- const overflowRef = React.useRef(null);
47
- const upArrowRef = React.useRef(null);
48
- const downArrowRef = React.useRef(null);
49
- const allowSelectRef = React.useRef(false);
50
- const allowMouseUpRef = React.useRef(true);
51
- const selectTimeoutRef = React.useRef();
52
- const state = React.useRef({
53
- isMouseOutside: false
54
- });
55
- const [controlledScrolling, setControlledScrolling] = React.useState(false);
56
- const [fallback, setFallback] = React.useState(false);
57
- const [innerOffset, setInnerOffset] = React.useState(0);
58
- const [blockSelection, setBlockSelection] = React.useState(false);
59
- const floatingStyle = React.useRef({});
60
- useIsomorphicLayoutEffect(() => {
61
- queueMicrotask(() => {
62
- if (!open) {
63
- setScrollTop(0);
64
- setFallback(false);
65
- setActiveIndex(null);
66
- setControlledScrolling(false);
67
- }
68
- });
69
- }, [open, setActiveIndex]);
70
- if (isWeb && isClient) {
71
- useIsomorphicLayoutEffect(() => {
72
- if (!open)
73
- return;
74
- const mouseUp = (e) => {
75
- if (state.current.isMouseOutside) {
76
- setOpen(false);
77
- }
78
- };
79
- document.addEventListener("mouseup", mouseUp);
80
- return () => {
81
- document.removeEventListener("mouseup", mouseUp);
82
- };
83
- }, [open]);
84
- }
85
- const updateFloatingSize = size({
86
- apply({
87
- availableHeight,
88
- rects: {
89
- reference: { width }
90
- }
91
- }) {
92
- floatingStyle.current = {
93
- width,
94
- maxHeight: availableHeight
95
- };
96
- },
97
- padding: WINDOW_PADDING
98
- });
99
- const { x, y, strategy, context, refs, update } = useFloating({
100
- open,
101
- onOpenChange: setOpen,
102
- placement: "bottom-start",
103
- middleware: fallback ? [
104
- offset(5),
105
- ...[
106
- touch ? shift({ crossAxis: true, padding: WINDOW_PADDING }) : flip({ padding: WINDOW_PADDING })
107
- ],
108
- updateFloatingSize
109
- ] : [
110
- inner({
111
- listRef: listItemsRef,
112
- overflowRef,
113
- index: selectedIndex,
114
- offset: innerOffset,
115
- onFallbackChange: setFallback,
116
- padding: 10,
117
- minItemsVisible: touch ? 10 : 4,
118
- referenceOverflowThreshold: 20
119
- }),
120
- updateFloatingSize
121
- ]
122
- });
123
- useIsomorphicLayoutEffect(() => {
124
- window.addEventListener("resize", update);
125
- if (open) {
126
- update();
127
- }
128
- return () => window.removeEventListener("resize", update);
129
- }, [update, open]);
130
- const floatingRef = refs.floating;
131
- const showUpArrow = open && scrollTop > SCROLL_ARROW_THRESHOLD;
132
- const showDownArrow = open && floatingRef.current && scrollTop < floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD;
133
- const interactions = useInteractions([
134
- useClick(context, { event: "mousedown" }),
135
- useDismiss(context, { outsidePress: false }),
136
- useRole(context, { role: "listbox" }),
137
- useInnerOffset(context, {
138
- enabled: !fallback,
139
- onChange: setInnerOffset,
140
- overflowRef,
141
- scrollRef: refs.floating
142
- }),
143
- useListNavigation(context, {
144
- listRef: listItemsRef,
145
- activeIndex: activeIndex || 0,
146
- selectedIndex,
147
- onNavigate: setActiveIndex
148
- }),
149
- useTypeahead(context, {
150
- listRef: listContentRef,
151
- onMatch: open ? setActiveIndex : setSelectedIndex,
152
- selectedIndex,
153
- activeIndex
154
- })
155
- ]);
156
- const interactionsContext = React.useMemo(() => {
157
- return {
158
- ...interactions,
159
- getReferenceProps() {
160
- return interactions.getReferenceProps({
161
- ref: refs.reference,
162
- className: "SelectTrigger",
163
- onKeyDown(event) {
164
- if (event.key === "Enter" || event.key === " " && !context.dataRef.current.typing) {
165
- event.preventDefault();
166
- setOpen(true);
167
- }
168
- }
169
- });
170
- },
171
- getFloatingProps(props2) {
172
- return interactions.getFloatingProps({
173
- ref: refs.floating,
174
- className: "Select",
175
- ...props2,
176
- style: {
177
- position: strategy,
178
- top: y ?? "",
179
- left: x ?? "",
180
- outline: 0,
181
- scrollbarWidth: "none",
182
- ...floatingStyle.current,
183
- ...props2?.style
184
- },
185
- onPointerEnter() {
186
- setControlledScrolling(false);
187
- state.current.isMouseOutside = false;
188
- },
189
- onPointerLeave() {
190
- state.current.isMouseOutside = true;
191
- },
192
- onPointerMove() {
193
- state.current.isMouseOutside = false;
194
- setControlledScrolling(false);
195
- },
196
- onKeyDown() {
197
- setControlledScrolling(true);
198
- },
199
- onContextMenu(e) {
200
- e.preventDefault();
201
- },
202
- onScroll(event) {
203
- flushSync(() => setScrollTop(event.currentTarget.scrollTop));
204
- }
205
- });
206
- }
207
- };
208
- }, [refs.reference.current, refs.floating.current, y, x, interactions]);
209
- useIsomorphicLayoutEffect(() => {
210
- if (open) {
211
- selectTimeoutRef.current = setTimeout(() => {
212
- allowSelectRef.current = true;
213
- }, 300);
214
- return () => {
215
- clearTimeout(selectTimeoutRef.current);
216
- };
217
- } else {
218
- allowSelectRef.current = false;
219
- allowMouseUpRef.current = true;
220
- setInnerOffset(0);
221
- setFallback(false);
222
- setBlockSelection(false);
223
- }
224
- }, [open]);
225
- useIsomorphicLayoutEffect(() => {
226
- if (!open && state.current.isMouseOutside) {
227
- state.current.isMouseOutside = false;
228
- }
229
- }, [open]);
230
- useIsomorphicLayoutEffect(() => {
231
- function onPointerDown(e) {
232
- const target = e.target;
233
- if (!(refs.floating.current?.contains(target) || upArrowRef.current?.contains(target) || downArrowRef.current?.contains(target))) {
234
- setOpen(false);
235
- setControlledScrolling(false);
236
- }
237
- }
238
- if (open) {
239
- document.addEventListener("pointerdown", onPointerDown);
240
- return () => {
241
- document.removeEventListener("pointerdown", onPointerDown);
242
- };
243
- }
244
- }, [open, refs, setOpen]);
245
- useIsomorphicLayoutEffect(() => {
246
- if (open && controlledScrolling) {
247
- if (activeIndex != null) {
248
- listItemsRef.current[activeIndex]?.scrollIntoView({ block: "nearest" });
249
- }
250
- }
251
- setScrollTop(refs.floating.current?.scrollTop ?? 0);
252
- }, [open, refs, controlledScrolling, activeIndex]);
253
- useIsomorphicLayoutEffect(() => {
254
- if (open && fallback) {
255
- if (selectedIndex != null) {
256
- listItemsRef.current[selectedIndex]?.scrollIntoView({ block: "nearest" });
257
- }
258
- }
259
- }, [open, fallback, selectedIndex]);
260
- useIsomorphicLayoutEffect(() => {
261
- if (refs.floating.current && fallback) {
262
- refs.floating.current.style.maxHeight = "";
263
- }
264
- }, [refs, fallback]);
265
- return <SelectProvider
266
- scope={__scopeSelect}
267
- {...selectContext}
268
- setScrollTop={setScrollTop}
269
- setInnerOffset={setInnerOffset}
270
- setValueAtIndex={(index, value) => {
271
- listContentRef.current[index] = value;
272
- }}
273
- fallback={fallback}
274
- interactions={interactionsContext}
275
- floatingContext={context}
276
- activeIndex={activeIndex}
277
- canScrollDown={!!showDownArrow}
278
- canScrollUp={!!showUpArrow}
279
- controlledScrolling={controlledScrolling}
280
- dataRef={context.dataRef}
281
- listRef={listItemsRef}
282
- blockSelection={blockSelection}
283
- allowMouseUpRef={allowMouseUpRef}
284
- upArrowRef={upArrowRef}
285
- downArrowRef={downArrowRef}
286
- selectTimeoutRef={selectTimeoutRef}
287
- allowSelectRef={allowSelectRef}
288
- update={update}
289
- >
290
- {children}
291
- {
292
- /* {isFormControl ? (
293
- <BubbleSelect
294
- ref={setBubbleSelect}
295
- aria-hidden
296
- tabIndex={-1}
297
- name={name}
298
- autoComplete={autoComplete}
299
- value={value}
300
- // enable form autofill
301
- onChange={(event) => setValue(event.target.value)}
302
- />
303
- ) : null} */
304
- }
305
- </SelectProvider>;
306
- };
307
- const userAgent = typeof navigator !== "undefined" && navigator.userAgent || "";
308
- export {
309
- SelectInlineImpl
310
- };
311
- //# sourceMappingURL=SelectImpl.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectImpl.tsx"],
4
- "mappings": "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",
5
- "names": ["props"]
6
- }
@@ -1,10 +0,0 @@
1
- const SelectInlineImpl = (props) => {
2
- if (process.env.NODE_ENV === "development") {
3
- console.warn("Sheet not implemented inline on native");
4
- }
5
- return <>{props.children}</>;
6
- };
7
- export {
8
- SelectInlineImpl
9
- };
10
- //# sourceMappingURL=SelectImpl.native.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectImpl.native.tsx"],
4
- "mappings": "AAOO,MAAM,mBAAmB,CAAC,UAA2B;AAC1D,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,YAAQ,KAAK,wCAAwC;AAAA,EACvD;AACA,SAAO,GAAG,MAAM,SAAS;AAC3B;",
5
- "names": []
6
- }
@@ -1,140 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import {
3
- isWeb,
4
- isWebTouchable,
5
- useIsomorphicLayoutEffect
6
- } from "@tamagui/core";
7
- import { ListItem } from "@tamagui/list-item";
8
- import * as React from "react";
9
- import { createSelectContext, useSelectContext } from "./context";
10
- const ITEM_NAME = "SelectItem";
11
- const [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);
12
- const SelectItem = React.forwardRef(
13
- (props, forwardedRef) => {
14
- const {
15
- __scopeSelect,
16
- value,
17
- disabled = false,
18
- textValue: textValueProp,
19
- index,
20
- ...itemProps
21
- } = props;
22
- const context = useSelectContext(ITEM_NAME, __scopeSelect);
23
- const isSelected = context.value === value;
24
- const textId = React.useId();
25
- const {
26
- selectedIndex,
27
- setSelectedIndex,
28
- listRef,
29
- open,
30
- setOpen,
31
- onChange,
32
- activeIndex,
33
- allowMouseUpRef,
34
- allowSelectRef,
35
- setValueAtIndex,
36
- selectTimeoutRef,
37
- dataRef
38
- } = context;
39
- const composedRefs = useComposedRefs(forwardedRef, (node) => {
40
- if (!isWeb)
41
- return;
42
- if (node instanceof HTMLElement) {
43
- if (listRef) {
44
- listRef.current[index] = node;
45
- }
46
- }
47
- });
48
- useIsomorphicLayoutEffect(() => {
49
- setValueAtIndex(index, value);
50
- }, [index, setValueAtIndex, value]);
51
- function handleSelect() {
52
- setSelectedIndex(index);
53
- onChange(value);
54
- setOpen(false);
55
- }
56
- const selectItemProps = context.interactions ? context.interactions.getItemProps({
57
- ...isWebTouchable ? {
58
- onTouchStart() {
59
- allowSelectRef.current = true;
60
- allowMouseUpRef.current = false;
61
- }
62
- } : {
63
- onTouchMove() {
64
- allowSelectRef.current = true;
65
- allowMouseUpRef.current = false;
66
- },
67
- onTouchEnd() {
68
- allowSelectRef.current = false;
69
- allowMouseUpRef.current = true;
70
- }
71
- },
72
- onKeyDown(event) {
73
- if (event.key === "Enter" || event.key === " " && !dataRef?.current.typing) {
74
- event.preventDefault();
75
- handleSelect();
76
- } else {
77
- allowSelectRef.current = true;
78
- }
79
- },
80
- onClick() {
81
- if (allowSelectRef.current) {
82
- setSelectedIndex(index);
83
- setOpen(false);
84
- }
85
- },
86
- onMouseUp() {
87
- if (!allowMouseUpRef.current) {
88
- return;
89
- }
90
- if (allowSelectRef.current) {
91
- handleSelect();
92
- }
93
- clearTimeout(selectTimeoutRef.current);
94
- selectTimeoutRef.current = setTimeout(() => {
95
- allowSelectRef.current = true;
96
- });
97
- }
98
- }) : {
99
- onPress: handleSelect
100
- };
101
- const isActive = activeIndex === index;
102
- React.useLayoutEffect(() => {
103
- if (isActive) {
104
- listRef?.current[index]?.focus();
105
- }
106
- }, [isActive]);
107
- return <SelectItemContextProvider
108
- scope={__scopeSelect}
109
- value={value}
110
- textId={textId || ""}
111
- isSelected={isSelected}
112
- >{context.shouldRenderWebNative ? <option value={value}>{props.children}</option> : <ListItem
113
- tag="div"
114
- componentName={ITEM_NAME}
115
- backgrounded
116
- pressTheme
117
- hoverTheme
118
- focusTheme
119
- cursor="default"
120
- outlineWidth={0}
121
- ref={composedRefs}
122
- aria-labelledby={textId}
123
- aria-selected={isSelected}
124
- data-state={isSelected ? "active" : "inactive"}
125
- aria-disabled={disabled || void 0}
126
- data-disabled={disabled ? "" : void 0}
127
- tabIndex={disabled ? void 0 : -1}
128
- size={context.size}
129
- {...itemProps}
130
- {...selectItemProps}
131
- />}</SelectItemContextProvider>;
132
- }
133
- );
134
- SelectItem.displayName = ITEM_NAME;
135
- export {
136
- SelectItem,
137
- SelectItemContextProvider,
138
- useSelectItemContext
139
- };
140
- //# sourceMappingURL=SelectItem.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectItem.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,108 +0,0 @@
1
- import { autoUpdate, offset, useFloating } from "@floating-ui/react";
2
- import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { YStack } from "@tamagui/stacks";
4
- import * as React from "react";
5
- import { flushSync } from "react-dom";
6
- import { useSelectContext } from "./context";
7
- const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
8
- const SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {
9
- return <SelectScrollButtonImpl
10
- componentName={SCROLL_UP_BUTTON_NAME}
11
- {...props}
12
- dir="up"
13
- ref={forwardedRef}
14
- />;
15
- });
16
- SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
17
- const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
18
- const SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {
19
- return <SelectScrollButtonImpl
20
- componentName={SCROLL_DOWN_BUTTON_NAME}
21
- {...props}
22
- dir="down"
23
- ref={forwardedRef}
24
- />;
25
- });
26
- SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
27
- const SelectScrollButtonImpl = React.memo(
28
- React.forwardRef(
29
- (props, forwardedRef) => {
30
- const { __scopeSelect, dir, componentName, ...scrollIndicatorProps } = props;
31
- const { forceUpdate, open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(componentName, __scopeSelect);
32
- const floatingRef = context.floatingContext?.refs.floating;
33
- const statusRef = React.useRef("idle");
34
- const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
35
- const frameRef = React.useRef();
36
- const { x, y, refs, strategy } = useFloating({
37
- open: open && isVisible,
38
- strategy: "fixed",
39
- elements: {
40
- reference: floatingRef?.current
41
- },
42
- placement: dir === "up" ? "top" : "bottom",
43
- middleware: [offset(({ rects }) => -rects.floating.height)],
44
- whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: true })
45
- });
46
- const composedRef = useComposedRefs(forwardedRef, refs.setFloating);
47
- if (!isVisible) {
48
- return null;
49
- }
50
- const onScroll = (amount) => {
51
- const floating = floatingRef;
52
- if (!floating)
53
- return;
54
- if (fallback) {
55
- if (floating.current) {
56
- floating.current.scrollTop -= amount;
57
- flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0));
58
- }
59
- } else {
60
- flushSync(() => setInnerOffset((value) => value - amount));
61
- }
62
- };
63
- return <YStack
64
- ref={composedRef}
65
- componentName={componentName}
66
- aria-hidden
67
- {...scrollIndicatorProps}
68
- zIndex={1e3}
69
- position={strategy}
70
- left={x || 0}
71
- top={y || 0}
72
- width={`calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`}
73
- onPointerEnter={() => {
74
- statusRef.current = "active";
75
- let prevNow = Date.now();
76
- function frame() {
77
- const element = floatingRef?.current;
78
- if (element) {
79
- const currentNow = Date.now();
80
- const msElapsed = currentNow - prevNow;
81
- prevNow = currentNow;
82
- const pixelsToScroll = msElapsed / 2;
83
- const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
84
- const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
85
- onScroll(
86
- dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)
87
- );
88
- if (scrollRemaining) {
89
- frameRef.current = requestAnimationFrame(frame);
90
- }
91
- }
92
- }
93
- cancelAnimationFrame(frameRef.current);
94
- frameRef.current = requestAnimationFrame(frame);
95
- }}
96
- onPointerLeave={() => {
97
- statusRef.current = "idle";
98
- cancelAnimationFrame(frameRef.current);
99
- }}
100
- />;
101
- }
102
- )
103
- );
104
- export {
105
- SelectScrollDownButton,
106
- SelectScrollUpButton
107
- };
108
- //# sourceMappingURL=SelectScrollButton.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectScrollButton.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,7 +0,0 @@
1
- const SelectScrollUpButton = (_) => null;
2
- const SelectScrollDownButton = (_) => null;
3
- export {
4
- SelectScrollDownButton,
5
- SelectScrollUpButton
6
- };
7
- //# sourceMappingURL=SelectScrollButton.native.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectScrollButton.native.tsx"],
4
- "mappings": "AAGO,MAAM,uBAAuB,CAAC,MAA4C;AAG1E,MAAM,yBAAyB,CAAC,MACrC;",
5
- "names": []
6
- }
@@ -1,58 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { ListItem } from "@tamagui/list-item";
3
- import * as React from "react";
4
- import { useSelectContext } from "./context";
5
- const TRIGGER_NAME = "SelectTrigger";
6
- const SelectTrigger = React.forwardRef(
7
- function SelectTrigger2(props, forwardedRef) {
8
- const { __scopeSelect, disabled = false, unstyled = false, ...triggerProps } = props;
9
- const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
10
- const composedRefs = useComposedRefs(
11
- forwardedRef,
12
- context.floatingContext?.refs.setReference
13
- );
14
- if (context.shouldRenderWebNative) {
15
- return null;
16
- }
17
- return <ListItem
18
- componentName={TRIGGER_NAME}
19
- unstyled={unstyled}
20
- {...!unstyled && {
21
- backgrounded: true,
22
- radiused: true,
23
- hoverTheme: true,
24
- pressTheme: true,
25
- focusable: true,
26
- focusStyle: {
27
- outlineStyle: "solid",
28
- outlineWidth: 2,
29
- outlineColor: "$borderColorFocus"
30
- },
31
- borderWidth: 1
32
- }}
33
- size={context.size}
34
- aria-expanded={context.open}
35
- aria-autocomplete="none"
36
- dir={context.dir}
37
- disabled={disabled}
38
- data-disabled={disabled ? "" : void 0}
39
- {...triggerProps}
40
- ref={composedRefs}
41
- {...process.env.TAMAGUI_TARGET === "web" && context.interactions ? {
42
- ...context.interactions.getReferenceProps(),
43
- onMouseDown() {
44
- context.floatingContext?.update();
45
- context.setOpen(!context.open);
46
- }
47
- } : {
48
- onPress() {
49
- context.setOpen(!context.open);
50
- }
51
- }}
52
- />;
53
- }
54
- );
55
- export {
56
- SelectTrigger
57
- };
58
- //# sourceMappingURL=SelectTrigger.mjs.map