tamagui 1.7.9 → 1.7.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamagui",
3
- "version": "1.7.9",
3
+ "version": "1.7.11",
4
4
  "sideEffects": [
5
5
  "*.css",
6
6
  "setup.js"
@@ -40,53 +40,53 @@
40
40
  }
41
41
  },
42
42
  "dependencies": {
43
- "@tamagui/adapt": "1.7.9",
44
- "@tamagui/alert-dialog": "1.7.9",
45
- "@tamagui/animate-presence": "1.7.9",
46
- "@tamagui/avatar": "1.7.9",
47
- "@tamagui/button": "1.7.9",
48
- "@tamagui/card": "1.7.9",
49
- "@tamagui/checkbox": "1.7.9",
50
- "@tamagui/compose-refs": "1.7.9",
51
- "@tamagui/core": "1.7.9",
52
- "@tamagui/create-context": "1.7.9",
53
- "@tamagui/dialog": "1.7.9",
54
- "@tamagui/fake-react-native": "1.7.9",
55
- "@tamagui/focusable": "1.7.9",
56
- "@tamagui/font-size": "1.7.9",
57
- "@tamagui/form": "1.7.9",
58
- "@tamagui/get-button-sized": "1.7.9",
59
- "@tamagui/get-font-sized": "1.7.9",
60
- "@tamagui/get-size": "1.7.9",
61
- "@tamagui/helpers": "1.7.9",
62
- "@tamagui/helpers-tamagui": "1.7.9",
63
- "@tamagui/image": "1.7.9",
64
- "@tamagui/label": "1.7.9",
65
- "@tamagui/linear-gradient": "1.7.9",
66
- "@tamagui/list-item": "1.7.9",
67
- "@tamagui/popover": "1.7.9",
68
- "@tamagui/popper": "1.7.9",
69
- "@tamagui/portal": "1.7.9",
70
- "@tamagui/progress": "1.7.9",
71
- "@tamagui/radio-group": "1.7.9",
72
- "@tamagui/react-native-media-driver": "1.7.9",
73
- "@tamagui/scroll-view": "1.7.9",
74
- "@tamagui/select": "1.7.9",
75
- "@tamagui/separator": "1.7.9",
76
- "@tamagui/shapes": "1.7.9",
77
- "@tamagui/sheet": "1.7.9",
78
- "@tamagui/slider": "1.7.9",
79
- "@tamagui/stacks": "1.7.9",
80
- "@tamagui/switch": "1.7.9",
81
- "@tamagui/tabs": "1.7.9",
82
- "@tamagui/text": "1.7.9",
83
- "@tamagui/tooltip": "1.7.9",
84
- "@tamagui/use-controllable-state": "1.7.9",
85
- "@tamagui/use-debounce": "1.7.9",
86
- "@tamagui/use-event": "1.7.9",
87
- "@tamagui/use-force-update": "1.7.9",
88
- "@tamagui/use-window-dimensions": "1.7.9",
89
- "@tamagui/visually-hidden": "1.7.9",
43
+ "@tamagui/adapt": "1.7.11",
44
+ "@tamagui/alert-dialog": "1.7.11",
45
+ "@tamagui/animate-presence": "1.7.11",
46
+ "@tamagui/avatar": "1.7.11",
47
+ "@tamagui/button": "1.7.11",
48
+ "@tamagui/card": "1.7.11",
49
+ "@tamagui/checkbox": "1.7.11",
50
+ "@tamagui/compose-refs": "1.7.11",
51
+ "@tamagui/core": "1.7.11",
52
+ "@tamagui/create-context": "1.7.11",
53
+ "@tamagui/dialog": "1.7.11",
54
+ "@tamagui/fake-react-native": "1.7.11",
55
+ "@tamagui/focusable": "1.7.11",
56
+ "@tamagui/font-size": "1.7.11",
57
+ "@tamagui/form": "1.7.11",
58
+ "@tamagui/get-button-sized": "1.7.11",
59
+ "@tamagui/get-font-sized": "1.7.11",
60
+ "@tamagui/get-size": "1.7.11",
61
+ "@tamagui/helpers": "1.7.11",
62
+ "@tamagui/helpers-tamagui": "1.7.11",
63
+ "@tamagui/image": "1.7.11",
64
+ "@tamagui/label": "1.7.11",
65
+ "@tamagui/linear-gradient": "1.7.11",
66
+ "@tamagui/list-item": "1.7.11",
67
+ "@tamagui/popover": "1.7.11",
68
+ "@tamagui/popper": "1.7.11",
69
+ "@tamagui/portal": "1.7.11",
70
+ "@tamagui/progress": "1.7.11",
71
+ "@tamagui/radio-group": "1.7.11",
72
+ "@tamagui/react-native-media-driver": "1.7.11",
73
+ "@tamagui/scroll-view": "1.7.11",
74
+ "@tamagui/select": "1.7.11",
75
+ "@tamagui/separator": "1.7.11",
76
+ "@tamagui/shapes": "1.7.11",
77
+ "@tamagui/sheet": "1.7.11",
78
+ "@tamagui/slider": "1.7.11",
79
+ "@tamagui/stacks": "1.7.11",
80
+ "@tamagui/switch": "1.7.11",
81
+ "@tamagui/tabs": "1.7.11",
82
+ "@tamagui/text": "1.7.11",
83
+ "@tamagui/tooltip": "1.7.11",
84
+ "@tamagui/use-controllable-state": "1.7.11",
85
+ "@tamagui/use-debounce": "1.7.11",
86
+ "@tamagui/use-event": "1.7.11",
87
+ "@tamagui/use-force-update": "1.7.11",
88
+ "@tamagui/use-window-dimensions": "1.7.11",
89
+ "@tamagui/visually-hidden": "1.7.11",
90
90
  "reforest": "^0.12.1"
91
91
  },
92
92
  "peerDependencies": {
@@ -94,7 +94,7 @@
94
94
  "react-native-web": "*"
95
95
  },
96
96
  "devDependencies": {
97
- "@tamagui/build": "1.7.9",
97
+ "@tamagui/build": "1.7.11",
98
98
  "@types/node": "^16.11.9",
99
99
  "@types/react": "^18.0.15",
100
100
  "react": "^18.2.0",
@@ -1,245 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var Group_exports = {};
30
- __export(Group_exports, {
31
- Group: () => Group,
32
- GroupFrame: () => GroupFrame,
33
- XGroup: () => XGroup,
34
- YGroup: () => YGroup
35
- });
36
- module.exports = __toCommonJS(Group_exports);
37
- var import_jsx_runtime = require("react/jsx-runtime");
38
- var import_core = require("@tamagui/core");
39
- var import_create_context = require("@tamagui/create-context");
40
- var import_stacks = require("@tamagui/stacks");
41
- var import_use_controllable_state = require("@tamagui/use-controllable-state");
42
- var import_react = __toESM(require("react"));
43
- var import_react_native = require("react-native");
44
- var import_reforest = require("reforest");
45
- const GROUP_NAME = "Group";
46
- const [createGroupContext, createGroupScope] = (0, import_create_context.createContextScope)(GROUP_NAME);
47
- const [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);
48
- const GroupFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
49
- name: "GroupFrame",
50
- variants: {
51
- unstyled: {
52
- false: {
53
- y: 0,
54
- backgroundColor: "$background",
55
- size: "$true"
56
- }
57
- },
58
- size: (val, { tokens }) => {
59
- const borderRadius = tokens.radius[val] ?? val ?? tokens.radius["$true"];
60
- return {
61
- borderRadius
62
- };
63
- }
64
- },
65
- defaultVariants: {
66
- unstyled: false
67
- }
68
- });
69
- function createGroup(verticalDefault) {
70
- return (0, import_core.withStaticProperties)(
71
- (0, import_react.forwardRef)((props, ref) => {
72
- const activeProps = (0, import_core.useMediaPropsActive)(props);
73
- const {
74
- __scopeGroup,
75
- children: childrenProp,
76
- space,
77
- size = "$true",
78
- spaceDirection,
79
- separator,
80
- scrollable,
81
- axis = verticalDefault ? "vertical" : "horizontal",
82
- disabled: disabledProp,
83
- disablePassBorderRadius: disablePassBorderRadiusProp,
84
- borderRadius,
85
- forceUseItem,
86
- ...restProps
87
- } = (0, import_core.getExpandedShorthands)(activeProps);
88
- const vertical = axis === "vertical";
89
- const [itemChildrenCount, setItemChildrenCount] = (0, import_use_controllable_state.useControllableState)({
90
- defaultProp: forceUseItem ? 1 : 0
91
- });
92
- const isUsingItems = itemChildrenCount > 0;
93
- const radius = borderRadius ?? (size ? (0, import_core.getVariableValue)((0, import_core.getTokens)().radius[size]) - 1 : void 0);
94
- const hasRadius = radius !== void 0;
95
- const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius;
96
- const childrenArray = import_react.Children.toArray(childrenProp);
97
- const children = isUsingItems ? childrenProp : childrenArray.map((child, i) => {
98
- if (!(0, import_react.isValidElement)(child)) {
99
- return child;
100
- }
101
- const disabled = child.props.disabled ?? disabledProp;
102
- const isFirst = i === 0;
103
- const isLast = i === childrenArray.length - 1;
104
- const radiusStyles = disablePassBorderRadius ? null : getBorderRadius({ isFirst, isLast, radius, vertical });
105
- const props2 = {
106
- disabled,
107
- ...(0, import_core.isTamaguiElement)(child) ? radiusStyles : { style: radiusStyles }
108
- };
109
- return cloneElementWithPropOrder(child, props2);
110
- });
111
- const indexedChildren = (0, import_reforest.useIndexedChildren)(
112
- (0, import_core.spacedChildren)({
113
- direction: spaceDirection,
114
- separator,
115
- space,
116
- children
117
- })
118
- );
119
- const onItemMount = import_react.default.useCallback(
120
- () => setItemChildrenCount((prev) => prev + 1),
121
- []
122
- );
123
- const onItemUnmount = import_react.default.useCallback(
124
- () => setItemChildrenCount((prev) => prev - 1),
125
- []
126
- );
127
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
128
- GroupProvider,
129
- {
130
- disablePassBorderRadius,
131
- vertical: axis === "vertical",
132
- radius,
133
- disabled: disabledProp,
134
- onItemMount,
135
- onItemUnmount,
136
- scope: __scopeGroup,
137
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
138
- GroupFrame,
139
- {
140
- ref,
141
- size,
142
- flexDirection: axis === "horizontal" ? "row" : "column",
143
- borderRadius,
144
- ...restProps,
145
- children: wrapScroll({ ...activeProps, axis }, indexedChildren)
146
- }
147
- )
148
- }
149
- );
150
- }),
151
- {
152
- Item: GroupItem
153
- }
154
- );
155
- }
156
- const GroupItem = (props) => {
157
- var _a;
158
- const { __scopeGroup, children } = props;
159
- const treeIndex = (0, import_reforest.useIndex)();
160
- const context = useGroupContext("GroupItem", __scopeGroup);
161
- import_react.default.useEffect(() => {
162
- context.onItemMount();
163
- return () => {
164
- context.onItemUnmount();
165
- };
166
- }, []);
167
- if (!(0, import_react.isValidElement)(children)) {
168
- return children;
169
- }
170
- const disabled = children.props.disabled ?? context.disabled;
171
- if (!treeIndex) {
172
- throw Error("<Group.Item/> should only be used within a <Group/>");
173
- }
174
- const isFirst = treeIndex.index === 0;
175
- const isLast = treeIndex.index === treeIndex.maxIndex;
176
- let propsToPass = {
177
- disabled
178
- };
179
- if (!context.disablePassBorderRadius) {
180
- const radiusStyles = getBorderRadius({
181
- radius: context.radius,
182
- isFirst,
183
- isLast,
184
- vertical: context.vertical
185
- });
186
- if ((0, import_core.isTamaguiElement)(children)) {
187
- propsToPass = { ...propsToPass, ...radiusStyles };
188
- } else {
189
- propsToPass.style = radiusStyles;
190
- }
191
- }
192
- return (0, import_react.cloneElement)(children, {
193
- ...propsToPass,
194
- // @ts-ignore
195
- style: {
196
- ...(_a = children.props) == null ? void 0 : _a["style"],
197
- ...propsToPass.style
198
- }
199
- });
200
- };
201
- const Group = createGroup(true);
202
- const YGroup = Group;
203
- const XGroup = createGroup(false);
204
- const wrapScroll = ({ scrollable, axis, showScrollIndicator = false }, children) => {
205
- if (scrollable)
206
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
207
- import_react_native.ScrollView,
208
- {
209
- ...axis === "vertical" && {
210
- showsVerticalScrollIndicator: showScrollIndicator
211
- },
212
- ...axis === "horizontal" && {
213
- horizontal: true,
214
- showsHorizontalScrollIndicator: showScrollIndicator
215
- },
216
- children
217
- }
218
- );
219
- return children;
220
- };
221
- const getBorderRadius = ({
222
- isFirst,
223
- isLast,
224
- radius,
225
- vertical
226
- }) => {
227
- return {
228
- borderTopLeftRadius: isFirst ? radius : 0,
229
- borderTopRightRadius: vertical && isFirst || !vertical && isLast ? radius : 0,
230
- borderBottomLeftRadius: vertical && isLast || !vertical && isFirst ? radius : 0,
231
- borderBottomRightRadius: isLast ? radius : 0
232
- };
233
- };
234
- const cloneElementWithPropOrder = (child, props) => {
235
- const next = (0, import_core.mergeProps)(child.props, props, false, (0, import_core.getConfig)().shorthands)[0];
236
- return import_react.default.cloneElement({ ...child, props: null }, next);
237
- };
238
- // Annotate the CommonJS export names for ESM import in node:
239
- 0 && (module.exports = {
240
- Group,
241
- GroupFrame,
242
- XGroup,
243
- YGroup
244
- });
245
- //# sourceMappingURL=Group.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/views/Group.tsx"],
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, cloneElement, forwardRef, isValidElement } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useIndex, useIndexedChildren } from 'reforest'\n\ninterface GroupContextValue {\n vertical: boolean\n disablePassBorderRadius: boolean\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 y: 0,\n backgroundColor: '$background',\n size: '$true',\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 axis?: 'horizontal' | 'vertical'\n\n scrollable?: boolean\n /**\n * @default false\n */\n showScrollIndicator?: boolean\n disabled?: boolean\n disablePassBorderRadius?: boolean\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 disabled: disabledProp,\n disablePassBorderRadius: disablePassBorderRadiusProp,\n borderRadius,\n forceUseItem,\n ...restProps\n } = getExpandedShorthands(activeProps)\n\n const vertical = axis === 'vertical'\n const [itemChildrenCount, setItemChildrenCount] = useControllableState({\n defaultProp: forceUseItem ? 1 : 0,\n })\n const isUsingItems = 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 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 = disablePassBorderRadius\n ? null\n : getBorderRadius({ isFirst, isLast, radius, vertical })\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={axis === '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={axis === 'horizontal' ? 'row' : 'column'}\n borderRadius={borderRadius}\n {...restProps}\n >\n {wrapScroll({ ...activeProps, axis }, 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 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 (!isValidElement(children)) {\n return children as any\n }\n\n const disabled = children.props.disabled ?? context.disabled\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 let propsToPass: Record<string, any> = {\n disabled,\n }\n\n if (!context.disablePassBorderRadius) {\n const radiusStyles = getBorderRadius({\n radius: context.radius,\n isFirst,\n isLast,\n vertical: context.vertical,\n })\n if (isTamaguiElement(children)) {\n propsToPass = { ...propsToPass, ...radiusStyles }\n } else {\n propsToPass.style = radiusStyles\n }\n }\n\n return cloneElement(children, {\n ...propsToPass,\n // @ts-ignore\n style: {\n ...children.props?.['style'],\n ...propsToPass.style,\n },\n })\n}\n\nexport const Group = createGroup(true)\nexport const YGroup = Group\nexport const XGroup = createGroup(false)\n\nconst wrapScroll = (\n { scrollable, axis, showScrollIndicator = false }: GroupProps,\n children: any\n) => {\n if (scrollable)\n return (\n <ScrollView\n {...(axis === 'vertical' && {\n showsVerticalScrollIndicator: showScrollIndicator,\n })}\n {...(axis === '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}: {\n radius: any\n vertical: boolean\n isFirst: boolean\n isLast: boolean\n}) => {\n // TODO: RTL support would be nice here\n return {\n borderTopLeftRadius: isFirst ? radius : 0,\n borderTopRightRadius: (vertical && isFirst) || (!vertical && isLast) ? radius : 0,\n borderBottomLeftRadius: (vertical && isLast) || (!vertical && isFirst) ? radius : 0,\n borderBottomRightRadius: isLast ? 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", "React"]
7
- }
@@ -1,219 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import {
3
- getConfig,
4
- getExpandedShorthands,
5
- getTokens,
6
- getVariableValue,
7
- isTamaguiElement,
8
- mergeProps,
9
- spacedChildren,
10
- styled,
11
- useMediaPropsActive,
12
- withStaticProperties
13
- } from "@tamagui/core";
14
- import { createContextScope } from "@tamagui/create-context";
15
- import { ThemeableStack } from "@tamagui/stacks";
16
- import { useControllableState } from "@tamagui/use-controllable-state";
17
- import React, { Children, cloneElement, forwardRef, isValidElement } from "react";
18
- import { ScrollView } from "react-native";
19
- import { useIndex, useIndexedChildren } from "reforest";
20
- const GROUP_NAME = "Group";
21
- const [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME);
22
- const [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);
23
- const GroupFrame = styled(ThemeableStack, {
24
- name: "GroupFrame",
25
- variants: {
26
- unstyled: {
27
- false: {
28
- y: 0,
29
- backgroundColor: "$background",
30
- size: "$true"
31
- }
32
- },
33
- size: (val, { tokens }) => {
34
- const borderRadius = tokens.radius[val] ?? val ?? tokens.radius["$true"];
35
- return {
36
- borderRadius
37
- };
38
- }
39
- },
40
- defaultVariants: {
41
- unstyled: false
42
- }
43
- });
44
- function createGroup(verticalDefault) {
45
- return withStaticProperties(
46
- forwardRef((props, ref) => {
47
- const activeProps = useMediaPropsActive(props);
48
- const {
49
- __scopeGroup,
50
- children: childrenProp,
51
- space,
52
- size = "$true",
53
- spaceDirection,
54
- separator,
55
- scrollable,
56
- axis = verticalDefault ? "vertical" : "horizontal",
57
- disabled: disabledProp,
58
- disablePassBorderRadius: disablePassBorderRadiusProp,
59
- borderRadius,
60
- forceUseItem,
61
- ...restProps
62
- } = getExpandedShorthands(activeProps);
63
- const vertical = axis === "vertical";
64
- const [itemChildrenCount, setItemChildrenCount] = useControllableState({
65
- defaultProp: forceUseItem ? 1 : 0
66
- });
67
- const isUsingItems = itemChildrenCount > 0;
68
- const radius = borderRadius ?? (size ? getVariableValue(getTokens().radius[size]) - 1 : void 0);
69
- const hasRadius = radius !== void 0;
70
- const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius;
71
- const childrenArray = Children.toArray(childrenProp);
72
- const children = isUsingItems ? childrenProp : childrenArray.map((child, i) => {
73
- if (!isValidElement(child)) {
74
- return child;
75
- }
76
- const disabled = child.props.disabled ?? disabledProp;
77
- const isFirst = i === 0;
78
- const isLast = i === childrenArray.length - 1;
79
- const radiusStyles = disablePassBorderRadius ? null : getBorderRadius({ isFirst, isLast, radius, vertical });
80
- const props2 = {
81
- disabled,
82
- ...isTamaguiElement(child) ? radiusStyles : { style: radiusStyles }
83
- };
84
- return cloneElementWithPropOrder(child, props2);
85
- });
86
- const indexedChildren = useIndexedChildren(
87
- spacedChildren({
88
- direction: spaceDirection,
89
- separator,
90
- space,
91
- children
92
- })
93
- );
94
- const onItemMount = React.useCallback(
95
- () => setItemChildrenCount((prev) => prev + 1),
96
- []
97
- );
98
- const onItemUnmount = React.useCallback(
99
- () => setItemChildrenCount((prev) => prev - 1),
100
- []
101
- );
102
- return /* @__PURE__ */ jsx(
103
- GroupProvider,
104
- {
105
- disablePassBorderRadius,
106
- vertical: axis === "vertical",
107
- radius,
108
- disabled: disabledProp,
109
- onItemMount,
110
- onItemUnmount,
111
- scope: __scopeGroup,
112
- children: /* @__PURE__ */ jsx(
113
- GroupFrame,
114
- {
115
- ref,
116
- size,
117
- flexDirection: axis === "horizontal" ? "row" : "column",
118
- borderRadius,
119
- ...restProps,
120
- children: wrapScroll({ ...activeProps, axis }, indexedChildren)
121
- }
122
- )
123
- }
124
- );
125
- }),
126
- {
127
- Item: GroupItem
128
- }
129
- );
130
- }
131
- const GroupItem = (props) => {
132
- var _a;
133
- const { __scopeGroup, children } = props;
134
- const treeIndex = useIndex();
135
- const context = useGroupContext("GroupItem", __scopeGroup);
136
- React.useEffect(() => {
137
- context.onItemMount();
138
- return () => {
139
- context.onItemUnmount();
140
- };
141
- }, []);
142
- if (!isValidElement(children)) {
143
- return children;
144
- }
145
- const disabled = children.props.disabled ?? context.disabled;
146
- if (!treeIndex) {
147
- throw Error("<Group.Item/> should only be used within a <Group/>");
148
- }
149
- const isFirst = treeIndex.index === 0;
150
- const isLast = treeIndex.index === treeIndex.maxIndex;
151
- let propsToPass = {
152
- disabled
153
- };
154
- if (!context.disablePassBorderRadius) {
155
- const radiusStyles = getBorderRadius({
156
- radius: context.radius,
157
- isFirst,
158
- isLast,
159
- vertical: context.vertical
160
- });
161
- if (isTamaguiElement(children)) {
162
- propsToPass = { ...propsToPass, ...radiusStyles };
163
- } else {
164
- propsToPass.style = radiusStyles;
165
- }
166
- }
167
- return cloneElement(children, {
168
- ...propsToPass,
169
- // @ts-ignore
170
- style: {
171
- ...(_a = children.props) == null ? void 0 : _a["style"],
172
- ...propsToPass.style
173
- }
174
- });
175
- };
176
- const Group = createGroup(true);
177
- const YGroup = Group;
178
- const XGroup = createGroup(false);
179
- const wrapScroll = ({ scrollable, axis, showScrollIndicator = false }, children) => {
180
- if (scrollable)
181
- return /* @__PURE__ */ jsx(
182
- ScrollView,
183
- {
184
- ...axis === "vertical" && {
185
- showsVerticalScrollIndicator: showScrollIndicator
186
- },
187
- ...axis === "horizontal" && {
188
- horizontal: true,
189
- showsHorizontalScrollIndicator: showScrollIndicator
190
- },
191
- children
192
- }
193
- );
194
- return children;
195
- };
196
- const getBorderRadius = ({
197
- isFirst,
198
- isLast,
199
- radius,
200
- vertical
201
- }) => {
202
- return {
203
- borderTopLeftRadius: isFirst ? radius : 0,
204
- borderTopRightRadius: vertical && isFirst || !vertical && isLast ? radius : 0,
205
- borderBottomLeftRadius: vertical && isLast || !vertical && isFirst ? radius : 0,
206
- borderBottomRightRadius: isLast ? radius : 0
207
- };
208
- };
209
- const cloneElementWithPropOrder = (child, props) => {
210
- const next = mergeProps(child.props, props, false, getConfig().shorthands)[0];
211
- return React.cloneElement({ ...child, props: null }, next);
212
- };
213
- export {
214
- Group,
215
- GroupFrame,
216
- XGroup,
217
- YGroup
218
- };
219
- //# sourceMappingURL=Group.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/views/Group.tsx"],
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, cloneElement, forwardRef, isValidElement } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useIndex, useIndexedChildren } from 'reforest'\n\ninterface GroupContextValue {\n vertical: boolean\n disablePassBorderRadius: boolean\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 y: 0,\n backgroundColor: '$background',\n size: '$true',\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 axis?: 'horizontal' | 'vertical'\n\n scrollable?: boolean\n /**\n * @default false\n */\n showScrollIndicator?: boolean\n disabled?: boolean\n disablePassBorderRadius?: boolean\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 disabled: disabledProp,\n disablePassBorderRadius: disablePassBorderRadiusProp,\n borderRadius,\n forceUseItem,\n ...restProps\n } = getExpandedShorthands(activeProps)\n\n const vertical = axis === 'vertical'\n const [itemChildrenCount, setItemChildrenCount] = useControllableState({\n defaultProp: forceUseItem ? 1 : 0,\n })\n const isUsingItems = 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 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 = disablePassBorderRadius\n ? null\n : getBorderRadius({ isFirst, isLast, radius, vertical })\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={axis === '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={axis === 'horizontal' ? 'row' : 'column'}\n borderRadius={borderRadius}\n {...restProps}\n >\n {wrapScroll({ ...activeProps, axis }, 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 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 (!isValidElement(children)) {\n return children as any\n }\n\n const disabled = children.props.disabled ?? context.disabled\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 let propsToPass: Record<string, any> = {\n disabled,\n }\n\n if (!context.disablePassBorderRadius) {\n const radiusStyles = getBorderRadius({\n radius: context.radius,\n isFirst,\n isLast,\n vertical: context.vertical,\n })\n if (isTamaguiElement(children)) {\n propsToPass = { ...propsToPass, ...radiusStyles }\n } else {\n propsToPass.style = radiusStyles\n }\n }\n\n return cloneElement(children, {\n ...propsToPass,\n // @ts-ignore\n style: {\n ...children.props?.['style'],\n ...propsToPass.style,\n },\n })\n}\n\nexport const Group = createGroup(true)\nexport const YGroup = Group\nexport const XGroup = createGroup(false)\n\nconst wrapScroll = (\n { scrollable, axis, showScrollIndicator = false }: GroupProps,\n children: any\n) => {\n if (scrollable)\n return (\n <ScrollView\n {...(axis === 'vertical' && {\n showsVerticalScrollIndicator: showScrollIndicator,\n })}\n {...(axis === '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}: {\n radius: any\n vertical: boolean\n isFirst: boolean\n isLast: boolean\n}) => {\n // TODO: RTL support would be nice here\n return {\n borderTopLeftRadius: isFirst ? radius : 0,\n borderTopRightRadius: (vertical && isFirst) || (!vertical && isLast) ? radius : 0,\n borderBottomLeftRadius: (vertical && isLast) || (!vertical && isFirst) ? radius : 0,\n borderBottomRightRadius: isLast ? 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"]
7
- }