@tamagui/select 2.7.6 → 3.0.0-beta.637.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
1
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
2
|
-
import { styled, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
3
|
-
import { SizableText } from "@tamagui/text";
|
|
2
|
+
import { Text, createStyledHOC, styled, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
4
3
|
import * as React from "react";
|
|
5
4
|
import { useSelectItemParentContext } from "./context.mjs";
|
|
5
|
+
import { getSelectLabelText } from "./selectionController.mjs";
|
|
6
6
|
import { useSelectItemContext } from "./SelectItem.mjs";
|
|
7
7
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
8
|
+
|
|
8
9
|
const ITEM_TEXT_NAME = "SelectItemText";
|
|
9
|
-
const 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(() => {
|
|
43
|
-
if (itemParentContext.initialValue === itemContext.value) {
|
|
44
|
-
itemParentContext.setSelectedItem(contents.current);
|
|
45
|
-
}
|
|
46
|
-
}, []);
|
|
47
|
-
useIsomorphicLayoutEffect(() => {
|
|
48
|
-
return itemParentContext.valueSubscribe(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
|
+
const SelectItemTextFrame = styled(Text, { displayName: ITEM_TEXT_NAME });
|
|
11
|
+
const SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
|
|
12
|
+
const { scope, className, ...itemTextProps } = props;
|
|
13
|
+
const itemParentContext = useSelectItemParentContext(scope);
|
|
14
|
+
const ref = React.useRef(null);
|
|
15
|
+
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
16
|
+
const itemContext = useSelectItemContext(scope);
|
|
17
|
+
const contents = React.useRef(null);
|
|
18
|
+
const label = React.useRef(props.children);
|
|
19
|
+
label.current = props.children;
|
|
20
|
+
const labelText = getSelectLabelText(props.children);
|
|
21
|
+
contents.current = /* @__PURE__ */ jsx(SelectItemTextFrame, {
|
|
22
|
+
className,
|
|
23
|
+
id: itemContext.textId,
|
|
24
|
+
...itemTextProps,
|
|
25
|
+
ref: composedRefs
|
|
26
|
+
});
|
|
27
|
+
useIsomorphicLayoutEffect(() => {
|
|
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.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SelectItemText.js","names":[],"sources":["jsx/SelectItemText.js"],"sourcesContent":["import { 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\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nconst ITEM_TEXT_NAME = \"SelectItemText\";\nconst SelectItemTextFrame = styled(Text, {\n displayName: ITEM_TEXT_NAME\n});\nconst SelectItemText = createStyledHOC(\n SelectItemTextFrame,\n function SelectItemText2(props, forwardedRef) {\n const { scope, className, ...itemTextProps } = props;\n const itemParentContext = useSelectItemParentContext(scope);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const itemContext = useSelectItemContext(scope);\n const contents = React.useRef(null);\n const label = React.useRef(props.children);\n label.current = props.children;\n const labelText = getSelectLabelText(props.children);\n contents.current = /* @__PURE__ */ jsx(\n SelectItemTextFrame,\n {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n }\n );\n useIsomorphicLayoutEffect(() => {\n return itemParentContext.registry.registerLabel(\n itemContext.value,\n label.current,\n itemContext.textValue\n );\n }, [itemContext.textValue, itemContext.value, itemParentContext.registry, labelText]);\n if (itemParentContext.shouldRenderWebNative) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n }\n return /* @__PURE__ */ jsx(Fragment, { children: contents.current });\n }\n);\nexport {\n ITEM_TEXT_NAME,\n SelectItemText,\n SelectItemTextFrame\n};\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":";;;;;;;;;AAOA,MAAM,iBAAiB;AACvB,MAAM,sBAAsB,OAAO,MAAM,EACvC,aAAa,eACf,CAAC;AACD,MAAM,iBAAiB,gBACrB,qBACA,SAAS,gBAAgB,OAAO,cAAc;CAC5C,MAAM,EAAE,OAAO,WAAW,GAAG,kBAAkB;CAC/C,MAAM,oBAAoB,2BAA2B,KAAK;CAC1D,MAAM,MAAM,MAAM,OAAO,IAAI;CAC7B,MAAM,eAAe,gBAAgB,cAAc,GAAG;CACtD,MAAM,cAAc,qBAAqB,KAAK;CAC9C,MAAM,WAAW,MAAM,OAAO,IAAI;CAClC,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ;CACzC,MAAM,UAAU,MAAM;CACtB,MAAM,YAAY,mBAAmB,MAAM,QAAQ;CACnD,SAAS,UAA0B,oBACjC,qBACA;EACE;EACA,IAAI,YAAY;EAChB,GAAG;EACH,KAAK;CACP,CACF;CACA,gCAAgC;EAC9B,OAAO,kBAAkB,SAAS,cAChC,YAAY,OACZ,MAAM,SACN,YAAY,SACd;CACF,GAAG;EAAC,YAAY;EAAW,YAAY;EAAO,kBAAkB;EAAU;CAAS,CAAC;CACpF,IAAI,kBAAkB,uBAAuB;EAC3C,OAAuB,oBAAI,UAAU,EAAE,UAAU,MAAM,SAAS,CAAC;CACnE;CACA,OAAuB,oBAAI,UAAU,EAAE,UAAU,SAAS,QAAQ,CAAC;AACrE,CACF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all) __defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: () => from[key],
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: true
|
|
28
|
+
}) : target, mod));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var SelectItemText_exports = {};
|
|
31
|
+
__export(SelectItemText_exports, {
|
|
32
|
+
ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,
|
|
33
|
+
SelectItemText: () => SelectItemText,
|
|
34
|
+
SelectItemTextFrame: () => SelectItemTextFrame
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(SelectItemText_exports);
|
|
37
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
38
|
+
var import_compose_refs = require("@tamagui/compose-refs");
|
|
39
|
+
var import_core = require("@tamagui/core");
|
|
40
|
+
var React = __toESM(require("react"), 1);
|
|
41
|
+
var import_context = require("./context.native.js");
|
|
42
|
+
var import_selectionController = require("./selectionController.native.js");
|
|
43
|
+
var import_SelectItem = require("./SelectItem.native.js");
|
|
44
|
+
var ITEM_TEXT_NAME = "SelectItemText";
|
|
45
|
+
var SelectItemTextFrame = (0, import_core.styled)(import_core.Text, { displayName: ITEM_TEXT_NAME });
|
|
46
|
+
var SelectItemText = (0, import_core.createStyledHOC)(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
|
|
47
|
+
var { scope, className, ...itemTextProps } = props;
|
|
48
|
+
var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
|
|
49
|
+
var ref = React.useRef(null);
|
|
50
|
+
var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);
|
|
51
|
+
var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);
|
|
52
|
+
var contents = React.useRef(null);
|
|
53
|
+
var label = React.useRef(props.children);
|
|
54
|
+
label.current = props.children;
|
|
55
|
+
var labelText = (0, import_selectionController.getSelectLabelText)(props.children);
|
|
56
|
+
contents.current = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemTextFrame, {
|
|
57
|
+
className,
|
|
58
|
+
id: itemContext.textId,
|
|
59
|
+
...itemTextProps,
|
|
60
|
+
ref: composedRefs
|
|
61
|
+
});
|
|
62
|
+
(0, import_core.useIsomorphicLayoutEffect)(function() {
|
|
63
|
+
return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
|
|
64
|
+
}, [
|
|
65
|
+
itemContext.textValue,
|
|
66
|
+
itemContext.value,
|
|
67
|
+
itemParentContext.registry,
|
|
68
|
+
labelText
|
|
69
|
+
]);
|
|
70
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
71
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });
|
|
72
|
+
}
|
|
73
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: contents.current });
|
|
74
|
+
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
|
|
3
4
|
var __create = Object.create;
|
|
4
5
|
var __defProp = Object.defineProperty;
|
|
5
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -7,99 +8,69 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
7
8
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
9
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
10
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
for (var name in all) __defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
14
15
|
};
|
|
15
16
|
var __copyProps = (to, from, except, desc) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: () => from[key],
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
23
24
|
};
|
|
24
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
-
value: mod,
|
|
31
|
-
enumerable: true
|
|
25
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: true
|
|
32
28
|
}) : target, mod));
|
|
33
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
-
value: true
|
|
35
|
-
}), mod);
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
30
|
var SelectItemText_exports = {};
|
|
37
31
|
__export(SelectItemText_exports, {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,
|
|
33
|
+
SelectItemText: () => SelectItemText,
|
|
34
|
+
SelectItemTextFrame: () => SelectItemTextFrame
|
|
41
35
|
});
|
|
42
36
|
module.exports = __toCommonJS(SelectItemText_exports);
|
|
43
37
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
44
38
|
var import_compose_refs = require("@tamagui/compose-refs");
|
|
45
39
|
var import_core = require("@tamagui/core");
|
|
46
|
-
var import_text = require("@tamagui/text");
|
|
47
40
|
var React = __toESM(require("react"), 1);
|
|
48
41
|
var import_context = require("./context.native.js");
|
|
42
|
+
var import_selectionController = require("./selectionController.native.js");
|
|
49
43
|
var import_SelectItem = require("./SelectItem.native.js");
|
|
50
44
|
var ITEM_TEXT_NAME = "SelectItemText";
|
|
51
|
-
var SelectItemTextFrame = (0, import_core.styled)(
|
|
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
|
-
id: itemContext.textId,
|
|
81
|
-
...itemTextProps,
|
|
82
|
-
ref: composedRefs
|
|
83
|
-
});
|
|
84
|
-
(0, import_core.useIsomorphicLayoutEffect)(function () {
|
|
85
|
-
if (itemParentContext.initialValue === itemContext.value) {
|
|
86
|
-
itemParentContext.setSelectedItem(contents.current);
|
|
87
|
-
}
|
|
88
|
-
}, []);
|
|
89
|
-
(0, import_core.useIsomorphicLayoutEffect)(function () {
|
|
90
|
-
return itemParentContext.valueSubscribe(function (val) {
|
|
91
|
-
if (val === itemContext.value) {
|
|
92
|
-
itemParentContext.setSelectedItem(contents.current);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}, [itemContext.value]);
|
|
96
|
-
if (itemParentContext.shouldRenderWebNative) {
|
|
97
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
98
|
-
children: props.children
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
102
|
-
children: contents.current
|
|
103
|
-
});
|
|
45
|
+
var SelectItemTextFrame = (0, import_core.styled)(import_core.Text, { displayName: ITEM_TEXT_NAME });
|
|
46
|
+
var SelectItemText = (0, import_core.createStyledHOC)(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
|
|
47
|
+
var { scope, className, ...itemTextProps } = props;
|
|
48
|
+
var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
|
|
49
|
+
var ref = React.useRef(null);
|
|
50
|
+
var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);
|
|
51
|
+
var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);
|
|
52
|
+
var contents = React.useRef(null);
|
|
53
|
+
var label = React.useRef(props.children);
|
|
54
|
+
label.current = props.children;
|
|
55
|
+
var labelText = (0, import_selectionController.getSelectLabelText)(props.children);
|
|
56
|
+
contents.current = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemTextFrame, {
|
|
57
|
+
className,
|
|
58
|
+
id: itemContext.textId,
|
|
59
|
+
...itemTextProps,
|
|
60
|
+
ref: composedRefs
|
|
61
|
+
});
|
|
62
|
+
(0, import_core.useIsomorphicLayoutEffect)(function() {
|
|
63
|
+
return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
|
|
64
|
+
}, [
|
|
65
|
+
itemContext.textValue,
|
|
66
|
+
itemContext.value,
|
|
67
|
+
itemParentContext.registry,
|
|
68
|
+
labelText
|
|
69
|
+
]);
|
|
70
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
71
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.children });
|
|
72
|
+
}
|
|
73
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: contents.current });
|
|
104
74
|
});
|
|
75
|
+
|
|
105
76
|
//# sourceMappingURL=SelectItemText.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SelectItemText.native.js","names":[],"sources":["jsx/SelectItemText.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectItemText_exports = {};\n__export(SelectItemText_exports, {\n ITEM_TEXT_NAME: () => ITEM_TEXT_NAME,\n SelectItemText: () => SelectItemText,\n SelectItemTextFrame: () => SelectItemTextFrame\n});\nmodule.exports = __toCommonJS(SelectItemText_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_core = require(\"@tamagui/core\");\nvar React = __toESM(require(\"react\"), 1);\nvar import_context = require(\"./context\");\nvar import_selectionController = require(\"./selectionController\");\nvar import_SelectItem = require(\"./SelectItem\");\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemTextFrame = (0, import_core.styled)(import_core.Text, {\n displayName: ITEM_TEXT_NAME\n});\nvar SelectItemText = (0, import_core.createStyledHOC)(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {\n var { scope, className, ...itemTextProps } = props;\n var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n var ref = React.useRef(null);\n var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, ref);\n var itemContext = (0, import_SelectItem.useSelectItemContext)(scope);\n var contents = React.useRef(null);\n var label = React.useRef(props.children);\n label.current = props.children;\n var labelText = (0, import_selectionController.getSelectLabelText)(props.children);\n contents.current = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemTextFrame, {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n });\n (0, import_core.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__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: props.children\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: contents.current\n });\n});\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":"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"}
|
|
@@ -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
|