@tamagui/group 1.113.1 → 1.113.2
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/esm/Group.native.js +116 -176
- package/dist/esm/Group.native.js.map +6 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +6 -1
- package/dist/esm/useIndexedChildren.native.js +24 -22
- package/dist/esm/useIndexedChildren.native.js.map +6 -1
- package/package.json +7 -7
package/dist/esm/Group.native.js
CHANGED
|
@@ -6,100 +6,61 @@ import { ThemeableStack } from "@tamagui/stacks";
|
|
|
6
6
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
7
7
|
import React from "react";
|
|
8
8
|
import { ScrollView } from "react-native";
|
|
9
|
-
import { useIndex, useIndexedChildren } from "./useIndexedChildren
|
|
10
|
-
var GROUP_NAME = "Group",
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
unstyled: {
|
|
17
|
-
false: {
|
|
18
|
-
size: "$true"
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
size: function (val, param) {
|
|
22
|
-
var {
|
|
23
|
-
tokens
|
|
24
|
-
} = param,
|
|
25
|
-
_tokens_radius_val,
|
|
26
|
-
_ref,
|
|
27
|
-
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;
|
|
28
|
-
return {
|
|
29
|
-
borderRadius
|
|
30
|
-
};
|
|
9
|
+
import { useIndex, useIndexedChildren } from "./useIndexedChildren";
|
|
10
|
+
var GROUP_NAME = "Group", [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME), [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME), GroupFrame = styled(ThemeableStack, {
|
|
11
|
+
name: "GroupFrame",
|
|
12
|
+
variants: {
|
|
13
|
+
unstyled: {
|
|
14
|
+
false: {
|
|
15
|
+
size: "$true"
|
|
31
16
|
}
|
|
32
17
|
},
|
|
33
|
-
|
|
34
|
-
|
|
18
|
+
size: function(val, param) {
|
|
19
|
+
var { tokens } = param, _tokens_radius_val, _ref, 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;
|
|
20
|
+
return {
|
|
21
|
+
borderRadius
|
|
22
|
+
};
|
|
35
23
|
}
|
|
36
|
-
}
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
27
|
+
}
|
|
28
|
+
});
|
|
37
29
|
function createGroup(verticalDefault) {
|
|
38
|
-
return withStaticProperties(GroupFrame.styleable(function
|
|
39
|
-
var activeProps = useProps(props),
|
|
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
|
-
isFirst,
|
|
73
|
-
isLast,
|
|
74
|
-
radius,
|
|
75
|
-
vertical,
|
|
76
|
-
disable: disablePassBorderRadius
|
|
77
|
-
}),
|
|
78
|
-
_$props = {
|
|
79
|
-
disabled,
|
|
80
|
-
...(isTamaguiElement(child) ? radiusStyles : {
|
|
81
|
-
style: radiusStyles
|
|
82
|
-
})
|
|
83
|
-
};
|
|
84
|
-
return cloneElementWithPropOrder(child, _$props);
|
|
85
|
-
}),
|
|
86
|
-
indexedChildren = useIndexedChildren(spacedChildren({
|
|
87
|
-
direction: spaceDirection,
|
|
88
|
-
separator,
|
|
89
|
-
space,
|
|
90
|
-
children
|
|
91
|
-
})),
|
|
92
|
-
onItemMount = React.useCallback(function () {
|
|
93
|
-
return setItemChildrenCount(function (prev) {
|
|
94
|
-
return prev + 1;
|
|
95
|
-
});
|
|
96
|
-
}, []),
|
|
97
|
-
onItemUnmount = React.useCallback(function () {
|
|
98
|
-
return setItemChildrenCount(function (prev) {
|
|
99
|
-
return prev - 1;
|
|
100
|
-
});
|
|
101
|
-
}, []);
|
|
102
|
-
return /* @__PURE__ */_jsx(GroupProvider, {
|
|
30
|
+
return withStaticProperties(GroupFrame.styleable(function(props, ref) {
|
|
31
|
+
var activeProps = useProps(props), { __scopeGroup, children: childrenProp, space, size = "$true", spaceDirection, separator, scrollable, axis = verticalDefault ? "vertical" : "horizontal", orientation = axis, disabled: disabledProp, disablePassBorderRadius: disablePassBorderRadiusProp, borderRadius, forceUseItem, ...restProps } = activeProps, vertical = orientation === "vertical", [itemChildrenCount, setItemChildrenCount] = useControllableState({
|
|
32
|
+
defaultProp: forceUseItem ? 1 : 0
|
|
33
|
+
}), isUsingItems = itemChildrenCount > 0, radius = borderRadius ?? (size ? getVariableValue(getTokens().radius[size]) - 1 : void 0), hasRadius = radius !== void 0, disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius, childrenArray = React.Children.toArray(childrenProp), children = isUsingItems ? React.Children.toArray(childrenProp).filter(React.isValidElement) : childrenArray.map(function(child, i) {
|
|
34
|
+
if (!/* @__PURE__ */ React.isValidElement(child) || child.type === React.Fragment)
|
|
35
|
+
return child;
|
|
36
|
+
var _child_props_disabled, disabled = (_child_props_disabled = child.props.disabled) !== null && _child_props_disabled !== void 0 ? _child_props_disabled : disabledProp, isFirst = i === 0, isLast = i === childrenArray.length - 1, radiusStyles = disablePassBorderRadius === !0 ? null : getBorderRadius({
|
|
37
|
+
isFirst,
|
|
38
|
+
isLast,
|
|
39
|
+
radius,
|
|
40
|
+
vertical,
|
|
41
|
+
disable: disablePassBorderRadius
|
|
42
|
+
}), _$props = {
|
|
43
|
+
disabled,
|
|
44
|
+
...isTamaguiElement(child) ? radiusStyles : {
|
|
45
|
+
style: radiusStyles
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return cloneElementWithPropOrder(child, _$props);
|
|
49
|
+
}), indexedChildren = useIndexedChildren(spacedChildren({
|
|
50
|
+
direction: spaceDirection,
|
|
51
|
+
separator,
|
|
52
|
+
space,
|
|
53
|
+
children
|
|
54
|
+
})), onItemMount = React.useCallback(function() {
|
|
55
|
+
return setItemChildrenCount(function(prev) {
|
|
56
|
+
return prev + 1;
|
|
57
|
+
});
|
|
58
|
+
}, []), onItemUnmount = React.useCallback(function() {
|
|
59
|
+
return setItemChildrenCount(function(prev) {
|
|
60
|
+
return prev - 1;
|
|
61
|
+
});
|
|
62
|
+
}, []);
|
|
63
|
+
return /* @__PURE__ */ _jsx(GroupProvider, {
|
|
103
64
|
disablePassBorderRadius,
|
|
104
65
|
vertical: orientation === "vertical",
|
|
105
66
|
// @ts-ignore this just popped up since new version expo 49
|
|
@@ -108,7 +69,7 @@ function createGroup(verticalDefault) {
|
|
|
108
69
|
onItemMount,
|
|
109
70
|
onItemUnmount,
|
|
110
71
|
scope: __scopeGroup,
|
|
111
|
-
children: /* @__PURE__ */_jsx(GroupFrame, {
|
|
72
|
+
children: /* @__PURE__ */ _jsx(GroupFrame, {
|
|
112
73
|
ref,
|
|
113
74
|
size,
|
|
114
75
|
flexDirection: orientation === "horizontal" ? "row" : "column",
|
|
@@ -124,94 +85,73 @@ function createGroup(verticalDefault) {
|
|
|
124
85
|
Item: GroupItem
|
|
125
86
|
});
|
|
126
87
|
}
|
|
127
|
-
var GroupItem = /* @__PURE__ */React.forwardRef(function
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
groupItemProps
|
|
135
|
-
disabled: /* @__PURE__ */React.isValidElement(children) ? children.props.disabled : void 0
|
|
136
|
-
}, forcePlacement, __scopeGroup);
|
|
137
|
-
return ! /* @__PURE__ */React.isValidElement(children) || children.type === React.Fragment ? children : isTamaguiElement(children) ? /* @__PURE__ */React.cloneElement(children, groupItemProps) : /* @__PURE__ */React.cloneElement(children, {
|
|
138
|
-
style: {
|
|
139
|
-
...((_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.style),
|
|
140
|
-
...groupItemProps
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}),
|
|
144
|
-
useGroupItem = function (childrenProps, forcePlacement, __scopeGroup) {
|
|
145
|
-
var treeIndex = useIndex(),
|
|
146
|
-
context = useGroupContext("GroupItem", __scopeGroup);
|
|
147
|
-
if (React.useEffect(function () {
|
|
148
|
-
return context.onItemMount(), function () {
|
|
149
|
-
context.onItemUnmount();
|
|
150
|
-
};
|
|
151
|
-
}, []), !treeIndex) throw Error("<Group.Item/> should only be used within a <Group/>");
|
|
152
|
-
var isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0,
|
|
153
|
-
isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex,
|
|
154
|
-
_childrenProps_disabled,
|
|
155
|
-
disabled = (_childrenProps_disabled = childrenProps.disabled) !== null && _childrenProps_disabled !== void 0 ? _childrenProps_disabled : context.disabled,
|
|
156
|
-
propsToPass = {
|
|
157
|
-
disabled
|
|
158
|
-
};
|
|
159
|
-
if (context.disablePassBorderRadius !== !0) {
|
|
160
|
-
var borderRadius = getBorderRadius({
|
|
161
|
-
radius: context.radius,
|
|
162
|
-
isFirst,
|
|
163
|
-
isLast,
|
|
164
|
-
vertical: context.vertical,
|
|
165
|
-
disable: context.disablePassBorderRadius
|
|
166
|
-
});
|
|
167
|
-
return {
|
|
168
|
-
...propsToPass,
|
|
169
|
-
...borderRadius
|
|
170
|
-
};
|
|
88
|
+
var GroupItem = /* @__PURE__ */ React.forwardRef(function(props, _ref) {
|
|
89
|
+
var _children_props, { __scopeGroup, children, forcePlacement } = props, groupItemProps = useGroupItem({
|
|
90
|
+
disabled: /* @__PURE__ */ React.isValidElement(children) ? children.props.disabled : void 0
|
|
91
|
+
}, forcePlacement, __scopeGroup);
|
|
92
|
+
return !/* @__PURE__ */ React.isValidElement(children) || children.type === React.Fragment ? children : isTamaguiElement(children) ? /* @__PURE__ */ React.cloneElement(children, groupItemProps) : /* @__PURE__ */ React.cloneElement(children, {
|
|
93
|
+
style: {
|
|
94
|
+
...(_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.style,
|
|
95
|
+
...groupItemProps
|
|
171
96
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
...(orientation === "horizontal" && {
|
|
188
|
-
horizontal: !0,
|
|
189
|
-
showsHorizontalScrollIndicator: showScrollIndicator
|
|
190
|
-
}),
|
|
191
|
-
children
|
|
192
|
-
}) : children;
|
|
193
|
-
},
|
|
194
|
-
getBorderRadius = function (param) {
|
|
195
|
-
var {
|
|
97
|
+
});
|
|
98
|
+
}), useGroupItem = function(childrenProps, forcePlacement, __scopeGroup) {
|
|
99
|
+
var treeIndex = useIndex(), context = useGroupContext("GroupItem", __scopeGroup);
|
|
100
|
+
if (React.useEffect(function() {
|
|
101
|
+
return context.onItemMount(), function() {
|
|
102
|
+
context.onItemUnmount();
|
|
103
|
+
};
|
|
104
|
+
}, []), !treeIndex)
|
|
105
|
+
throw Error("<Group.Item/> should only be used within a <Group/>");
|
|
106
|
+
var isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0, isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex, _childrenProps_disabled, disabled = (_childrenProps_disabled = childrenProps.disabled) !== null && _childrenProps_disabled !== void 0 ? _childrenProps_disabled : context.disabled, propsToPass = {
|
|
107
|
+
disabled
|
|
108
|
+
};
|
|
109
|
+
if (context.disablePassBorderRadius !== !0) {
|
|
110
|
+
var borderRadius = getBorderRadius({
|
|
111
|
+
radius: context.radius,
|
|
196
112
|
isFirst,
|
|
197
113
|
isLast,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
} = param;
|
|
114
|
+
vertical: context.vertical,
|
|
115
|
+
disable: context.disablePassBorderRadius
|
|
116
|
+
});
|
|
202
117
|
return {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
borderBottomLeftRadius: disable !== "bottom" && disable !== "start" && (vertical && isLast || !vertical && isFirst) ? radius : 0,
|
|
206
|
-
borderBottomRightRadius: isLast && disable !== "bottom" && disable !== "end" ? radius : 0
|
|
118
|
+
...propsToPass,
|
|
119
|
+
...borderRadius
|
|
207
120
|
};
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
121
|
+
}
|
|
122
|
+
return propsToPass;
|
|
123
|
+
}, Group = createGroup(!0), YGroup = Group, XGroup = createGroup(!1), wrapScroll = function(param, children) {
|
|
124
|
+
var { scrollable, orientation, showScrollIndicator = !1 } = param;
|
|
125
|
+
return scrollable ? /* @__PURE__ */ _jsx(ScrollView, {
|
|
126
|
+
...orientation === "vertical" && {
|
|
127
|
+
showsVerticalScrollIndicator: showScrollIndicator
|
|
128
|
+
},
|
|
129
|
+
...orientation === "horizontal" && {
|
|
130
|
+
horizontal: !0,
|
|
131
|
+
showsHorizontalScrollIndicator: showScrollIndicator
|
|
132
|
+
},
|
|
133
|
+
children
|
|
134
|
+
}) : children;
|
|
135
|
+
}, getBorderRadius = function(param) {
|
|
136
|
+
var { isFirst, isLast, radius, vertical, disable } = param;
|
|
137
|
+
return {
|
|
138
|
+
borderTopLeftRadius: isFirst && disable !== "top" && disable !== "start" ? radius : 0,
|
|
139
|
+
borderTopRightRadius: disable !== "top" && disable !== "end" && (vertical && isFirst || !vertical && isLast) ? radius : 0,
|
|
140
|
+
borderBottomLeftRadius: disable !== "bottom" && disable !== "start" && (vertical && isLast || !vertical && isFirst) ? radius : 0,
|
|
141
|
+
borderBottomRightRadius: isLast && disable !== "bottom" && disable !== "end" ? radius : 0
|
|
215
142
|
};
|
|
216
|
-
|
|
217
|
-
|
|
143
|
+
}, cloneElementWithPropOrder = function(child, props) {
|
|
144
|
+
var next = mergeProps(child.props, props, getConfig().shorthands);
|
|
145
|
+
return /* @__PURE__ */ React.cloneElement({
|
|
146
|
+
...child,
|
|
147
|
+
props: null
|
|
148
|
+
}, next);
|
|
149
|
+
};
|
|
150
|
+
export {
|
|
151
|
+
Group,
|
|
152
|
+
GroupFrame,
|
|
153
|
+
XGroup,
|
|
154
|
+
YGroup,
|
|
155
|
+
useGroupItem
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=Group.js.map
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Users/n8/tamagui/code/ui/group/src/Group.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["getConfig", "getTokens", "getVariableValue", "isTamaguiElement", "mergeProps", "spacedChildren", "styled", "useProps", "createContextScope", "withStaticProperties", "ThemeableStack", "useControllableState", "React", "ScrollView", "useIndex", "useIndexedChildren", "GROUP_NAME", "createGroupContext", "createGroupScope", "GroupProvider", "useGroupContext", "GroupFrame", "name", "variants", "unstyled", "false", "size", "val", "tokens", "borderRadius", "radius", "defaultVariants", "process", "env", "TAMAGUI_HEADLESS", "createGroup", "verticalDefault", "styleable", "props", "ref", "activeProps", "__scopeGroup", "children", "childrenProp", "space", "spaceDirection", "separator", "scrollable", "axis", "orientation", "disabled", "disabledProp", "disablePassBorderRadius", "disablePassBorderRadiusProp", "forceUseItem", "restProps", "vertical", "itemChildrenCount", "setItemChildrenCount", "defaultProp", "isUsingItems", "undefined", "hasRadius", "childrenArray", "Children", "toArray", "filter", "isValidElement", "map", "child", "i", "type", "Fragment", "isFirst", "isLast", "length", "radiusStyles", "getBorderRadius", "disable", "style", "cloneElementWithPropOrder", "indexedChildren", "direction", "onItemMount", "useCallback", "prev", "onItemUnmount", "scope", "flexDirection", "wrapScroll", "Item", "GroupItem", "forwardRef", "_ref", "forcePlacement", "groupItemProps", "useGroupItem", "cloneElement", "childrenProps", "treeIndex", "context", "useEffect", "Error", "index", "maxIndex", "propsToPass", "Group", "YGroup", "XGroup", "showScrollIndicator", "showsVerticalScrollIndicator", "horizontal", "showsHorizontalScrollIndicator", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "next", "shorthands"]
|
|
6
|
+
}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./Group
|
|
2
|
-
//# sourceMappingURL=index.
|
|
1
|
+
export * from "./Group";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
var MaxIndexContext = /* @__PURE__ */React.createContext([]),
|
|
4
|
-
IndexContext = /* @__PURE__ */React.createContext(null);
|
|
3
|
+
var MaxIndexContext = /* @__PURE__ */ React.createContext([]), IndexContext = /* @__PURE__ */ React.createContext(null);
|
|
5
4
|
function useIndex() {
|
|
6
|
-
var maxIndexPath = React.useContext(MaxIndexContext),
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var indexPath = parseIndexPath(indexPathString),
|
|
11
|
-
maxIndex = maxIndexPath[maxIndexPath.length - 1],
|
|
12
|
-
index = indexPath[indexPath.length - 1];
|
|
5
|
+
var maxIndexPath = React.useContext(MaxIndexContext), indexPathString = React.useContext(IndexContext);
|
|
6
|
+
return React.useMemo(function() {
|
|
7
|
+
if (indexPathString === null)
|
|
8
|
+
return null;
|
|
9
|
+
var indexPath = parseIndexPath(indexPathString), maxIndex = maxIndexPath[maxIndexPath.length - 1], index = indexPath[indexPath.length - 1];
|
|
13
10
|
return {
|
|
14
11
|
maxIndex,
|
|
15
12
|
maxIndexPath,
|
|
@@ -21,19 +18,21 @@ function useIndex() {
|
|
|
21
18
|
isEven: index % 2 === 0,
|
|
22
19
|
isOdd: Math.abs(index % 2) === 1
|
|
23
20
|
};
|
|
24
|
-
}, [
|
|
21
|
+
}, [
|
|
22
|
+
maxIndexPath,
|
|
23
|
+
indexPathString
|
|
24
|
+
]);
|
|
25
25
|
}
|
|
26
26
|
function useIndexedChildren(children) {
|
|
27
|
-
var parentMaxIndexPath = React.useContext(MaxIndexContext),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return /* @__PURE__ */_jsx(MaxIndexContext.Provider, {
|
|
27
|
+
var parentMaxIndexPath = React.useContext(MaxIndexContext), indexPathString = React.useContext(IndexContext), childrenCount = React.Children.count(children), maxIndexPath = React.useMemo(function() {
|
|
28
|
+
return parentMaxIndexPath.concat(childrenCount - 1);
|
|
29
|
+
}, [
|
|
30
|
+
childrenCount
|
|
31
|
+
]);
|
|
32
|
+
return /* @__PURE__ */ _jsx(MaxIndexContext.Provider, {
|
|
34
33
|
value: maxIndexPath,
|
|
35
|
-
children: React.Children.map(children, function
|
|
36
|
-
return /* @__PURE__ */React.isValidElement(child) ? /* @__PURE__ */_jsx(IndexContext.Provider, {
|
|
34
|
+
children: React.Children.map(children, function(child, index) {
|
|
35
|
+
return /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ _jsx(IndexContext.Provider, {
|
|
37
36
|
value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),
|
|
38
37
|
children: child
|
|
39
38
|
}, child.key) : child;
|
|
@@ -41,9 +40,12 @@ function useIndexedChildren(children) {
|
|
|
41
40
|
});
|
|
42
41
|
}
|
|
43
42
|
function parseIndexPath(indexPathString) {
|
|
44
|
-
return indexPathString.split(".").map(function
|
|
43
|
+
return indexPathString.split(".").map(function(index) {
|
|
45
44
|
return Number.parseInt(index, 10);
|
|
46
45
|
});
|
|
47
46
|
}
|
|
48
|
-
export {
|
|
49
|
-
|
|
47
|
+
export {
|
|
48
|
+
useIndex,
|
|
49
|
+
useIndexedChildren
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=useIndexedChildren.js.map
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Users/n8/tamagui/code/ui/group/src/useIndexedChildren.tsx"],
|
|
4
|
+
"mappings": "AAuBC,SAAA,OAAA,YAAA;AAED,YAAYA,WAAW;AAEvB,IAAMC,kBAAkBD,sBAAME,cAAwB,CAAA,CAAE,GAClDC,eAAeH,sBAAME,cAA6B,IAAA;AAGjD,SAASE,WAAAA;AACd,MAAMC,eAAeL,MAAMM,WAAWL,eAAAA,GAChCM,kBAAkBP,MAAMM,WAAWH,YAAAA;AAEzC,SAAOH,MAAMQ,QAAQ,WAAA;AACnB,QAAID,oBAAoB;AACtB,aAAO;AAGT,QAAME,YAAYC,eAAeH,eAAAA,GAC3BI,WAAWN,aAAaA,aAAaO,SAAS,CAAA,GAC9CC,QAAQJ,UAAUA,UAAUG,SAAS,CAAA;AAE3C,WAAO;MACLD;MACAN;MACAQ;MACAJ;MACAF;MACAO,SAASD,UAAU;MACnBE,QAAQF,UAAUF;MAClBK,QAAQH,QAAQ,MAAM;MACtBI,OAAOC,KAAKC,IAAIN,QAAQ,CAAA,MAAO;IACjC;EACF,GAAG;IAACR;IAAcE;GAAgB;AACpC;AAGO,SAASa,mBAAmBC,UAAyB;AAC1D,MAAMC,qBAAqBtB,MAAMM,WAAWL,eAAAA,GACtCM,kBAAkBP,MAAMM,WAAWH,YAAAA,GACnCoB,gBAAgBvB,MAAMwB,SAASC,MAAMJ,QAAAA,GACrChB,eAAeL,MAAMQ,QACzB,WAAA;WAAMc,mBAAmBI,OAAOH,gBAAgB,CAAA;KAChD;IAACA;GAAc;AAGjB,SACE,qBAACtB,gBAAgB0B,UAAQ;IAACC,OAAOvB;cAC9BL,MAAMwB,SAASK,IAAIR,UAAU,SAACS,OAAOjB,OAAAA;aACpCb,sBAAM+B,eAAeD,KAAAA,IACnB,qBAAC3B,aAAawB,UAAQ;QAEpBC,OACErB,kBACI,GAAGA,eAAAA,IAAmBM,MAAMmB,SAAQ,CAAA,KACpCnB,MAAMmB,SAAQ;kBAGnBF;SAPIA,MAAMG,GAAG,IAUhBH;;;AAKV;AAQA,SAASpB,eAAeH,iBAAuB;AAC7C,SAAOA,gBAAgB2B,MAAM,GAAA,EAAKL,IAAI,SAAChB,OAAAA;WAAUsB,OAAOC,SAASvB,OAAO,EAAA;;AAC1E;",
|
|
5
|
+
"names": ["React", "MaxIndexContext", "createContext", "IndexContext", "useIndex", "maxIndexPath", "useContext", "indexPathString", "useMemo", "indexPath", "parseIndexPath", "maxIndex", "length", "index", "isFirst", "isLast", "isEven", "isOdd", "Math", "abs", "useIndexedChildren", "children", "parentMaxIndexPath", "childrenCount", "Children", "count", "concat", "Provider", "value", "map", "child", "isValidElement", "toString", "key", "split", "Number", "parseInt"]
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/group",
|
|
3
|
-
"version": "1.113.
|
|
3
|
+
"version": "1.113.2",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@tamagui/core": "1.113.
|
|
37
|
-
"@tamagui/create-context": "1.113.
|
|
38
|
-
"@tamagui/helpers": "1.113.
|
|
39
|
-
"@tamagui/stacks": "1.113.
|
|
40
|
-
"@tamagui/use-controllable-state": "1.113.
|
|
36
|
+
"@tamagui/core": "1.113.2",
|
|
37
|
+
"@tamagui/create-context": "1.113.2",
|
|
38
|
+
"@tamagui/helpers": "1.113.2",
|
|
39
|
+
"@tamagui/stacks": "1.113.2",
|
|
40
|
+
"@tamagui/use-controllable-state": "1.113.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@tamagui/build": "1.113.
|
|
43
|
+
"@tamagui/build": "1.113.2",
|
|
44
44
|
"react": "^18.2.0 || ^19.0.0"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|