@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.
- package/dist/cjs/Select.cjs +409 -467
- package/dist/cjs/Select.native.cjs +495 -0
- package/dist/cjs/Select.native.js +445 -492
- package/dist/cjs/Select.native.js.map +1 -1
- package/dist/cjs/SelectContent.cjs +80 -79
- package/dist/cjs/SelectContent.native.cjs +30 -0
- package/dist/cjs/SelectContent.native.js +18 -22
- package/dist/cjs/SelectContent.native.js.map +1 -1
- package/dist/cjs/SelectImpl.cjs +299 -319
- package/dist/cjs/SelectImpl.native.cjs +30 -0
- package/dist/cjs/SelectImpl.native.js +17 -24
- package/dist/cjs/SelectImpl.native.js.map +1 -1
- package/dist/cjs/SelectItem.cjs +268 -205
- package/dist/cjs/SelectItem.native.cjs +317 -0
- package/dist/cjs/SelectItem.native.js +291 -211
- package/dist/cjs/SelectItem.native.js.map +1 -1
- package/dist/cjs/SelectItemText.cjs +49 -79
- package/dist/cjs/SelectItemText.native.cjs +74 -0
- package/dist/cjs/SelectItemText.native.js +50 -79
- package/dist/cjs/SelectItemText.native.js.map +1 -1
- package/dist/cjs/SelectScrollButton.cjs +111 -130
- package/dist/cjs/SelectScrollButton.native.cjs +38 -0
- package/dist/cjs/SelectScrollButton.native.js +25 -22
- package/dist/cjs/SelectScrollButton.native.js.map +1 -1
- package/dist/cjs/SelectTrigger.cjs +69 -84
- package/dist/cjs/SelectTrigger.native.cjs +91 -0
- package/dist/cjs/SelectTrigger.native.js +71 -66
- package/dist/cjs/SelectTrigger.native.js.map +1 -1
- package/dist/cjs/SelectViewport.cjs +119 -142
- package/dist/cjs/SelectViewport.native.cjs +73 -0
- package/dist/cjs/SelectViewport.native.js +54 -50
- package/dist/cjs/SelectViewport.native.js.map +1 -1
- package/dist/cjs/constants.cjs +21 -22
- package/dist/cjs/constants.native.cjs +41 -0
- package/dist/cjs/constants.native.js +21 -21
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/context.cjs +38 -48
- package/dist/cjs/context.native.cjs +58 -0
- package/dist/cjs/context.native.js +40 -49
- package/dist/cjs/context.native.js.map +1 -1
- package/dist/cjs/index.cjs +15 -11
- package/dist/cjs/index.native.cjs +27 -0
- package/dist/cjs/index.native.js +15 -10
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/selectionController.cjs +334 -0
- package/dist/cjs/selectionController.native.cjs +403 -0
- package/dist/cjs/selectionController.native.js +405 -0
- package/dist/cjs/selectionController.native.js.map +1 -0
- package/dist/cjs/types.cjs +10 -11
- package/dist/cjs/types.native.cjs +19 -0
- package/dist/cjs/types.native.js +10 -10
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/esm/Select.mjs +382 -443
- package/dist/esm/Select.mjs.map +1 -1
- package/dist/esm/Select.native.js +418 -469
- package/dist/esm/Select.native.js.map +1 -1
- package/dist/esm/SelectContent.mjs +67 -61
- package/dist/esm/SelectContent.mjs.map +1 -1
- package/dist/esm/SelectContent.native.js +4 -5
- package/dist/esm/SelectContent.native.js.map +1 -1
- package/dist/esm/SelectImpl.mjs +284 -294
- package/dist/esm/SelectImpl.mjs.map +1 -1
- package/dist/esm/SelectImpl.native.js +5 -8
- package/dist/esm/SelectImpl.native.js.map +1 -1
- package/dist/esm/SelectItem.mjs +252 -182
- package/dist/esm/SelectItem.mjs.map +1 -1
- package/dist/esm/SelectItem.native.js +276 -190
- package/dist/esm/SelectItem.native.js.map +1 -1
- package/dist/esm/SelectItemText.mjs +33 -55
- package/dist/esm/SelectItemText.mjs.map +1 -1
- package/dist/esm/SelectItemText.native.js +34 -56
- package/dist/esm/SelectItemText.native.js.map +1 -1
- package/dist/esm/SelectScrollButton.mjs +95 -107
- package/dist/esm/SelectScrollButton.mjs.map +1 -1
- package/dist/esm/SelectScrollButton.native.js +11 -7
- package/dist/esm/SelectScrollButton.native.js.map +1 -1
- package/dist/esm/SelectTrigger.mjs +56 -58
- package/dist/esm/SelectTrigger.mjs.map +1 -1
- package/dist/esm/SelectTrigger.native.js +54 -44
- package/dist/esm/SelectTrigger.native.js.map +1 -1
- package/dist/esm/SelectViewport.mjs +104 -119
- package/dist/esm/SelectViewport.mjs.map +1 -1
- package/dist/esm/SelectViewport.native.js +44 -39
- package/dist/esm/SelectViewport.native.js.map +1 -1
- package/dist/esm/constants.mjs +1 -0
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +1 -0
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/context.mjs +20 -28
- package/dist/esm/context.mjs.map +1 -1
- package/dist/esm/context.native.js +23 -31
- package/dist/esm/context.native.js.map +1 -1
- package/dist/esm/index.js +13 -3
- package/dist/esm/index.mjs +13 -3
- package/dist/esm/index.native.js +13 -3
- package/dist/esm/selectionController.mjs +305 -0
- package/dist/esm/selectionController.mjs.map +1 -0
- package/dist/esm/selectionController.native.js +372 -0
- package/dist/esm/selectionController.native.js.map +1 -0
- package/dist/esm/types.mjs +0 -2
- package/dist/esm/types.native.js +0 -2
- package/dist/jsx/Select.mjs +382 -443
- package/dist/jsx/Select.mjs.map +1 -1
- package/dist/jsx/Select.native.cjs +495 -0
- package/dist/jsx/Select.native.js +445 -492
- package/dist/jsx/Select.native.js.map +1 -1
- package/dist/jsx/SelectContent.mjs +67 -61
- package/dist/jsx/SelectContent.mjs.map +1 -1
- package/dist/jsx/SelectContent.native.cjs +30 -0
- package/dist/jsx/SelectContent.native.js +18 -22
- package/dist/jsx/SelectContent.native.js.map +1 -1
- package/dist/jsx/SelectImpl.mjs +284 -294
- package/dist/jsx/SelectImpl.mjs.map +1 -1
- package/dist/jsx/SelectImpl.native.cjs +30 -0
- package/dist/jsx/SelectImpl.native.js +17 -24
- package/dist/jsx/SelectImpl.native.js.map +1 -1
- package/dist/jsx/SelectItem.mjs +252 -182
- package/dist/jsx/SelectItem.mjs.map +1 -1
- package/dist/jsx/SelectItem.native.cjs +317 -0
- package/dist/jsx/SelectItem.native.js +291 -211
- package/dist/jsx/SelectItem.native.js.map +1 -1
- package/dist/jsx/SelectItemText.mjs +33 -55
- package/dist/jsx/SelectItemText.mjs.map +1 -1
- package/dist/jsx/SelectItemText.native.cjs +74 -0
- package/dist/jsx/SelectItemText.native.js +50 -79
- package/dist/jsx/SelectItemText.native.js.map +1 -1
- package/dist/jsx/SelectScrollButton.mjs +95 -107
- package/dist/jsx/SelectScrollButton.mjs.map +1 -1
- package/dist/jsx/SelectScrollButton.native.cjs +38 -0
- package/dist/jsx/SelectScrollButton.native.js +25 -22
- package/dist/jsx/SelectScrollButton.native.js.map +1 -1
- package/dist/jsx/SelectTrigger.mjs +56 -58
- package/dist/jsx/SelectTrigger.mjs.map +1 -1
- package/dist/jsx/SelectTrigger.native.cjs +91 -0
- package/dist/jsx/SelectTrigger.native.js +71 -66
- package/dist/jsx/SelectTrigger.native.js.map +1 -1
- package/dist/jsx/SelectViewport.mjs +104 -119
- package/dist/jsx/SelectViewport.mjs.map +1 -1
- package/dist/jsx/SelectViewport.native.cjs +73 -0
- package/dist/jsx/SelectViewport.native.js +54 -50
- package/dist/jsx/SelectViewport.native.js.map +1 -1
- package/dist/jsx/constants.mjs +1 -0
- package/dist/jsx/constants.mjs.map +1 -1
- package/dist/jsx/constants.native.cjs +41 -0
- package/dist/jsx/constants.native.js +21 -21
- package/dist/jsx/constants.native.js.map +1 -1
- package/dist/jsx/context.mjs +20 -28
- package/dist/jsx/context.mjs.map +1 -1
- package/dist/jsx/context.native.cjs +58 -0
- package/dist/jsx/context.native.js +40 -49
- package/dist/jsx/context.native.js.map +1 -1
- package/dist/jsx/index.js +13 -3
- package/dist/jsx/index.mjs +13 -3
- package/dist/jsx/index.native.cjs +27 -0
- package/dist/jsx/index.native.js +15 -10
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/selectionController.mjs +305 -0
- package/dist/jsx/selectionController.mjs.map +1 -0
- package/dist/jsx/selectionController.native.cjs +403 -0
- package/dist/jsx/selectionController.native.js +405 -0
- package/dist/jsx/selectionController.native.js.map +1 -0
- package/dist/jsx/types.mjs +0 -2
- package/dist/jsx/types.native.cjs +19 -0
- package/dist/jsx/types.native.js +10 -10
- package/dist/jsx/types.native.js.map +1 -1
- package/package.json +28 -28
- package/src/Select.tsx +457 -357
- package/src/SelectContent.tsx +46 -16
- package/src/SelectImpl.native.tsx +0 -8
- package/src/SelectImpl.tsx +87 -100
- package/src/SelectItem.tsx +282 -136
- package/src/SelectItemText.tsx +16 -33
- package/src/SelectScrollButton.native.tsx +13 -4
- package/src/SelectScrollButton.tsx +56 -41
- package/src/SelectTrigger.tsx +77 -53
- package/src/SelectViewport.native.tsx +42 -25
- package/src/SelectViewport.tsx +52 -51
- package/src/context.tsx +6 -2
- package/src/index.tsx +5 -2
- package/src/selectionController.ts +389 -0
- package/src/types.tsx +88 -45
- package/types/Select.d.ts +139 -201
- package/types/Select.d.ts.map +1 -1
- package/types/SelectContent.d.ts +1 -1
- package/types/SelectContent.d.ts.map +1 -1
- package/types/SelectContent.native.d.ts.map +1 -1
- package/types/SelectImpl.d.ts +2 -1
- package/types/SelectImpl.d.ts.map +1 -1
- package/types/SelectImpl.native.d.ts +1 -5
- package/types/SelectImpl.native.d.ts.map +1 -1
- package/types/SelectItem.d.ts +13 -16
- package/types/SelectItem.d.ts.map +1 -1
- package/types/SelectItemText.d.ts +9 -13
- package/types/SelectItemText.d.ts.map +1 -1
- package/types/SelectScrollButton.d.ts +15 -2
- package/types/SelectScrollButton.d.ts.map +1 -1
- package/types/SelectScrollButton.native.d.ts +16 -3
- package/types/SelectScrollButton.native.d.ts.map +1 -1
- package/types/SelectTrigger.d.ts +11 -23
- package/types/SelectTrigger.d.ts.map +1 -1
- package/types/SelectViewport.d.ts +11 -38
- package/types/SelectViewport.d.ts.map +1 -1
- package/types/SelectViewport.native.d.ts +15 -4
- package/types/SelectViewport.native.d.ts.map +1 -1
- package/types/context.d.ts +2 -0
- package/types/context.d.ts.map +1 -1
- package/types/index.d.ts +5 -2
- package/types/index.d.ts.map +1 -1
- package/types/selectionController.d.ts +88 -0
- package/types/selectionController.d.ts.map +1 -0
- package/types/types.d.ts +47 -37
- package/types/types.d.ts.map +1 -1
- package/dist/cjs/BubbleSelect.cjs +0 -50
- package/dist/cjs/BubbleSelect.native.js +0 -30
- package/dist/cjs/BubbleSelect.native.js.map +0 -1
- package/dist/cjs/useSelectBreakpointActive.cjs +0 -32
- package/dist/cjs/useSelectBreakpointActive.native.js +0 -35
- package/dist/cjs/useSelectBreakpointActive.native.js.map +0 -1
- package/dist/esm/BubbleSelect.mjs +0 -27
- package/dist/esm/BubbleSelect.mjs.map +0 -1
- package/dist/esm/BubbleSelect.native.js +0 -4
- package/dist/esm/BubbleSelect.native.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/types.mjs.map +0 -1
- package/dist/esm/types.native.js.map +0 -1
- package/dist/esm/useSelectBreakpointActive.mjs +0 -7
- package/dist/esm/useSelectBreakpointActive.mjs.map +0 -1
- package/dist/esm/useSelectBreakpointActive.native.js +0 -7
- package/dist/esm/useSelectBreakpointActive.native.js.map +0 -1
- package/dist/jsx/BubbleSelect.mjs +0 -27
- package/dist/jsx/BubbleSelect.mjs.map +0 -1
- package/dist/jsx/BubbleSelect.native.js +0 -30
- package/dist/jsx/BubbleSelect.native.js.map +0 -1
- package/dist/jsx/index.js.map +0 -1
- package/dist/jsx/index.mjs.map +0 -1
- package/dist/jsx/types.mjs.map +0 -1
- package/dist/jsx/useSelectBreakpointActive.mjs +0 -7
- package/dist/jsx/useSelectBreakpointActive.mjs.map +0 -1
- package/dist/jsx/useSelectBreakpointActive.native.js +0 -35
- package/dist/jsx/useSelectBreakpointActive.native.js.map +0 -1
- package/src/BubbleSelect.tsx +0 -50
- package/src/useSelectBreakpointActive.tsx +0 -7
- package/types/BubbleSelect.d.ts +0 -2
- package/types/BubbleSelect.d.ts.map +0 -1
- package/types/useSelectBreakpointActive.d.ts +0 -3
- package/types/useSelectBreakpointActive.d.ts.map +0 -1
|
@@ -1,49 +1,59 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
3
|
+
import { isWeb } from "@tamagui/constants";
|
|
4
|
+
import { View, createChangeEventDetails, createStyledHOC, styled } from "@tamagui/core";
|
|
5
|
+
import { composeEventHandlers } from "@tamagui/helpers";
|
|
5
6
|
import { useSelectContext, useSelectItemParentContext } from "./context.native.js";
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
unstyled = false,
|
|
13
|
-
...triggerProps
|
|
14
|
-
} = props;
|
|
15
|
-
var context = useSelectContext(scope);
|
|
16
|
-
var itemParentContext = useSelectItemParentContext(scope);
|
|
17
|
-
var composedRefs = useComposedRefs(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
|
|
18
|
-
if (itemParentContext.shouldRenderWebNative) return null;
|
|
19
|
-
return /* @__PURE__ */jsx(ListItem, {
|
|
20
|
-
componentName: TRIGGER_NAME,
|
|
21
|
-
unstyled,
|
|
22
|
-
render: "button",
|
|
23
|
-
type: "button",
|
|
24
|
-
id: itemParentContext.id,
|
|
25
|
-
...(!unstyled && {
|
|
26
|
-
focusVisibleStyle: {
|
|
27
|
-
outlineStyle: "solid",
|
|
28
|
-
outlineWidth: 2,
|
|
29
|
-
outlineColor: "$outlineColor"
|
|
30
|
-
},
|
|
31
|
-
borderWidth: 1,
|
|
32
|
-
size: itemParentContext.size
|
|
33
|
-
}),
|
|
34
|
-
role: "combobox",
|
|
35
|
-
"aria-haspopup": "listbox",
|
|
36
|
-
"aria-expanded": context.open,
|
|
37
|
-
"aria-autocomplete": "none",
|
|
38
|
-
dir: context.dir,
|
|
39
|
-
disabled,
|
|
40
|
-
"data-disabled": disabled ? "" : void 0,
|
|
41
|
-
...triggerProps,
|
|
42
|
-
ref: composedRefs,
|
|
43
|
-
onPress() {
|
|
44
|
-
itemParentContext.setOpen(!context.open);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
7
|
+
|
|
8
|
+
var SelectTriggerFrame = styled(View, {
|
|
9
|
+
displayName: "SelectTrigger",
|
|
10
|
+
alignItems: "center",
|
|
11
|
+
flexDirection: "row",
|
|
12
|
+
render: /* @__PURE__ */ jsx("button", { type: "button" })
|
|
47
13
|
});
|
|
48
|
-
|
|
14
|
+
var SelectTrigger = createStyledHOC(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {
|
|
15
|
+
var _context_floatingContext;
|
|
16
|
+
var { scope, disabled = false, ...triggerProps } = props;
|
|
17
|
+
var context = useSelectContext(scope);
|
|
18
|
+
var itemParentContext = useSelectItemParentContext(scope);
|
|
19
|
+
var composedRefs = useComposedRefs(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);
|
|
20
|
+
if (itemParentContext.shouldRenderWebNative) return null;
|
|
21
|
+
var toggleOpen = function(event) {
|
|
22
|
+
var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "trigger-press";
|
|
23
|
+
if (!disabled) itemParentContext.requestOpenChange(!context.open, createChangeEventDetails(reason, (event === null || event === void 0 ? void 0 : event.nativeEvent) || event, event === null || event === void 0 ? void 0 : event.currentTarget));
|
|
24
|
+
};
|
|
25
|
+
var interactionProps = {
|
|
26
|
+
...triggerProps,
|
|
27
|
+
...isWeb ? { onMouseDown: composeEventHandlers(triggerProps.onMouseDown, function(event) {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
toggleOpen(event);
|
|
30
|
+
}) } : { onPress: composeEventHandlers(triggerProps.onPress, toggleOpen) },
|
|
31
|
+
onKeyDown: composeEventHandlers(triggerProps.onKeyDown, function(event) {
|
|
32
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
toggleOpen(event, "keyboard");
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
};
|
|
38
|
+
return /* @__PURE__ */ jsx(SelectTriggerFrame, {
|
|
39
|
+
type: "button",
|
|
40
|
+
id: itemParentContext.id,
|
|
41
|
+
role: "combobox",
|
|
42
|
+
"aria-haspopup": "listbox",
|
|
43
|
+
"aria-expanded": context.open,
|
|
44
|
+
"aria-autocomplete": "none",
|
|
45
|
+
accessibilityRole: isWeb ? void 0 : "button",
|
|
46
|
+
accessibilityState: isWeb ? void 0 : {
|
|
47
|
+
expanded: context.open,
|
|
48
|
+
disabled
|
|
49
|
+
},
|
|
50
|
+
dir: context.dir,
|
|
51
|
+
disabled,
|
|
52
|
+
"data-disabled": disabled ? "" : void 0,
|
|
53
|
+
...interactionProps,
|
|
54
|
+
ref: composedRefs
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export { SelectTrigger, SelectTriggerFrame };
|
|
49
59
|
//# sourceMappingURL=SelectTrigger.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SelectTrigger.native.js","names":[],"sources":["esm/SelectTrigger.native.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { View, createChangeEventDetails, createStyledHOC, styled } from \"@tamagui/core\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\n\nimport { useSelectContext, useSelectItemParentContext } from \"./context\";\n\nvar SelectTriggerFrame = styled(View, {\n\tdisplayName: \"SelectTrigger\",\n\talignItems: \"center\",\n\tflexDirection: \"row\",\n\trender: /* @__PURE__ */ jsx(\"button\", { type: \"button\" })\n});\nvar SelectTrigger = createStyledHOC(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {\n\tvar _context_floatingContext;\n\tvar { scope, disabled = false, ...triggerProps } = props;\n\tvar context = useSelectContext(scope);\n\tvar itemParentContext = useSelectItemParentContext(scope);\n\tvar composedRefs = useComposedRefs(forwardedRef, (_context_floatingContext = context.floatingContext) === null || _context_floatingContext === void 0 ? void 0 : _context_floatingContext.refs.setReference);\n\tif (itemParentContext.shouldRenderWebNative) return null;\n\tvar toggleOpen = function(event) {\n\t\tvar reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"trigger-press\";\n\t\tif (!disabled) itemParentContext.requestOpenChange(!context.open, createChangeEventDetails(reason, (event === null || event === void 0 ? void 0 : event.nativeEvent) || event, event === null || event === void 0 ? void 0 : event.currentTarget));\n\t};\n\tvar interactionProps = {\n\t\t...triggerProps,\n\t\t...isWeb ? { onMouseDown: composeEventHandlers(triggerProps.onMouseDown, function(event) {\n\t\t\tevent.preventDefault();\n\t\t\ttoggleOpen(event);\n\t\t}) } : { onPress: composeEventHandlers(triggerProps.onPress, toggleOpen) },\n\t\tonKeyDown: composeEventHandlers(triggerProps.onKeyDown, function(event) {\n\t\t\tif (event.key === \"Enter\" || event.key === \" \") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleOpen(event, \"keyboard\");\n\t\t\t}\n\t\t})\n\t};\n\treturn /* @__PURE__ */ jsx(SelectTriggerFrame, {\n\t\ttype: \"button\",\n\t\tid: itemParentContext.id,\n\t\trole: \"combobox\",\n\t\t\"aria-haspopup\": \"listbox\",\n\t\t\"aria-expanded\": context.open,\n\t\t\"aria-autocomplete\": \"none\",\n\t\taccessibilityRole: isWeb ? void 0 : \"button\",\n\t\taccessibilityState: isWeb ? void 0 : {\n\t\t\texpanded: context.open,\n\t\t\tdisabled\n\t\t},\n\t\tdir: context.dir,\n\t\tdisabled,\n\t\t\"data-disabled\": disabled ? \"\" : void 0,\n\t\t...interactionProps,\n\t\tref: composedRefs\n\t});\n});\n\nexport { SelectTrigger, SelectTriggerFrame };"],"mappings":";;;;;;;;AAQA,IAAI,qBAAqB,OAAO,MAAM;CACrC,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAwB,oBAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,CAAC;AACD,IAAI,gBAAgB,gBAAgB,oBAAoB,SAAS,eAAe,OAAO,cAAc;CACpG,IAAI;CACJ,IAAI,EAAE,OAAO,WAAW,OAAO,GAAG,iBAAiB;CACnD,IAAI,UAAU,iBAAiB,KAAK;CACpC,IAAI,oBAAoB,2BAA2B,KAAK;CACxD,IAAI,eAAe,gBAAgB,eAAe,2BAA2B,QAAQ,qBAAqB,QAAQ,6BAA6B,KAAK,IAAI,KAAK,IAAI,yBAAyB,KAAK,YAAY;CAC3M,IAAI,kBAAkB,uBAAuB,OAAO;CACpD,IAAI,aAAa,SAAS,OAAO;EAChC,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;EAC9E,IAAI,CAAC,UAAU,kBAAkB,kBAAkB,CAAC,QAAQ,MAAM,yBAAyB,SAAS,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,gBAAgB,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,aAAa,CAAC;CAClP;CACA,IAAI,mBAAmB;EACtB,GAAG;EACH,GAAG,QAAQ,EAAE,aAAa,qBAAqB,aAAa,aAAa,SAAS,OAAO;GACxF,MAAM,eAAe;GACrB,WAAW,KAAK;EACjB,CAAC,EAAE,IAAI,EAAE,SAAS,qBAAqB,aAAa,SAAS,UAAU,EAAE;EACzE,WAAW,qBAAqB,aAAa,WAAW,SAAS,OAAO;GACvE,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;IAC/C,MAAM,eAAe;IACrB,WAAW,OAAO,UAAU;GAC7B;EACD,CAAC;CACF;CACA,OAAuB,oBAAI,oBAAoB;EAC9C,MAAM;EACN,IAAI,kBAAkB;EACtB,MAAM;EACN,iBAAiB;EACjB,iBAAiB,QAAQ;EACzB,qBAAqB;EACrB,mBAAmB,QAAQ,KAAK,IAAI;EACpC,oBAAoB,QAAQ,KAAK,IAAI;GACpC,UAAU,QAAQ;GAClB;EACD;EACA,KAAK,QAAQ;EACb;EACA,iBAAiB,WAAW,KAAK,KAAK;EACtC,GAAG;EACH,KAAK;CACN,CAAC;AACF,CAAC"}
|
|
@@ -2,142 +2,127 @@ import { AdaptPortalContents, useAdaptIsActive } from "@tamagui/adapt";
|
|
|
2
2
|
import { AnimatePresence } from "@tamagui/animate-presence";
|
|
3
3
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
4
4
|
import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
5
|
-
import { styled } from "@tamagui/core";
|
|
5
|
+
import { View, createStyledHOC, styled } from "@tamagui/core";
|
|
6
6
|
import { needsPortalRepropagation } from "@tamagui/portal";
|
|
7
|
-
import {
|
|
7
|
+
import { YStack } from "@tamagui/stacks";
|
|
8
8
|
import { startTransition } from "@tamagui/start-transition";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
import { VIEWPORT_NAME } from "./constants.mjs";
|
|
11
11
|
import { ForwardSelectContext, useSelectContext, useSelectItemParentContext } from "./context.mjs";
|
|
12
|
+
import { getSelectListboxProps } from "./selectionController.mjs";
|
|
12
13
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
false: {
|
|
18
|
-
size: "$2",
|
|
19
|
-
backgroundColor: "$background",
|
|
20
|
-
elevate: true,
|
|
21
|
-
bordered: true,
|
|
22
|
-
userSelect: "none",
|
|
23
|
-
outlineWidth: 0
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
size: {
|
|
27
|
-
"...size": (val, {
|
|
28
|
-
tokens
|
|
29
|
-
}) => {
|
|
30
|
-
return {
|
|
31
|
-
borderRadius: tokens.radius[val] ?? val
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
defaultVariants: {
|
|
37
|
-
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
38
|
-
}
|
|
14
|
+
|
|
15
|
+
const SelectViewportFrame = styled(View, {
|
|
16
|
+
displayName: VIEWPORT_NAME,
|
|
17
|
+
position: "relative"
|
|
39
18
|
});
|
|
40
19
|
const needsRepropagation = needsPortalRepropagation();
|
|
41
|
-
const SelectViewport = SelectViewportFrame
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
20
|
+
const SelectViewport = createStyledHOC(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {
|
|
21
|
+
const { scope, children, disableScroll, ...viewportProps } = props;
|
|
22
|
+
const context = useSelectContext(scope);
|
|
23
|
+
const itemContext = useSelectItemParentContext(scope);
|
|
24
|
+
const isAdapted = useAdaptIsActive(context.adaptScope);
|
|
25
|
+
const viewportRef = React.useRef(null);
|
|
26
|
+
const registeredItemCount = itemContext.registry.getItems().length;
|
|
27
|
+
const [lazyMounted, setLazyMounted] = React.useState(context.lazyMount ? false : true);
|
|
28
|
+
React.useEffect(() => {
|
|
29
|
+
if (!context.lazyMount) return;
|
|
30
|
+
if (!context.open) return;
|
|
31
|
+
if (lazyMounted) return;
|
|
32
|
+
startTransition(() => {
|
|
33
|
+
setLazyMounted(true);
|
|
34
|
+
});
|
|
35
|
+
}, [
|
|
36
|
+
context.lazyMount,
|
|
37
|
+
context.open,
|
|
38
|
+
lazyMounted
|
|
39
|
+
]);
|
|
40
|
+
React.useEffect(() => {
|
|
41
|
+
if (!isWeb || !isAdapted || !context.open) return;
|
|
42
|
+
const frame = requestAnimationFrame(() => {
|
|
43
|
+
const index = context.activeIndexRef.current ?? itemContext.registry.firstEnabledIndex();
|
|
44
|
+
const activeItem = viewportRef.current?.querySelector("[role=\"option\"][tabindex=\"0\"]") ?? (index >= 0 ? itemContext.listRef?.current[index] : null);
|
|
45
|
+
activeItem?.focus();
|
|
46
|
+
});
|
|
47
|
+
return () => cancelAnimationFrame(frame);
|
|
48
|
+
}, [
|
|
49
|
+
context.activeIndex,
|
|
50
|
+
context.open,
|
|
51
|
+
isAdapted,
|
|
52
|
+
registeredItemCount
|
|
53
|
+
]);
|
|
54
|
+
const composedRefs = useComposedRefs(forwardedRef, viewportRef, context.floatingContext?.refs.setFloating);
|
|
55
|
+
useIsomorphicLayoutEffect(() => {
|
|
56
|
+
if (context.update) {
|
|
57
|
+
context.update();
|
|
58
|
+
}
|
|
59
|
+
}, [isAdapted]);
|
|
60
|
+
React.useEffect(() => {
|
|
61
|
+
if (context.lazyMount && lazyMounted && context.open && context.update) {
|
|
62
|
+
const frame = requestAnimationFrame(context.update);
|
|
63
|
+
return () => cancelAnimationFrame(frame);
|
|
64
|
+
}
|
|
65
|
+
}, [lazyMounted, registeredItemCount]);
|
|
66
|
+
if (itemContext.shouldRenderWebNative) {
|
|
67
|
+
return /* @__PURE__ */ jsx(YStack, {
|
|
68
|
+
position: "relative",
|
|
69
|
+
children
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (isAdapted || !isWeb) {
|
|
73
|
+
let content = /* @__PURE__ */ jsx(SelectViewportFrame, {
|
|
74
|
+
...viewportProps,
|
|
75
|
+
...isWeb ? getSelectListboxProps(itemContext.mode) : {},
|
|
76
|
+
"data-select-viewport": "",
|
|
77
|
+
ref: composedRefs,
|
|
78
|
+
children: lazyMounted ? children : null
|
|
79
|
+
});
|
|
80
|
+
if (needsRepropagation) {
|
|
81
|
+
content = /* @__PURE__ */ jsx(ForwardSelectContext, {
|
|
82
|
+
itemContext,
|
|
83
|
+
context,
|
|
84
|
+
children: content
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return /* @__PURE__ */ jsx(AdaptPortalContents, {
|
|
88
|
+
scope: context.adaptScope,
|
|
89
|
+
children: content
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (!itemContext.interactions) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
const { style, className, ...floatingProps } = itemContext.interactions.getFloatingProps();
|
|
96
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
97
|
+
!disableScroll && /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: selectViewportCSS } }),
|
|
98
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: context.open ? /* @__PURE__ */ jsx(SelectViewportFrame, {
|
|
99
|
+
"data-select-viewport": "",
|
|
100
|
+
...isWeb && { "data-state": context.open ? "open" : "closed" },
|
|
101
|
+
...viewportProps,
|
|
102
|
+
...style,
|
|
103
|
+
...floatingProps,
|
|
104
|
+
...getSelectListboxProps(itemContext.mode),
|
|
105
|
+
overflowY: disableScroll ? void 0 : style.overflow ?? "auto",
|
|
106
|
+
ref: composedRefs,
|
|
107
|
+
children: lazyMounted ? children : null
|
|
108
|
+
}, "select-viewport") : null }),
|
|
109
|
+
!context.open && !(context.lazyMount && context.renderValue) && lazyMounted && /* @__PURE__ */ jsx("div", {
|
|
110
|
+
style: { display: "none" },
|
|
111
|
+
children
|
|
112
|
+
})
|
|
113
|
+
] });
|
|
130
114
|
});
|
|
131
115
|
const selectViewportCSS = `
|
|
132
|
-
|
|
116
|
+
[data-select-viewport] {
|
|
133
117
|
scrollbar-width: none;
|
|
134
118
|
-webkit-overflow-scrolling: touch;
|
|
135
119
|
overscroll-behavior: contain;
|
|
136
120
|
}
|
|
137
121
|
|
|
138
|
-
|
|
122
|
+
[data-select-viewport]::-webkit-scrollbar{
|
|
139
123
|
display:none
|
|
140
124
|
}
|
|
141
125
|
`;
|
|
126
|
+
|
|
142
127
|
export { SelectViewport, SelectViewportFrame };
|
|
143
128
|
//# sourceMappingURL=SelectViewport.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"file":"SelectViewport.js","names":[],"sources":["esm/SelectViewport.js"],"sourcesContent":["import { AdaptPortalContents, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { AnimatePresence } from \"@tamagui/animate-presence\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createStyledHOC, styled, View } from \"@tamagui/core\";\nimport { needsPortalRepropagation } from \"@tamagui/portal\";\nimport { YStack } from \"@tamagui/stacks\";\nimport { startTransition } from \"@tamagui/start-transition\";\nimport * as React from \"react\";\nimport { VIEWPORT_NAME } from \"./constants\";\nimport {\n ForwardSelectContext,\n useSelectContext,\n useSelectItemParentContext\n} from \"./context\";\nimport { getSelectListboxProps } from \"./selectionController\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nconst SelectViewportFrame = styled(View, {\n displayName: VIEWPORT_NAME,\n position: \"relative\"\n});\nconst needsRepropagation = needsPortalRepropagation();\nconst SelectViewport = createStyledHOC(\n SelectViewportFrame,\n function SelectViewport2(props, forwardedRef) {\n const { scope, children, disableScroll, ...viewportProps } = props;\n const context = useSelectContext(scope);\n const itemContext = useSelectItemParentContext(scope);\n const isAdapted = useAdaptIsActive(context.adaptScope);\n const viewportRef = React.useRef(null);\n const registeredItemCount = itemContext.registry.getItems().length;\n const [lazyMounted, setLazyMounted] = React.useState(context.lazyMount ? false : true);\n React.useEffect(() => {\n if (!context.lazyMount) return;\n if (!context.open) return;\n if (lazyMounted) return;\n startTransition(() => {\n setLazyMounted(true);\n });\n }, [context.lazyMount, context.open, lazyMounted]);\n React.useEffect(() => {\n if (!isWeb || !isAdapted || !context.open) return;\n const frame = requestAnimationFrame(() => {\n const index = context.activeIndexRef.current ?? itemContext.registry.firstEnabledIndex();\n const activeItem = viewportRef.current?.querySelector(\n '[role=\"option\"][tabindex=\"0\"]'\n ) ?? (index >= 0 ? itemContext.listRef?.current[index] : null);\n activeItem?.focus();\n });\n return () => cancelAnimationFrame(frame);\n }, [context.activeIndex, context.open, isAdapted, registeredItemCount]);\n const composedRefs = useComposedRefs(\n // @ts-ignore react 19 ref type mismatch\n forwardedRef,\n viewportRef,\n context.floatingContext?.refs.setFloating\n );\n useIsomorphicLayoutEffect(() => {\n if (context.update) {\n context.update();\n }\n }, [isAdapted]);\n React.useEffect(() => {\n if (context.lazyMount && lazyMounted && context.open && context.update) {\n const frame = requestAnimationFrame(context.update);\n return () => cancelAnimationFrame(frame);\n }\n }, [lazyMounted, registeredItemCount]);\n if (itemContext.shouldRenderWebNative) {\n return /* @__PURE__ */ jsx(YStack, { position: \"relative\", children });\n }\n if (isAdapted || !isWeb) {\n let content = /* @__PURE__ */ jsx(\n SelectViewportFrame,\n {\n ...viewportProps,\n ...isWeb ? getSelectListboxProps(itemContext.mode) : {},\n \"data-select-viewport\": \"\",\n ref: composedRefs,\n children: lazyMounted ? children : null\n }\n );\n if (needsRepropagation) {\n content = /* @__PURE__ */ jsx(ForwardSelectContext, { itemContext, context, children: content });\n }\n return /* @__PURE__ */ jsx(AdaptPortalContents, { scope: context.adaptScope, children: content });\n }\n if (!itemContext.interactions) {\n return null;\n }\n const {\n style,\n // remove this, it was set to \"Select\" always\n className,\n ...floatingProps\n } = itemContext.interactions.getFloatingProps();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n !disableScroll && /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: selectViewportCSS\n }\n }\n ),\n /* @__PURE__ */ jsx(AnimatePresence, { children: context.open ? /* @__PURE__ */ jsx(\n SelectViewportFrame,\n {\n \"data-select-viewport\": \"\",\n ...isWeb && {\n \"data-state\": context.open ? \"open\" : \"closed\"\n },\n ...viewportProps,\n ...style,\n ...floatingProps,\n ...getSelectListboxProps(itemContext.mode),\n overflowY: disableScroll ? void 0 : style.overflow ?? \"auto\",\n ref: composedRefs,\n children: lazyMounted ? children : null\n },\n \"select-viewport\"\n ) : null }),\n !context.open && !(context.lazyMount && context.renderValue) && lazyMounted && /* @__PURE__ */ jsx(\"div\", { style: { display: \"none\" }, children })\n ] });\n }\n);\nconst selectViewportCSS = `\n[data-select-viewport] {\n scrollbar-width: none;\n -webkit-overflow-scrolling: touch;\n overscroll-behavior: contain;\n}\n\n[data-select-viewport]::-webkit-scrollbar{\n display:none\n}\n`;\nexport {\n SelectViewport,\n SelectViewportFrame\n};\n//# sourceMappingURL=SelectViewport.js.map\n"],"mappings":"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"}
|
|
@@ -1,43 +1,48 @@
|
|
|
1
|
-
import { jsx
|
|
2
|
-
import { AdaptContext, AdaptPortalContents, useAdaptContext } from "@tamagui/adapt";
|
|
3
|
-
import { Theme, useThemeName } from "@tamagui/core";
|
|
4
|
-
import { YStack } from "@tamagui/stacks";
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { AdaptContext, AdaptPortalContents, useAdaptContext, useAdaptIsActive } from "@tamagui/adapt";
|
|
3
|
+
import { Theme, View, createStyledHOC, styled, useThemeName } from "@tamagui/core";
|
|
5
4
|
import { VIEWPORT_NAME } from "./constants.native.js";
|
|
6
5
|
import { ForwardSelectContext, useSelectContext, useSelectItemParentContext } from "./context.native.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
6
|
+
|
|
7
|
+
var SelectViewportFrame = styled(View, {
|
|
8
|
+
displayName: VIEWPORT_NAME,
|
|
9
|
+
position: "relative"
|
|
10
|
+
});
|
|
11
|
+
var SelectViewport = createStyledHOC(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {
|
|
12
|
+
var { scope, children, disableScroll: _disableScroll, ...viewportProps } = props;
|
|
13
|
+
var context = useSelectContext(scope);
|
|
14
|
+
var itemParentContext = useSelectItemParentContext(scope);
|
|
15
|
+
var themeName = useThemeName();
|
|
16
|
+
var adaptContext = useAdaptContext();
|
|
17
|
+
var isAdapted = useAdaptIsActive(context.adaptScope);
|
|
18
|
+
var contents = /* @__PURE__ */ jsx(Theme, {
|
|
19
|
+
name: themeName,
|
|
20
|
+
children: /* @__PURE__ */ jsx(ForwardSelectContext, {
|
|
21
|
+
itemContext: itemParentContext,
|
|
22
|
+
context,
|
|
23
|
+
children: /* @__PURE__ */ jsx(AdaptContext.Provider, {
|
|
24
|
+
...adaptContext,
|
|
25
|
+
children: /* @__PURE__ */ jsx(SelectViewportFrame, {
|
|
26
|
+
...viewportProps,
|
|
27
|
+
ref: forwardedRef,
|
|
28
|
+
children
|
|
29
|
+
})
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
if (!context.open) {
|
|
34
|
+
if (context.lazyMount && context.renderValue) return null;
|
|
35
|
+
return /* @__PURE__ */ jsx(SelectViewportFrame, {
|
|
36
|
+
display: "none",
|
|
37
|
+
children: contents
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return isAdapted ? /* @__PURE__ */ jsx(AdaptPortalContents, {
|
|
41
|
+
scope: context.adaptScope,
|
|
42
|
+
children: contents
|
|
43
|
+
}) : contents;
|
|
44
|
+
});
|
|
41
45
|
SelectViewport.displayName = VIEWPORT_NAME;
|
|
42
|
-
|
|
46
|
+
|
|
47
|
+
export { SelectViewport, SelectViewportFrame };
|
|
43
48
|
//# sourceMappingURL=SelectViewport.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"file":"SelectViewport.native.js","names":[],"sources":["esm/SelectViewport.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { AdaptContext, AdaptPortalContents, useAdaptContext, useAdaptIsActive } from \"@tamagui/adapt\";\nimport { createStyledHOC, styled, Theme, useThemeName, View } from \"@tamagui/core\";\nimport { VIEWPORT_NAME } from \"./constants\";\nimport { ForwardSelectContext, useSelectContext, useSelectItemParentContext } from \"./context\";\nvar SelectViewportFrame = styled(View, {\n displayName: VIEWPORT_NAME,\n position: \"relative\"\n});\nvar SelectViewport = createStyledHOC(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {\n var { scope, children, disableScroll: _disableScroll, ...viewportProps } = props;\n var context = useSelectContext(scope);\n var itemParentContext = useSelectItemParentContext(scope);\n var themeName = useThemeName();\n var adaptContext = useAdaptContext();\n var isAdapted = useAdaptIsActive(context.adaptScope);\n var contents = /* @__PURE__ */ _jsx(Theme, {\n name: themeName,\n children: /* @__PURE__ */ _jsx(ForwardSelectContext, {\n itemContext: itemParentContext,\n context,\n children: /* @__PURE__ */ _jsx(AdaptContext.Provider, {\n ...adaptContext,\n children: /* @__PURE__ */ _jsx(SelectViewportFrame, {\n ...viewportProps,\n ref: forwardedRef,\n children\n })\n })\n })\n });\n if (!context.open) {\n if (context.lazyMount && context.renderValue) return null;\n return /* @__PURE__ */ _jsx(SelectViewportFrame, {\n display: \"none\",\n children: contents\n });\n }\n return isAdapted ? /* @__PURE__ */ _jsx(AdaptPortalContents, {\n scope: context.adaptScope,\n children: contents\n }) : contents;\n});\nSelectViewport.displayName = VIEWPORT_NAME;\nexport {\n SelectViewport,\n SelectViewportFrame\n};\n//# sourceMappingURL=SelectViewport.native.js.map\n"],"mappings":";;;;;;;AAKA,IAAI,sBAAsB,OAAO,MAAM;CACrC,aAAa;CACb,UAAU;AACZ,CAAC;AACD,IAAI,iBAAiB,gBAAgB,qBAAqB,SAAS,gBAAgB,OAAO,cAAc;CACtG,IAAI,EAAE,OAAO,UAAU,eAAe,gBAAgB,GAAG,kBAAkB;CAC3E,IAAI,UAAU,iBAAiB,KAAK;CACpC,IAAI,oBAAoB,2BAA2B,KAAK;CACxD,IAAI,YAAY,aAAa;CAC7B,IAAI,eAAe,gBAAgB;CACnC,IAAI,YAAY,iBAAiB,QAAQ,UAAU;CACnD,IAAI,WAA2B,oBAAK,OAAO;EACzC,MAAM;EACN,UAA0B,oBAAK,sBAAsB;GACnD,aAAa;GACb;GACA,UAA0B,oBAAK,aAAa,UAAU;IACpD,GAAG;IACH,UAA0B,oBAAK,qBAAqB;KAClD,GAAG;KACH,KAAK;KACL;IACF,CAAC;GACH,CAAC;EACH,CAAC;CACH,CAAC;CACD,IAAI,CAAC,QAAQ,MAAM;EACjB,IAAI,QAAQ,aAAa,QAAQ,aAAa,OAAO;EACrD,OAAuB,oBAAK,qBAAqB;GAC/C,SAAS;GACT,UAAU;EACZ,CAAC;CACH;CACA,OAAO,YAA4B,oBAAK,qBAAqB;EAC3D,OAAO,QAAQ;EACf,UAAU;CACZ,CAAC,IAAI;AACP,CAAC;AACD,eAAe,cAAc"}
|
package/dist/esm/constants.mjs
CHANGED
|
@@ -5,5 +5,6 @@ const SCROLL_ARROW_THRESHOLD = 8;
|
|
|
5
5
|
const MIN_HEIGHT = 80;
|
|
6
6
|
const FALLBACK_THRESHOLD = 16;
|
|
7
7
|
const VIEWPORT_NAME = "SelectViewport";
|
|
8
|
+
|
|
8
9
|
export { FALLBACK_THRESHOLD, MIN_HEIGHT, SCROLL_ARROW_THRESHOLD, SCROLL_ARROW_VELOCITY, SELECT_NAME, VIEWPORT_NAME, WINDOW_PADDING };
|
|
9
10
|
//# sourceMappingURL=constants.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["esm/constants.js"],"sourcesContent":["const SELECT_NAME = \"Select\";\nconst WINDOW_PADDING = 8;\nconst SCROLL_ARROW_VELOCITY = 8;\nconst SCROLL_ARROW_THRESHOLD = 8;\nconst MIN_HEIGHT = 80;\nconst FALLBACK_THRESHOLD = 16;\nconst VIEWPORT_NAME = \"SelectViewport\";\nexport {\n FALLBACK_THRESHOLD,\n MIN_HEIGHT,\n SCROLL_ARROW_THRESHOLD,\n SCROLL_ARROW_VELOCITY,\n SELECT_NAME,\n VIEWPORT_NAME,\n WINDOW_PADDING\n};\n//# sourceMappingURL=constants.js.map\n"],"mappings":";AAAA,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,aAAa;AACnB,MAAM,qBAAqB;AAC3B,MAAM,gBAAgB"}
|
|
@@ -5,5 +5,6 @@ var SCROLL_ARROW_THRESHOLD = 8;
|
|
|
5
5
|
var MIN_HEIGHT = 80;
|
|
6
6
|
var FALLBACK_THRESHOLD = 16;
|
|
7
7
|
var VIEWPORT_NAME = "SelectViewport";
|
|
8
|
+
|
|
8
9
|
export { FALLBACK_THRESHOLD, MIN_HEIGHT, SCROLL_ARROW_THRESHOLD, SCROLL_ARROW_VELOCITY, SELECT_NAME, VIEWPORT_NAME, WINDOW_PADDING };
|
|
9
10
|
//# sourceMappingURL=constants.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"constants.native.js","names":[],"sources":["esm/constants.native.js"],"sourcesContent":["var SELECT_NAME = \"Select\";\nvar WINDOW_PADDING = 8;\nvar SCROLL_ARROW_VELOCITY = 8;\nvar SCROLL_ARROW_THRESHOLD = 8;\nvar MIN_HEIGHT = 80;\nvar FALLBACK_THRESHOLD = 16;\nvar VIEWPORT_NAME = \"SelectViewport\";\nexport {\n FALLBACK_THRESHOLD,\n MIN_HEIGHT,\n SCROLL_ARROW_THRESHOLD,\n SCROLL_ARROW_VELOCITY,\n SELECT_NAME,\n VIEWPORT_NAME,\n WINDOW_PADDING\n};\n//# sourceMappingURL=constants.js.map\n"],"mappings":";AAAA,IAAI,cAAc;AAClB,IAAI,iBAAiB;AACrB,IAAI,wBAAwB;AAC5B,IAAI,yBAAyB;AAC7B,IAAI,aAAa;AACjB,IAAI,qBAAqB;AACzB,IAAI,gBAAgB"}
|