@tamagui/group 2.7.7 → 3.0.0-beta.1093.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/Group.cjs +99 -132
- package/dist/cjs/Group.native.cjs +140 -0
- package/dist/cjs/Group.native.js +102 -136
- package/dist/cjs/Group.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -11
- package/dist/cjs/index.native.cjs +20 -0
- package/dist/cjs/index.native.js +9 -10
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/useIndexedChildren.cjs +51 -58
- package/dist/cjs/useIndexedChildren.native.cjs +83 -0
- package/dist/cjs/useIndexedChildren.native.js +59 -65
- package/dist/cjs/useIndexedChildren.native.js.map +1 -1
- package/dist/esm/Group.mjs +80 -104
- package/dist/esm/Group.mjs.map +1 -1
- package/dist/esm/Group.native.js +84 -110
- package/dist/esm/Group.native.js.map +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/index.native.js +1 -2
- package/dist/esm/useIndexedChildren.mjs +35 -33
- package/dist/esm/useIndexedChildren.mjs.map +1 -1
- package/dist/esm/useIndexedChildren.native.js +44 -42
- package/dist/esm/useIndexedChildren.native.js.map +1 -1
- package/dist/jsx/Group.mjs +80 -104
- package/dist/jsx/Group.mjs.map +1 -1
- package/dist/jsx/Group.native.cjs +140 -0
- package/dist/jsx/Group.native.js +102 -136
- package/dist/jsx/Group.native.js.map +1 -1
- package/dist/jsx/index.js +1 -2
- package/dist/jsx/index.mjs +1 -2
- package/dist/jsx/index.native.cjs +20 -0
- package/dist/jsx/index.native.js +9 -10
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/useIndexedChildren.mjs +35 -33
- package/dist/jsx/useIndexedChildren.mjs.map +1 -1
- package/dist/jsx/useIndexedChildren.native.cjs +83 -0
- package/dist/jsx/useIndexedChildren.native.js +59 -65
- package/dist/jsx/useIndexedChildren.native.js.map +1 -1
- package/package.json +11 -10
- package/src/Group.tsx +11 -19
- package/types/Group.d.ts +107 -78
- package/types/Group.d.ts.map +1 -1
- package/types/useIndexedChildren.d.ts +1 -1
- package/types/useIndexedChildren.d.ts.map +1 -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/jsx/index.js.map +0 -1
- package/dist/jsx/index.mjs.map +0 -1
package/dist/esm/Group.native.js
CHANGED
|
@@ -1,132 +1,106 @@
|
|
|
1
|
-
import { jsx
|
|
2
|
-
import { mergeSlotStyleProps, styled } from "@tamagui/core";
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createStyledHOC, mergeSlotStyleProps, resolveSize, styled } from "@tamagui/core";
|
|
3
3
|
import { createContextScope } from "@tamagui/create-context";
|
|
4
4
|
import { withStaticProperties } from "@tamagui/helpers";
|
|
5
5
|
import { YStack } from "@tamagui/stacks";
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { useIndex, useIndexedChildren } from "./useIndexedChildren.native.js";
|
|
8
|
+
|
|
8
9
|
var GROUP_NAME = "Group";
|
|
9
10
|
var [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME);
|
|
10
11
|
var [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);
|
|
12
|
+
var groupSizeVariant = styled.dynamic(function(val, env) {
|
|
13
|
+
return { borderRadius: resolveSize(val, env).frame.borderRadius };
|
|
14
|
+
});
|
|
11
15
|
var GroupFrame = styled(YStack, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
false: {
|
|
16
|
-
size: "$true"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
size: function (val, param) {
|
|
20
|
-
var {
|
|
21
|
-
tokens
|
|
22
|
-
} = param;
|
|
23
|
-
var _tokens_radius_val, _ref;
|
|
24
|
-
var borderRadius = (_ref = (_tokens_radius_val = tokens.radius[val]) !== null && _tokens_radius_val !== void 0 ? _tokens_radius_val : val) !== null && _ref !== void 0 ? _ref : tokens.radius["$true"];
|
|
25
|
-
return {
|
|
26
|
-
borderRadius
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
defaultVariants: {
|
|
31
|
-
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
32
|
-
}
|
|
16
|
+
displayName: "GroupFrame",
|
|
17
|
+
size: true,
|
|
18
|
+
variants: { size: groupSizeVariant }
|
|
33
19
|
});
|
|
34
20
|
function createGroup(verticalDefault) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
flexDirection: vertical ? "column" : "row",
|
|
52
|
-
...restProps,
|
|
53
|
-
children: indexedChildren
|
|
54
|
-
})
|
|
55
|
-
});
|
|
56
|
-
}), {
|
|
57
|
-
Item: GroupItem
|
|
58
|
-
});
|
|
21
|
+
return withStaticProperties(createStyledHOC(GroupFrame, function(props, ref) {
|
|
22
|
+
var { __scopeGroup, children: childrenProp, orientation = verticalDefault ? "vertical" : "horizontal", disabled, ...restProps } = props;
|
|
23
|
+
var vertical = orientation === "vertical";
|
|
24
|
+
var indexedChildren = useIndexedChildren(React.Children.toArray(childrenProp));
|
|
25
|
+
return /* @__PURE__ */ jsx(GroupProvider, {
|
|
26
|
+
vertical,
|
|
27
|
+
disabled,
|
|
28
|
+
scope: __scopeGroup,
|
|
29
|
+
children: /* @__PURE__ */ jsx(GroupFrame, {
|
|
30
|
+
ref,
|
|
31
|
+
flexDirection: vertical ? "column" : "row",
|
|
32
|
+
...restProps,
|
|
33
|
+
children: indexedChildren
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}), { Item: GroupItem });
|
|
59
37
|
}
|
|
60
38
|
function GroupItem(props) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var _children_props_disabled;
|
|
84
|
-
groupProps.disabled = (_children_props_disabled = children.props.disabled) !== null && _children_props_disabled !== void 0 ? _children_props_disabled : context.disabled;
|
|
85
|
-
}
|
|
86
|
-
var mergedProps = mergeSlotStyleProps(groupProps, children.props);
|
|
87
|
-
return /* @__PURE__ */React.cloneElement(children, mergedProps);
|
|
39
|
+
var { __scopeGroup, children, forcePlacement, ...forwardedProps } = props;
|
|
40
|
+
var context = useGroupContext("GroupItem", __scopeGroup);
|
|
41
|
+
var treeIndex = useIndex();
|
|
42
|
+
if (!treeIndex) {
|
|
43
|
+
throw Error("<Group.Item/> should only be used within a <Group/>");
|
|
44
|
+
}
|
|
45
|
+
if (!/* @__PURE__ */ React.isValidElement(children)) {
|
|
46
|
+
return children;
|
|
47
|
+
}
|
|
48
|
+
var isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0;
|
|
49
|
+
var isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex;
|
|
50
|
+
var radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical);
|
|
51
|
+
var groupProps = {
|
|
52
|
+
...forwardedProps,
|
|
53
|
+
...radiusStyles
|
|
54
|
+
};
|
|
55
|
+
if (context.disabled != null) {
|
|
56
|
+
var _children_props_disabled;
|
|
57
|
+
groupProps.disabled = (_children_props_disabled = children.props.disabled) !== null && _children_props_disabled !== void 0 ? _children_props_disabled : context.disabled;
|
|
58
|
+
}
|
|
59
|
+
var mergedProps = mergeSlotStyleProps(groupProps, children.props);
|
|
60
|
+
return /* @__PURE__ */ React.cloneElement(children, mergedProps);
|
|
88
61
|
}
|
|
89
|
-
var useGroupItem = function
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
62
|
+
var useGroupItem = function(childrenProps, forcePlacement, __scopeGroup) {
|
|
63
|
+
var treeIndex = useIndex();
|
|
64
|
+
var context = useGroupContext("GroupItem", __scopeGroup);
|
|
65
|
+
if (!treeIndex) {
|
|
66
|
+
throw Error("useGroupItem should only be used within a <Group/>");
|
|
67
|
+
}
|
|
68
|
+
var isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0;
|
|
69
|
+
var isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex;
|
|
70
|
+
var radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical);
|
|
71
|
+
var _childrenProps_disabled;
|
|
72
|
+
return {
|
|
73
|
+
disabled: (_childrenProps_disabled = childrenProps.disabled) !== null && _childrenProps_disabled !== void 0 ? _childrenProps_disabled : context.disabled,
|
|
74
|
+
...radiusStyles
|
|
75
|
+
};
|
|
103
76
|
};
|
|
104
77
|
var Group = createGroup(true);
|
|
105
78
|
var YGroup = Group;
|
|
106
79
|
var XGroup = createGroup(false);
|
|
107
80
|
function getZeroedRadius(isFirst, isLast, vertical) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
81
|
+
if (vertical) {
|
|
82
|
+
return {
|
|
83
|
+
...isFirst ? null : {
|
|
84
|
+
borderTopLeftRadius: 0,
|
|
85
|
+
borderTopRightRadius: 0
|
|
86
|
+
},
|
|
87
|
+
...isLast ? null : {
|
|
88
|
+
borderBottomLeftRadius: 0,
|
|
89
|
+
borderBottomRightRadius: 0
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
...isFirst ? null : {
|
|
95
|
+
borderTopLeftRadius: 0,
|
|
96
|
+
borderBottomLeftRadius: 0
|
|
97
|
+
},
|
|
98
|
+
...isLast ? null : {
|
|
99
|
+
borderTopRightRadius: 0,
|
|
100
|
+
borderBottomRightRadius: 0
|
|
101
|
+
}
|
|
102
|
+
};
|
|
130
103
|
}
|
|
104
|
+
|
|
131
105
|
export { Group, GroupFrame, XGroup, YGroup, createGroupScope, useGroupItem };
|
|
132
106
|
//# sourceMappingURL=Group.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"file":"Group.native.js","names":[],"sources":["esm/Group.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createStyledHOC, mergeSlotStyleProps, resolveSize, styled } from \"@tamagui/core\";\nimport { createContextScope } from \"@tamagui/create-context\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { YStack } from \"@tamagui/stacks\";\nimport React from \"react\";\nimport { useIndex, useIndexedChildren } from \"./useIndexedChildren\";\nvar GROUP_NAME = \"Group\";\nvar [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME);\nvar [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);\nvar groupSizeVariant = styled.dynamic(function(val, env) {\n return {\n borderRadius: resolveSize(val, env).frame.borderRadius\n };\n});\nvar GroupFrame = styled(YStack, {\n displayName: \"GroupFrame\",\n size: true,\n variants: {\n size: groupSizeVariant\n }\n});\nfunction createGroup(verticalDefault) {\n return withStaticProperties(createStyledHOC(GroupFrame, function(props, ref) {\n var { __scopeGroup, children: childrenProp, orientation = verticalDefault ? \"vertical\" : \"horizontal\", disabled, ...restProps } = props;\n var vertical = orientation === \"vertical\";\n var indexedChildren = useIndexedChildren(React.Children.toArray(childrenProp));\n return /* @__PURE__ */ _jsx(GroupProvider, {\n vertical,\n disabled,\n scope: __scopeGroup,\n children: /* @__PURE__ */ _jsx(GroupFrame, {\n ref,\n flexDirection: vertical ? \"column\" : \"row\",\n ...restProps,\n children: indexedChildren\n })\n });\n }), {\n Item: GroupItem\n });\n}\nfunction GroupItem(props) {\n var { __scopeGroup, children, forcePlacement, ...forwardedProps } = props;\n var context = useGroupContext(\"GroupItem\", __scopeGroup);\n var treeIndex = useIndex();\n if (!treeIndex) {\n throw Error(\"<Group.Item/> should only be used within a <Group/>\");\n }\n if (!/* @__PURE__ */ React.isValidElement(children)) {\n return children;\n }\n var isFirst = forcePlacement === \"first\" || forcePlacement !== \"last\" && treeIndex.index === 0;\n var isLast = forcePlacement === \"last\" || forcePlacement !== \"first\" && treeIndex.index === treeIndex.maxIndex;\n var radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical);\n var groupProps = {\n ...forwardedProps,\n ...radiusStyles\n };\n if (context.disabled != null) {\n var _children_props_disabled;\n groupProps.disabled = (_children_props_disabled = children.props.disabled) !== null && _children_props_disabled !== void 0 ? _children_props_disabled : context.disabled;\n }\n var mergedProps = mergeSlotStyleProps(groupProps, children.props);\n return /* @__PURE__ */ React.cloneElement(children, mergedProps);\n}\nvar useGroupItem = function(childrenProps, forcePlacement, __scopeGroup) {\n var treeIndex = useIndex();\n var context = useGroupContext(\"GroupItem\", __scopeGroup);\n if (!treeIndex) {\n throw Error(\"useGroupItem should only be used within a <Group/>\");\n }\n var isFirst = forcePlacement === \"first\" || forcePlacement !== \"last\" && treeIndex.index === 0;\n var isLast = forcePlacement === \"last\" || forcePlacement !== \"first\" && treeIndex.index === treeIndex.maxIndex;\n var radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical);\n var _childrenProps_disabled;\n return {\n disabled: (_childrenProps_disabled = childrenProps.disabled) !== null && _childrenProps_disabled !== void 0 ? _childrenProps_disabled : context.disabled,\n ...radiusStyles\n };\n};\nvar Group = createGroup(true);\nvar YGroup = Group;\nvar XGroup = createGroup(false);\nfunction getZeroedRadius(isFirst, isLast, vertical) {\n if (vertical) {\n return {\n ...isFirst ? null : {\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0\n },\n ...isLast ? null : {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n };\n }\n return {\n ...isFirst ? null : {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n },\n ...isLast ? null : {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n }\n };\n}\nexport {\n Group,\n GroupFrame,\n XGroup,\n YGroup,\n createGroupScope,\n useGroupItem\n};\n//# sourceMappingURL=Group.js.map\n"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./Group.mjs"
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export * from "./Group.mjs"
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./Group.mjs"
|
|
2
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
export * from "./Group.mjs"
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./Group.native.js"
|
|
2
|
-
//# sourceMappingURL=index.native.js.map
|
|
1
|
+
export * from "./Group.native.js"
|
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
|
|
3
4
|
const MaxIndexContext = React.createContext([]);
|
|
4
5
|
const IndexContext = React.createContext(null);
|
|
5
6
|
function useIndex() {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
const maxIndexPath = React.useContext(MaxIndexContext);
|
|
8
|
+
const indexPathString = React.useContext(IndexContext);
|
|
9
|
+
return React.useMemo(() => {
|
|
10
|
+
if (indexPathString === null) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const indexPath = parseIndexPath(indexPathString);
|
|
14
|
+
const maxIndex = maxIndexPath[maxIndexPath.length - 1];
|
|
15
|
+
const index = indexPath[indexPath.length - 1];
|
|
16
|
+
return {
|
|
17
|
+
maxIndex,
|
|
18
|
+
maxIndexPath,
|
|
19
|
+
index,
|
|
20
|
+
indexPath,
|
|
21
|
+
indexPathString,
|
|
22
|
+
isFirst: index === 0,
|
|
23
|
+
isLast: index === maxIndex,
|
|
24
|
+
isEven: index % 2 === 0,
|
|
25
|
+
isOdd: Math.abs(index % 2) === 1
|
|
26
|
+
};
|
|
27
|
+
}, [maxIndexPath, indexPathString]);
|
|
27
28
|
}
|
|
28
29
|
function useIndexedChildren(children) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
const parentMaxIndexPath = React.useContext(MaxIndexContext);
|
|
31
|
+
const indexPathString = React.useContext(IndexContext);
|
|
32
|
+
const childrenCount = React.Children.count(children);
|
|
33
|
+
const maxIndexPath = React.useMemo(() => parentMaxIndexPath.concat(childrenCount - 1), [childrenCount]);
|
|
34
|
+
return /* @__PURE__ */ jsx(MaxIndexContext.Provider, {
|
|
35
|
+
value: maxIndexPath,
|
|
36
|
+
children: React.Children.map(children, (child, index) => React.isValidElement(child) ? /* @__PURE__ */ jsx(IndexContext.Provider, {
|
|
37
|
+
value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),
|
|
38
|
+
children: child
|
|
39
|
+
}, child.key) : child)
|
|
40
|
+
});
|
|
40
41
|
}
|
|
41
42
|
function parseIndexPath(indexPathString) {
|
|
42
|
-
|
|
43
|
+
return indexPathString.split(".").map((index) => Number.parseInt(index, 10));
|
|
43
44
|
}
|
|
45
|
+
|
|
44
46
|
export { useIndex, useIndexedChildren };
|
|
45
47
|
//# sourceMappingURL=useIndexedChildren.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useIndexedChildren.js","names":[],"sources":["esm/useIndexedChildren.js"],"sourcesContent":["import * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst MaxIndexContext = React.createContext([]);\nconst IndexContext = React.createContext(null);\nfunction useIndex() {\n const maxIndexPath = React.useContext(MaxIndexContext);\n const indexPathString = React.useContext(IndexContext);\n return React.useMemo(() => {\n if (indexPathString === null) {\n return null;\n }\n const indexPath = parseIndexPath(indexPathString);\n const maxIndex = maxIndexPath[maxIndexPath.length - 1];\n const index = indexPath[indexPath.length - 1];\n return {\n maxIndex,\n maxIndexPath,\n index,\n indexPath,\n indexPathString,\n isFirst: index === 0,\n isLast: index === maxIndex,\n isEven: index % 2 === 0,\n isOdd: Math.abs(index % 2) === 1\n };\n }, [maxIndexPath, indexPathString]);\n}\nfunction useIndexedChildren(children) {\n const parentMaxIndexPath = React.useContext(MaxIndexContext);\n const indexPathString = React.useContext(IndexContext);\n const childrenCount = React.Children.count(children);\n const maxIndexPath = React.useMemo(\n () => parentMaxIndexPath.concat(childrenCount - 1),\n [childrenCount]\n );\n return /* @__PURE__ */ jsx(MaxIndexContext.Provider, { value: maxIndexPath, children: React.Children.map(\n children,\n (child, index) => React.isValidElement(child) ? /* @__PURE__ */ jsx(\n IndexContext.Provider,\n {\n value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),\n children: child\n },\n child.key\n ) : child\n ) });\n}\nfunction parseIndexPath(indexPathString) {\n return indexPathString.split(\".\").map((index) => Number.parseInt(index, 10));\n}\nexport {\n useIndex,\n useIndexedChildren\n};\n//# sourceMappingURL=useIndexedChildren.js.map\n"],"mappings":";;;;AAEA,MAAM,kBAAkB,MAAM,cAAc,CAAC,CAAC;AAC9C,MAAM,eAAe,MAAM,cAAc,IAAI;AAC7C,SAAS,WAAW;CAClB,MAAM,eAAe,MAAM,WAAW,eAAe;CACrD,MAAM,kBAAkB,MAAM,WAAW,YAAY;CACrD,OAAO,MAAM,cAAc;EACzB,IAAI,oBAAoB,MAAM;GAC5B,OAAO;EACT;EACA,MAAM,YAAY,eAAe,eAAe;EAChD,MAAM,WAAW,aAAa,aAAa,SAAS;EACpD,MAAM,QAAQ,UAAU,UAAU,SAAS;EAC3C,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,QAAQ,QAAQ,MAAM;GACtB,OAAO,KAAK,IAAI,QAAQ,CAAC,MAAM;EACjC;CACF,GAAG,CAAC,cAAc,eAAe,CAAC;AACpC;AACA,SAAS,mBAAmB,UAAU;CACpC,MAAM,qBAAqB,MAAM,WAAW,eAAe;CAC3D,MAAM,kBAAkB,MAAM,WAAW,YAAY;CACrD,MAAM,gBAAgB,MAAM,SAAS,MAAM,QAAQ;CACnD,MAAM,eAAe,MAAM,cACnB,mBAAmB,OAAO,gBAAgB,CAAC,GACjD,CAAC,aAAa,CAChB;CACA,OAAuB,oBAAI,gBAAgB,UAAU;EAAE,OAAO;EAAc,UAAU,MAAM,SAAS,IACnG,WACC,OAAO,UAAU,MAAM,eAAe,KAAK,IAAoB,oBAC9D,aAAa,UACb;GACE,OAAO,kBAAkB,GAAG,gBAAgB,GAAG,MAAM,SAAS,MAAM,MAAM,SAAS;GACnF,UAAU;EACZ,GACA,MAAM,GACR,IAAI,KACN;CAAE,CAAC;AACL;AACA,SAAS,eAAe,iBAAiB;CACvC,OAAO,gBAAgB,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,OAAO,SAAS,OAAO,EAAE,CAAC;AAC7E"}
|
|
@@ -1,51 +1,53 @@
|
|
|
1
|
-
import { jsx
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
|
|
4
|
-
var
|
|
3
|
+
|
|
4
|
+
var MaxIndexContext = /* @__PURE__ */ React.createContext([]);
|
|
5
|
+
var IndexContext = /* @__PURE__ */ React.createContext(null);
|
|
5
6
|
function useIndex() {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
var maxIndexPath = React.useContext(MaxIndexContext);
|
|
8
|
+
var indexPathString = React.useContext(IndexContext);
|
|
9
|
+
return React.useMemo(function() {
|
|
10
|
+
if (indexPathString === null) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
var indexPath = parseIndexPath(indexPathString);
|
|
14
|
+
var maxIndex = maxIndexPath[maxIndexPath.length - 1];
|
|
15
|
+
var index = indexPath[indexPath.length - 1];
|
|
16
|
+
return {
|
|
17
|
+
maxIndex,
|
|
18
|
+
maxIndexPath,
|
|
19
|
+
index,
|
|
20
|
+
indexPath,
|
|
21
|
+
indexPathString,
|
|
22
|
+
isFirst: index === 0,
|
|
23
|
+
isLast: index === maxIndex,
|
|
24
|
+
isEven: index % 2 === 0,
|
|
25
|
+
isOdd: Math.abs(index % 2) === 1
|
|
26
|
+
};
|
|
27
|
+
}, [maxIndexPath, indexPathString]);
|
|
27
28
|
}
|
|
28
29
|
function useIndexedChildren(children) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
var parentMaxIndexPath = React.useContext(MaxIndexContext);
|
|
31
|
+
var indexPathString = React.useContext(IndexContext);
|
|
32
|
+
var childrenCount = React.Children.count(children);
|
|
33
|
+
var maxIndexPath = React.useMemo(function() {
|
|
34
|
+
return parentMaxIndexPath.concat(childrenCount - 1);
|
|
35
|
+
}, [childrenCount]);
|
|
36
|
+
return /* @__PURE__ */ jsx(MaxIndexContext.Provider, {
|
|
37
|
+
value: maxIndexPath,
|
|
38
|
+
children: React.Children.map(children, function(child, index) {
|
|
39
|
+
return /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ jsx(IndexContext.Provider, {
|
|
40
|
+
value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),
|
|
41
|
+
children: child
|
|
42
|
+
}, child.key) : child;
|
|
43
|
+
})
|
|
44
|
+
});
|
|
44
45
|
}
|
|
45
46
|
function parseIndexPath(indexPathString) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
return indexPathString.split(".").map(function(index) {
|
|
48
|
+
return Number.parseInt(index, 10);
|
|
49
|
+
});
|
|
49
50
|
}
|
|
51
|
+
|
|
50
52
|
export { useIndex, useIndexedChildren };
|
|
51
53
|
//# sourceMappingURL=useIndexedChildren.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useIndexedChildren.native.js","names":[],"sources":["esm/useIndexedChildren.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nvar MaxIndexContext = /* @__PURE__ */ React.createContext([]);\nvar IndexContext = /* @__PURE__ */ React.createContext(null);\nfunction useIndex() {\n var maxIndexPath = React.useContext(MaxIndexContext);\n var indexPathString = React.useContext(IndexContext);\n return React.useMemo(function() {\n if (indexPathString === null) {\n return null;\n }\n var indexPath = parseIndexPath(indexPathString);\n var maxIndex = maxIndexPath[maxIndexPath.length - 1];\n var index = indexPath[indexPath.length - 1];\n return {\n maxIndex,\n maxIndexPath,\n index,\n indexPath,\n indexPathString,\n isFirst: index === 0,\n isLast: index === maxIndex,\n isEven: index % 2 === 0,\n isOdd: Math.abs(index % 2) === 1\n };\n }, [\n maxIndexPath,\n indexPathString\n ]);\n}\nfunction useIndexedChildren(children) {\n var parentMaxIndexPath = React.useContext(MaxIndexContext);\n var indexPathString = React.useContext(IndexContext);\n var childrenCount = React.Children.count(children);\n var maxIndexPath = React.useMemo(function() {\n return parentMaxIndexPath.concat(childrenCount - 1);\n }, [\n childrenCount\n ]);\n return /* @__PURE__ */ _jsx(MaxIndexContext.Provider, {\n value: maxIndexPath,\n children: React.Children.map(children, function(child, index) {\n return /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ _jsx(IndexContext.Provider, {\n value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),\n children: child\n }, child.key) : child;\n })\n });\n}\nfunction parseIndexPath(indexPathString) {\n return indexPathString.split(\".\").map(function(index) {\n return Number.parseInt(index, 10);\n });\n}\nexport {\n useIndex,\n useIndexedChildren\n};\n//# sourceMappingURL=useIndexedChildren.js.map\n"],"mappings":";;;;AAEA,IAAI,kBAAkC,sBAAM,cAAc,CAAC,CAAC;AAC5D,IAAI,eAA+B,sBAAM,cAAc,IAAI;AAC3D,SAAS,WAAW;CAClB,IAAI,eAAe,MAAM,WAAW,eAAe;CACnD,IAAI,kBAAkB,MAAM,WAAW,YAAY;CACnD,OAAO,MAAM,QAAQ,WAAW;EAC9B,IAAI,oBAAoB,MAAM;GAC5B,OAAO;EACT;EACA,IAAI,YAAY,eAAe,eAAe;EAC9C,IAAI,WAAW,aAAa,aAAa,SAAS;EAClD,IAAI,QAAQ,UAAU,UAAU,SAAS;EACzC,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,QAAQ,QAAQ,MAAM;GACtB,OAAO,KAAK,IAAI,QAAQ,CAAC,MAAM;EACjC;CACF,GAAG,CACD,cACA,eACF,CAAC;AACH;AACA,SAAS,mBAAmB,UAAU;CACpC,IAAI,qBAAqB,MAAM,WAAW,eAAe;CACzD,IAAI,kBAAkB,MAAM,WAAW,YAAY;CACnD,IAAI,gBAAgB,MAAM,SAAS,MAAM,QAAQ;CACjD,IAAI,eAAe,MAAM,QAAQ,WAAW;EAC1C,OAAO,mBAAmB,OAAO,gBAAgB,CAAC;CACpD,GAAG,CACD,aACF,CAAC;CACD,OAAuB,oBAAK,gBAAgB,UAAU;EACpD,OAAO;EACP,UAAU,MAAM,SAAS,IAAI,UAAU,SAAS,OAAO,OAAO;GAC5D,OAAuB,sBAAM,eAAe,KAAK,IAAoB,oBAAK,aAAa,UAAU;IAC/F,OAAO,kBAAkB,GAAG,gBAAgB,GAAG,MAAM,SAAS,MAAM,MAAM,SAAS;IACnF,UAAU;GACZ,GAAG,MAAM,GAAG,IAAI;EAClB,CAAC;CACH,CAAC;AACH;AACA,SAAS,eAAe,iBAAiB;CACvC,OAAO,gBAAgB,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,OAAO;EACpD,OAAO,OAAO,SAAS,OAAO,EAAE;CAClC,CAAC;AACH"}
|