@tamagui/list-item 1.74.2 → 1.74.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.
@@ -0,0 +1,191 @@
1
+ import { getFontSize } from "@tamagui/font-size";
2
+ import { getFontSized } from "@tamagui/get-font-sized";
3
+ import { getSize, getSpace } from "@tamagui/get-token";
4
+ import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
5
+ import { ThemeableStack, YStack } from "@tamagui/stacks";
6
+ import { SizableText, wrapChildrenInText } from "@tamagui/text";
7
+ import {
8
+ Spacer,
9
+ getTokens,
10
+ getVariableValue,
11
+ styled,
12
+ useProps,
13
+ withStaticProperties
14
+ } from "@tamagui/web";
15
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
+ const NAME = "ListItem", listItemVariants = {
17
+ unstyled: {
18
+ false: {
19
+ size: "$true",
20
+ alignItems: "center",
21
+ flexWrap: "nowrap",
22
+ width: "100%",
23
+ borderColor: "$borderColor",
24
+ maxWidth: "100%",
25
+ overflow: "hidden",
26
+ flexDirection: "row",
27
+ backgroundColor: "$background"
28
+ }
29
+ },
30
+ size: {
31
+ "...size": (val, { tokens }) => ({
32
+ minHeight: tokens.size[val],
33
+ paddingHorizontal: tokens.space[val],
34
+ paddingVertical: getSpace(tokens.space[val], {
35
+ shift: -4
36
+ })
37
+ })
38
+ },
39
+ active: {
40
+ true: {
41
+ hoverStyle: {
42
+ backgroundColor: "$background"
43
+ }
44
+ }
45
+ },
46
+ disabled: {
47
+ true: {
48
+ opacity: 0.5,
49
+ // TODO breaking types
50
+ pointerEvents: "none"
51
+ }
52
+ }
53
+ }, ListItemFrame = styled(ThemeableStack, {
54
+ name: NAME,
55
+ tag: "li",
56
+ variants: listItemVariants,
57
+ defaultVariants: {
58
+ unstyled: !1
59
+ }
60
+ }), ListItemText = styled(SizableText, {
61
+ name: "ListItemText",
62
+ variants: {
63
+ unstyled: {
64
+ false: {
65
+ color: "$color",
66
+ size: "$true",
67
+ flexGrow: 1,
68
+ flexShrink: 1,
69
+ ellipse: !0,
70
+ cursor: "default"
71
+ }
72
+ }
73
+ },
74
+ defaultVariants: {
75
+ unstyled: !1
76
+ }
77
+ }), ListItemSubtitle = styled(ListItemText, {
78
+ name: "ListItemSubtitle",
79
+ variants: {
80
+ unstyled: {
81
+ false: {
82
+ opacity: 0.6,
83
+ maxWidth: "100%",
84
+ color: "$color"
85
+ }
86
+ },
87
+ size: {
88
+ "...size": (val, extras) => {
89
+ const oneSmaller = getSize(val, {
90
+ shift: -1,
91
+ excludeHalfSteps: !0
92
+ });
93
+ return getFontSized(oneSmaller.key, extras);
94
+ }
95
+ }
96
+ },
97
+ defaultVariants: {
98
+ unstyled: !1
99
+ }
100
+ }), ListItemTitle = styled(ListItemText, {
101
+ name: "ListItemTitle"
102
+ }), useListItem = (propsIn, {
103
+ Text = ListItemText,
104
+ Subtitle = ListItemSubtitle,
105
+ Title = ListItemTitle
106
+ } = { Text: ListItemText, Subtitle: ListItemSubtitle, Title: ListItemTitle }) => {
107
+ const props = useProps(propsIn), {
108
+ children,
109
+ icon,
110
+ iconAfter,
111
+ noTextWrap,
112
+ theme: themeName,
113
+ space,
114
+ spaceFlex,
115
+ scaleIcon = 1,
116
+ scaleSpace = 1,
117
+ unstyled = !1,
118
+ subTitle,
119
+ title,
120
+ // text props
121
+ color,
122
+ fontWeight,
123
+ fontSize,
124
+ fontFamily,
125
+ letterSpacing,
126
+ textAlign,
127
+ ellipse,
128
+ ...rest
129
+ } = props, textProps = {
130
+ color,
131
+ fontWeight,
132
+ fontSize,
133
+ fontFamily,
134
+ letterSpacing,
135
+ textAlign,
136
+ ellipse,
137
+ children
138
+ }, size = props.size || "$true", iconSize = getFontSize(size) * scaleIcon, getThemedIcon = useGetThemedIcon({ size: iconSize, color }), [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon), spaceSize = getVariableValue(getTokens().space[props.space] ?? iconSize) * scaleSpace, contents = wrapChildrenInText(Text, textProps);
139
+ return {
140
+ props: {
141
+ ...rest,
142
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
143
+ themedIcon ? /* @__PURE__ */ jsxs(Fragment, { children: [
144
+ themedIcon,
145
+ /* @__PURE__ */ jsx(Spacer, { size: spaceSize })
146
+ ] }) : null,
147
+ title || subTitle ? /* @__PURE__ */ jsxs(YStack, { flex: 1, children: [
148
+ noTextWrap === "all" ? title : /* @__PURE__ */ jsx(Title, { size, children: title }),
149
+ subTitle ? /* @__PURE__ */ jsx(Fragment, { children: typeof subTitle == "string" && noTextWrap !== "all" ? (
150
+ // TODO can use theme but we need to standardize to alt themes
151
+ // or standardize on subtle colors in themes
152
+ /* @__PURE__ */ jsx(Subtitle, { unstyled, size, children: subTitle })
153
+ ) : subTitle }) : null,
154
+ contents
155
+ ] }) : contents,
156
+ themedIconAfter ? /* @__PURE__ */ jsxs(Fragment, { children: [
157
+ /* @__PURE__ */ jsx(Spacer, { size: spaceSize }),
158
+ themedIconAfter
159
+ ] }) : null
160
+ ] })
161
+ }
162
+ };
163
+ }, ListItemComponent = ListItemFrame.styleable(function(props, ref) {
164
+ const { props: listItemProps } = useListItem(props);
165
+ return /* @__PURE__ */ jsx(ListItemFrame, { ref, justifyContent: "space-between", ...listItemProps });
166
+ }), listItemStaticConfig = {
167
+ inlineProps: /* @__PURE__ */ new Set([
168
+ // text props go here (can't really optimize them, but we never fully extract listItem anyway)
169
+ "color",
170
+ "fontWeight",
171
+ "fontSize",
172
+ "fontFamily",
173
+ "letterSpacing",
174
+ "textAlign",
175
+ "ellipse"
176
+ ])
177
+ }, ListItem2 = withStaticProperties(ListItemComponent, {
178
+ Text: ListItemText,
179
+ Subtitle: ListItemSubtitle
180
+ });
181
+ export {
182
+ ListItem2 as ListItem,
183
+ ListItemFrame,
184
+ ListItemSubtitle,
185
+ ListItemText,
186
+ ListItemTitle,
187
+ listItemStaticConfig,
188
+ listItemVariants,
189
+ useListItem
190
+ };
191
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ListItem.tsx"],
4
+ "mappings": "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",
5
+ "names": ["ListItem"]
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./ListItem";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": "AAAA,cAAc;",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/list-item",
3
- "version": "1.74.2",
3
+ "version": "1.74.4",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -23,18 +23,18 @@
23
23
  "clean:build": "tamagui-build clean:build"
24
24
  },
25
25
  "dependencies": {
26
- "@tamagui/font-size": "1.74.2",
27
- "@tamagui/get-font-sized": "1.74.2",
28
- "@tamagui/get-token": "1.74.2",
29
- "@tamagui/helpers-tamagui": "1.74.2",
30
- "@tamagui/text": "1.74.2",
31
- "@tamagui/web": "1.74.2"
26
+ "@tamagui/font-size": "1.74.4",
27
+ "@tamagui/get-font-sized": "1.74.4",
28
+ "@tamagui/get-token": "1.74.4",
29
+ "@tamagui/helpers-tamagui": "1.74.4",
30
+ "@tamagui/text": "1.74.4",
31
+ "@tamagui/web": "1.74.4"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "react": "*"
35
35
  },
36
36
  "devDependencies": {
37
- "@tamagui/build": "1.74.2",
37
+ "@tamagui/build": "1.74.4",
38
38
  "react": "^18.2.0"
39
39
  },
40
40
  "publishConfig": {