@tamagui/list-item 1.0.1-beta.99 → 1.0.1-rc.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.
- package/dist/cjs/ListItem.js +99 -84
- package/dist/cjs/ListItem.js.map +2 -2
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/ListItem.js +96 -83
- package/dist/esm/ListItem.js.map +2 -2
- package/dist/esm/index.js +0 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/jsx/ListItem.js +63 -35
- package/dist/jsx/ListItem.js.map +2 -2
- package/dist/jsx/index.js +0 -0
- package/dist/jsx/index.js.map +1 -1
- package/package.json +11 -9
- package/src/ListItem.tsx +126 -75
- package/types/ListItem.d.ts +744 -167
- package/types/index.d.ts +0 -0
- package/dist/cjs/Button.js +0 -249
- package/dist/cjs/Button.js.map +0 -7
- package/dist/cjs/useCurrentColor.js +0 -41
- package/dist/cjs/useCurrentColor.js.map +0 -7
- package/dist/cjs/useGetThemedIcon.js +0 -45
- package/dist/cjs/useGetThemedIcon.js.map +0 -7
- package/dist/cjs/wrapStringChildrenInText.js +0 -111
- package/dist/cjs/wrapStringChildrenInText.js.map +0 -7
- package/dist/esm/Button.js +0 -190
- package/dist/esm/Button.js.map +0 -7
- package/dist/esm/useCurrentColor.js +0 -19
- package/dist/esm/useCurrentColor.js.map +0 -7
- package/dist/esm/useGetThemedIcon.js +0 -20
- package/dist/esm/useGetThemedIcon.js.map +0 -7
- package/dist/esm/wrapStringChildrenInText.js +0 -53
- package/dist/esm/wrapStringChildrenInText.js.map +0 -7
- package/dist/jsx/Button.js +0 -177
- package/dist/jsx/useCurrentColor.js +0 -18
- package/dist/jsx/useGetThemedIcon.js +0 -19
- package/dist/jsx/wrapStringChildrenInText.js +0 -47
- package/types/Button.d.ts +0 -127
- package/types/Button.d.ts.map +0 -1
- package/types/ListItem.d.ts.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/useCurrentColor.d.ts +0 -5
- package/types/useCurrentColor.d.ts.map +0 -1
- package/types/useGetThemedIcon.d.ts +0 -6
- package/types/useGetThemedIcon.d.ts.map +0 -1
- package/types/wrapStringChildrenInText.d.ts +0 -8
- package/types/wrapStringChildrenInText.d.ts.map +0 -1
package/dist/cjs/ListItem.js
CHANGED
|
@@ -1,35 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __objRest = (source, exclude) => {
|
|
22
|
-
var target = {};
|
|
23
|
-
for (var prop in source)
|
|
24
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
-
target[prop] = source[prop];
|
|
26
|
-
if (source != null && __getOwnPropSymbols)
|
|
27
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
-
target[prop] = source[prop];
|
|
30
|
-
}
|
|
31
|
-
return target;
|
|
32
|
-
};
|
|
33
6
|
var __export = (target, all) => {
|
|
34
7
|
for (var name in all)
|
|
35
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -42,25 +15,28 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
42
15
|
}
|
|
43
16
|
return to;
|
|
44
17
|
};
|
|
45
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
46
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
47
19
|
var ListItem_exports = {};
|
|
48
20
|
__export(ListItem_exports, {
|
|
49
21
|
ListItem: () => ListItem,
|
|
50
22
|
ListItemFrame: () => ListItemFrame,
|
|
51
23
|
ListItemSubtitle: () => ListItemSubtitle,
|
|
52
|
-
ListItemText: () => ListItemText
|
|
24
|
+
ListItemText: () => ListItemText,
|
|
25
|
+
ListItemTitle: () => ListItemTitle,
|
|
26
|
+
listItemStaticConfig: () => listItemStaticConfig,
|
|
27
|
+
useListItem: () => useListItem
|
|
53
28
|
});
|
|
54
29
|
module.exports = __toCommonJS(ListItem_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
55
31
|
var import_core = require("@tamagui/core");
|
|
56
32
|
var import_font_size = require("@tamagui/font-size");
|
|
57
33
|
var import_helpers_tamagui = require("@tamagui/helpers-tamagui");
|
|
58
34
|
var import_stacks = require("@tamagui/stacks");
|
|
59
35
|
var import_text = require("@tamagui/text");
|
|
60
|
-
var import_react =
|
|
61
|
-
|
|
36
|
+
var import_react = require("react");
|
|
37
|
+
const NAME = "ListItem";
|
|
62
38
|
const ListItemFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
|
|
63
|
-
name:
|
|
39
|
+
name: NAME,
|
|
64
40
|
tag: "li",
|
|
65
41
|
alignItems: "center",
|
|
66
42
|
flexWrap: "nowrap",
|
|
@@ -74,7 +50,8 @@ const ListItemFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
|
|
|
74
50
|
"...size": (val, { tokens }) => {
|
|
75
51
|
return {
|
|
76
52
|
minHeight: tokens.size[val],
|
|
77
|
-
paddingHorizontal: tokens.space[val]
|
|
53
|
+
paddingHorizontal: tokens.space[val],
|
|
54
|
+
paddingVertical: (0, import_helpers_tamagui.getSpace)(val, -2)
|
|
78
55
|
};
|
|
79
56
|
}
|
|
80
57
|
},
|
|
@@ -99,26 +76,29 @@ const ListItemFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
|
|
|
99
76
|
const ListItemText = (0, import_core.styled)(import_text.SizableText, {
|
|
100
77
|
name: "ListItemText",
|
|
101
78
|
color: "$color",
|
|
102
|
-
|
|
79
|
+
userSelect: "none",
|
|
103
80
|
flexGrow: 1,
|
|
104
81
|
flexShrink: 1,
|
|
105
|
-
ellipse: true
|
|
82
|
+
ellipse: true,
|
|
83
|
+
cursor: "default"
|
|
106
84
|
});
|
|
107
85
|
const ListItemSubtitle = (0, import_core.styled)(ListItemText, {
|
|
108
86
|
name: "ListItemSubtitle",
|
|
109
87
|
color: "$colorPress",
|
|
110
88
|
marginTop: "$-2",
|
|
111
89
|
opacity: 0.65,
|
|
112
|
-
ellipse: true,
|
|
113
90
|
maxWidth: "100%",
|
|
114
91
|
size: "$3"
|
|
115
92
|
});
|
|
116
93
|
const ListItemTitle = (0, import_core.styled)(ListItemText, {
|
|
117
|
-
name: "ListItemTitle"
|
|
118
|
-
ellipse: true
|
|
94
|
+
name: "ListItemTitle"
|
|
119
95
|
});
|
|
120
|
-
const
|
|
121
|
-
|
|
96
|
+
const useListItem = (props, {
|
|
97
|
+
Text = ListItemText,
|
|
98
|
+
Subtitle = ListItemSubtitle,
|
|
99
|
+
Title = ListItemTitle
|
|
100
|
+
} = { Text: ListItemText, Subtitle: ListItemSubtitle, Title: ListItemTitle }) => {
|
|
101
|
+
const {
|
|
122
102
|
children,
|
|
123
103
|
icon,
|
|
124
104
|
iconAfter,
|
|
@@ -136,50 +116,76 @@ const ListItemComponent = (0, import_react.forwardRef)((props, ref) => {
|
|
|
136
116
|
fontFamily,
|
|
137
117
|
textAlign,
|
|
138
118
|
textProps,
|
|
139
|
-
title
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
"noTextWrap",
|
|
145
|
-
"theme",
|
|
146
|
-
"space",
|
|
147
|
-
"spaceFlex",
|
|
148
|
-
"scaleIcon",
|
|
149
|
-
"scaleSpace",
|
|
150
|
-
"subTitle",
|
|
151
|
-
"color",
|
|
152
|
-
"fontWeight",
|
|
153
|
-
"letterSpacing",
|
|
154
|
-
"fontSize",
|
|
155
|
-
"fontFamily",
|
|
156
|
-
"textAlign",
|
|
157
|
-
"textProps",
|
|
158
|
-
"title"
|
|
159
|
-
]);
|
|
160
|
-
const size = props.size || "$4";
|
|
119
|
+
title,
|
|
120
|
+
...rest
|
|
121
|
+
} = props;
|
|
122
|
+
const mediaActiveProps = (0, import_core.useMediaPropsActive)(props);
|
|
123
|
+
const size = mediaActiveProps.size || "$4";
|
|
161
124
|
const subtitleSizeToken = (0, import_core.getSize)(size, -3);
|
|
162
125
|
const subtitleSize = `$${subtitleSizeToken.key}`;
|
|
163
126
|
const iconSize = (0, import_font_size.getFontSize)(size) * scaleIcon;
|
|
164
127
|
const getThemedIcon = (0, import_helpers_tamagui.useGetThemedIcon)({ size: iconSize, color });
|
|
165
128
|
const [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon);
|
|
166
129
|
const spaceSize = (0, import_core.getVariableValue)(iconSize) * scaleSpace;
|
|
167
|
-
const contents = (0, import_text.wrapChildrenInText)(
|
|
168
|
-
return
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
130
|
+
const contents = (0, import_text.wrapChildrenInText)(Text, mediaActiveProps);
|
|
131
|
+
return {
|
|
132
|
+
props: {
|
|
133
|
+
fontFamily,
|
|
134
|
+
...rest,
|
|
135
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
136
|
+
children: [
|
|
137
|
+
themedIcon ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
138
|
+
children: [
|
|
139
|
+
themedIcon,
|
|
140
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Spacer, {
|
|
141
|
+
size: spaceSize
|
|
142
|
+
})
|
|
143
|
+
]
|
|
144
|
+
}) : null,
|
|
145
|
+
Boolean(title || subTitle) ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_stacks.YStack, {
|
|
146
|
+
flex: 1,
|
|
147
|
+
children: [
|
|
148
|
+
noTextWrap === "all" ? title : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Title, {
|
|
149
|
+
size,
|
|
150
|
+
children: title
|
|
151
|
+
}),
|
|
152
|
+
subTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
153
|
+
children: [
|
|
154
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Spacer, {
|
|
155
|
+
flex: true,
|
|
156
|
+
size: spaceSize * 0.333
|
|
157
|
+
}),
|
|
158
|
+
typeof subTitle === "string" && noTextWrap !== "all" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Subtitle, {
|
|
159
|
+
size: subtitleSize,
|
|
160
|
+
children: subTitle
|
|
161
|
+
}) : subTitle
|
|
162
|
+
]
|
|
163
|
+
}) : null,
|
|
164
|
+
contents
|
|
165
|
+
]
|
|
166
|
+
}) : contents,
|
|
167
|
+
themedIconAfter ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
168
|
+
children: [
|
|
169
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Spacer, {
|
|
170
|
+
size: spaceSize
|
|
171
|
+
}),
|
|
172
|
+
themedIconAfter
|
|
173
|
+
]
|
|
174
|
+
}) : null
|
|
175
|
+
]
|
|
176
|
+
})
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
const ListItemComponent = (0, import_react.forwardRef)((props, ref) => {
|
|
181
|
+
const { props: listItemProps } = useListItem(props);
|
|
182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ListItemFrame, {
|
|
183
|
+
ref,
|
|
184
|
+
justifyContent: "space-between",
|
|
185
|
+
...listItemProps
|
|
186
|
+
});
|
|
181
187
|
});
|
|
182
|
-
const
|
|
188
|
+
const listItemStaticConfig = {
|
|
183
189
|
inlineProps: /* @__PURE__ */ new Set([
|
|
184
190
|
"color",
|
|
185
191
|
"fontWeight",
|
|
@@ -188,16 +194,25 @@ const ListItemInner = ListItemFrame.extractable((0, import_core.themeable)(ListI
|
|
|
188
194
|
"letterSpacing",
|
|
189
195
|
"textAlign"
|
|
190
196
|
])
|
|
191
|
-
}
|
|
192
|
-
const ListItem = (0, import_core.withStaticProperties)(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
197
|
+
};
|
|
198
|
+
const ListItem = (0, import_core.withStaticProperties)(
|
|
199
|
+
ListItemFrame.extractable(
|
|
200
|
+
(0, import_core.themeable)(ListItemComponent, { componentName: NAME }),
|
|
201
|
+
listItemStaticConfig
|
|
202
|
+
),
|
|
203
|
+
{
|
|
204
|
+
Text: ListItemText,
|
|
205
|
+
Subtitle: ListItemSubtitle
|
|
206
|
+
}
|
|
207
|
+
);
|
|
196
208
|
// Annotate the CommonJS export names for ESM import in node:
|
|
197
209
|
0 && (module.exports = {
|
|
198
210
|
ListItem,
|
|
199
211
|
ListItemFrame,
|
|
200
212
|
ListItemSubtitle,
|
|
201
|
-
ListItemText
|
|
213
|
+
ListItemText,
|
|
214
|
+
ListItemTitle,
|
|
215
|
+
listItemStaticConfig,
|
|
216
|
+
useListItem
|
|
202
217
|
});
|
|
203
218
|
//# sourceMappingURL=ListItem.js.map
|
package/dist/cjs/ListItem.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ListItem.tsx"],
|
|
4
|
-
"sourcesContent": ["import {\n FontSizeTokens,\n GetProps,\n Spacer,\n
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import {\n FontSizeTokens,\n GetProps,\n Spacer,\n TamaguiElement,\n ThemeableProps,\n getSize,\n getVariableValue,\n styled,\n themeable,\n useMediaPropsActive,\n withStaticProperties,\n} from '@tamagui/core'\nimport { getFontSize } from '@tamagui/font-size'\nimport { getSpace, useGetThemedIcon } from '@tamagui/helpers-tamagui'\nimport { ThemeableStack, YStack } from '@tamagui/stacks'\nimport { SizableText, TextParentStyles, wrapChildrenInText } from '@tamagui/text'\nimport React, { FunctionComponent, forwardRef } from 'react'\n\ntype ListItemIconProps = { color?: string; size?: number }\ntype IconProp = JSX.Element | FunctionComponent<ListItemIconProps> | null\n\nexport type ListItemProps = Omit<TextParentStyles, 'TextComponent' | 'noTextWrap'> &\n GetProps<typeof ListItemFrame> &\n ThemeableProps & {\n /**\n * add icon before, passes color and size automatically if Component\n */\n icon?: IconProp\n /**\n * add icon after, passes color and size automatically if Component\n */\n iconAfter?: IconProp\n /**\n * adjust icon relative to size\n */\n /**\n * default: -1\n */\n scaleIcon?: number\n /**\n * make the spacing elements flex\n */\n spaceFlex?: number | boolean\n /**\n * adjust internal space relative to icon size\n */\n scaleSpace?: number\n /**\n * title\n */\n title?: React.ReactNode\n /**\n * subtitle\n */\n subTitle?: React.ReactNode\n /**\n * will not wrap text around `children` only, \"all\" will not wrap title or subTitle\n */\n noTextWrap?: boolean | 'all'\n }\n\nconst NAME = 'ListItem'\n\nexport const ListItemFrame = styled(ThemeableStack, {\n name: NAME,\n tag: 'li',\n alignItems: 'center',\n flexWrap: 'nowrap',\n width: '100%',\n borderColor: '$borderColor',\n maxWidth: '100%',\n overflow: 'hidden',\n flexDirection: 'row',\n\n variants: {\n size: {\n '...size': (val, { tokens }) => {\n return {\n minHeight: tokens.size[val],\n paddingHorizontal: tokens.space[val],\n paddingVertical: getSpace(val, -2),\n }\n },\n },\n\n active: {\n true: {\n hoverStyle: {\n backgroundColor: '$background',\n },\n },\n },\n\n disabled: {\n true: {\n opacity: 0.5,\n // TODO breaking types\n pointerEvents: 'none' as any,\n },\n },\n } as const,\n\n defaultVariants: {\n size: '$4',\n },\n})\n\nexport const ListItemText = styled(SizableText, {\n name: 'ListItemText',\n color: '$color',\n userSelect: 'none',\n flexGrow: 1,\n flexShrink: 1,\n ellipse: true,\n cursor: 'default',\n})\n\nexport const ListItemSubtitle = styled(ListItemText, {\n name: 'ListItemSubtitle',\n color: '$colorPress',\n marginTop: '$-2',\n opacity: 0.65,\n maxWidth: '100%',\n size: '$3',\n})\n\nexport const ListItemTitle = styled(ListItemText, {\n name: 'ListItemTitle',\n})\n\nexport const useListItem = (\n props: ListItemProps,\n {\n Text = ListItemText,\n Subtitle = ListItemSubtitle,\n Title = ListItemTitle,\n }: {\n Title?: any\n Subtitle?: any\n Text?: any\n } = { Text: ListItemText, Subtitle: ListItemSubtitle, Title: ListItemTitle }\n) => {\n // careful not to desctructure and re-order props, order is important\n const {\n children,\n icon,\n iconAfter,\n noTextWrap,\n theme: themeName,\n space,\n spaceFlex,\n scaleIcon = 1,\n scaleSpace = 1,\n subTitle,\n\n // text props\n color,\n fontWeight,\n letterSpacing,\n fontSize,\n fontFamily,\n textAlign,\n textProps,\n title,\n ...rest\n } = props\n\n const mediaActiveProps = useMediaPropsActive(props)\n const size = mediaActiveProps.size || '$4'\n const subtitleSizeToken = getSize(size, -3)\n const subtitleSize = `$${subtitleSizeToken.key}` as FontSizeTokens\n const iconSize = getFontSize(size) * scaleIcon\n const getThemedIcon = useGetThemedIcon({ size: iconSize, color })\n const [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon)\n const spaceSize = getVariableValue(iconSize) * scaleSpace\n // @ts-ignore noTextWrap = all is ok\n const contents = wrapChildrenInText(Text, mediaActiveProps)\n\n return {\n props: {\n fontFamily,\n ...rest,\n children: (\n <>\n {themedIcon ? (\n <>\n {themedIcon}\n <Spacer size={spaceSize} />\n </>\n ) : null}\n {/* helper for common title/subtitle pttern */}\n {Boolean(title || subTitle) ? (\n <YStack flex={1}>\n {noTextWrap === 'all' ? title : <Title size={size}>{title}</Title>}\n {subTitle ? (\n <>\n <Spacer flex size={spaceSize * 0.333} />\n {typeof subTitle === 'string' && noTextWrap !== 'all' ? (\n // TODO can use theme but we need to standardize to alt themes\n // or standardize on subtle colors in themes\n <Subtitle size={subtitleSize}>{subTitle}</Subtitle>\n ) : (\n subTitle\n )}\n </>\n ) : null}\n {contents}\n </YStack>\n ) : (\n contents\n )}\n {themedIconAfter ? (\n <>\n <Spacer size={spaceSize} />\n {themedIconAfter}\n </>\n ) : null}\n </>\n ),\n },\n }\n}\n\nconst ListItemComponent = forwardRef<TamaguiElement, ListItemProps>((props, ref) => {\n const { props: listItemProps } = useListItem(props)\n return <ListItemFrame ref={ref} justifyContent=\"space-between\" {...listItemProps} />\n})\n\nexport const listItemStaticConfig = {\n inlineProps: new Set([\n // text props go here (can't really optimize them, but we never fully extract listItem anyway)\n 'color',\n 'fontWeight',\n 'fontSize',\n 'fontFamily',\n 'letterSpacing',\n 'textAlign',\n ]),\n}\n\nexport const ListItem = withStaticProperties(\n ListItemFrame.extractable(\n themeable(ListItemComponent, { componentName: NAME }),\n listItemStaticConfig\n ),\n {\n Text: ListItemText,\n Subtitle: ListItemSubtitle,\n }\n)\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0LY;AA1LZ,kBAYO;AACP,uBAA4B;AAC5B,6BAA2C;AAC3C,oBAAuC;AACvC,kBAAkE;AAClE,mBAAqD;AA6CrD,MAAM,OAAO;AAEN,MAAM,oBAAgB,oBAAO,8BAAgB;AAAA,EAClD,MAAM;AAAA,EACN,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,EAEf,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,WAAW,CAAC,KAAK,EAAE,OAAO,MAAM;AAC9B,eAAO;AAAA,UACL,WAAW,OAAO,KAAK;AAAA,UACvB,mBAAmB,OAAO,MAAM;AAAA,UAChC,qBAAiB,iCAAS,KAAK,EAAE;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,UACV,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,SAAS;AAAA,QAET,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,MAAM;AAAA,EACR;AACF,CAAC;AAEM,MAAM,mBAAe,oBAAO,yBAAa;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,QAAQ;AACV,CAAC;AAEM,MAAM,uBAAmB,oBAAO,cAAc;AAAA,EACnD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR,CAAC;AAEM,MAAM,oBAAgB,oBAAO,cAAc;AAAA,EAChD,MAAM;AACR,CAAC;AAEM,MAAM,cAAc,CACzB,OACA;AAAA,EACE,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV,IAII,EAAE,MAAM,cAAc,UAAU,kBAAkB,OAAO,cAAc,MACxE;AAEH,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,OACG;AAAA,EACL,IAAI;AAEJ,QAAM,uBAAmB,iCAAoB,KAAK;AAClD,QAAM,OAAO,iBAAiB,QAAQ;AACtC,QAAM,wBAAoB,qBAAQ,MAAM,EAAE;AAC1C,QAAM,eAAe,IAAI,kBAAkB;AAC3C,QAAM,eAAW,8BAAY,IAAI,IAAI;AACrC,QAAM,oBAAgB,yCAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,QAAM,CAAC,YAAY,eAAe,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,aAAa;AACzE,QAAM,gBAAY,8BAAiB,QAAQ,IAAI;AAE/C,QAAM,eAAW,gCAAmB,MAAM,gBAAgB;AAE1D,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA,GAAG;AAAA,MACH,UACE;AAAA,QACG;AAAA,uBACC;AAAA,YACG;AAAA;AAAA,cACD,4CAAC;AAAA,gBAAO,MAAM;AAAA,eAAW;AAAA;AAAA,WAC3B,IACE;AAAA,UAEH,QAAQ,SAAS,QAAQ,IACxB,6CAAC;AAAA,YAAO,MAAM;AAAA,YACX;AAAA,6BAAe,QAAQ,QAAQ,4CAAC;AAAA,gBAAM;AAAA,gBAAa;AAAA,eAAM;AAAA,cACzD,WACC;AAAA,gBACE;AAAA,8DAAC;AAAA,oBAAO,MAAI;AAAA,oBAAC,MAAM,YAAY;AAAA,mBAAO;AAAA,kBACrC,OAAO,aAAa,YAAY,eAAe,QAG9C,4CAAC;AAAA,oBAAS,MAAM;AAAA,oBAAe;AAAA,mBAAS,IAExC;AAAA;AAAA,eAEJ,IACE;AAAA,cACH;AAAA;AAAA,WACH,IAEA;AAAA,UAED,kBACC;AAAA,YACE;AAAA,0DAAC;AAAA,gBAAO,MAAM;AAAA,eAAW;AAAA,cACxB;AAAA;AAAA,WACH,IACE;AAAA;AAAA,OACN;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,MAAM,wBAAoB,yBAA0C,CAAC,OAAO,QAAQ;AAClF,QAAM,EAAE,OAAO,cAAc,IAAI,YAAY,KAAK;AAClD,SAAO,4CAAC;AAAA,IAAc;AAAA,IAAU,gBAAe;AAAA,IAAiB,GAAG;AAAA,GAAe;AACpF,CAAC;AAEM,MAAM,uBAAuB;AAAA,EAClC,aAAa,oBAAI,IAAI;AAAA,IAEnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEO,MAAM,eAAW;AAAA,EACtB,cAAc;AAAA,QACZ,uBAAU,mBAAmB,EAAE,eAAe,KAAK,CAAC;AAAA,IACpD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/index.js
CHANGED
package/dist/cjs/index.js.map
CHANGED
package/dist/esm/ListItem.js
CHANGED
|
@@ -1,47 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
var __objRest = (source, exclude) => {
|
|
18
|
-
var target = {};
|
|
19
|
-
for (var prop in source)
|
|
20
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
21
|
-
target[prop] = source[prop];
|
|
22
|
-
if (source != null && __getOwnPropSymbols)
|
|
23
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
24
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
25
|
-
target[prop] = source[prop];
|
|
26
|
-
}
|
|
27
|
-
return target;
|
|
28
|
-
};
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
29
2
|
import {
|
|
30
3
|
Spacer,
|
|
31
4
|
getSize,
|
|
32
5
|
getVariableValue,
|
|
33
6
|
styled,
|
|
34
7
|
themeable,
|
|
8
|
+
useMediaPropsActive,
|
|
35
9
|
withStaticProperties
|
|
36
10
|
} from "@tamagui/core";
|
|
37
11
|
import { getFontSize } from "@tamagui/font-size";
|
|
38
|
-
import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
|
|
12
|
+
import { getSpace, useGetThemedIcon } from "@tamagui/helpers-tamagui";
|
|
39
13
|
import { ThemeableStack, YStack } from "@tamagui/stacks";
|
|
40
14
|
import { SizableText, wrapChildrenInText } from "@tamagui/text";
|
|
41
|
-
import
|
|
42
|
-
|
|
15
|
+
import { forwardRef } from "react";
|
|
16
|
+
const NAME = "ListItem";
|
|
43
17
|
const ListItemFrame = styled(ThemeableStack, {
|
|
44
|
-
name:
|
|
18
|
+
name: NAME,
|
|
45
19
|
tag: "li",
|
|
46
20
|
alignItems: "center",
|
|
47
21
|
flexWrap: "nowrap",
|
|
@@ -55,7 +29,8 @@ const ListItemFrame = styled(ThemeableStack, {
|
|
|
55
29
|
"...size": (val, { tokens }) => {
|
|
56
30
|
return {
|
|
57
31
|
minHeight: tokens.size[val],
|
|
58
|
-
paddingHorizontal: tokens.space[val]
|
|
32
|
+
paddingHorizontal: tokens.space[val],
|
|
33
|
+
paddingVertical: getSpace(val, -2)
|
|
59
34
|
};
|
|
60
35
|
}
|
|
61
36
|
},
|
|
@@ -80,26 +55,29 @@ const ListItemFrame = styled(ThemeableStack, {
|
|
|
80
55
|
const ListItemText = styled(SizableText, {
|
|
81
56
|
name: "ListItemText",
|
|
82
57
|
color: "$color",
|
|
83
|
-
|
|
58
|
+
userSelect: "none",
|
|
84
59
|
flexGrow: 1,
|
|
85
60
|
flexShrink: 1,
|
|
86
|
-
ellipse: true
|
|
61
|
+
ellipse: true,
|
|
62
|
+
cursor: "default"
|
|
87
63
|
});
|
|
88
64
|
const ListItemSubtitle = styled(ListItemText, {
|
|
89
65
|
name: "ListItemSubtitle",
|
|
90
66
|
color: "$colorPress",
|
|
91
67
|
marginTop: "$-2",
|
|
92
68
|
opacity: 0.65,
|
|
93
|
-
ellipse: true,
|
|
94
69
|
maxWidth: "100%",
|
|
95
70
|
size: "$3"
|
|
96
71
|
});
|
|
97
72
|
const ListItemTitle = styled(ListItemText, {
|
|
98
|
-
name: "ListItemTitle"
|
|
99
|
-
ellipse: true
|
|
73
|
+
name: "ListItemTitle"
|
|
100
74
|
});
|
|
101
|
-
const
|
|
102
|
-
|
|
75
|
+
const useListItem = (props, {
|
|
76
|
+
Text = ListItemText,
|
|
77
|
+
Subtitle = ListItemSubtitle,
|
|
78
|
+
Title = ListItemTitle
|
|
79
|
+
} = { Text: ListItemText, Subtitle: ListItemSubtitle, Title: ListItemTitle }) => {
|
|
80
|
+
const {
|
|
103
81
|
children,
|
|
104
82
|
icon,
|
|
105
83
|
iconAfter,
|
|
@@ -117,50 +95,76 @@ const ListItemComponent = forwardRef((props, ref) => {
|
|
|
117
95
|
fontFamily,
|
|
118
96
|
textAlign,
|
|
119
97
|
textProps,
|
|
120
|
-
title
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"noTextWrap",
|
|
126
|
-
"theme",
|
|
127
|
-
"space",
|
|
128
|
-
"spaceFlex",
|
|
129
|
-
"scaleIcon",
|
|
130
|
-
"scaleSpace",
|
|
131
|
-
"subTitle",
|
|
132
|
-
"color",
|
|
133
|
-
"fontWeight",
|
|
134
|
-
"letterSpacing",
|
|
135
|
-
"fontSize",
|
|
136
|
-
"fontFamily",
|
|
137
|
-
"textAlign",
|
|
138
|
-
"textProps",
|
|
139
|
-
"title"
|
|
140
|
-
]);
|
|
141
|
-
const size = props.size || "$4";
|
|
98
|
+
title,
|
|
99
|
+
...rest
|
|
100
|
+
} = props;
|
|
101
|
+
const mediaActiveProps = useMediaPropsActive(props);
|
|
102
|
+
const size = mediaActiveProps.size || "$4";
|
|
142
103
|
const subtitleSizeToken = getSize(size, -3);
|
|
143
104
|
const subtitleSize = `$${subtitleSizeToken.key}`;
|
|
144
105
|
const iconSize = getFontSize(size) * scaleIcon;
|
|
145
106
|
const getThemedIcon = useGetThemedIcon({ size: iconSize, color });
|
|
146
107
|
const [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon);
|
|
147
108
|
const spaceSize = getVariableValue(iconSize) * scaleSpace;
|
|
148
|
-
const contents = wrapChildrenInText(
|
|
149
|
-
return
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
109
|
+
const contents = wrapChildrenInText(Text, mediaActiveProps);
|
|
110
|
+
return {
|
|
111
|
+
props: {
|
|
112
|
+
fontFamily,
|
|
113
|
+
...rest,
|
|
114
|
+
children: /* @__PURE__ */ jsxs(Fragment, {
|
|
115
|
+
children: [
|
|
116
|
+
themedIcon ? /* @__PURE__ */ jsxs(Fragment, {
|
|
117
|
+
children: [
|
|
118
|
+
themedIcon,
|
|
119
|
+
/* @__PURE__ */ jsx(Spacer, {
|
|
120
|
+
size: spaceSize
|
|
121
|
+
})
|
|
122
|
+
]
|
|
123
|
+
}) : null,
|
|
124
|
+
Boolean(title || subTitle) ? /* @__PURE__ */ jsxs(YStack, {
|
|
125
|
+
flex: 1,
|
|
126
|
+
children: [
|
|
127
|
+
noTextWrap === "all" ? title : /* @__PURE__ */ jsx(Title, {
|
|
128
|
+
size,
|
|
129
|
+
children: title
|
|
130
|
+
}),
|
|
131
|
+
subTitle ? /* @__PURE__ */ jsxs(Fragment, {
|
|
132
|
+
children: [
|
|
133
|
+
/* @__PURE__ */ jsx(Spacer, {
|
|
134
|
+
flex: true,
|
|
135
|
+
size: spaceSize * 0.333
|
|
136
|
+
}),
|
|
137
|
+
typeof subTitle === "string" && noTextWrap !== "all" ? /* @__PURE__ */ jsx(Subtitle, {
|
|
138
|
+
size: subtitleSize,
|
|
139
|
+
children: subTitle
|
|
140
|
+
}) : subTitle
|
|
141
|
+
]
|
|
142
|
+
}) : null,
|
|
143
|
+
contents
|
|
144
|
+
]
|
|
145
|
+
}) : contents,
|
|
146
|
+
themedIconAfter ? /* @__PURE__ */ jsxs(Fragment, {
|
|
147
|
+
children: [
|
|
148
|
+
/* @__PURE__ */ jsx(Spacer, {
|
|
149
|
+
size: spaceSize
|
|
150
|
+
}),
|
|
151
|
+
themedIconAfter
|
|
152
|
+
]
|
|
153
|
+
}) : null
|
|
154
|
+
]
|
|
155
|
+
})
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
const ListItemComponent = forwardRef((props, ref) => {
|
|
160
|
+
const { props: listItemProps } = useListItem(props);
|
|
161
|
+
return /* @__PURE__ */ jsx(ListItemFrame, {
|
|
162
|
+
ref,
|
|
163
|
+
justifyContent: "space-between",
|
|
164
|
+
...listItemProps
|
|
165
|
+
});
|
|
162
166
|
});
|
|
163
|
-
const
|
|
167
|
+
const listItemStaticConfig = {
|
|
164
168
|
inlineProps: /* @__PURE__ */ new Set([
|
|
165
169
|
"color",
|
|
166
170
|
"fontWeight",
|
|
@@ -169,15 +173,24 @@ const ListItemInner = ListItemFrame.extractable(themeable(ListItemComponent), {
|
|
|
169
173
|
"letterSpacing",
|
|
170
174
|
"textAlign"
|
|
171
175
|
])
|
|
172
|
-
}
|
|
173
|
-
const ListItem = withStaticProperties(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
};
|
|
177
|
+
const ListItem = withStaticProperties(
|
|
178
|
+
ListItemFrame.extractable(
|
|
179
|
+
themeable(ListItemComponent, { componentName: NAME }),
|
|
180
|
+
listItemStaticConfig
|
|
181
|
+
),
|
|
182
|
+
{
|
|
183
|
+
Text: ListItemText,
|
|
184
|
+
Subtitle: ListItemSubtitle
|
|
185
|
+
}
|
|
186
|
+
);
|
|
177
187
|
export {
|
|
178
188
|
ListItem,
|
|
179
189
|
ListItemFrame,
|
|
180
190
|
ListItemSubtitle,
|
|
181
|
-
ListItemText
|
|
191
|
+
ListItemText,
|
|
192
|
+
ListItemTitle,
|
|
193
|
+
listItemStaticConfig,
|
|
194
|
+
useListItem
|
|
182
195
|
};
|
|
183
196
|
//# sourceMappingURL=ListItem.js.map
|
package/dist/esm/ListItem.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ListItem.tsx"],
|
|
4
|
-
"sourcesContent": ["import {\n FontSizeTokens,\n GetProps,\n Spacer,\n
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import {\n FontSizeTokens,\n GetProps,\n Spacer,\n TamaguiElement,\n ThemeableProps,\n getSize,\n getVariableValue,\n styled,\n themeable,\n useMediaPropsActive,\n withStaticProperties,\n} from '@tamagui/core'\nimport { getFontSize } from '@tamagui/font-size'\nimport { getSpace, useGetThemedIcon } from '@tamagui/helpers-tamagui'\nimport { ThemeableStack, YStack } from '@tamagui/stacks'\nimport { SizableText, TextParentStyles, wrapChildrenInText } from '@tamagui/text'\nimport React, { FunctionComponent, forwardRef } from 'react'\n\ntype ListItemIconProps = { color?: string; size?: number }\ntype IconProp = JSX.Element | FunctionComponent<ListItemIconProps> | null\n\nexport type ListItemProps = Omit<TextParentStyles, 'TextComponent' | 'noTextWrap'> &\n GetProps<typeof ListItemFrame> &\n ThemeableProps & {\n /**\n * add icon before, passes color and size automatically if Component\n */\n icon?: IconProp\n /**\n * add icon after, passes color and size automatically if Component\n */\n iconAfter?: IconProp\n /**\n * adjust icon relative to size\n */\n /**\n * default: -1\n */\n scaleIcon?: number\n /**\n * make the spacing elements flex\n */\n spaceFlex?: number | boolean\n /**\n * adjust internal space relative to icon size\n */\n scaleSpace?: number\n /**\n * title\n */\n title?: React.ReactNode\n /**\n * subtitle\n */\n subTitle?: React.ReactNode\n /**\n * will not wrap text around `children` only, \"all\" will not wrap title or subTitle\n */\n noTextWrap?: boolean | 'all'\n }\n\nconst NAME = 'ListItem'\n\nexport const ListItemFrame = styled(ThemeableStack, {\n name: NAME,\n tag: 'li',\n alignItems: 'center',\n flexWrap: 'nowrap',\n width: '100%',\n borderColor: '$borderColor',\n maxWidth: '100%',\n overflow: 'hidden',\n flexDirection: 'row',\n\n variants: {\n size: {\n '...size': (val, { tokens }) => {\n return {\n minHeight: tokens.size[val],\n paddingHorizontal: tokens.space[val],\n paddingVertical: getSpace(val, -2),\n }\n },\n },\n\n active: {\n true: {\n hoverStyle: {\n backgroundColor: '$background',\n },\n },\n },\n\n disabled: {\n true: {\n opacity: 0.5,\n // TODO breaking types\n pointerEvents: 'none' as any,\n },\n },\n } as const,\n\n defaultVariants: {\n size: '$4',\n },\n})\n\nexport const ListItemText = styled(SizableText, {\n name: 'ListItemText',\n color: '$color',\n userSelect: 'none',\n flexGrow: 1,\n flexShrink: 1,\n ellipse: true,\n cursor: 'default',\n})\n\nexport const ListItemSubtitle = styled(ListItemText, {\n name: 'ListItemSubtitle',\n color: '$colorPress',\n marginTop: '$-2',\n opacity: 0.65,\n maxWidth: '100%',\n size: '$3',\n})\n\nexport const ListItemTitle = styled(ListItemText, {\n name: 'ListItemTitle',\n})\n\nexport const useListItem = (\n props: ListItemProps,\n {\n Text = ListItemText,\n Subtitle = ListItemSubtitle,\n Title = ListItemTitle,\n }: {\n Title?: any\n Subtitle?: any\n Text?: any\n } = { Text: ListItemText, Subtitle: ListItemSubtitle, Title: ListItemTitle }\n) => {\n // careful not to desctructure and re-order props, order is important\n const {\n children,\n icon,\n iconAfter,\n noTextWrap,\n theme: themeName,\n space,\n spaceFlex,\n scaleIcon = 1,\n scaleSpace = 1,\n subTitle,\n\n // text props\n color,\n fontWeight,\n letterSpacing,\n fontSize,\n fontFamily,\n textAlign,\n textProps,\n title,\n ...rest\n } = props\n\n const mediaActiveProps = useMediaPropsActive(props)\n const size = mediaActiveProps.size || '$4'\n const subtitleSizeToken = getSize(size, -3)\n const subtitleSize = `$${subtitleSizeToken.key}` as FontSizeTokens\n const iconSize = getFontSize(size) * scaleIcon\n const getThemedIcon = useGetThemedIcon({ size: iconSize, color })\n const [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon)\n const spaceSize = getVariableValue(iconSize) * scaleSpace\n // @ts-ignore noTextWrap = all is ok\n const contents = wrapChildrenInText(Text, mediaActiveProps)\n\n return {\n props: {\n fontFamily,\n ...rest,\n children: (\n <>\n {themedIcon ? (\n <>\n {themedIcon}\n <Spacer size={spaceSize} />\n </>\n ) : null}\n {/* helper for common title/subtitle pttern */}\n {Boolean(title || subTitle) ? (\n <YStack flex={1}>\n {noTextWrap === 'all' ? title : <Title size={size}>{title}</Title>}\n {subTitle ? (\n <>\n <Spacer flex size={spaceSize * 0.333} />\n {typeof subTitle === 'string' && noTextWrap !== 'all' ? (\n // TODO can use theme but we need to standardize to alt themes\n // or standardize on subtle colors in themes\n <Subtitle size={subtitleSize}>{subTitle}</Subtitle>\n ) : (\n subTitle\n )}\n </>\n ) : null}\n {contents}\n </YStack>\n ) : (\n contents\n )}\n {themedIconAfter ? (\n <>\n <Spacer size={spaceSize} />\n {themedIconAfter}\n </>\n ) : null}\n </>\n ),\n },\n }\n}\n\nconst ListItemComponent = forwardRef<TamaguiElement, ListItemProps>((props, ref) => {\n const { props: listItemProps } = useListItem(props)\n return <ListItemFrame ref={ref} justifyContent=\"space-between\" {...listItemProps} />\n})\n\nexport const listItemStaticConfig = {\n inlineProps: new Set([\n // text props go here (can't really optimize them, but we never fully extract listItem anyway)\n 'color',\n 'fontWeight',\n 'fontSize',\n 'fontFamily',\n 'letterSpacing',\n 'textAlign',\n ]),\n}\n\nexport const ListItem = withStaticProperties(\n ListItemFrame.extractable(\n themeable(ListItemComponent, { componentName: NAME }),\n listItemStaticConfig\n ),\n {\n Text: ListItemText,\n Subtitle: ListItemSubtitle,\n }\n)\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/index.js
CHANGED
|
File without changes
|