@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,64 +1,42 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
3
|
-
import { styled, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
4
|
-
import { SizableText } from "@tamagui/text";
|
|
3
|
+
import { Text, createStyledHOC, styled, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
5
4
|
import * as React from "react";
|
|
6
5
|
import { useSelectItemParentContext } from "./context.native.js";
|
|
6
|
+
import { getSelectLabelText } from "./selectionController.native.js";
|
|
7
7
|
import { useSelectItemContext } from "./SelectItem.native.js";
|
|
8
|
+
|
|
8
9
|
var ITEM_TEXT_NAME = "SelectItemText";
|
|
9
|
-
var SelectItemTextFrame = styled(
|
|
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
|
-
id: itemContext.textId,
|
|
39
|
-
...itemTextProps,
|
|
40
|
-
ref: composedRefs
|
|
41
|
-
});
|
|
42
|
-
useIsomorphicLayoutEffect(function () {
|
|
43
|
-
if (itemParentContext.initialValue === itemContext.value) {
|
|
44
|
-
itemParentContext.setSelectedItem(contents.current);
|
|
45
|
-
}
|
|
46
|
-
}, []);
|
|
47
|
-
useIsomorphicLayoutEffect(function () {
|
|
48
|
-
return itemParentContext.valueSubscribe(function (val) {
|
|
49
|
-
if (val === itemContext.value) {
|
|
50
|
-
itemParentContext.setSelectedItem(contents.current);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}, [itemContext.value]);
|
|
54
|
-
if (itemParentContext.shouldRenderWebNative) {
|
|
55
|
-
return /* @__PURE__ */_jsx(_Fragment, {
|
|
56
|
-
children: props.children
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
return /* @__PURE__ */_jsx(_Fragment, {
|
|
60
|
-
children: contents.current
|
|
61
|
-
});
|
|
10
|
+
var SelectItemTextFrame = styled(Text, { displayName: ITEM_TEXT_NAME });
|
|
11
|
+
var SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
|
|
12
|
+
var { scope, className, ...itemTextProps } = props;
|
|
13
|
+
var itemParentContext = useSelectItemParentContext(scope);
|
|
14
|
+
var ref = React.useRef(null);
|
|
15
|
+
var composedRefs = useComposedRefs(forwardedRef, ref);
|
|
16
|
+
var itemContext = useSelectItemContext(scope);
|
|
17
|
+
var contents = React.useRef(null);
|
|
18
|
+
var label = React.useRef(props.children);
|
|
19
|
+
label.current = props.children;
|
|
20
|
+
var labelText = getSelectLabelText(props.children);
|
|
21
|
+
contents.current = /* @__PURE__ */ jsx(SelectItemTextFrame, {
|
|
22
|
+
className,
|
|
23
|
+
id: itemContext.textId,
|
|
24
|
+
...itemTextProps,
|
|
25
|
+
ref: composedRefs
|
|
26
|
+
});
|
|
27
|
+
useIsomorphicLayoutEffect(function() {
|
|
28
|
+
return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
|
|
29
|
+
}, [
|
|
30
|
+
itemContext.textValue,
|
|
31
|
+
itemContext.value,
|
|
32
|
+
itemParentContext.registry,
|
|
33
|
+
labelText
|
|
34
|
+
]);
|
|
35
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
36
|
+
return /* @__PURE__ */ jsx(Fragment, { children: props.children });
|
|
37
|
+
}
|
|
38
|
+
return /* @__PURE__ */ jsx(Fragment, { children: contents.current });
|
|
62
39
|
});
|
|
40
|
+
|
|
63
41
|
export { ITEM_TEXT_NAME, SelectItemText, SelectItemTextFrame };
|
|
64
42
|
//# sourceMappingURL=SelectItemText.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SelectItemText.native.js","names":["_Fragment"],"sources":["esm/SelectItemText.native.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, styled, Text, useIsomorphicLayoutEffect } from \"@tamagui/core\";\nimport * as React from \"react\";\nimport { useSelectItemParentContext } from \"./context\";\nimport { getSelectLabelText } from \"./selectionController\";\nimport { useSelectItemContext } from \"./SelectItem\";\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemTextFrame = styled(Text, {\n displayName: ITEM_TEXT_NAME\n});\nvar SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {\n var { scope, className, ...itemTextProps } = props;\n var itemParentContext = useSelectItemParentContext(scope);\n var ref = React.useRef(null);\n var composedRefs = useComposedRefs(forwardedRef, ref);\n var itemContext = useSelectItemContext(scope);\n var contents = React.useRef(null);\n var label = React.useRef(props.children);\n label.current = props.children;\n var labelText = getSelectLabelText(props.children);\n contents.current = /* @__PURE__ */ _jsx(SelectItemTextFrame, {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n });\n useIsomorphicLayoutEffect(function() {\n return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);\n }, [\n itemContext.textValue,\n itemContext.value,\n itemParentContext.registry,\n labelText\n ]);\n if (itemParentContext.shouldRenderWebNative) {\n return /* @__PURE__ */ _jsx(_Fragment, {\n children: props.children\n });\n }\n return /* @__PURE__ */ _jsx(_Fragment, {\n children: contents.current\n });\n});\nexport {\n ITEM_TEXT_NAME,\n SelectItemText,\n SelectItemTextFrame\n};\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":";;;;;;;;;AAOA,IAAI,iBAAiB;AACrB,IAAI,sBAAsB,OAAO,MAAM,EACrC,aAAa,eACf,CAAC;AACD,IAAI,iBAAiB,gBAAgB,qBAAqB,SAAS,gBAAgB,OAAO,cAAc;CACtG,IAAI,EAAE,OAAO,WAAW,GAAG,kBAAkB;CAC7C,IAAI,oBAAoB,2BAA2B,KAAK;CACxD,IAAI,MAAM,MAAM,OAAO,IAAI;CAC3B,IAAI,eAAe,gBAAgB,cAAc,GAAG;CACpD,IAAI,cAAc,qBAAqB,KAAK;CAC5C,IAAI,WAAW,MAAM,OAAO,IAAI;CAChC,IAAI,QAAQ,MAAM,OAAO,MAAM,QAAQ;CACvC,MAAM,UAAU,MAAM;CACtB,IAAI,YAAY,mBAAmB,MAAM,QAAQ;CACjD,SAAS,UAA0B,oBAAK,qBAAqB;EAC3D;EACA,IAAI,YAAY;EAChB,GAAG;EACH,KAAK;CACP,CAAC;CACD,0BAA0B,WAAW;EACnC,OAAO,kBAAkB,SAAS,cAAc,YAAY,OAAO,MAAM,SAAS,YAAY,SAAS;CACzG,GAAG;EACD,YAAY;EACZ,YAAY;EACZ,kBAAkB;EAClB;CACF,CAAC;CACD,IAAI,kBAAkB,uBAAuB;EAC3C,OAAuB,oBAAKA,UAAW,EACrC,UAAU,MAAM,SAClB,CAAC;CACH;CACA,OAAuB,oBAAKA,UAAW,EACrC,UAAU,SAAS,QACrB,CAAC;AACH,CAAC"}
|
|
@@ -1,120 +1,108 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { View, createStyledHOC, styled } from "@tamagui/core";
|
|
2
|
+
import { autoUpdate, offset, useFloatingRaw } from "@tamagui/floating";
|
|
2
3
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
3
|
-
import {
|
|
4
|
+
import { composeEventHandlers } from "@tamagui/helpers";
|
|
4
5
|
import * as React from "react";
|
|
5
6
|
import { flushSync } from "react-dom";
|
|
6
7
|
import { useSelectContext } from "./context.mjs";
|
|
7
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
|
|
8
10
|
const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const SelectScrollButtonFrame = styled(View, { displayName: "SelectScrollButton" });
|
|
12
|
+
const SelectScrollUpButton = createStyledHOC(SelectScrollButtonFrame, (props, forwardedRef) => {
|
|
13
|
+
return /* @__PURE__ */ jsx(SelectScrollButtonImpl, {
|
|
14
|
+
partClassName: `is_${SCROLL_UP_BUTTON_NAME}`,
|
|
15
|
+
...props,
|
|
16
|
+
dir: "up",
|
|
17
|
+
ref: forwardedRef
|
|
18
|
+
});
|
|
16
19
|
});
|
|
17
20
|
SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
|
|
18
21
|
const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
|
|
19
|
-
const SelectScrollDownButton =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const SelectScrollDownButton = createStyledHOC(SelectScrollButtonFrame, (props, forwardedRef) => {
|
|
23
|
+
return /* @__PURE__ */ jsx(SelectScrollButtonImpl, {
|
|
24
|
+
partClassName: `is_${SCROLL_DOWN_BUTTON_NAME}`,
|
|
25
|
+
...props,
|
|
26
|
+
dir: "down",
|
|
27
|
+
ref: forwardedRef
|
|
28
|
+
});
|
|
26
29
|
});
|
|
27
30
|
SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
|
|
28
|
-
const SelectScrollButtonImpl = React.memo(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
|
|
103
|
-
const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
|
|
104
|
-
onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels));
|
|
105
|
-
if (scrollRemaining) {
|
|
106
|
-
frameRef.current = requestAnimationFrame(frame);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
cancelAnimationFrame(frameRef.current);
|
|
111
|
-
frameRef.current = requestAnimationFrame(frame);
|
|
112
|
-
},
|
|
113
|
-
onPointerLeave: () => {
|
|
114
|
-
statusRef.current = "idle";
|
|
115
|
-
cancelAnimationFrame(frameRef.current);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
31
|
+
const SelectScrollButtonImpl = React.memo(createStyledHOC(SelectScrollButtonFrame, (props, forwardedRef) => {
|
|
32
|
+
const { scope, dir, partClassName, ...scrollIndicatorProps } = props;
|
|
33
|
+
const { className, onPointerEnter, onPointerLeave, ...frameProps } = scrollIndicatorProps;
|
|
34
|
+
const { open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(scope);
|
|
35
|
+
const floatingRef = context.floatingContext?.refs.floating;
|
|
36
|
+
const statusRef = React.useRef("idle");
|
|
37
|
+
const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
|
|
38
|
+
const frameRef = React.useRef(null);
|
|
39
|
+
const { x, y, refs, strategy } = useFloatingRaw({
|
|
40
|
+
open: open && isVisible,
|
|
41
|
+
strategy: "fixed",
|
|
42
|
+
elements: { reference: floatingRef?.current },
|
|
43
|
+
placement: dir === "up" ? "top" : "bottom",
|
|
44
|
+
middleware: [offset(({ rects }) => -rects.floating.height)],
|
|
45
|
+
whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: true })
|
|
46
|
+
});
|
|
47
|
+
const setFloatingRef = React.useCallback((node) => {
|
|
48
|
+
refs.setFloating(node);
|
|
49
|
+
}, [refs.setFloating]);
|
|
50
|
+
const composedRef = useComposedRefs(forwardedRef, setFloatingRef);
|
|
51
|
+
React.useEffect(() => {
|
|
52
|
+
return () => cancelAnimationFrame(frameRef.current);
|
|
53
|
+
}, []);
|
|
54
|
+
if (!isVisible) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const onScroll = (amount) => {
|
|
58
|
+
const floating = floatingRef;
|
|
59
|
+
if (!floating) return;
|
|
60
|
+
if (fallback) {
|
|
61
|
+
if (floating.current) {
|
|
62
|
+
floating.current.scrollTop -= amount;
|
|
63
|
+
flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0));
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
flushSync(() => setInnerOffset((value) => value - amount));
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return /* @__PURE__ */ jsx(SelectScrollButtonFrame, {
|
|
70
|
+
ref: composedRef,
|
|
71
|
+
className: `${partClassName} ${className || ""}`.trim(),
|
|
72
|
+
"aria-hidden": true,
|
|
73
|
+
...frameProps,
|
|
74
|
+
zIndex: 1e3,
|
|
75
|
+
position: strategy,
|
|
76
|
+
left: x || 0,
|
|
77
|
+
top: y || 0,
|
|
78
|
+
width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
|
|
79
|
+
onPointerEnter: composeEventHandlers(onPointerEnter, () => {
|
|
80
|
+
statusRef.current = "active";
|
|
81
|
+
let prevNow = Date.now();
|
|
82
|
+
function frame() {
|
|
83
|
+
const element = floatingRef?.current;
|
|
84
|
+
if (element) {
|
|
85
|
+
const currentNow = Date.now();
|
|
86
|
+
const msElapsed = currentNow - prevNow;
|
|
87
|
+
prevNow = currentNow;
|
|
88
|
+
const pixelsToScroll = msElapsed / 2;
|
|
89
|
+
const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
|
|
90
|
+
const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
|
|
91
|
+
onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels));
|
|
92
|
+
if (scrollRemaining) {
|
|
93
|
+
frameRef.current = requestAnimationFrame(frame);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
cancelAnimationFrame(frameRef.current);
|
|
98
|
+
frameRef.current = requestAnimationFrame(frame);
|
|
99
|
+
}),
|
|
100
|
+
onPointerLeave: composeEventHandlers(onPointerLeave, () => {
|
|
101
|
+
statusRef.current = "idle";
|
|
102
|
+
cancelAnimationFrame(frameRef.current);
|
|
103
|
+
})
|
|
104
|
+
});
|
|
118
105
|
}));
|
|
119
|
-
|
|
106
|
+
|
|
107
|
+
export { SelectScrollButtonFrame, SelectScrollDownButton, SelectScrollUpButton };
|
|
120
108
|
//# sourceMappingURL=SelectScrollButton.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"file":"SelectScrollButton.js","names":["useFloating"],"sources":["esm/SelectScrollButton.js"],"sourcesContent":["import { createStyledHOC, styled, View } from \"@tamagui/core\";\nimport { autoUpdate, offset, useFloatingRaw as useFloating } from \"@tamagui/floating\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useSelectContext } from \"./context\";\nimport { jsx } from \"react/jsx-runtime\";\nconst SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nconst SelectScrollButtonFrame = styled(View, {\n displayName: \"SelectScrollButton\"\n});\nconst SelectScrollUpButton = createStyledHOC(\n SelectScrollButtonFrame,\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n partClassName: `is_${SCROLL_UP_BUTTON_NAME}`,\n ...props,\n dir: \"up\",\n ref: forwardedRef\n }\n );\n }\n);\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nconst SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nconst SelectScrollDownButton = createStyledHOC(\n SelectScrollButtonFrame,\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n partClassName: `is_${SCROLL_DOWN_BUTTON_NAME}`,\n ...props,\n dir: \"down\",\n ref: forwardedRef\n }\n );\n }\n);\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nconst SelectScrollButtonImpl = React.memo(\n createStyledHOC(\n SelectScrollButtonFrame,\n (props, forwardedRef) => {\n const { scope, dir, partClassName, ...scrollIndicatorProps } = props;\n const { className, onPointerEnter, onPointerLeave, ...frameProps } = scrollIndicatorProps;\n const { open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(scope);\n const floatingRef = context.floatingContext?.refs.floating;\n const statusRef = React.useRef(\"idle\");\n const isVisible = context[dir === \"down\" ? \"canScrollDown\" : \"canScrollUp\"];\n const frameRef = React.useRef(null);\n const { x, y, refs, strategy } = useFloating({\n open: open && isVisible,\n strategy: \"fixed\",\n elements: {\n reference: floatingRef?.current\n },\n placement: dir === \"up\" ? \"top\" : \"bottom\",\n middleware: [offset(({ rects }) => -rects.floating.height)],\n whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: true })\n });\n const setFloatingRef = React.useCallback(\n (node) => {\n refs.setFloating(node);\n },\n [refs.setFloating]\n );\n const composedRef = useComposedRefs(forwardedRef, setFloatingRef);\n React.useEffect(() => {\n return () => cancelAnimationFrame(frameRef.current);\n }, []);\n if (!isVisible) {\n return null;\n }\n const onScroll = (amount) => {\n const floating = floatingRef;\n if (!floating) return;\n if (fallback) {\n if (floating.current) {\n floating.current.scrollTop -= amount;\n flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0));\n }\n } else {\n flushSync(() => setInnerOffset((value) => value - amount));\n }\n };\n return /* @__PURE__ */ jsx(\n SelectScrollButtonFrame,\n {\n ref: composedRef,\n className: `${partClassName} ${className || \"\"}`.trim(),\n \"aria-hidden\": true,\n ...frameProps,\n zIndex: 1e3,\n position: strategy,\n left: x || 0,\n top: y || 0,\n width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,\n onPointerEnter: composeEventHandlers(onPointerEnter, () => {\n statusRef.current = \"active\";\n let prevNow = Date.now();\n function frame() {\n const element = floatingRef?.current;\n if (element) {\n const currentNow = Date.now();\n const msElapsed = currentNow - prevNow;\n prevNow = currentNow;\n const pixelsToScroll = msElapsed / 2;\n const remainingPixels = dir === \"up\" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;\n const scrollRemaining = dir === \"up\" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;\n onScroll(\n dir === \"up\" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)\n );\n if (scrollRemaining) {\n frameRef.current = requestAnimationFrame(frame);\n }\n }\n }\n cancelAnimationFrame(frameRef.current);\n frameRef.current = requestAnimationFrame(frame);\n }),\n onPointerLeave: composeEventHandlers(onPointerLeave, () => {\n statusRef.current = \"idle\";\n cancelAnimationFrame(frameRef.current);\n })\n }\n );\n }\n )\n);\nexport {\n SelectScrollButtonFrame,\n SelectScrollDownButton,\n SelectScrollUpButton\n};\n//# sourceMappingURL=SelectScrollButton.js.map\n"],"mappings":"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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
};
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
1
|
+
import { View, createStyledHOC, styled } from "@tamagui/core";
|
|
2
|
+
|
|
3
|
+
var SelectScrollButtonFrame = styled(View, { displayName: "SelectScrollButton" });
|
|
4
|
+
var SelectScrollUpButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {
|
|
5
|
+
return null;
|
|
6
|
+
});
|
|
7
|
+
var SelectScrollDownButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {
|
|
8
|
+
return null;
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export { SelectScrollButtonFrame, SelectScrollDownButton, SelectScrollUpButton };
|
|
8
12
|
//# sourceMappingURL=SelectScrollButton.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SelectScrollButton.native.js","names":[],"sources":["esm/SelectScrollButton.native.js"],"sourcesContent":["import { createStyledHOC, styled, View } from \"@tamagui/core\";\nvar SelectScrollButtonFrame = styled(View, {\n displayName: \"SelectScrollButton\"\n});\nvar SelectScrollUpButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {\n return null;\n});\nvar SelectScrollDownButton = createStyledHOC(SelectScrollButtonFrame, function(_props) {\n return null;\n});\nexport {\n SelectScrollButtonFrame,\n SelectScrollDownButton,\n SelectScrollUpButton\n};\n//# sourceMappingURL=SelectScrollButton.native.js.map\n"],"mappings":";;;AACA,IAAI,0BAA0B,OAAO,MAAM,EACzC,aAAa,qBACf,CAAC;AACD,IAAI,uBAAuB,gBAAgB,yBAAyB,SAAS,QAAQ;CACnF,OAAO;AACT,CAAC;AACD,IAAI,yBAAyB,gBAAgB,yBAAyB,SAAS,QAAQ;CACrF,OAAO;AACT,CAAC"}
|
|
@@ -1,63 +1,61 @@
|
|
|
1
1
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { isWeb } from "@tamagui/constants";
|
|
3
|
+
import { View, createChangeEventDetails, createStyledHOC, styled } from "@tamagui/core";
|
|
4
|
+
import { composeEventHandlers } from "@tamagui/helpers";
|
|
4
5
|
import { useSelectContext, useSelectItemParentContext } from "./context.mjs";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
unstyled = false,
|
|
13
|
-
...triggerProps
|
|
14
|
-
} = props;
|
|
15
|
-
const context = useSelectContext(scope);
|
|
16
|
-
const itemParentContext = useSelectItemParentContext(scope);
|
|
17
|
-
const composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);
|
|
18
|
-
if (itemParentContext.shouldRenderWebNative) return null;
|
|
19
|
-
return /* @__PURE__ */jsx(ListItem, {
|
|
20
|
-
componentName: TRIGGER_NAME,
|
|
21
|
-
unstyled,
|
|
22
|
-
render: "button",
|
|
23
|
-
type: "button",
|
|
24
|
-
id: itemParentContext.id,
|
|
25
|
-
...(!unstyled && {
|
|
26
|
-
focusVisibleStyle: {
|
|
27
|
-
outlineStyle: "solid",
|
|
28
|
-
outlineWidth: 2,
|
|
29
|
-
outlineColor: "$outlineColor"
|
|
30
|
-
},
|
|
31
|
-
borderWidth: 1,
|
|
32
|
-
size: itemParentContext.size
|
|
33
|
-
}),
|
|
34
|
-
role: "combobox",
|
|
35
|
-
"aria-haspopup": "listbox",
|
|
36
|
-
"aria-expanded": context.open,
|
|
37
|
-
"aria-autocomplete": "none",
|
|
38
|
-
dir: context.dir,
|
|
39
|
-
disabled,
|
|
40
|
-
"data-disabled": disabled ? "" : void 0,
|
|
41
|
-
...triggerProps,
|
|
42
|
-
ref: composedRefs,
|
|
43
|
-
...(itemParentContext.interactions ? {
|
|
44
|
-
...itemParentContext.interactions.getReferenceProps(),
|
|
45
|
-
...(isPointerCoarse ? {
|
|
46
|
-
onPress() {
|
|
47
|
-
itemParentContext.setOpen(!context.open);
|
|
48
|
-
}
|
|
49
|
-
} : {
|
|
50
|
-
onMouseDown() {
|
|
51
|
-
context.floatingContext?.update?.();
|
|
52
|
-
itemParentContext.setOpen(!context.open);
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
} : {
|
|
56
|
-
onPress() {
|
|
57
|
-
itemParentContext.setOpen(!context.open);
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
});
|
|
7
|
+
|
|
8
|
+
const SelectTriggerFrame = styled(View, {
|
|
9
|
+
displayName: "SelectTrigger",
|
|
10
|
+
alignItems: "center",
|
|
11
|
+
flexDirection: "row",
|
|
12
|
+
render: /* @__PURE__ */ jsx("button", { type: "button" })
|
|
61
13
|
});
|
|
62
|
-
|
|
14
|
+
const SelectTrigger = createStyledHOC(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {
|
|
15
|
+
const { scope, disabled = false, ...triggerProps } = props;
|
|
16
|
+
const context = useSelectContext(scope);
|
|
17
|
+
const itemParentContext = useSelectItemParentContext(scope);
|
|
18
|
+
const composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);
|
|
19
|
+
if (itemParentContext.shouldRenderWebNative) return null;
|
|
20
|
+
const toggleOpen = (event, reason = "trigger-press") => {
|
|
21
|
+
if (!disabled) itemParentContext.requestOpenChange(!context.open, createChangeEventDetails(reason, event?.nativeEvent || event, event?.currentTarget));
|
|
22
|
+
};
|
|
23
|
+
const interactionProps = itemParentContext.interactions ? itemParentContext.interactions.getReferenceProps({
|
|
24
|
+
...triggerProps,
|
|
25
|
+
onMouseDown: composeEventHandlers(triggerProps.onMouseDown, () => context.floatingContext?.update?.())
|
|
26
|
+
}) : {
|
|
27
|
+
...triggerProps,
|
|
28
|
+
...isWeb ? { onMouseDown: composeEventHandlers(triggerProps.onMouseDown, (event) => {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
toggleOpen(event);
|
|
31
|
+
}) } : { onPress: composeEventHandlers(triggerProps.onPress, toggleOpen) },
|
|
32
|
+
onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {
|
|
33
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
toggleOpen(event, "keyboard");
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
return /* @__PURE__ */ jsx(SelectTriggerFrame, {
|
|
40
|
+
type: "button",
|
|
41
|
+
id: itemParentContext.id,
|
|
42
|
+
role: "combobox",
|
|
43
|
+
"aria-haspopup": "listbox",
|
|
44
|
+
"aria-expanded": context.open,
|
|
45
|
+
"data-state": context.open ? "open" : "closed",
|
|
46
|
+
"aria-autocomplete": "none",
|
|
47
|
+
accessibilityRole: isWeb ? void 0 : "button",
|
|
48
|
+
accessibilityState: isWeb ? void 0 : {
|
|
49
|
+
expanded: context.open,
|
|
50
|
+
disabled
|
|
51
|
+
},
|
|
52
|
+
dir: context.dir,
|
|
53
|
+
disabled,
|
|
54
|
+
"data-disabled": disabled ? "" : void 0,
|
|
55
|
+
...interactionProps,
|
|
56
|
+
ref: composedRefs
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
export { SelectTrigger, SelectTriggerFrame };
|
|
63
61
|
//# sourceMappingURL=SelectTrigger.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SelectTrigger.js","names":[],"sources":["esm/SelectTrigger.js"],"sourcesContent":["import { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { View, createChangeEventDetails, createStyledHOC, styled } from \"@tamagui/core\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport { useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst SelectTriggerFrame = styled(View, {\n\tdisplayName: \"SelectTrigger\",\n\talignItems: \"center\",\n\tflexDirection: \"row\",\n\trender: /* @__PURE__ */ jsx(\"button\", { type: \"button\" })\n});\nconst SelectTrigger = createStyledHOC(SelectTriggerFrame, function SelectTrigger2(props, forwardedRef) {\n\tconst { scope, disabled = false, ...triggerProps } = props;\n\tconst context = useSelectContext(scope);\n\tconst itemParentContext = useSelectItemParentContext(scope);\n\tconst composedRefs = useComposedRefs(forwardedRef, context.floatingContext?.refs.setReference);\n\tif (itemParentContext.shouldRenderWebNative) return null;\n\tconst toggleOpen = (event, reason = \"trigger-press\") => {\n\t\tif (!disabled) itemParentContext.requestOpenChange(!context.open, createChangeEventDetails(reason, event?.nativeEvent || event, event?.currentTarget));\n\t};\n\tconst interactionProps = itemParentContext.interactions ? itemParentContext.interactions.getReferenceProps({\n\t\t...triggerProps,\n\t\tonMouseDown: composeEventHandlers(triggerProps.onMouseDown, () => context.floatingContext?.update?.())\n\t}) : {\n\t\t...triggerProps,\n\t\t...isWeb ? { onMouseDown: composeEventHandlers(triggerProps.onMouseDown, (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, (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\"data-state\": context.open ? \"open\" : \"closed\",\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":";;;;;;;;AAOA,MAAM,qBAAqB,OAAO,MAAM;CACvC,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAwB,oBAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,CAAC;AACD,MAAM,gBAAgB,gBAAgB,oBAAoB,SAAS,eAAe,OAAO,cAAc;CACtG,MAAM,EAAE,OAAO,WAAW,OAAO,GAAG,iBAAiB;CACrD,MAAM,UAAU,iBAAiB,KAAK;CACtC,MAAM,oBAAoB,2BAA2B,KAAK;CAC1D,MAAM,eAAe,gBAAgB,cAAc,QAAQ,iBAAiB,KAAK,YAAY;CAC7F,IAAI,kBAAkB,uBAAuB,OAAO;CACpD,MAAM,cAAc,OAAO,SAAS,oBAAoB;EACvD,IAAI,CAAC,UAAU,kBAAkB,kBAAkB,CAAC,QAAQ,MAAM,yBAAyB,QAAQ,OAAO,eAAe,OAAO,OAAO,aAAa,CAAC;CACtJ;CACA,MAAM,mBAAmB,kBAAkB,eAAe,kBAAkB,aAAa,kBAAkB;EAC1G,GAAG;EACH,aAAa,qBAAqB,aAAa,mBAAmB,QAAQ,iBAAiB,SAAS,CAAC;CACtG,CAAC,IAAI;EACJ,GAAG;EACH,GAAG,QAAQ,EAAE,aAAa,qBAAqB,aAAa,cAAc,UAAU;GACnF,MAAM,eAAe;GACrB,WAAW,KAAK;EACjB,CAAC,EAAE,IAAI,EAAE,SAAS,qBAAqB,aAAa,SAAS,UAAU,EAAE;EACzE,WAAW,qBAAqB,aAAa,YAAY,UAAU;GAClE,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,cAAc,QAAQ,OAAO,SAAS;EACtC,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"}
|