@tamagui/group 2.0.0-rc.8 → 2.0.0

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.
Files changed (45) hide show
  1. package/dist/cjs/Group.cjs +112 -96
  2. package/dist/cjs/Group.native.js +111 -101
  3. package/dist/cjs/Group.native.js.map +1 -1
  4. package/dist/cjs/index.cjs +7 -5
  5. package/dist/cjs/index.native.js +7 -5
  6. package/dist/cjs/index.native.js.map +1 -1
  7. package/dist/cjs/useIndexedChildren.cjs +40 -36
  8. package/dist/cjs/useIndexedChildren.native.js +42 -38
  9. package/dist/cjs/useIndexedChildren.native.js.map +1 -1
  10. package/dist/esm/Group.mjs +81 -67
  11. package/dist/esm/Group.mjs.map +1 -1
  12. package/dist/esm/Group.native.js +80 -72
  13. package/dist/esm/Group.native.js.map +1 -1
  14. package/dist/esm/index.js +1 -1
  15. package/dist/esm/index.js.map +1 -6
  16. package/dist/esm/useIndexedChildren.mjs +14 -12
  17. package/dist/esm/useIndexedChildren.mjs.map +1 -1
  18. package/dist/esm/useIndexedChildren.native.js +16 -14
  19. package/dist/esm/useIndexedChildren.native.js.map +1 -1
  20. package/dist/jsx/Group.mjs +81 -67
  21. package/dist/jsx/Group.mjs.map +1 -1
  22. package/dist/jsx/Group.native.js +111 -101
  23. package/dist/jsx/Group.native.js.map +1 -1
  24. package/dist/jsx/index.js +1 -1
  25. package/dist/jsx/index.js.map +1 -6
  26. package/dist/jsx/index.native.js +7 -5
  27. package/dist/jsx/useIndexedChildren.mjs +14 -12
  28. package/dist/jsx/useIndexedChildren.mjs.map +1 -1
  29. package/dist/jsx/useIndexedChildren.native.js +42 -38
  30. package/dist/jsx/useIndexedChildren.native.js.map +1 -1
  31. package/package.json +13 -17
  32. package/dist/cjs/Group.js +0 -108
  33. package/dist/cjs/Group.js.map +0 -6
  34. package/dist/cjs/index.js +0 -15
  35. package/dist/cjs/index.js.map +0 -6
  36. package/dist/cjs/useIndexedChildren.js +0 -70
  37. package/dist/cjs/useIndexedChildren.js.map +0 -6
  38. package/dist/esm/Group.js +0 -90
  39. package/dist/esm/Group.js.map +0 -6
  40. package/dist/esm/useIndexedChildren.js +0 -47
  41. package/dist/esm/useIndexedChildren.js.map +0 -6
  42. package/dist/jsx/Group.js +0 -90
  43. package/dist/jsx/Group.js.map +0 -6
  44. package/dist/jsx/useIndexedChildren.js +0 -47
  45. package/dist/jsx/useIndexedChildren.js.map +0 -6
package/dist/esm/Group.js DELETED
@@ -1,90 +0,0 @@
1
- import { mergeSlotStyleProps, styled } from "@tamagui/core";
2
- import { createContextScope } from "@tamagui/create-context";
3
- import { withStaticProperties } from "@tamagui/helpers";
4
- import { YStack } from "@tamagui/stacks";
5
- import React from "react";
6
- import { useIndex, useIndexedChildren } from "./useIndexedChildren";
7
- import { jsx } from "react/jsx-runtime";
8
- const GROUP_NAME = "Group", [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME), [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME), GroupFrame = styled(YStack, {
9
- name: "GroupFrame",
10
- variants: {
11
- unstyled: {
12
- false: {
13
- size: "$true"
14
- }
15
- },
16
- size: (val, { tokens }) => ({
17
- borderRadius: tokens.radius[val] ?? val ?? tokens.radius.$true
18
- })
19
- },
20
- defaultVariants: {
21
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
22
- }
23
- });
24
- function createGroup(verticalDefault) {
25
- return withStaticProperties(
26
- GroupFrame.styleable((props, ref) => {
27
- const {
28
- __scopeGroup,
29
- children: childrenProp,
30
- orientation = verticalDefault ? "vertical" : "horizontal",
31
- disabled,
32
- ...restProps
33
- } = props, vertical = orientation === "vertical", indexedChildren = useIndexedChildren(React.Children.toArray(childrenProp));
34
- return /* @__PURE__ */ jsx(GroupProvider, { vertical, disabled, scope: __scopeGroup, children: /* @__PURE__ */ jsx(
35
- GroupFrame,
36
- {
37
- ref,
38
- flexDirection: vertical ? "column" : "row",
39
- ...restProps,
40
- children: indexedChildren
41
- }
42
- ) });
43
- }),
44
- {
45
- Item: GroupItem
46
- }
47
- );
48
- }
49
- function GroupItem(props) {
50
- const { __scopeGroup, children, forcePlacement, ...forwardedProps } = props, context = useGroupContext("GroupItem", __scopeGroup), treeIndex = useIndex();
51
- if (!treeIndex)
52
- throw Error("<Group.Item/> should only be used within a <Group/>");
53
- if (!React.isValidElement(children))
54
- return children;
55
- const isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0, isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex, radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical), groupProps = {
56
- ...forwardedProps,
57
- ...radiusStyles
58
- };
59
- context.disabled != null && (groupProps.disabled = children.props.disabled ?? context.disabled);
60
- const mergedProps = mergeSlotStyleProps(groupProps, children.props);
61
- return React.cloneElement(children, mergedProps);
62
- }
63
- const useGroupItem = (childrenProps, forcePlacement, __scopeGroup) => {
64
- const treeIndex = useIndex(), context = useGroupContext("GroupItem", __scopeGroup);
65
- if (!treeIndex)
66
- throw Error("useGroupItem should only be used within a <Group/>");
67
- const isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0, isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex, radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical);
68
- return {
69
- disabled: childrenProps.disabled ?? context.disabled,
70
- ...radiusStyles
71
- };
72
- }, Group = createGroup(!0), YGroup = Group, XGroup = createGroup(!1);
73
- function getZeroedRadius(isFirst, isLast, vertical) {
74
- return vertical ? {
75
- ...isFirst ? null : { borderTopLeftRadius: 0, borderTopRightRadius: 0 },
76
- ...isLast ? null : { borderBottomLeftRadius: 0, borderBottomRightRadius: 0 }
77
- } : {
78
- ...isFirst ? null : { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 },
79
- ...isLast ? null : { borderTopRightRadius: 0, borderBottomRightRadius: 0 }
80
- };
81
- }
82
- export {
83
- Group,
84
- GroupFrame,
85
- XGroup,
86
- YGroup,
87
- createGroupScope,
88
- useGroupItem
89
- };
90
- //# sourceMappingURL=Group.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/Group.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,47 +0,0 @@
1
- import * as React from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- const MaxIndexContext = React.createContext([]), IndexContext = React.createContext(null);
4
- function useIndex() {
5
- const maxIndexPath = React.useContext(MaxIndexContext), indexPathString = React.useContext(IndexContext);
6
- return React.useMemo(() => {
7
- if (indexPathString === null)
8
- return null;
9
- const indexPath = parseIndexPath(indexPathString), maxIndex = maxIndexPath[maxIndexPath.length - 1], index = indexPath[indexPath.length - 1];
10
- return {
11
- maxIndex,
12
- maxIndexPath,
13
- index,
14
- indexPath,
15
- indexPathString,
16
- isFirst: index === 0,
17
- isLast: index === maxIndex,
18
- isEven: index % 2 === 0,
19
- isOdd: Math.abs(index % 2) === 1
20
- };
21
- }, [maxIndexPath, indexPathString]);
22
- }
23
- function useIndexedChildren(children) {
24
- const parentMaxIndexPath = React.useContext(MaxIndexContext), indexPathString = React.useContext(IndexContext), childrenCount = React.Children.count(children), maxIndexPath = React.useMemo(
25
- () => parentMaxIndexPath.concat(childrenCount - 1),
26
- [childrenCount]
27
- );
28
- return /* @__PURE__ */ jsx(MaxIndexContext.Provider, { value: maxIndexPath, children: React.Children.map(
29
- children,
30
- (child, index) => React.isValidElement(child) ? /* @__PURE__ */ jsx(
31
- IndexContext.Provider,
32
- {
33
- value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),
34
- children: child
35
- },
36
- child.key
37
- ) : child
38
- ) });
39
- }
40
- function parseIndexPath(indexPathString) {
41
- return indexPathString.split(".").map((index) => Number.parseInt(index, 10));
42
- }
43
- export {
44
- useIndex,
45
- useIndexedChildren
46
- };
47
- //# sourceMappingURL=useIndexedChildren.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useIndexedChildren.tsx"],
4
- "mappings": "AAyBA,YAAY,WAAW;AA+Cb;AA7CV,MAAM,kBAAkB,MAAM,cAAwB,CAAC,CAAC,GAClD,eAAe,MAAM,cAA6B,IAAI;AAGrD,SAAS,WAAW;AACzB,QAAM,eAAe,MAAM,WAAW,eAAe,GAC/C,kBAAkB,MAAM,WAAW,YAAY;AAErD,SAAO,MAAM,QAAQ,MAAM;AACzB,QAAI,oBAAoB;AACtB,aAAO;AAGT,UAAM,YAAY,eAAe,eAAe,GAC1C,WAAW,aAAa,aAAa,SAAS,CAAC,GAC/C,QAAQ,UAAU,UAAU,SAAS,CAAC;AAE5C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,UAAU;AAAA,MACnB,QAAQ,UAAU;AAAA,MAClB,QAAQ,QAAQ,MAAM;AAAA,MACtB,OAAO,KAAK,IAAI,QAAQ,CAAC,MAAM;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,cAAc,eAAe,CAAC;AACpC;AAGO,SAAS,mBAAmB,UAA2B;AAC5D,QAAM,qBAAqB,MAAM,WAAW,eAAe,GACrD,kBAAkB,MAAM,WAAW,YAAY,GAC/C,gBAAgB,MAAM,SAAS,MAAM,QAAQ,GAC7C,eAAe,MAAM;AAAA,IACzB,MAAM,mBAAmB,OAAO,gBAAgB,CAAC;AAAA,IACjD,CAAC,aAAa;AAAA,EAChB;AAEA,SACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,cAC9B,gBAAM,SAAS;AAAA,IAAI;AAAA,IAAU,CAAC,OAAO,UACpC,MAAM,eAAe,KAAK,IACxB;AAAA,MAAC,aAAa;AAAA,MAAb;AAAA,QAEC,OACE,kBACI,GAAG,eAAe,IAAI,MAAM,SAAS,CAAC,KACtC,MAAM,SAAS;AAAA,QAGpB;AAAA;AAAA,MAPI,MAAM;AAAA,IAQb,IAEA;AAAA,EAEJ,GACF;AAEJ;AAQA,SAAS,eAAe,iBAAyB;AAC/C,SAAO,gBAAgB,MAAM,GAAG,EAAE,IAAI,CAAC,UAAU,OAAO,SAAS,OAAO,EAAE,CAAC;AAC7E;",
5
- "names": []
6
- }
package/dist/jsx/Group.js DELETED
@@ -1,90 +0,0 @@
1
- import { mergeSlotStyleProps, styled } from "@tamagui/core";
2
- import { createContextScope } from "@tamagui/create-context";
3
- import { withStaticProperties } from "@tamagui/helpers";
4
- import { YStack } from "@tamagui/stacks";
5
- import React from "react";
6
- import { useIndex, useIndexedChildren } from "./useIndexedChildren";
7
- import { jsx } from "react/jsx-runtime";
8
- const GROUP_NAME = "Group", [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME), [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME), GroupFrame = styled(YStack, {
9
- name: "GroupFrame",
10
- variants: {
11
- unstyled: {
12
- false: {
13
- size: "$true"
14
- }
15
- },
16
- size: (val, { tokens }) => ({
17
- borderRadius: tokens.radius[val] ?? val ?? tokens.radius.$true
18
- })
19
- },
20
- defaultVariants: {
21
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
22
- }
23
- });
24
- function createGroup(verticalDefault) {
25
- return withStaticProperties(
26
- GroupFrame.styleable((props, ref) => {
27
- const {
28
- __scopeGroup,
29
- children: childrenProp,
30
- orientation = verticalDefault ? "vertical" : "horizontal",
31
- disabled,
32
- ...restProps
33
- } = props, vertical = orientation === "vertical", indexedChildren = useIndexedChildren(React.Children.toArray(childrenProp));
34
- return /* @__PURE__ */ jsx(GroupProvider, { vertical, disabled, scope: __scopeGroup, children: /* @__PURE__ */ jsx(
35
- GroupFrame,
36
- {
37
- ref,
38
- flexDirection: vertical ? "column" : "row",
39
- ...restProps,
40
- children: indexedChildren
41
- }
42
- ) });
43
- }),
44
- {
45
- Item: GroupItem
46
- }
47
- );
48
- }
49
- function GroupItem(props) {
50
- const { __scopeGroup, children, forcePlacement, ...forwardedProps } = props, context = useGroupContext("GroupItem", __scopeGroup), treeIndex = useIndex();
51
- if (!treeIndex)
52
- throw Error("<Group.Item/> should only be used within a <Group/>");
53
- if (!React.isValidElement(children))
54
- return children;
55
- const isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0, isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex, radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical), groupProps = {
56
- ...forwardedProps,
57
- ...radiusStyles
58
- };
59
- context.disabled != null && (groupProps.disabled = children.props.disabled ?? context.disabled);
60
- const mergedProps = mergeSlotStyleProps(groupProps, children.props);
61
- return React.cloneElement(children, mergedProps);
62
- }
63
- const useGroupItem = (childrenProps, forcePlacement, __scopeGroup) => {
64
- const treeIndex = useIndex(), context = useGroupContext("GroupItem", __scopeGroup);
65
- if (!treeIndex)
66
- throw Error("useGroupItem should only be used within a <Group/>");
67
- const isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0, isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex, radiusStyles = getZeroedRadius(isFirst, isLast, context.vertical);
68
- return {
69
- disabled: childrenProps.disabled ?? context.disabled,
70
- ...radiusStyles
71
- };
72
- }, Group = createGroup(!0), YGroup = Group, XGroup = createGroup(!1);
73
- function getZeroedRadius(isFirst, isLast, vertical) {
74
- return vertical ? {
75
- ...isFirst ? null : { borderTopLeftRadius: 0, borderTopRightRadius: 0 },
76
- ...isLast ? null : { borderBottomLeftRadius: 0, borderBottomRightRadius: 0 }
77
- } : {
78
- ...isFirst ? null : { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 },
79
- ...isLast ? null : { borderTopRightRadius: 0, borderBottomRightRadius: 0 }
80
- };
81
- }
82
- export {
83
- Group,
84
- GroupFrame,
85
- XGroup,
86
- YGroup,
87
- createGroupScope,
88
- useGroupItem
89
- };
90
- //# sourceMappingURL=Group.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/Group.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,47 +0,0 @@
1
- import * as React from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- const MaxIndexContext = React.createContext([]), IndexContext = React.createContext(null);
4
- function useIndex() {
5
- const maxIndexPath = React.useContext(MaxIndexContext), indexPathString = React.useContext(IndexContext);
6
- return React.useMemo(() => {
7
- if (indexPathString === null)
8
- return null;
9
- const indexPath = parseIndexPath(indexPathString), maxIndex = maxIndexPath[maxIndexPath.length - 1], index = indexPath[indexPath.length - 1];
10
- return {
11
- maxIndex,
12
- maxIndexPath,
13
- index,
14
- indexPath,
15
- indexPathString,
16
- isFirst: index === 0,
17
- isLast: index === maxIndex,
18
- isEven: index % 2 === 0,
19
- isOdd: Math.abs(index % 2) === 1
20
- };
21
- }, [maxIndexPath, indexPathString]);
22
- }
23
- function useIndexedChildren(children) {
24
- const parentMaxIndexPath = React.useContext(MaxIndexContext), indexPathString = React.useContext(IndexContext), childrenCount = React.Children.count(children), maxIndexPath = React.useMemo(
25
- () => parentMaxIndexPath.concat(childrenCount - 1),
26
- [childrenCount]
27
- );
28
- return /* @__PURE__ */ jsx(MaxIndexContext.Provider, { value: maxIndexPath, children: React.Children.map(
29
- children,
30
- (child, index) => React.isValidElement(child) ? /* @__PURE__ */ jsx(
31
- IndexContext.Provider,
32
- {
33
- value: indexPathString ? `${indexPathString}.${index.toString()}` : index.toString(),
34
- children: child
35
- },
36
- child.key
37
- ) : child
38
- ) });
39
- }
40
- function parseIndexPath(indexPathString) {
41
- return indexPathString.split(".").map((index) => Number.parseInt(index, 10));
42
- }
43
- export {
44
- useIndex,
45
- useIndexedChildren
46
- };
47
- //# sourceMappingURL=useIndexedChildren.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useIndexedChildren.tsx"],
4
- "mappings": "AAyBA,YAAY,WAAW;AA+Cb;AA7CV,MAAM,kBAAkB,MAAM,cAAwB,CAAC,CAAC,GAClD,eAAe,MAAM,cAA6B,IAAI;AAGrD,SAAS,WAAW;AACzB,QAAM,eAAe,MAAM,WAAW,eAAe,GAC/C,kBAAkB,MAAM,WAAW,YAAY;AAErD,SAAO,MAAM,QAAQ,MAAM;AACzB,QAAI,oBAAoB;AACtB,aAAO;AAGT,UAAM,YAAY,eAAe,eAAe,GAC1C,WAAW,aAAa,aAAa,SAAS,CAAC,GAC/C,QAAQ,UAAU,UAAU,SAAS,CAAC;AAE5C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,UAAU;AAAA,MACnB,QAAQ,UAAU;AAAA,MAClB,QAAQ,QAAQ,MAAM;AAAA,MACtB,OAAO,KAAK,IAAI,QAAQ,CAAC,MAAM;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,cAAc,eAAe,CAAC;AACpC;AAGO,SAAS,mBAAmB,UAA2B;AAC5D,QAAM,qBAAqB,MAAM,WAAW,eAAe,GACrD,kBAAkB,MAAM,WAAW,YAAY,GAC/C,gBAAgB,MAAM,SAAS,MAAM,QAAQ,GAC7C,eAAe,MAAM;AAAA,IACzB,MAAM,mBAAmB,OAAO,gBAAgB,CAAC;AAAA,IACjD,CAAC,aAAa;AAAA,EAChB;AAEA,SACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,cAC9B,gBAAM,SAAS;AAAA,IAAI;AAAA,IAAU,CAAC,OAAO,UACpC,MAAM,eAAe,KAAK,IACxB;AAAA,MAAC,aAAa;AAAA,MAAb;AAAA,QAEC,OACE,kBACI,GAAG,eAAe,IAAI,MAAM,SAAS,CAAC,KACtC,MAAM,SAAS;AAAA,QAGpB;AAAA;AAAA,MAPI,MAAM;AAAA,IAQb,IAEA;AAAA,EAEJ,GACF;AAEJ;AAQA,SAAS,eAAe,iBAAyB;AAC/C,SAAO,gBAAgB,MAAM,GAAG,EAAE,IAAI,CAAC,UAAU,OAAO,SAAS,OAAO,EAAE,CAAC;AAC7E;",
5
- "names": []
6
- }