@tamagui/group 1.13.2 → 1.13.4

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.
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/Group.tsx"],
4
4
  "sourcesContent": ["import {\n GetProps,\n TamaguiElement,\n UnionableString,\n Variable,\n getConfig,\n getExpandedShorthands,\n getTokens,\n getVariableValue,\n isTamaguiElement,\n mergeProps,\n spacedChildren,\n styled,\n useMediaPropsActive,\n withStaticProperties,\n} from '@tamagui/core'\nimport { Scope, createContextScope } from '@tamagui/create-context'\nimport { ThemeableStack } from '@tamagui/stacks'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport React, { Children, forwardRef, isValidElement } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useIndex, useIndexedChildren } from 'reforest'\n\ntype DisablePassBorderRadius = boolean | 'bottom' | 'top' | 'start' | 'end'\n\ninterface GroupContextValue {\n vertical: boolean\n disablePassBorderRadius: DisablePassBorderRadius\n onItemMount: () => void\n onItemUnmount: () => void\n radius?: number | UnionableString | Variable<any>\n disabled?: boolean\n}\n\nconst GROUP_NAME = 'Group'\n\ntype ScopedProps<P> = P & { __scopeGroup?: Scope }\nconst [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME)\nconst [GroupProvider, useGroupContext] = createGroupContext<GroupContextValue>(GROUP_NAME)\n\nexport const GroupFrame = styled(ThemeableStack, {\n name: 'GroupFrame',\n\n variants: {\n unstyled: {\n false: {\n size: '$true',\n y: 0,\n backgroundColor: '$background',\n },\n },\n\n size: (val, { tokens }) => {\n const borderRadius = tokens.radius[val] ?? val ?? tokens.radius['$true']\n return {\n borderRadius,\n }\n },\n } as const,\n\n defaultVariants: {\n unstyled: false,\n },\n})\n\nexport type GroupProps = GetProps<typeof GroupFrame> & {\n /**\n * @deprecated use `orientation` instead\n */\n axis?: 'horizontal' | 'vertical'\n orientation?: 'horizontal' | 'vertical'\n scrollable?: boolean\n /**\n * @default false\n */\n showScrollIndicator?: boolean\n disabled?: boolean\n disablePassBorderRadius?: DisablePassBorderRadius\n /**\n * forces the group to use the Group.Item API\n */\n forceUseItem?: boolean\n}\n\nfunction createGroup(verticalDefault: boolean) {\n return withStaticProperties(\n forwardRef<TamaguiElement, ScopedProps<GroupProps>>((props, ref) => {\n const activeProps = useMediaPropsActive(props)\n\n const {\n __scopeGroup,\n children: childrenProp,\n space,\n size = '$true',\n spaceDirection,\n separator,\n scrollable,\n axis = verticalDefault ? 'vertical' : 'horizontal',\n orientation = axis,\n disabled: disabledProp,\n disablePassBorderRadius: disablePassBorderRadiusProp,\n borderRadius,\n forceUseItem,\n ...restProps\n } = getExpandedShorthands(activeProps)\n\n const vertical = orientation === 'vertical'\n const [itemChildrenCount, setItemChildrenCount] = useControllableState({\n defaultProp: forceUseItem ? 1 : 0,\n })\n const isUsingItems = true // itemChildrenCount > 0\n\n // 1 off given border to adjust for border radius? This should be user controllable\n const radius =\n borderRadius ??\n (size ? getVariableValue(getTokens().radius[size]) - 1 : undefined)\n\n const hasRadius = radius !== undefined\n const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius\n\n if (!isUsingItems) console.log('screw up!')\n const childrenArray = Children.toArray(childrenProp)\n const children = isUsingItems\n ? childrenProp\n : childrenArray.map((child, i) => {\n if (!isValidElement(child)) {\n return child\n }\n const disabled = child.props.disabled ?? disabledProp\n\n const isFirst = i === 0\n const isLast = i === childrenArray.length - 1\n\n const radiusStyles =\n disablePassBorderRadius === true\n ? null\n : getBorderRadius({\n isFirst,\n isLast,\n radius,\n vertical,\n disable: disablePassBorderRadius,\n })\n const props = {\n disabled,\n ...(isTamaguiElement(child) ? radiusStyles : { style: radiusStyles }),\n }\n\n return cloneElementWithPropOrder(child, props)\n })\n\n const indexedChildren = useIndexedChildren(\n spacedChildren({\n direction: spaceDirection,\n separator,\n space,\n children,\n })\n )\n\n const onItemMount = React.useCallback(\n () => setItemChildrenCount((prev) => prev + 1),\n []\n )\n const onItemUnmount = React.useCallback(\n () => setItemChildrenCount((prev) => prev - 1),\n []\n )\n\n return (\n <GroupProvider\n disablePassBorderRadius={disablePassBorderRadius}\n vertical={orientation === 'vertical'}\n radius={radius}\n disabled={disabledProp}\n onItemMount={onItemMount}\n onItemUnmount={onItemUnmount}\n scope={__scopeGroup}\n >\n <GroupFrame\n ref={ref}\n size={size}\n flexDirection={orientation === 'horizontal' ? 'row' : 'column'}\n borderRadius={borderRadius}\n {...restProps}\n >\n {wrapScroll({ ...activeProps, orientation }, indexedChildren)}\n </GroupFrame>\n </GroupProvider>\n )\n }),\n {\n Item: GroupItem,\n }\n )\n}\n\nconst GroupItem = (props: ScopedProps<{ children: React.ReactNode }>) => {\n const { __scopeGroup, children } = props\n const groupItemProps = useGroupItem(\n { disabled: isValidElement(children) ? children.props.disabled : undefined },\n __scopeGroup\n )\n\n if (!isValidElement(children)) {\n return children as any\n }\n\n if (isTamaguiElement(children)) {\n return React.cloneElement(children, groupItemProps)\n }\n\n return React.cloneElement(children, {\n style: {\n ...children.props?.['style'],\n ...groupItemProps,\n },\n } as any)\n}\n\nexport const useGroupItem = (\n childrenProps: { disabled: boolean },\n __scopeGroup?: Scope\n) => {\n const treeIndex = useIndex()\n const context = useGroupContext('GroupItem', __scopeGroup)\n\n React.useEffect(() => {\n context.onItemMount()\n return () => {\n context.onItemUnmount()\n }\n }, [])\n\n if (!treeIndex) {\n throw Error('<Group.Item/> should only be used within a <Group/>')\n }\n\n const isFirst = treeIndex.index === 0\n const isLast = treeIndex.index === treeIndex.maxIndex\n\n const disabled = childrenProps.disabled ?? context.disabled\n\n let propsToPass: Record<string, any> = {\n disabled,\n }\n\n if (context.disablePassBorderRadius !== true) {\n const borderRadius = getBorderRadius({\n radius: context.radius,\n isFirst,\n isLast,\n vertical: context.vertical,\n disable: context.disablePassBorderRadius,\n })\n return { ...propsToPass, ...borderRadius }\n }\n return propsToPass\n}\n\nexport const Group = createGroup(true)\nexport const YGroup = Group\nexport const XGroup = createGroup(false)\n\nconst wrapScroll = (\n { scrollable, orientation, showScrollIndicator = false }: GroupProps,\n children: any\n) => {\n if (scrollable)\n return (\n <ScrollView\n {...(orientation === 'vertical' && {\n showsVerticalScrollIndicator: showScrollIndicator,\n })}\n {...(orientation === 'horizontal' && {\n horizontal: true,\n showsHorizontalScrollIndicator: showScrollIndicator,\n })}\n >\n {children}\n </ScrollView>\n )\n return children\n}\n\nconst getBorderRadius = ({\n isFirst,\n isLast,\n radius,\n vertical,\n disable,\n}: {\n radius: any\n vertical: boolean\n isFirst: boolean\n isLast: boolean\n disable: DisablePassBorderRadius\n}) => {\n // TODO: RTL support would be nice here\n return {\n borderTopLeftRadius: isFirst && disable !== 'top' && disable !== 'start' ? radius : 0,\n borderTopRightRadius:\n disable !== 'top' &&\n disable !== 'end' &&\n ((vertical && isFirst) || (!vertical && isLast))\n ? radius\n : 0,\n borderBottomLeftRadius:\n disable !== 'bottom' &&\n disable !== 'start' &&\n ((vertical && isLast) || (!vertical && isFirst))\n ? radius\n : 0,\n borderBottomRightRadius:\n isLast && disable !== 'bottom' && disable !== 'end' ? radius : 0,\n }\n}\n\nconst cloneElementWithPropOrder = (child: any, props: Object) => {\n const next = mergeProps(child.props, props, false, getConfig().shorthands)[0]\n return React.cloneElement({ ...child, props: null }, next)\n}\n"],
5
- "mappings": "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",
6
- "names": ["props"]
5
+ "mappings": "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",
6
+ "names": ["getConfig", "getExpandedShorthands", "getTokens", "getVariableValue", "isTamaguiElement", "mergeProps", "spacedChildren", "styled", "useMediaPropsActive", "withStaticProperties", "createContextScope", "ThemeableStack", "useControllableState", "React", "Children", "forwardRef", "isValidElement", "ScrollView", "useIndex", "useIndexedChildren", "GROUP_NAME", "createGroupContext", "createGroupScope", "GroupProvider", "useGroupContext", "GroupFrame", "val", "tokens", "createGroup", "verticalDefault", "props", "ref", "activeProps", "__scopeGroup", "childrenProp", "space", "size", "spaceDirection", "separator", "scrollable", "axis", "orientation", "disabledProp", "disablePassBorderRadiusProp", "borderRadius", "forceUseItem", "restProps", "vertical", "itemChildrenCount", "setItemChildrenCount", "isUsingItems", "radius", "disablePassBorderRadius", "childrenArray", "children", "child", "i", "disabled", "isFirst", "isLast", "radiusStyles", "getBorderRadius", "cloneElementWithPropOrder", "indexedChildren", "onItemMount", "prev", "onItemUnmount", "wrapScroll", "GroupItem", "groupItemProps", "useGroupItem", "childrenProps", "treeIndex", "context", "propsToPass", "Group", "YGroup", "XGroup", "showScrollIndicator", "disable", "next"]
7
7
  }
@@ -1,221 +1,2 @@
1
- import {
2
- getConfig,
3
- getExpandedShorthands,
4
- getTokens,
5
- getVariableValue,
6
- isTamaguiElement,
7
- mergeProps,
8
- spacedChildren,
9
- styled,
10
- useMediaPropsActive,
11
- withStaticProperties
12
- } from "@tamagui/core";
13
- import { createContextScope } from "@tamagui/create-context";
14
- import { ThemeableStack } from "@tamagui/stacks";
15
- import { useControllableState } from "@tamagui/use-controllable-state";
16
- import React, { Children, forwardRef, isValidElement } from "react";
17
- import { ScrollView } from "react-native";
18
- import { useIndex, useIndexedChildren } from "reforest";
19
- const GROUP_NAME = "Group";
20
- const [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME);
21
- const [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);
22
- const GroupFrame = styled(ThemeableStack, {
23
- name: "GroupFrame",
24
- variants: {
25
- unstyled: {
26
- false: {
27
- size: "$true",
28
- y: 0,
29
- backgroundColor: "$background"
30
- }
31
- },
32
- size: (val, { tokens }) => {
33
- const borderRadius = tokens.radius[val] ?? val ?? tokens.radius["$true"];
34
- return {
35
- borderRadius
36
- };
37
- }
38
- },
39
- defaultVariants: {
40
- unstyled: false
41
- }
42
- });
43
- function createGroup(verticalDefault) {
44
- return withStaticProperties(
45
- forwardRef((props, ref) => {
46
- const activeProps = useMediaPropsActive(props);
47
- const {
48
- __scopeGroup,
49
- children: childrenProp,
50
- space,
51
- size = "$true",
52
- spaceDirection,
53
- separator,
54
- scrollable,
55
- axis = verticalDefault ? "vertical" : "horizontal",
56
- orientation = axis,
57
- disabled: disabledProp,
58
- disablePassBorderRadius: disablePassBorderRadiusProp,
59
- borderRadius,
60
- forceUseItem,
61
- ...restProps
62
- } = getExpandedShorthands(activeProps);
63
- const vertical = orientation === "vertical";
64
- const [itemChildrenCount, setItemChildrenCount] = useControllableState({
65
- defaultProp: forceUseItem ? 1 : 0
66
- });
67
- const isUsingItems = true;
68
- const radius = borderRadius ?? (size ? getVariableValue(getTokens().radius[size]) - 1 : void 0);
69
- const hasRadius = radius !== void 0;
70
- const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius;
71
- if (!isUsingItems)
72
- console.log("screw up!");
73
- const childrenArray = Children.toArray(childrenProp);
74
- const children = isUsingItems ? childrenProp : childrenArray.map((child, i) => {
75
- if (!isValidElement(child)) {
76
- return child;
77
- }
78
- const disabled = child.props.disabled ?? disabledProp;
79
- const isFirst = i === 0;
80
- const isLast = i === childrenArray.length - 1;
81
- const radiusStyles = disablePassBorderRadius === true ? null : getBorderRadius({
82
- isFirst,
83
- isLast,
84
- radius,
85
- vertical,
86
- disable: disablePassBorderRadius
87
- });
88
- const props2 = {
89
- disabled,
90
- ...isTamaguiElement(child) ? radiusStyles : { style: radiusStyles }
91
- };
92
- return cloneElementWithPropOrder(child, props2);
93
- });
94
- const indexedChildren = useIndexedChildren(
95
- spacedChildren({
96
- direction: spaceDirection,
97
- separator,
98
- space,
99
- children
100
- })
101
- );
102
- const onItemMount = React.useCallback(
103
- () => setItemChildrenCount((prev) => prev + 1),
104
- []
105
- );
106
- const onItemUnmount = React.useCallback(
107
- () => setItemChildrenCount((prev) => prev - 1),
108
- []
109
- );
110
- return <GroupProvider
111
- disablePassBorderRadius={disablePassBorderRadius}
112
- vertical={orientation === "vertical"}
113
- radius={radius}
114
- disabled={disabledProp}
115
- onItemMount={onItemMount}
116
- onItemUnmount={onItemUnmount}
117
- scope={__scopeGroup}
118
- ><GroupFrame
119
- ref={ref}
120
- size={size}
121
- flexDirection={orientation === "horizontal" ? "row" : "column"}
122
- borderRadius={borderRadius}
123
- {...restProps}
124
- >{wrapScroll({ ...activeProps, orientation }, indexedChildren)}</GroupFrame></GroupProvider>;
125
- }),
126
- {
127
- Item: GroupItem
128
- }
129
- );
130
- }
131
- const GroupItem = (props) => {
132
- const { __scopeGroup, children } = props;
133
- const groupItemProps = useGroupItem(
134
- { disabled: isValidElement(children) ? children.props.disabled : void 0 },
135
- __scopeGroup
136
- );
137
- if (!isValidElement(children)) {
138
- return children;
139
- }
140
- if (isTamaguiElement(children)) {
141
- return React.cloneElement(children, groupItemProps);
142
- }
143
- return React.cloneElement(children, {
144
- style: {
145
- ...children.props?.["style"],
146
- ...groupItemProps
147
- }
148
- });
149
- };
150
- const useGroupItem = (childrenProps, __scopeGroup) => {
151
- const treeIndex = useIndex();
152
- const context = useGroupContext("GroupItem", __scopeGroup);
153
- React.useEffect(() => {
154
- context.onItemMount();
155
- return () => {
156
- context.onItemUnmount();
157
- };
158
- }, []);
159
- if (!treeIndex) {
160
- throw Error("<Group.Item/> should only be used within a <Group/>");
161
- }
162
- const isFirst = treeIndex.index === 0;
163
- const isLast = treeIndex.index === treeIndex.maxIndex;
164
- const disabled = childrenProps.disabled ?? context.disabled;
165
- let propsToPass = {
166
- disabled
167
- };
168
- if (context.disablePassBorderRadius !== true) {
169
- const borderRadius = getBorderRadius({
170
- radius: context.radius,
171
- isFirst,
172
- isLast,
173
- vertical: context.vertical,
174
- disable: context.disablePassBorderRadius
175
- });
176
- return { ...propsToPass, ...borderRadius };
177
- }
178
- return propsToPass;
179
- };
180
- const Group = createGroup(true);
181
- const YGroup = Group;
182
- const XGroup = createGroup(false);
183
- const wrapScroll = ({ scrollable, orientation, showScrollIndicator = false }, children) => {
184
- if (scrollable)
185
- return <ScrollView
186
- {...orientation === "vertical" && {
187
- showsVerticalScrollIndicator: showScrollIndicator
188
- }}
189
- {...orientation === "horizontal" && {
190
- horizontal: true,
191
- showsHorizontalScrollIndicator: showScrollIndicator
192
- }}
193
- >{children}</ScrollView>;
194
- return children;
195
- };
196
- const getBorderRadius = ({
197
- isFirst,
198
- isLast,
199
- radius,
200
- vertical,
201
- disable
202
- }) => {
203
- return {
204
- borderTopLeftRadius: isFirst && disable !== "top" && disable !== "start" ? radius : 0,
205
- borderTopRightRadius: disable !== "top" && disable !== "end" && (vertical && isFirst || !vertical && isLast) ? radius : 0,
206
- borderBottomLeftRadius: disable !== "bottom" && disable !== "start" && (vertical && isLast || !vertical && isFirst) ? radius : 0,
207
- borderBottomRightRadius: isLast && disable !== "bottom" && disable !== "end" ? radius : 0
208
- };
209
- };
210
- const cloneElementWithPropOrder = (child, props) => {
211
- const next = mergeProps(child.props, props, false, getConfig().shorthands)[0];
212
- return React.cloneElement({ ...child, props: null }, next);
213
- };
214
- export {
215
- Group,
216
- GroupFrame,
217
- XGroup,
218
- YGroup,
219
- useGroupItem
220
- };
1
+ import{getConfig as $,getExpandedShorthands as L,getTokens as O,getVariableValue as N,isTamaguiElement as y,mergeProps as j,spacedChildren as H,styled as W,useMediaPropsActive as X,withStaticProperties as Y}from"@tamagui/core";import{createContextScope as q}from"@tamagui/create-context";import{ThemeableStack as J}from"@tamagui/stacks";import{useControllableState as K}from"@tamagui/use-controllable-state";import i,{Children as Q,forwardRef as Z,isValidElement as m}from"react";import{ScrollView as Pe}from"react-native";import{useIndex as Re,useIndexedChildren as Ge}from"reforest";const g="Group",[he,He]=q(g),[Ie,ye]=he(g),Se=W(J,{name:"GroupFrame",variants:{unstyled:{false:{size:"$true",y:0,backgroundColor:"$background"}},size:(r,{tokens:t})=>({borderRadius:t.radius[r]??r??t.radius.$true})},defaultVariants:{unstyled:!1}});function S(r){return Y(Z((t,e)=>{const o=X(t),{__scopeGroup:s,children:d,space:b,size:a="$true",spaceDirection:u,separator:v,scrollable:ze,axis:B=r?"vertical":"horizontal",orientation:l=B,disabled:f,disablePassBorderRadius:E,borderRadius:P,forceUseItem:w,...z}=L(o),V=l==="vertical",[Ve,R]=K({defaultProp:w?1:0}),G=!0,c=P??(a?N(O().radius[a])-1:void 0),p=E??!(c!==void 0);G||console.log("screw up!");const h=Q.toArray(d),U=G?d:h.map((n,x)=>{if(!m(n))return n;const M=n.props.disabled??f,k=x===0,F=x===h.length-1,I=p===!0?null:C({isFirst:k,isLast:F,radius:c,vertical:V,disable:p}),A={disabled:M,...y(n)?I:{style:I}};return we(n,A)}),T=Ge(H({direction:u,separator:v,space:b,children:U})),_=i.useCallback(()=>R(n=>n+1),[]),D=i.useCallback(()=>R(n=>n-1),[]);return<Ie disablePassBorderRadius={p}vertical={l==="vertical"}radius={c}disabled={f}onItemMount={_}onItemUnmount={D}scope={s}><Se ref={e}size={a}flexDirection={l==="horizontal"?"row":"column"}borderRadius={P}{...z}>{Ee({...o,orientation:l},T)}</Se></Ie>}),{Item:Ce})}const Ce=r=>{const{__scopeGroup:t,children:e}=r,o=ve({disabled:m(e)?e.props.disabled:void 0},t);return m(e)?y(e)?i.cloneElement(e,o):i.cloneElement(e,{style:{...e.props?.style,...o}}):e},ve=(r,t)=>{const e=Re(),o=ye("GroupItem",t);if(i.useEffect(()=>(o.onItemMount(),()=>{o.onItemUnmount()}),[]),!e)throw Error("<Group.Item/> should only be used within a <Group/>");const s=e.index===0,d=e.index===e.maxIndex;let a={disabled:r.disabled??o.disabled};if(o.disablePassBorderRadius!==!0){const u=C({radius:o.radius,isFirst:s,isLast:d,vertical:o.vertical,disable:o.disablePassBorderRadius});return{...a,...u}}return a},Be=S(!0),We=Be,Xe=S(!1),Ee=({scrollable:r,orientation:t,showScrollIndicator:e=!1},o)=>r?<Pe{...t==="vertical"&&{showsVerticalScrollIndicator:e}}{...t==="horizontal"&&{horizontal:!0,showsHorizontalScrollIndicator:e}}>{o}</Pe>:o,C=({isFirst:r,isLast:t,radius:e,vertical:o,disable:s})=>({borderTopLeftRadius:r&&s!=="top"&&s!=="start"?e:0,borderTopRightRadius:s!=="top"&&s!=="end"&&(o&&r||!o&&t)?e:0,borderBottomLeftRadius:s!=="bottom"&&s!=="start"&&(o&&t||!o&&r)?e:0,borderBottomRightRadius:t&&s!=="bottom"&&s!=="end"?e:0}),we=(r,t)=>{const e=j(r.props,t,!1,$().shorthands)[0];return i.cloneElement({...r,props:null},e)};export{Be as Group,Se as GroupFrame,Xe as XGroup,We as YGroup,ve as useGroupItem};
221
2
  //# sourceMappingURL=Group.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/Group.tsx"],
4
4
  "sourcesContent": ["import {\n GetProps,\n TamaguiElement,\n UnionableString,\n Variable,\n getConfig,\n getExpandedShorthands,\n getTokens,\n getVariableValue,\n isTamaguiElement,\n mergeProps,\n spacedChildren,\n styled,\n useMediaPropsActive,\n withStaticProperties,\n} from '@tamagui/core'\nimport { Scope, createContextScope } from '@tamagui/create-context'\nimport { ThemeableStack } from '@tamagui/stacks'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport React, { Children, forwardRef, isValidElement } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useIndex, useIndexedChildren } from 'reforest'\n\ntype DisablePassBorderRadius = boolean | 'bottom' | 'top' | 'start' | 'end'\n\ninterface GroupContextValue {\n vertical: boolean\n disablePassBorderRadius: DisablePassBorderRadius\n onItemMount: () => void\n onItemUnmount: () => void\n radius?: number | UnionableString | Variable<any>\n disabled?: boolean\n}\n\nconst GROUP_NAME = 'Group'\n\ntype ScopedProps<P> = P & { __scopeGroup?: Scope }\nconst [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME)\nconst [GroupProvider, useGroupContext] = createGroupContext<GroupContextValue>(GROUP_NAME)\n\nexport const GroupFrame = styled(ThemeableStack, {\n name: 'GroupFrame',\n\n variants: {\n unstyled: {\n false: {\n size: '$true',\n y: 0,\n backgroundColor: '$background',\n },\n },\n\n size: (val, { tokens }) => {\n const borderRadius = tokens.radius[val] ?? val ?? tokens.radius['$true']\n return {\n borderRadius,\n }\n },\n } as const,\n\n defaultVariants: {\n unstyled: false,\n },\n})\n\nexport type GroupProps = GetProps<typeof GroupFrame> & {\n /**\n * @deprecated use `orientation` instead\n */\n axis?: 'horizontal' | 'vertical'\n orientation?: 'horizontal' | 'vertical'\n scrollable?: boolean\n /**\n * @default false\n */\n showScrollIndicator?: boolean\n disabled?: boolean\n disablePassBorderRadius?: DisablePassBorderRadius\n /**\n * forces the group to use the Group.Item API\n */\n forceUseItem?: boolean\n}\n\nfunction createGroup(verticalDefault: boolean) {\n return withStaticProperties(\n forwardRef<TamaguiElement, ScopedProps<GroupProps>>((props, ref) => {\n const activeProps = useMediaPropsActive(props)\n\n const {\n __scopeGroup,\n children: childrenProp,\n space,\n size = '$true',\n spaceDirection,\n separator,\n scrollable,\n axis = verticalDefault ? 'vertical' : 'horizontal',\n orientation = axis,\n disabled: disabledProp,\n disablePassBorderRadius: disablePassBorderRadiusProp,\n borderRadius,\n forceUseItem,\n ...restProps\n } = getExpandedShorthands(activeProps)\n\n const vertical = orientation === 'vertical'\n const [itemChildrenCount, setItemChildrenCount] = useControllableState({\n defaultProp: forceUseItem ? 1 : 0,\n })\n const isUsingItems = true // itemChildrenCount > 0\n\n // 1 off given border to adjust for border radius? This should be user controllable\n const radius =\n borderRadius ??\n (size ? getVariableValue(getTokens().radius[size]) - 1 : undefined)\n\n const hasRadius = radius !== undefined\n const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius\n\n if (!isUsingItems) console.log('screw up!')\n const childrenArray = Children.toArray(childrenProp)\n const children = isUsingItems\n ? childrenProp\n : childrenArray.map((child, i) => {\n if (!isValidElement(child)) {\n return child\n }\n const disabled = child.props.disabled ?? disabledProp\n\n const isFirst = i === 0\n const isLast = i === childrenArray.length - 1\n\n const radiusStyles =\n disablePassBorderRadius === true\n ? null\n : getBorderRadius({\n isFirst,\n isLast,\n radius,\n vertical,\n disable: disablePassBorderRadius,\n })\n const props = {\n disabled,\n ...(isTamaguiElement(child) ? radiusStyles : { style: radiusStyles }),\n }\n\n return cloneElementWithPropOrder(child, props)\n })\n\n const indexedChildren = useIndexedChildren(\n spacedChildren({\n direction: spaceDirection,\n separator,\n space,\n children,\n })\n )\n\n const onItemMount = React.useCallback(\n () => setItemChildrenCount((prev) => prev + 1),\n []\n )\n const onItemUnmount = React.useCallback(\n () => setItemChildrenCount((prev) => prev - 1),\n []\n )\n\n return (\n <GroupProvider\n disablePassBorderRadius={disablePassBorderRadius}\n vertical={orientation === 'vertical'}\n radius={radius}\n disabled={disabledProp}\n onItemMount={onItemMount}\n onItemUnmount={onItemUnmount}\n scope={__scopeGroup}\n >\n <GroupFrame\n ref={ref}\n size={size}\n flexDirection={orientation === 'horizontal' ? 'row' : 'column'}\n borderRadius={borderRadius}\n {...restProps}\n >\n {wrapScroll({ ...activeProps, orientation }, indexedChildren)}\n </GroupFrame>\n </GroupProvider>\n )\n }),\n {\n Item: GroupItem,\n }\n )\n}\n\nconst GroupItem = (props: ScopedProps<{ children: React.ReactNode }>) => {\n const { __scopeGroup, children } = props\n const groupItemProps = useGroupItem(\n { disabled: isValidElement(children) ? children.props.disabled : undefined },\n __scopeGroup\n )\n\n if (!isValidElement(children)) {\n return children as any\n }\n\n if (isTamaguiElement(children)) {\n return React.cloneElement(children, groupItemProps)\n }\n\n return React.cloneElement(children, {\n style: {\n ...children.props?.['style'],\n ...groupItemProps,\n },\n } as any)\n}\n\nexport const useGroupItem = (\n childrenProps: { disabled: boolean },\n __scopeGroup?: Scope\n) => {\n const treeIndex = useIndex()\n const context = useGroupContext('GroupItem', __scopeGroup)\n\n React.useEffect(() => {\n context.onItemMount()\n return () => {\n context.onItemUnmount()\n }\n }, [])\n\n if (!treeIndex) {\n throw Error('<Group.Item/> should only be used within a <Group/>')\n }\n\n const isFirst = treeIndex.index === 0\n const isLast = treeIndex.index === treeIndex.maxIndex\n\n const disabled = childrenProps.disabled ?? context.disabled\n\n let propsToPass: Record<string, any> = {\n disabled,\n }\n\n if (context.disablePassBorderRadius !== true) {\n const borderRadius = getBorderRadius({\n radius: context.radius,\n isFirst,\n isLast,\n vertical: context.vertical,\n disable: context.disablePassBorderRadius,\n })\n return { ...propsToPass, ...borderRadius }\n }\n return propsToPass\n}\n\nexport const Group = createGroup(true)\nexport const YGroup = Group\nexport const XGroup = createGroup(false)\n\nconst wrapScroll = (\n { scrollable, orientation, showScrollIndicator = false }: GroupProps,\n children: any\n) => {\n if (scrollable)\n return (\n <ScrollView\n {...(orientation === 'vertical' && {\n showsVerticalScrollIndicator: showScrollIndicator,\n })}\n {...(orientation === 'horizontal' && {\n horizontal: true,\n showsHorizontalScrollIndicator: showScrollIndicator,\n })}\n >\n {children}\n </ScrollView>\n )\n return children\n}\n\nconst getBorderRadius = ({\n isFirst,\n isLast,\n radius,\n vertical,\n disable,\n}: {\n radius: any\n vertical: boolean\n isFirst: boolean\n isLast: boolean\n disable: DisablePassBorderRadius\n}) => {\n // TODO: RTL support would be nice here\n return {\n borderTopLeftRadius: isFirst && disable !== 'top' && disable !== 'start' ? radius : 0,\n borderTopRightRadius:\n disable !== 'top' &&\n disable !== 'end' &&\n ((vertical && isFirst) || (!vertical && isLast))\n ? radius\n : 0,\n borderBottomLeftRadius:\n disable !== 'bottom' &&\n disable !== 'start' &&\n ((vertical && isLast) || (!vertical && isFirst))\n ? radius\n : 0,\n borderBottomRightRadius:\n isLast && disable !== 'bottom' && disable !== 'end' ? radius : 0,\n }\n}\n\nconst cloneElementWithPropOrder = (child: any, props: Object) => {\n const next = mergeProps(child.props, props, false, getConfig().shorthands)[0]\n return React.cloneElement({ ...child, props: null }, next)\n}\n"],
5
- "mappings": "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",
6
- "names": ["props"]
5
+ "mappings": "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",
6
+ "names": ["getConfig", "getExpandedShorthands", "getTokens", "getVariableValue", "isTamaguiElement", "mergeProps", "spacedChildren", "styled", "useMediaPropsActive", "withStaticProperties", "createContextScope", "ThemeableStack", "useControllableState", "React", "Children", "forwardRef", "isValidElement", "ScrollView", "useIndex", "useIndexedChildren", "GROUP_NAME", "createGroupContext", "createGroupScope", "GroupProvider", "useGroupContext", "GroupFrame", "val", "tokens", "createGroup", "verticalDefault", "props", "ref", "activeProps", "__scopeGroup", "childrenProp", "space", "size", "spaceDirection", "separator", "scrollable", "axis", "orientation", "disabledProp", "disablePassBorderRadiusProp", "borderRadius", "forceUseItem", "restProps", "vertical", "itemChildrenCount", "setItemChildrenCount", "isUsingItems", "radius", "disablePassBorderRadius", "childrenArray", "children", "child", "i", "disabled", "isFirst", "isLast", "radiusStyles", "getBorderRadius", "cloneElementWithPropOrder", "indexedChildren", "onItemMount", "prev", "onItemUnmount", "wrapScroll", "GroupItem", "groupItemProps", "useGroupItem", "childrenProps", "treeIndex", "context", "propsToPass", "Group", "YGroup", "XGroup", "showScrollIndicator", "disable", "next"]
7
7
  }
package/dist/jsx/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./Group";
1
+ export*from"./Group";
2
2
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './Group'\n"],
5
- "mappings": "AAAA,cAAc;",
5
+ "mappings": "AAAA,WAAc",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- export * from "./Group";
1
+ export*from"./Group";
2
2
  //# sourceMappingURL=index.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './Group'\n"],
5
- "mappings": "AAAA,cAAc;",
5
+ "mappings": "AAAA,WAAc",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/group",
3
- "version": "1.13.2",
3
+ "version": "1.13.4",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -23,17 +23,17 @@
23
23
  "clean:build": "tamagui-build clean:build"
24
24
  },
25
25
  "dependencies": {
26
- "@tamagui/core": "1.13.2",
27
- "@tamagui/create-context": "1.13.2",
28
- "@tamagui/stacks": "1.13.2",
29
- "@tamagui/use-controllable-state": "1.13.2",
26
+ "@tamagui/core": "1.13.4",
27
+ "@tamagui/create-context": "1.13.4",
28
+ "@tamagui/stacks": "1.13.4",
29
+ "@tamagui/use-controllable-state": "1.13.4",
30
30
  "reforest": "^0.12.1"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "react": "*"
34
34
  },
35
35
  "devDependencies": {
36
- "@tamagui/build": "1.13.2",
36
+ "@tamagui/build": "1.13.4",
37
37
  "react": "^18.2.0"
38
38
  },
39
39
  "publishConfig": {