@tamagui/select 1.74.3 → 1.74.4

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.
@@ -0,0 +1,17 @@
1
+ import { useComposedRefs } from "@tamagui/compose-refs";
2
+ import { usePrevious } from "@tamagui/use-previous";
3
+ import * as React from "react";
4
+ const BubbleSelect = React.forwardRef((props, forwardedRef) => {
5
+ const { value, ...selectProps } = props, ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), prevValue = usePrevious(value);
6
+ return React.useEffect(() => {
7
+ const select = ref.current, selectProto = window.HTMLSelectElement.prototype, setValue = Object.getOwnPropertyDescriptor(
8
+ selectProto,
9
+ "value"
10
+ ).set;
11
+ if (prevValue !== value && setValue) {
12
+ const event = new Event("change", { bubbles: !0 });
13
+ setValue.call(select, value), select.dispatchEvent(event);
14
+ }
15
+ }, [prevValue, value]), null;
16
+ });
17
+ //# sourceMappingURL=BubbleSelect.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/BubbleSelect.tsx"],
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,YAAY,WAAW;AAGvB,MAAM,eAAe,MAAM,WAGzB,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI,OAC5B,MAAM,MAAM,OAA0B,IAAI,GAC1C,eAAe,gBAAgB,cAAc,GAAG,GAChD,YAAY,YAAY,KAAK;AAGnC,eAAM,UAAU,MAAM;AACpB,UAAM,SAAS,IAAI,SACb,cAAc,OAAO,kBAAkB,WAKvC,WAJa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,IACF,EAC4B;AAC5B,QAAI,cAAc,SAAS,UAAU;AACnC,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,GAAK,CAAC;AACnD,eAAS,KAAK,QAAQ,KAAK,GAC3B,OAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,CAAC,GAed;AAMT,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,364 @@
1
+ import { Adapt, useAdaptParent } from "@tamagui/adapt";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import {
4
+ getVariableValue,
5
+ isWeb,
6
+ styled,
7
+ useEvent,
8
+ useGet,
9
+ useIsomorphicLayoutEffect,
10
+ withStaticProperties
11
+ } from "@tamagui/core";
12
+ import { getSpace } from "@tamagui/get-token";
13
+ import { ListItem } from "@tamagui/list-item";
14
+ import { PortalHost } from "@tamagui/portal";
15
+ import { Separator } from "@tamagui/separator";
16
+ import { Sheet, SheetController } from "@tamagui/sheet";
17
+ import { ThemeableStack, XStack, YStack } from "@tamagui/stacks";
18
+ import { Paragraph, SizableText } from "@tamagui/text";
19
+ import { useControllableState } from "@tamagui/use-controllable-state";
20
+ import * as React from "react";
21
+ import { SELECT_NAME } from "./constants";
22
+ import {
23
+ SelectItemParentProvider,
24
+ SelectProvider,
25
+ createSelectContext,
26
+ useSelectContext,
27
+ useSelectItemParentContext
28
+ } from "./context";
29
+ import { SelectContent } from "./SelectContent";
30
+ import { SelectInlineImpl } from "./SelectImpl";
31
+ import { SelectItem, useSelectItemContext } from "./SelectItem";
32
+ import { SelectScrollDownButton, SelectScrollUpButton } from "./SelectScrollButton";
33
+ import { SelectTrigger } from "./SelectTrigger";
34
+ import { SelectViewport } from "./SelectViewport";
35
+ import {
36
+ useSelectBreakpointActive,
37
+ useShowSelectSheet
38
+ } from "./useSelectBreakpointActive";
39
+ import { Fragment, jsx } from "react/jsx-runtime";
40
+ const VALUE_NAME = "SelectValue", SelectValueFrame = styled(SizableText, {
41
+ name: VALUE_NAME,
42
+ userSelect: "none"
43
+ }), SelectValue = SelectValueFrame.styleable(function({
44
+ __scopeSelect,
45
+ children: childrenProp,
46
+ placeholder,
47
+ ...props
48
+ }, forwardedRef) {
49
+ const context = useSelectContext(VALUE_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(VALUE_NAME, __scopeSelect), composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange), children = childrenProp ?? context.selectedItem, selectValueChildren = context.value == null || context.value === "" ? placeholder ?? children : children;
50
+ return /* @__PURE__ */ jsx(
51
+ SelectValueFrame,
52
+ {
53
+ ...!props.unstyled && {
54
+ size: itemParentContext.size,
55
+ ellipse: !0
56
+ },
57
+ ref: composedRefs,
58
+ pointerEvents: "none",
59
+ ...props,
60
+ children: unwrapSelectItem(selectValueChildren)
61
+ }
62
+ );
63
+ });
64
+ function unwrapSelectItem(selectValueChildren) {
65
+ return React.Children.map(selectValueChildren, (child) => {
66
+ if (child) {
67
+ if (child.type?.staticConfig?.componentName === ITEM_TEXT_NAME)
68
+ return child.props.children;
69
+ if (child.props?.children)
70
+ return unwrapSelectItem(child.props.children);
71
+ }
72
+ return child;
73
+ });
74
+ }
75
+ const SelectIcon = styled(XStack, {
76
+ name: "SelectIcon",
77
+ // @ts-ignore
78
+ "aria-hidden": !0,
79
+ children: /* @__PURE__ */ jsx(Paragraph, { children: "\u25BC" })
80
+ }), ITEM_TEXT_NAME = "SelectItemText", SelectItemTextFrame = styled(SizableText, {
81
+ name: ITEM_TEXT_NAME,
82
+ variants: {
83
+ unstyled: {
84
+ false: {
85
+ userSelect: "none",
86
+ color: "$color",
87
+ ellipse: !0
88
+ }
89
+ }
90
+ },
91
+ defaultVariants: {
92
+ unstyled: !1
93
+ }
94
+ }), SelectItemText = React.forwardRef(
95
+ (props, forwardedRef) => {
96
+ const { __scopeSelect, className, ...itemTextProps } = props, context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(ITEM_TEXT_NAME, __scopeSelect), ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect), contents = React.useMemo(
97
+ () => /* @__PURE__ */ jsx(
98
+ SelectItemTextFrame,
99
+ {
100
+ className,
101
+ size: itemParentContext.size,
102
+ id: itemContext.textId,
103
+ ...itemTextProps,
104
+ ref: composedRefs
105
+ }
106
+ ),
107
+ // eslint-disable-next-line react-hooks/exhaustive-deps
108
+ [props, itemParentContext.size, className, itemContext.textId]
109
+ );
110
+ return React.useEffect(() => {
111
+ itemParentContext.initialValue === itemContext.value && !context.selectedIndex && context.setSelectedItem(contents);
112
+ }, []), React.useEffect(() => itemParentContext.valueSubscribe((val) => {
113
+ val === itemContext.value && context.setSelectedItem(contents);
114
+ }), [itemContext.value]), itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ jsx(Fragment, { children: props.children }) : /* @__PURE__ */ jsx(Fragment, { children: contents });
115
+ }
116
+ );
117
+ SelectItemText.displayName = ITEM_TEXT_NAME;
118
+ const ITEM_INDICATOR_NAME = "SelectItemIndicator", SelectItemIndicatorFrame = styled(XStack, {
119
+ name: ITEM_TEXT_NAME
120
+ }), SelectItemIndicator = React.forwardRef(
121
+ (props, forwardedRef) => {
122
+ const { __scopeSelect, ...itemIndicatorProps } = props, context = useSelectItemParentContext(ITEM_INDICATOR_NAME, __scopeSelect), itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
123
+ return context.shouldRenderWebNative ? null : itemContext.isSelected ? /* @__PURE__ */ jsx(SelectItemIndicatorFrame, { "aria-hidden": !0, ...itemIndicatorProps, ref: forwardedRef }) : null;
124
+ }
125
+ );
126
+ SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
127
+ const GROUP_NAME = "SelectGroup", [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME), SelectGroupFrame = styled(YStack, {
128
+ name: GROUP_NAME,
129
+ width: "100%"
130
+ }), NativeSelectTextFrame = styled(SizableText, {
131
+ tag: "select",
132
+ backgroundColor: "$background",
133
+ borderColor: "$borderColor",
134
+ hoverStyle: {
135
+ backgroundColor: "$backgroundHover"
136
+ }
137
+ }), NativeSelectFrame = styled(ThemeableStack, {
138
+ name: "NativeSelect",
139
+ bordered: !0,
140
+ userSelect: "none",
141
+ outlineWidth: 0,
142
+ paddingRight: 10,
143
+ variants: {
144
+ size: {
145
+ "...size": (val, extras) => {
146
+ const { tokens } = extras, paddingHorizontal = getVariableValue(tokens.space[val]);
147
+ return {
148
+ borderRadius: tokens.radius[val] ?? val,
149
+ minHeight: tokens.size[val],
150
+ paddingRight: paddingHorizontal + 20,
151
+ paddingLeft: paddingHorizontal,
152
+ paddingVertical: getSpace(val, {
153
+ shift: -3
154
+ })
155
+ };
156
+ }
157
+ }
158
+ },
159
+ defaultVariants: {
160
+ size: "$2"
161
+ }
162
+ }), SelectGroup = React.forwardRef(
163
+ (props, forwardedRef) => {
164
+ const { __scopeSelect, ...groupProps } = props, groupId = React.useId(), context = useSelectContext(GROUP_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(GROUP_NAME, __scopeSelect), size = itemParentContext.size ?? "$true", nativeSelectRef = React.useRef(null), content = function() {
165
+ return itemParentContext.shouldRenderWebNative ? (
166
+ // @ts-expect-error until we support typing based on tag
167
+ /* @__PURE__ */ jsx(NativeSelectFrame, { asChild: !0, size, value: context.value, children: /* @__PURE__ */ jsx(
168
+ NativeSelectTextFrame,
169
+ {
170
+ onChange: (event) => {
171
+ itemParentContext.onChange(event.currentTarget.value);
172
+ },
173
+ size,
174
+ ref: nativeSelectRef,
175
+ style: {
176
+ color: "var(--color)",
177
+ // @ts-ignore
178
+ appearance: "none"
179
+ },
180
+ children: props.children
181
+ }
182
+ ) })
183
+ ) : /* @__PURE__ */ jsx(
184
+ SelectGroupFrame,
185
+ {
186
+ role: "group",
187
+ "aria-labelledby": groupId,
188
+ ...groupProps,
189
+ ref: forwardedRef
190
+ }
191
+ );
192
+ }();
193
+ return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId || "", children: content });
194
+ }
195
+ );
196
+ SelectGroup.displayName = GROUP_NAME;
197
+ const LABEL_NAME = "SelectLabel", SelectLabel = React.forwardRef(
198
+ (props, forwardedRef) => {
199
+ const { __scopeSelect, ...labelProps } = props, context = useSelectItemParentContext(LABEL_NAME, __scopeSelect), groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
200
+ return context.shouldRenderWebNative ? null : /* @__PURE__ */ jsx(
201
+ ListItem,
202
+ {
203
+ tag: "div",
204
+ componentName: LABEL_NAME,
205
+ fontWeight: "800",
206
+ id: groupContext.id,
207
+ size: context.size,
208
+ ...labelProps,
209
+ ref: forwardedRef
210
+ }
211
+ );
212
+ }
213
+ );
214
+ SelectLabel.displayName = LABEL_NAME;
215
+ const SelectSeparator = styled(Separator, {
216
+ name: "SelectSeparator"
217
+ }), SelectSheetController = (props) => {
218
+ const context = useSelectContext("SelectSheetController", props.__scopeSelect), showSheet = useShowSelectSheet(context), breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint), getShowSheet = useGet(showSheet);
219
+ return /* @__PURE__ */ jsx(
220
+ SheetController,
221
+ {
222
+ onOpenChange: (val) => {
223
+ getShowSheet() && props.onOpenChange(val);
224
+ },
225
+ open: context.open,
226
+ hidden: breakpointActive === !1,
227
+ children: props.children
228
+ }
229
+ );
230
+ }, SelectSheetImpl = (props) => /* @__PURE__ */ jsx(Fragment, { children: props.children }), Select = withStaticProperties(
231
+ (props) => {
232
+ const {
233
+ __scopeSelect,
234
+ native,
235
+ children,
236
+ open: openProp,
237
+ defaultOpen,
238
+ onOpenChange,
239
+ value: valueProp,
240
+ defaultValue,
241
+ onValueChange,
242
+ disablePreventBodyScroll,
243
+ size: sizeProp = "$true",
244
+ onActiveChange,
245
+ dir
246
+ } = props, id = React.useId(), scopeKey = __scopeSelect ? Object.keys(__scopeSelect)[0] ?? id : id, { when, AdaptProvider } = useAdaptParent({
247
+ Contents: React.useCallback(
248
+ () => /* @__PURE__ */ jsx(PortalHost, { name: `${scopeKey}SheetContents` }),
249
+ [scopeKey]
250
+ )
251
+ }), sheetBreakpoint = when, SelectImpl = useSelectBreakpointActive(sheetBreakpoint) || !isWeb ? SelectSheetImpl : SelectInlineImpl, forceUpdate = React.useReducer(() => ({}), {})[1], [selectedItem, setSelectedItem] = React.useState(null), [open, setOpen] = useControllableState({
252
+ prop: openProp,
253
+ defaultProp: defaultOpen || !1,
254
+ onChange: onOpenChange
255
+ }), [value, setValue] = useControllableState({
256
+ prop: valueProp,
257
+ defaultProp: defaultValue || "",
258
+ onChange: onValueChange,
259
+ transition: !0
260
+ });
261
+ React.useEffect(() => {
262
+ open && emitValue(value);
263
+ }, [open]);
264
+ const [activeIndex, setActiveIndex] = React.useState(0), [emitValue, valueSubscribe] = useEmitter(), [emitActiveIndex, activeIndexSubscribe] = useEmitter(), selectedIndexRef = React.useRef(null), activeIndexRef = React.useRef(null), listContentRef = React.useRef([]), [selectedIndex, setSelectedIndex] = React.useState(0), [valueNode, setValueNode] = React.useState(null);
265
+ useIsomorphicLayoutEffect(() => {
266
+ selectedIndexRef.current = selectedIndex, activeIndexRef.current = activeIndex;
267
+ });
268
+ const shouldRenderWebNative = isWeb && (native === !0 || native === "web" || Array.isArray(native) && native.includes("web"));
269
+ return /* @__PURE__ */ jsx(AdaptProvider, { children: /* @__PURE__ */ jsx(
270
+ SelectItemParentProvider,
271
+ {
272
+ scope: __scopeSelect,
273
+ initialValue: React.useMemo(() => value, []),
274
+ size: sizeProp,
275
+ activeIndexSubscribe,
276
+ valueSubscribe,
277
+ setOpen,
278
+ onChange: React.useCallback((val) => {
279
+ setValue(val), emitValue(val);
280
+ }, []),
281
+ onActiveChange: useEvent((...args) => {
282
+ onActiveChange?.(...args);
283
+ }),
284
+ setSelectedIndex,
285
+ setValueAtIndex: React.useCallback((index, value2) => {
286
+ listContentRef.current[index] = value2;
287
+ }, []),
288
+ shouldRenderWebNative,
289
+ children: /* @__PURE__ */ jsx(
290
+ SelectProvider,
291
+ {
292
+ scope: __scopeSelect,
293
+ disablePreventBodyScroll,
294
+ dir,
295
+ blockSelection: !1,
296
+ fallback: !1,
297
+ selectedItem,
298
+ setSelectedItem,
299
+ forceUpdate,
300
+ valueNode,
301
+ onValueNodeChange: setValueNode,
302
+ scopeKey,
303
+ sheetBreakpoint,
304
+ activeIndex,
305
+ selectedIndex,
306
+ setActiveIndex: React.useCallback((index) => {
307
+ setActiveIndex((prev) => prev !== index ? (typeof index == "number" && emitActiveIndex(index), index) : prev);
308
+ }, []),
309
+ value,
310
+ open,
311
+ native,
312
+ children: /* @__PURE__ */ jsx(SelectSheetController, { onOpenChange: setOpen, __scopeSelect, children: shouldRenderWebNative ? children : /* @__PURE__ */ jsx(
313
+ SelectImpl,
314
+ {
315
+ activeIndexRef,
316
+ listContentRef,
317
+ selectedIndexRef,
318
+ ...props,
319
+ open,
320
+ value,
321
+ children
322
+ }
323
+ ) })
324
+ }
325
+ )
326
+ }
327
+ ) });
328
+ },
329
+ {
330
+ Adapt,
331
+ Content: SelectContent,
332
+ Group: SelectGroup,
333
+ Icon: SelectIcon,
334
+ Item: SelectItem,
335
+ ItemIndicator: SelectItemIndicator,
336
+ ItemText: SelectItemText,
337
+ Label: SelectLabel,
338
+ ScrollDownButton: SelectScrollDownButton,
339
+ ScrollUpButton: SelectScrollUpButton,
340
+ Trigger: SelectTrigger,
341
+ Value: SelectValue,
342
+ Viewport: SelectViewport,
343
+ Sheet: Sheet.Controlled
344
+ }
345
+ );
346
+ function useEmitter() {
347
+ const listeners = React.useRef();
348
+ listeners.current || (listeners.current = /* @__PURE__ */ new Set());
349
+ const emit = (value) => {
350
+ listeners.current.forEach((l) => l(value));
351
+ }, subscribe = React.useCallback((listener) => (listeners.current.add(listener), () => {
352
+ listeners.current.delete(listener);
353
+ }), []);
354
+ return [emit, subscribe];
355
+ }
356
+ Select.displayName = SELECT_NAME;
357
+ export {
358
+ Select,
359
+ SelectGroupFrame,
360
+ SelectIcon,
361
+ SelectItemTextFrame,
362
+ SelectSeparator
363
+ };
364
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Select.tsx"],
4
+ "mappings": "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",
5
+ "names": ["value"]
6
+ }
@@ -0,0 +1,5 @@
1
+ const SelectContent = ({ children }) => children;
2
+ export {
3
+ SelectContent
4
+ };
5
+ //# sourceMappingURL=SelectContent.native.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SelectContent.native.tsx"],
4
+ "mappings": "AAEO,MAAM,gBAAgB,CAAC,EAAE,SAAS,MAChC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,6 @@
1
+ import { Fragment, jsx } from "react/jsx-runtime";
2
+ const SelectInlineImpl = (props) => (process.env.NODE_ENV === "development" && console.warn("Sheet not implemented inline on native"), /* @__PURE__ */ jsx(Fragment, { children: props.children }));
3
+ export {
4
+ SelectInlineImpl
5
+ };
6
+ //# sourceMappingURL=SelectImpl.native.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SelectImpl.native.tsx"],
4
+ "mappings": "AAWS;AAJF,MAAM,mBAAmB,CAAC,WAC3B,QAAQ,IAAI,aAAa,iBAC3B,QAAQ,KAAK,wCAAwC,GAEhD,gCAAG,gBAAM,UAAS;",
5
+ "names": []
6
+ }
@@ -0,0 +1,115 @@
1
+ import { useComposedRefs } from "@tamagui/compose-refs";
2
+ import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/core";
3
+ import { ListItem } from "@tamagui/list-item";
4
+ import * as React from "react";
5
+ import { createSelectContext, useSelectItemParentContext } from "./context";
6
+ import { jsx } from "react/jsx-runtime";
7
+ const ITEM_NAME = "SelectItem", [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME), SelectItem = React.forwardRef(
8
+ (props, forwardedRef) => {
9
+ const {
10
+ __scopeSelect,
11
+ value,
12
+ disabled = !1,
13
+ textValue: textValueProp,
14
+ index,
15
+ ...itemProps
16
+ } = props, context = useSelectItemParentContext(ITEM_NAME, __scopeSelect), {
17
+ setSelectedIndex,
18
+ listRef,
19
+ setOpen,
20
+ onChange,
21
+ activeIndexSubscribe,
22
+ valueSubscribe,
23
+ allowMouseUpRef,
24
+ allowSelectRef,
25
+ setValueAtIndex,
26
+ selectTimeoutRef,
27
+ dataRef,
28
+ interactions,
29
+ shouldRenderWebNative,
30
+ size,
31
+ onActiveChange,
32
+ initialValue
33
+ } = context, [isSelected, setSelected] = React.useState(initialValue === value), [isActive, setActive] = React.useState(!1);
34
+ React.useEffect(() => activeIndexSubscribe((i) => {
35
+ const isActive2 = index === i;
36
+ setActive(isActive2), isActive2 && onActiveChange(value, index);
37
+ }), [index]), React.useEffect(() => valueSubscribe((val) => {
38
+ setSelected(val === value);
39
+ }), [value]);
40
+ const textId = React.useId(), composedRefs = useComposedRefs(forwardedRef, (node) => {
41
+ isWeb && node instanceof HTMLElement && listRef && (listRef.current[index] = node);
42
+ });
43
+ useIsomorphicLayoutEffect(() => {
44
+ setValueAtIndex(index, value);
45
+ }, [index, setValueAtIndex, value]);
46
+ function handleSelect() {
47
+ setSelectedIndex(index), onChange(value), setOpen(!1);
48
+ }
49
+ const selectItemProps = interactions ? interactions.getItemProps({
50
+ onTouchMove() {
51
+ allowSelectRef.current = !0, allowMouseUpRef.current = !1;
52
+ },
53
+ onTouchEnd() {
54
+ allowSelectRef.current = !1, allowMouseUpRef.current = !0;
55
+ },
56
+ onKeyDown(event) {
57
+ event.key === "Enter" || event.key === " " && !dataRef?.current.typing ? (event.preventDefault(), handleSelect()) : allowSelectRef.current = !0;
58
+ },
59
+ onClick() {
60
+ allowSelectRef.current && handleSelect();
61
+ },
62
+ onMouseUp() {
63
+ allowMouseUpRef.current && (allowSelectRef.current && handleSelect(), clearTimeout(selectTimeoutRef.current), selectTimeoutRef.current = setTimeout(() => {
64
+ allowSelectRef.current = !0;
65
+ }));
66
+ }
67
+ }) : {
68
+ onPress: handleSelect
69
+ };
70
+ return useIsomorphicLayoutEffect(() => {
71
+ isActive && listRef?.current[index]?.focus();
72
+ }, [isActive]), /* @__PURE__ */ jsx(
73
+ SelectItemContextProvider,
74
+ {
75
+ scope: __scopeSelect,
76
+ value,
77
+ textId: textId || "",
78
+ isSelected,
79
+ children: shouldRenderWebNative ? /* @__PURE__ */ jsx("option", { value, children: props.children }) : /* @__PURE__ */ jsx(
80
+ ListItem,
81
+ {
82
+ tag: "div",
83
+ componentName: ITEM_NAME,
84
+ ref: composedRefs,
85
+ "aria-labelledby": textId,
86
+ "aria-selected": isSelected,
87
+ "data-state": isSelected ? "active" : "inactive",
88
+ "aria-disabled": disabled || void 0,
89
+ "data-disabled": disabled ? "" : void 0,
90
+ tabIndex: disabled ? void 0 : -1,
91
+ ...!props.unstyled && {
92
+ backgrounded: !0,
93
+ pressTheme: !0,
94
+ hoverTheme: !0,
95
+ focusTheme: !0,
96
+ cursor: "default",
97
+ outlineWidth: 0,
98
+ size,
99
+ ellipse: !0
100
+ },
101
+ ...itemProps,
102
+ ...selectItemProps
103
+ }
104
+ )
105
+ }
106
+ );
107
+ }
108
+ );
109
+ SelectItem.displayName = ITEM_NAME;
110
+ export {
111
+ SelectItem,
112
+ SelectItemContextProvider,
113
+ useSelectItemContext
114
+ };
115
+ //# sourceMappingURL=SelectItem.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SelectItem.tsx"],
4
+ "mappings": "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",
5
+ "names": ["isActive"]
6
+ }
@@ -0,0 +1,6 @@
1
+ const SelectScrollUpButton = (_) => null, SelectScrollDownButton = (_) => null;
2
+ export {
3
+ SelectScrollDownButton,
4
+ SelectScrollUpButton
5
+ };
6
+ //# sourceMappingURL=SelectScrollButton.native.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SelectScrollButton.native.tsx"],
4
+ "mappings": "AAGO,MAAM,uBAAuB,CAAC,MAA4C,MAGpE,yBAAyB,CAAC,MAA4C;",
5
+ "names": []
6
+ }
@@ -0,0 +1,48 @@
1
+ import { useComposedRefs } from "@tamagui/compose-refs";
2
+ import { ListItem } from "@tamagui/list-item";
3
+ import * as React from "react";
4
+ import { useSelectContext, useSelectItemParentContext } from "./context";
5
+ import { jsx } from "react/jsx-runtime";
6
+ const TRIGGER_NAME = "SelectTrigger", SelectTrigger = React.forwardRef(
7
+ function(props, forwardedRef) {
8
+ const { __scopeSelect, disabled = !1, unstyled = !1, ...triggerProps } = props, context = useSelectContext(TRIGGER_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(TRIGGER_NAME, __scopeSelect), composedRefs = useComposedRefs(
9
+ forwardedRef,
10
+ context.floatingContext?.refs.setReference
11
+ );
12
+ return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */ jsx(
13
+ ListItem,
14
+ {
15
+ componentName: TRIGGER_NAME,
16
+ unstyled,
17
+ ...!unstyled && {
18
+ backgrounded: !0,
19
+ radiused: !0,
20
+ hoverTheme: !0,
21
+ pressTheme: !0,
22
+ focusable: !0,
23
+ focusStyle: {
24
+ outlineStyle: "solid",
25
+ outlineWidth: 2,
26
+ outlineColor: "$borderColorFocus"
27
+ },
28
+ borderWidth: 1
29
+ },
30
+ size: itemParentContext.size,
31
+ "aria-expanded": context.open,
32
+ "aria-autocomplete": "none",
33
+ dir: context.dir,
34
+ disabled,
35
+ "data-disabled": disabled ? "" : void 0,
36
+ ...triggerProps,
37
+ ref: composedRefs,
38
+ onPress() {
39
+ itemParentContext.setOpen(!context.open);
40
+ }
41
+ }
42
+ );
43
+ }
44
+ );
45
+ export {
46
+ SelectTrigger
47
+ };
48
+ //# sourceMappingURL=SelectTrigger.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SelectTrigger.tsx"],
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAEhC,SAAS,gBAA+B;AACxC,YAAY,WAAW;AAEvB,SAAS,kBAAkB,kCAAkC;AA4BvD;AAtBN,MAAM,eAAe,iBAIR,gBAAgB,MAAM;AAAA,EACjC,SAAuB,OAAwC,cAAc;AAC3E,UAAM,EAAE,eAAe,WAAW,IAAO,WAAW,IAAO,GAAG,aAAa,IAAI,OAEzE,UAAU,iBAAiB,cAAc,aAAa,GACtD,oBAAoB,2BAA2B,cAAc,aAAa,GAC1E,eAAe;AAAA,MACnB;AAAA,MACA,QAAQ,iBAAiB,KAAK;AAAA,IAChC;AAIA,WAAI,kBAAkB,wBACb,OAIP;AAAA,MAAC;AAAA;AAAA,QACC,eAAe;AAAA,QACf;AAAA,QACC,GAAI,CAAC,YAAY;AAAA,UAChB,cAAc;AAAA,UACd,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,YAAY;AAAA,YACV,cAAc;AAAA,YACd,cAAc;AAAA,YACd,cAAc;AAAA,UAChB;AAAA,UACA,aAAa;AAAA,QACf;AAAA,QACA,MAAM,kBAAkB;AAAA,QAExB,iBAAe,QAAQ;AAAA,QACvB,qBAAkB;AAAA,QAClB,KAAK,QAAQ;AAAA,QACb;AAAA,QACA,iBAAe,WAAW,KAAK;AAAA,QAC9B,GAAG;AAAA,QACJ,KAAK;AAAA,QAUC,UAAU;AACR,4BAAkB,QAAQ,CAAC,QAAQ,IAAI;AAAA,QACzC;AAAA;AAAA,IAER;AAAA,EAEJ;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,28 @@
1
+ import { AdaptParentContext } from "@tamagui/adapt";
2
+ import { Theme, useThemeName } from "@tamagui/core";
3
+ import { PortalItem } from "@tamagui/portal";
4
+ import * as React from "react";
5
+ import { VIEWPORT_NAME } from "./constants";
6
+ import {
7
+ ForwardSelectContext,
8
+ useSelectContext,
9
+ useSelectItemParentContext
10
+ } from "./context";
11
+ import { jsx } from "react/jsx-runtime";
12
+ const SelectViewport = (props) => {
13
+ const { __scopeSelect, children } = props, context = useSelectContext(VIEWPORT_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(VIEWPORT_NAME, __scopeSelect), themeName = useThemeName(), adaptContext = React.useContext(AdaptParentContext);
14
+ return /* @__PURE__ */ jsx(PortalItem, { hostName: `${context.scopeKey}SheetContents`, children: /* @__PURE__ */ jsx(Theme, { name: themeName, children: /* @__PURE__ */ jsx(
15
+ ForwardSelectContext,
16
+ {
17
+ __scopeSelect,
18
+ itemContext: itemParentContext,
19
+ context,
20
+ children: /* @__PURE__ */ jsx(AdaptParentContext.Provider, { value: adaptContext, children })
21
+ }
22
+ ) }) });
23
+ };
24
+ SelectViewport.displayName = VIEWPORT_NAME;
25
+ export {
26
+ SelectViewport
27
+ };
28
+ //# sourceMappingURL=SelectViewport.native.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SelectViewport.native.tsx"],
4
+ "mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,OAAO,oBAAoB;AACpC,SAAS,kBAAkB;AAC3B,YAAY,WAAW;AAEvB,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAmBG;AAhBH,MAAM,iBAAiB,CAAC,UAA4C;AACzE,QAAM,EAAE,eAAe,SAAS,IAAI,OAC9B,UAAU,iBAAiB,eAAe,aAAa,GACvD,oBAAoB,2BAA2B,eAAe,aAAa,GAC3E,YAAY,aAAa,GACzB,eAAe,MAAM,WAAW,kBAAkB;AAGxD,SACE,oBAAC,cAAW,UAAU,GAAG,QAAQ,QAAQ,iBACvC,8BAAC,SAAM,MAAM,WACX;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MAEA,8BAAC,mBAAmB,UAAnB,EAA4B,OAAO,cACjC,UACH;AAAA;AAAA,EACF,GACF,GACF;AAEJ;AAEA,eAAe,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ const SELECT_NAME = "Select", WINDOW_PADDING = 8, SCROLL_ARROW_VELOCITY = 8, SCROLL_ARROW_THRESHOLD = 8, MIN_HEIGHT = 80, FALLBACK_THRESHOLD = 16, VIEWPORT_NAME = "SelectViewport";
2
+ export {
3
+ FALLBACK_THRESHOLD,
4
+ MIN_HEIGHT,
5
+ SCROLL_ARROW_THRESHOLD,
6
+ SCROLL_ARROW_VELOCITY,
7
+ SELECT_NAME,
8
+ VIEWPORT_NAME,
9
+ WINDOW_PADDING
10
+ };
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/constants.tsx"],
4
+ "mappings": "AAAO,MAAM,cAAc,UACd,iBAAiB,GACjB,wBAAwB,GACxB,yBAAyB,GACzB,aAAa,IACb,qBAAqB,IACrB,gBAAgB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,21 @@
1
+ import { createContextScope } from "@tamagui/create-context";
2
+ import { SELECT_NAME } from "./constants";
3
+ import { jsx } from "react/jsx-runtime";
4
+ const [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME), [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME), [createSelectItemParentContext, createSelectItemParentScope] = createContextScope(SELECT_NAME), [SelectItemParentProvider, useSelectItemParentContext] = createSelectContext(SELECT_NAME), ForwardSelectContext = ({
5
+ __scopeSelect,
6
+ context,
7
+ itemContext,
8
+ children
9
+ }) => /* @__PURE__ */ jsx(SelectProvider, { isInSheet: !0, scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(SelectItemParentProvider, { scope: __scopeSelect, ...itemContext, children }) });
10
+ export {
11
+ ForwardSelectContext,
12
+ SelectItemParentProvider,
13
+ SelectProvider,
14
+ createSelectContext,
15
+ createSelectItemParentContext,
16
+ createSelectItemParentScope,
17
+ createSelectScope,
18
+ useSelectContext,
19
+ useSelectItemParentContext
20
+ };
21
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/context.tsx"],
4
+ "mappings": "AAAA,SAAS,0BAA0B;AAEnC,SAAS,mBAAmB;AA4BtB;AAzBC,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW,GAEzE,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW,GAIxC,CAAC,+BAA+B,2BAA2B,IACtE,mBAAmB,WAAW,GAEnB,CAAC,0BAA0B,0BAA0B,IAChE,oBAAkD,WAAW,GAElD,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAMI,oBAAC,kBAAe,WAAS,IAAC,OAAO,eAAgB,GAAG,SAClD,8BAAC,4BAAyB,OAAO,eAAgB,GAAG,aACjD,UACH,GACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./Select";
2
+ export * from "./context";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.tsx"],
4
+ "mappings": "AAAA,cAAc;AAOd,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "mappings": "",
5
+ "names": []
6
+ }
@@ -0,0 +1,13 @@
1
+ import { useMedia } from "@tamagui/core";
2
+ const useSelectBreakpointActive = (sheetBreakpoint) => {
3
+ const media = useMedia();
4
+ return sheetBreakpoint ? sheetBreakpoint === !0 ? !0 : sheetBreakpoint ? media[sheetBreakpoint] : !1 : !1;
5
+ }, useShowSelectSheet = (context) => {
6
+ const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
7
+ return context.open === !1 ? !1 : breakpointActive;
8
+ };
9
+ export {
10
+ useSelectBreakpointActive,
11
+ useShowSelectSheet
12
+ };
13
+ //# sourceMappingURL=useSelectBreakpointActive.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSelectBreakpointActive.tsx"],
4
+ "mappings": "AAAA,SAAS,gBAAgB;AAIlB,MAAM,4BAA4B,CACvC,oBACG;AACH,QAAM,QAAQ,SAAS;AACvB,SAAK,kBACD,oBAAoB,KAAa,KAC9B,kBAAkB,MAAM,eAAe,IAAI,KAFrB;AAG/B,GAEa,qBAAqB,CAAC,YAAgC;AACjE,QAAM,mBAAmB,0BAA0B,QAAQ,eAAe;AAC1E,SAAO,QAAQ,SAAS,KAAQ,KAAQ;AAC1C;",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/select",
3
- "version": "1.74.3",
3
+ "version": "1.74.4",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -34,24 +34,24 @@
34
34
  "@floating-ui/react": "^0.24.7",
35
35
  "@floating-ui/react-dom": "^2.0.1",
36
36
  "@floating-ui/react-native": "^0.10.1",
37
- "@tamagui/adapt": "1.74.3",
38
- "@tamagui/animate-presence": "1.74.3",
39
- "@tamagui/compose-refs": "1.74.3",
40
- "@tamagui/core": "1.74.3",
41
- "@tamagui/create-context": "1.74.3",
42
- "@tamagui/dismissable": "1.74.3",
43
- "@tamagui/focus-scope": "1.74.3",
44
- "@tamagui/get-token": "1.74.3",
45
- "@tamagui/list-item": "1.74.3",
46
- "@tamagui/portal": "1.74.3",
47
- "@tamagui/remove-scroll": "1.74.3",
48
- "@tamagui/separator": "1.74.3",
49
- "@tamagui/sheet": "1.74.3",
50
- "@tamagui/stacks": "1.74.3",
51
- "@tamagui/text": "1.74.3",
52
- "@tamagui/use-controllable-state": "1.74.3",
53
- "@tamagui/use-event": "1.74.3",
54
- "@tamagui/use-previous": "1.74.3",
37
+ "@tamagui/adapt": "1.74.4",
38
+ "@tamagui/animate-presence": "1.74.4",
39
+ "@tamagui/compose-refs": "1.74.4",
40
+ "@tamagui/core": "1.74.4",
41
+ "@tamagui/create-context": "1.74.4",
42
+ "@tamagui/dismissable": "1.74.4",
43
+ "@tamagui/focus-scope": "1.74.4",
44
+ "@tamagui/get-token": "1.74.4",
45
+ "@tamagui/list-item": "1.74.4",
46
+ "@tamagui/portal": "1.74.4",
47
+ "@tamagui/remove-scroll": "1.74.4",
48
+ "@tamagui/separator": "1.74.4",
49
+ "@tamagui/sheet": "1.74.4",
50
+ "@tamagui/stacks": "1.74.4",
51
+ "@tamagui/text": "1.74.4",
52
+ "@tamagui/use-controllable-state": "1.74.4",
53
+ "@tamagui/use-event": "1.74.4",
54
+ "@tamagui/use-previous": "1.74.4",
55
55
  "react-dom": "^18.2.0"
56
56
  },
57
57
  "peerDependencies": {
@@ -59,7 +59,7 @@
59
59
  "react-native": "*"
60
60
  },
61
61
  "devDependencies": {
62
- "@tamagui/build": "1.74.3",
62
+ "@tamagui/build": "1.74.4",
63
63
  "react": "^18.2.0",
64
64
  "react-native": "^0.72.1"
65
65
  },