@tamagui/list-item 1.143.0 → 2.0.0-1
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.cjs +104 -96
- package/dist/cjs/ListItem.js +95 -77
- package/dist/cjs/ListItem.js.map +2 -2
- package/dist/cjs/ListItem.native.js +105 -99
- package/dist/cjs/ListItem.native.js.map +1 -1
- package/dist/esm/ListItem.js +98 -80
- package/dist/esm/ListItem.js.map +2 -2
- package/dist/esm/ListItem.mjs +107 -94
- package/dist/esm/ListItem.mjs.map +1 -1
- package/dist/esm/ListItem.native.js +108 -97
- package/dist/esm/ListItem.native.js.map +1 -1
- package/dist/jsx/ListItem.js +98 -80
- package/dist/jsx/ListItem.js.map +2 -2
- package/dist/jsx/ListItem.mjs +107 -94
- package/dist/jsx/ListItem.mjs.map +1 -1
- package/dist/jsx/ListItem.native.js +105 -99
- package/dist/jsx/ListItem.native.js.map +1 -1
- package/package.json +10 -10
- package/src/ListItem.tsx +174 -167
- package/types/ListItem.d.ts +49 -359
- package/types/ListItem.d.ts.map +1 -1
package/dist/cjs/ListItem.cjs
CHANGED
|
@@ -20,12 +20,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
20
20
|
}), mod);
|
|
21
21
|
var ListItem_exports = {};
|
|
22
22
|
__export(ListItem_exports, {
|
|
23
|
-
ListItem: () => ListItem2
|
|
24
|
-
ListItemFrame: () => ListItemFrame,
|
|
25
|
-
ListItemSubtitle: () => ListItemSubtitle,
|
|
26
|
-
ListItemText: () => ListItemText,
|
|
27
|
-
ListItemTitle: () => ListItemTitle,
|
|
28
|
-
useListItem: () => useListItem
|
|
23
|
+
ListItem: () => ListItem2
|
|
29
24
|
});
|
|
30
25
|
module.exports = __toCommonJS(ListItem_exports);
|
|
31
26
|
var import_font_size = require("@tamagui/font-size"),
|
|
@@ -38,9 +33,18 @@ var import_font_size = require("@tamagui/font-size"),
|
|
|
38
33
|
import_web = require("@tamagui/web"),
|
|
39
34
|
import_jsx_runtime = require("react/jsx-runtime");
|
|
40
35
|
const NAME = "ListItem",
|
|
41
|
-
|
|
36
|
+
context = (0, import_web.createStyledContext)({
|
|
37
|
+
size: void 0,
|
|
38
|
+
variant: void 0,
|
|
39
|
+
color: void 0
|
|
40
|
+
}),
|
|
41
|
+
ListItemFrame = (0, import_web.styled)(import_web.View, {
|
|
42
|
+
context,
|
|
42
43
|
name: NAME,
|
|
43
44
|
tag: "li",
|
|
45
|
+
role: "listitem",
|
|
46
|
+
...import_stacks.themeableVariants.pressTheme.true,
|
|
47
|
+
...import_stacks.themeableVariants.hoverTheme.true,
|
|
44
48
|
variants: {
|
|
45
49
|
unstyled: {
|
|
46
50
|
false: {
|
|
@@ -48,13 +52,34 @@ const NAME = "ListItem",
|
|
|
48
52
|
alignItems: "center",
|
|
49
53
|
justifyContent: "space-between",
|
|
50
54
|
flexWrap: "nowrap",
|
|
51
|
-
width: "100%",
|
|
52
55
|
borderColor: "$borderColor",
|
|
56
|
+
width: "100%",
|
|
53
57
|
maxWidth: "100%",
|
|
54
58
|
overflow: "hidden",
|
|
55
59
|
flexDirection: "row",
|
|
56
60
|
backgroundColor: "$background",
|
|
57
|
-
cursor: "default"
|
|
61
|
+
cursor: "default",
|
|
62
|
+
hoverStyle: {
|
|
63
|
+
backgroundColor: "$backgroundHover"
|
|
64
|
+
},
|
|
65
|
+
pressStyle: {
|
|
66
|
+
backgroundColor: "$backgroundPress"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
variant: {
|
|
71
|
+
outlined: process.env.TAMAGUI_HEADLESS === "1" ? {} : {
|
|
72
|
+
backgroundColor: "transparent",
|
|
73
|
+
borderWidth: 1,
|
|
74
|
+
borderColor: "$borderColor",
|
|
75
|
+
hoverStyle: {
|
|
76
|
+
backgroundColor: "transparent",
|
|
77
|
+
borderColor: "$borderColorHover"
|
|
78
|
+
},
|
|
79
|
+
pressStyle: {
|
|
80
|
+
backgroundColor: "transparent",
|
|
81
|
+
borderColor: "$borderColorPress"
|
|
82
|
+
}
|
|
58
83
|
}
|
|
59
84
|
},
|
|
60
85
|
size: {
|
|
@@ -78,7 +103,6 @@ const NAME = "ListItem",
|
|
|
78
103
|
disabled: {
|
|
79
104
|
true: {
|
|
80
105
|
opacity: 0.5,
|
|
81
|
-
// TODO breaking types
|
|
82
106
|
pointerEvents: "none"
|
|
83
107
|
}
|
|
84
108
|
}
|
|
@@ -88,6 +112,7 @@ const NAME = "ListItem",
|
|
|
88
112
|
}
|
|
89
113
|
}),
|
|
90
114
|
ListItemText = (0, import_web.styled)(import_text.SizableText, {
|
|
115
|
+
context,
|
|
91
116
|
name: "ListItemText",
|
|
92
117
|
variants: {
|
|
93
118
|
unstyled: {
|
|
@@ -96,7 +121,7 @@ const NAME = "ListItem",
|
|
|
96
121
|
size: "$true",
|
|
97
122
|
flexGrow: 1,
|
|
98
123
|
flexShrink: 1,
|
|
99
|
-
|
|
124
|
+
ellipsis: !0,
|
|
100
125
|
cursor: "inherit"
|
|
101
126
|
}
|
|
102
127
|
}
|
|
@@ -107,6 +132,7 @@ const NAME = "ListItem",
|
|
|
107
132
|
}),
|
|
108
133
|
ListItemSubtitle = (0, import_web.styled)(ListItemText, {
|
|
109
134
|
name: "ListItemSubtitle",
|
|
135
|
+
context,
|
|
110
136
|
variants: {
|
|
111
137
|
unstyled: {
|
|
112
138
|
false: {
|
|
@@ -130,107 +156,89 @@ const NAME = "ListItem",
|
|
|
130
156
|
}
|
|
131
157
|
}),
|
|
132
158
|
ListItemTitle = (0, import_web.styled)(ListItemText, {
|
|
133
|
-
name: "ListItemTitle"
|
|
159
|
+
name: "ListItemTitle",
|
|
160
|
+
context,
|
|
161
|
+
variants: {
|
|
162
|
+
unstyled: {
|
|
163
|
+
false: {}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
defaultVariants: {
|
|
167
|
+
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
168
|
+
}
|
|
134
169
|
}),
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
170
|
+
ListItemIcon = props => {
|
|
171
|
+
const {
|
|
172
|
+
children,
|
|
173
|
+
size,
|
|
174
|
+
scaleIcon = 1
|
|
175
|
+
} = props,
|
|
176
|
+
styledContext = context.useStyledContext();
|
|
177
|
+
if (!styledContext) throw new Error("ListItem.Icon must be used within a ListItem");
|
|
178
|
+
const sizeToken = size ?? styledContext.size ?? "$true",
|
|
179
|
+
iconSize = (0, import_font_size.getFontSize)(sizeToken) * scaleIcon;
|
|
180
|
+
return (0, import_helpers_tamagui.useGetIcon)()(children, {
|
|
181
|
+
size: iconSize,
|
|
182
|
+
color: styledContext.color
|
|
183
|
+
});
|
|
184
|
+
},
|
|
185
|
+
ListItemComponent = ListItemFrame.styleable(function (propsIn, ref) {
|
|
186
|
+
const {
|
|
148
187
|
children,
|
|
149
188
|
icon,
|
|
150
189
|
iconAfter,
|
|
151
|
-
noTextWrap,
|
|
152
|
-
theme: themeName,
|
|
153
|
-
space,
|
|
154
|
-
spaceFlex,
|
|
155
190
|
scaleIcon = 1,
|
|
156
|
-
scaleSpace = 1,
|
|
157
191
|
unstyled = !1,
|
|
158
192
|
subTitle,
|
|
159
193
|
title,
|
|
160
|
-
|
|
161
|
-
color,
|
|
194
|
+
iconSize,
|
|
162
195
|
fontWeight,
|
|
163
|
-
fontSize,
|
|
164
|
-
fontFamily,
|
|
165
|
-
letterSpacing,
|
|
166
|
-
textAlign,
|
|
167
|
-
ellipse,
|
|
168
196
|
...rest
|
|
169
|
-
} =
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
getThemedIcon = (0, import_helpers_tamagui.useGetThemedIcon)({
|
|
183
|
-
size: iconSize,
|
|
184
|
-
color
|
|
197
|
+
} = propsIn,
|
|
198
|
+
size = propsIn.size || "$true",
|
|
199
|
+
styledContext = context.useStyledContext(),
|
|
200
|
+
getIcon = (0, import_helpers_tamagui.useGetIcon)(),
|
|
201
|
+
iconSizeNumber = (0, import_font_size.getFontSize)(iconSize || size) * scaleIcon,
|
|
202
|
+
[themedIcon, themedIconAfter] = [icon, iconAfter].map((icon2, i) => {
|
|
203
|
+
if (!icon2) return null;
|
|
204
|
+
const isBefore = i === 0;
|
|
205
|
+
return getIcon(icon2, {
|
|
206
|
+
size: iconSizeNumber,
|
|
207
|
+
color: styledContext?.color,
|
|
208
|
+
[isBefore ? "marginRight" : "marginLeft"]: `${iconSizeNumber * 0.4}%`
|
|
209
|
+
});
|
|
185
210
|
}),
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
children: [themedIcon ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
195
|
-
children: [themedIcon, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_web.Spacer, {
|
|
196
|
-
size: spaceSize
|
|
197
|
-
})]
|
|
198
|
-
}) : null, title || subTitle ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_stacks.YStack, {
|
|
199
|
-
flex: 1,
|
|
200
|
-
children: [noTextWrap === "all" ? title : /* @__PURE__ */(0, import_jsx_runtime.jsx)(Title, {
|
|
201
|
-
size,
|
|
202
|
-
children: title
|
|
203
|
-
}), subTitle ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
204
|
-
children: typeof subTitle == "string" && noTextWrap !== "all" ?
|
|
205
|
-
// TODO can use theme but we need to standardize to alt themes
|
|
206
|
-
// or standardize on subtle colors in themes
|
|
207
|
-
/* @__PURE__ */
|
|
208
|
-
(0, import_jsx_runtime.jsx)(Subtitle, {
|
|
209
|
-
unstyled,
|
|
210
|
-
size,
|
|
211
|
-
children: subTitle
|
|
212
|
-
}) : subTitle
|
|
213
|
-
}) : null, contents]
|
|
214
|
-
}) : contents, themedIconAfter ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
215
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_web.Spacer, {
|
|
216
|
-
size: spaceSize
|
|
217
|
-
}), themedIconAfter]
|
|
218
|
-
}) : null]
|
|
219
|
-
})
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
},
|
|
223
|
-
ListItemComponent = ListItemFrame.styleable(function (props, ref) {
|
|
224
|
-
const {
|
|
225
|
-
props: listItemProps
|
|
226
|
-
} = useListItem(props);
|
|
227
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ListItemFrame, {
|
|
211
|
+
wrappedChildren = (0, import_text.wrapChildrenInText)(ListItemText, {
|
|
212
|
+
children
|
|
213
|
+
}, propsIn.unstyled !== !0 ? {
|
|
214
|
+
unstyled: process.env.TAMAGUI_HEADLESS === "1",
|
|
215
|
+
fontSize: propsIn.size,
|
|
216
|
+
fontWeight
|
|
217
|
+
} : void 0);
|
|
218
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ListItemFrame, {
|
|
228
219
|
ref,
|
|
229
|
-
...
|
|
220
|
+
...rest,
|
|
221
|
+
children: [themedIcon, title || subTitle ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_stacks.YStack, {
|
|
222
|
+
flex: 1,
|
|
223
|
+
children: [title ? typeof title == "string" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ListItemTitle, {
|
|
224
|
+
unstyled,
|
|
225
|
+
size,
|
|
226
|
+
children: title
|
|
227
|
+
}) : title : null, subTitle ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
228
|
+
children: typeof subTitle == "string" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ListItemSubtitle, {
|
|
229
|
+
unstyled,
|
|
230
|
+
size,
|
|
231
|
+
children: subTitle
|
|
232
|
+
}) : subTitle
|
|
233
|
+
}) : null, wrappedChildren]
|
|
234
|
+
}) : wrappedChildren, themedIconAfter]
|
|
230
235
|
});
|
|
231
236
|
}),
|
|
232
237
|
ListItem2 = (0, import_helpers.withStaticProperties)(ListItemComponent, {
|
|
238
|
+
Apply: context.Provider,
|
|
239
|
+
Frame: ListItemFrame,
|
|
233
240
|
Text: ListItemText,
|
|
234
241
|
Subtitle: ListItemSubtitle,
|
|
242
|
+
Icon: ListItemIcon,
|
|
235
243
|
Title: ListItemTitle
|
|
236
244
|
});
|
package/dist/cjs/ListItem.js
CHANGED
|
@@ -14,18 +14,21 @@ var __export = (target, all) => {
|
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
15
|
var ListItem_exports = {};
|
|
16
16
|
__export(ListItem_exports, {
|
|
17
|
-
ListItem: () => ListItem2
|
|
18
|
-
ListItemFrame: () => ListItemFrame,
|
|
19
|
-
ListItemSubtitle: () => ListItemSubtitle,
|
|
20
|
-
ListItemText: () => ListItemText,
|
|
21
|
-
ListItemTitle: () => ListItemTitle,
|
|
22
|
-
useListItem: () => useListItem
|
|
17
|
+
ListItem: () => ListItem2
|
|
23
18
|
});
|
|
24
19
|
module.exports = __toCommonJS(ListItem_exports);
|
|
25
20
|
var import_font_size = require("@tamagui/font-size"), import_get_font_sized = require("@tamagui/get-font-sized"), import_get_token = require("@tamagui/get-token"), import_helpers = require("@tamagui/helpers"), import_helpers_tamagui = require("@tamagui/helpers-tamagui"), import_stacks = require("@tamagui/stacks"), import_text = require("@tamagui/text"), import_web = require("@tamagui/web"), import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
const NAME = "ListItem",
|
|
21
|
+
const NAME = "ListItem", context = (0, import_web.createStyledContext)({
|
|
22
|
+
size: void 0,
|
|
23
|
+
variant: void 0,
|
|
24
|
+
color: void 0
|
|
25
|
+
}), ListItemFrame = (0, import_web.styled)(import_web.View, {
|
|
26
|
+
context,
|
|
27
27
|
name: NAME,
|
|
28
28
|
tag: "li",
|
|
29
|
+
role: "listitem",
|
|
30
|
+
...import_stacks.themeableVariants.pressTheme.true,
|
|
31
|
+
...import_stacks.themeableVariants.hoverTheme.true,
|
|
29
32
|
variants: {
|
|
30
33
|
unstyled: {
|
|
31
34
|
false: {
|
|
@@ -33,13 +36,34 @@ const NAME = "ListItem", ListItemFrame = (0, import_web.styled)(import_stacks.Th
|
|
|
33
36
|
alignItems: "center",
|
|
34
37
|
justifyContent: "space-between",
|
|
35
38
|
flexWrap: "nowrap",
|
|
36
|
-
width: "100%",
|
|
37
39
|
borderColor: "$borderColor",
|
|
40
|
+
width: "100%",
|
|
38
41
|
maxWidth: "100%",
|
|
39
42
|
overflow: "hidden",
|
|
40
43
|
flexDirection: "row",
|
|
41
44
|
backgroundColor: "$background",
|
|
42
|
-
cursor: "default"
|
|
45
|
+
cursor: "default",
|
|
46
|
+
hoverStyle: {
|
|
47
|
+
backgroundColor: "$backgroundHover"
|
|
48
|
+
},
|
|
49
|
+
pressStyle: {
|
|
50
|
+
backgroundColor: "$backgroundPress"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
variant: {
|
|
55
|
+
outlined: process.env.TAMAGUI_HEADLESS === "1" ? {} : {
|
|
56
|
+
backgroundColor: "transparent",
|
|
57
|
+
borderWidth: 1,
|
|
58
|
+
borderColor: "$borderColor",
|
|
59
|
+
hoverStyle: {
|
|
60
|
+
backgroundColor: "transparent",
|
|
61
|
+
borderColor: "$borderColorHover"
|
|
62
|
+
},
|
|
63
|
+
pressStyle: {
|
|
64
|
+
backgroundColor: "transparent",
|
|
65
|
+
borderColor: "$borderColorPress"
|
|
66
|
+
}
|
|
43
67
|
}
|
|
44
68
|
},
|
|
45
69
|
size: {
|
|
@@ -61,7 +85,6 @@ const NAME = "ListItem", ListItemFrame = (0, import_web.styled)(import_stacks.Th
|
|
|
61
85
|
disabled: {
|
|
62
86
|
true: {
|
|
63
87
|
opacity: 0.5,
|
|
64
|
-
// TODO breaking types
|
|
65
88
|
pointerEvents: "none"
|
|
66
89
|
}
|
|
67
90
|
}
|
|
@@ -70,6 +93,7 @@ const NAME = "ListItem", ListItemFrame = (0, import_web.styled)(import_stacks.Th
|
|
|
70
93
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
71
94
|
}
|
|
72
95
|
}), ListItemText = (0, import_web.styled)(import_text.SizableText, {
|
|
96
|
+
context,
|
|
73
97
|
name: "ListItemText",
|
|
74
98
|
variants: {
|
|
75
99
|
unstyled: {
|
|
@@ -78,7 +102,7 @@ const NAME = "ListItem", ListItemFrame = (0, import_web.styled)(import_stacks.Th
|
|
|
78
102
|
size: "$true",
|
|
79
103
|
flexGrow: 1,
|
|
80
104
|
flexShrink: 1,
|
|
81
|
-
|
|
105
|
+
ellipsis: !0,
|
|
82
106
|
cursor: "inherit"
|
|
83
107
|
}
|
|
84
108
|
}
|
|
@@ -88,6 +112,7 @@ const NAME = "ListItem", ListItemFrame = (0, import_web.styled)(import_stacks.Th
|
|
|
88
112
|
}
|
|
89
113
|
}), ListItemSubtitle = (0, import_web.styled)(ListItemText, {
|
|
90
114
|
name: "ListItemSubtitle",
|
|
115
|
+
context,
|
|
91
116
|
variants: {
|
|
92
117
|
unstyled: {
|
|
93
118
|
false: {
|
|
@@ -110,78 +135,71 @@ const NAME = "ListItem", ListItemFrame = (0, import_web.styled)(import_stacks.Th
|
|
|
110
135
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
111
136
|
}
|
|
112
137
|
}), ListItemTitle = (0, import_web.styled)(ListItemText, {
|
|
113
|
-
name: "ListItemTitle"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
} = { Text: ListItemText, Subtitle: ListItemSubtitle, Title: ListItemTitle }) => {
|
|
119
|
-
const props = (0, import_web.useProps)(propsIn, {
|
|
120
|
-
resolveValues: "none"
|
|
121
|
-
}), {
|
|
122
|
-
children,
|
|
123
|
-
icon,
|
|
124
|
-
iconAfter,
|
|
125
|
-
noTextWrap,
|
|
126
|
-
theme: themeName,
|
|
127
|
-
space,
|
|
128
|
-
spaceFlex,
|
|
129
|
-
scaleIcon = 1,
|
|
130
|
-
scaleSpace = 1,
|
|
131
|
-
unstyled = !1,
|
|
132
|
-
subTitle,
|
|
133
|
-
title,
|
|
134
|
-
// text props
|
|
135
|
-
color,
|
|
136
|
-
fontWeight,
|
|
137
|
-
fontSize,
|
|
138
|
-
fontFamily,
|
|
139
|
-
letterSpacing,
|
|
140
|
-
textAlign,
|
|
141
|
-
ellipse,
|
|
142
|
-
...rest
|
|
143
|
-
} = props, textProps = {
|
|
144
|
-
color,
|
|
145
|
-
fontWeight,
|
|
146
|
-
fontSize,
|
|
147
|
-
fontFamily,
|
|
148
|
-
letterSpacing,
|
|
149
|
-
textAlign,
|
|
150
|
-
ellipse,
|
|
151
|
-
children
|
|
152
|
-
}, size = props.size || "$true", iconSize = (0, import_font_size.getFontSize)(size) * scaleIcon, getThemedIcon = (0, import_helpers_tamagui.useGetThemedIcon)({ size: iconSize, color }), [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon), sizeToken = (0, import_web.getTokens)().space[props.space] ?? iconSize, spaceSize = (0, import_web.getVariableValue)(sizeToken) * scaleSpace, contents = (0, import_text.wrapChildrenInText)(Text, textProps);
|
|
153
|
-
return {
|
|
154
|
-
props: {
|
|
155
|
-
...rest,
|
|
156
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
157
|
-
themedIcon ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
158
|
-
themedIcon,
|
|
159
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web.Spacer, { size: spaceSize })
|
|
160
|
-
] }) : null,
|
|
161
|
-
title || subTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_stacks.YStack, { flex: 1, children: [
|
|
162
|
-
noTextWrap === "all" ? title : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Title, { size, children: title }),
|
|
163
|
-
subTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: typeof subTitle == "string" && noTextWrap !== "all" ? (
|
|
164
|
-
// TODO can use theme but we need to standardize to alt themes
|
|
165
|
-
// or standardize on subtle colors in themes
|
|
166
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Subtitle, { unstyled, size, children: subTitle })
|
|
167
|
-
) : subTitle }) : null,
|
|
168
|
-
contents
|
|
169
|
-
] }) : contents,
|
|
170
|
-
themedIconAfter ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
171
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web.Spacer, { size: spaceSize }),
|
|
172
|
-
themedIconAfter
|
|
173
|
-
] }) : null
|
|
174
|
-
] })
|
|
138
|
+
name: "ListItemTitle",
|
|
139
|
+
context,
|
|
140
|
+
variants: {
|
|
141
|
+
unstyled: {
|
|
142
|
+
false: {}
|
|
175
143
|
}
|
|
176
|
-
}
|
|
144
|
+
},
|
|
145
|
+
defaultVariants: {
|
|
146
|
+
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
147
|
+
}
|
|
148
|
+
}), ListItemIcon = (props) => {
|
|
149
|
+
const { children, size, scaleIcon = 1 } = props, styledContext = context.useStyledContext();
|
|
150
|
+
if (!styledContext)
|
|
151
|
+
throw new Error("ListItem.Icon must be used within a ListItem");
|
|
152
|
+
const sizeToken = size ?? styledContext.size ?? "$true", iconSize = (0, import_font_size.getFontSize)(sizeToken) * scaleIcon;
|
|
153
|
+
return (0, import_helpers_tamagui.useGetIcon)()(children, {
|
|
154
|
+
size: iconSize,
|
|
155
|
+
color: styledContext.color
|
|
156
|
+
});
|
|
177
157
|
}, ListItemComponent = ListItemFrame.styleable(
|
|
178
|
-
function(
|
|
179
|
-
const {
|
|
180
|
-
|
|
158
|
+
function(propsIn, ref) {
|
|
159
|
+
const {
|
|
160
|
+
children,
|
|
161
|
+
icon,
|
|
162
|
+
iconAfter,
|
|
163
|
+
scaleIcon = 1,
|
|
164
|
+
unstyled = !1,
|
|
165
|
+
subTitle,
|
|
166
|
+
title,
|
|
167
|
+
iconSize,
|
|
168
|
+
fontWeight,
|
|
169
|
+
...rest
|
|
170
|
+
} = propsIn, size = propsIn.size || "$true", styledContext = context.useStyledContext(), getIcon = (0, import_helpers_tamagui.useGetIcon)(), iconSizeNumber = (0, import_font_size.getFontSize)(iconSize || size) * scaleIcon, [themedIcon, themedIconAfter] = [icon, iconAfter].map((icon2, i) => {
|
|
171
|
+
if (!icon2) return null;
|
|
172
|
+
const isBefore = i === 0;
|
|
173
|
+
return getIcon(icon2, {
|
|
174
|
+
size: iconSizeNumber,
|
|
175
|
+
color: styledContext?.color,
|
|
176
|
+
[isBefore ? "marginRight" : "marginLeft"]: `${iconSizeNumber * 0.4}%`
|
|
177
|
+
});
|
|
178
|
+
}), wrappedChildren = (0, import_text.wrapChildrenInText)(
|
|
179
|
+
ListItemText,
|
|
180
|
+
{ children },
|
|
181
|
+
propsIn.unstyled !== !0 ? {
|
|
182
|
+
unstyled: process.env.TAMAGUI_HEADLESS === "1",
|
|
183
|
+
fontSize: propsIn.size,
|
|
184
|
+
fontWeight
|
|
185
|
+
} : void 0
|
|
186
|
+
);
|
|
187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(ListItemFrame, { ref, ...rest, children: [
|
|
188
|
+
themedIcon,
|
|
189
|
+
title || subTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_stacks.YStack, { flex: 1, children: [
|
|
190
|
+
title ? typeof title == "string" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ListItemTitle, { unstyled, size, children: title }) : title : null,
|
|
191
|
+
subTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: typeof subTitle == "string" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ListItemSubtitle, { unstyled, size, children: subTitle }) : subTitle }) : null,
|
|
192
|
+
wrappedChildren
|
|
193
|
+
] }) : wrappedChildren,
|
|
194
|
+
themedIconAfter
|
|
195
|
+
] });
|
|
181
196
|
}
|
|
182
197
|
), ListItem2 = (0, import_helpers.withStaticProperties)(ListItemComponent, {
|
|
198
|
+
Apply: context.Provider,
|
|
199
|
+
Frame: ListItemFrame,
|
|
183
200
|
Text: ListItemText,
|
|
184
201
|
Subtitle: ListItemSubtitle,
|
|
202
|
+
Icon: ListItemIcon,
|
|
185
203
|
Title: ListItemTitle
|
|
186
204
|
});
|
|
187
205
|
//# sourceMappingURL=ListItem.js.map
|
package/dist/cjs/ListItem.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ListItem.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,kBAAAA;AAAA
|
|
5
|
-
"names": ["ListItem"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ListItem", "icon"]
|
|
6
6
|
}
|