@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.
Files changed (46) hide show
  1. package/dist/cjs/ListItem.js +99 -84
  2. package/dist/cjs/ListItem.js.map +2 -2
  3. package/dist/cjs/index.js +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/esm/ListItem.js +96 -83
  6. package/dist/esm/ListItem.js.map +2 -2
  7. package/dist/esm/index.js +0 -0
  8. package/dist/esm/index.js.map +1 -1
  9. package/dist/jsx/ListItem.js +63 -35
  10. package/dist/jsx/ListItem.js.map +2 -2
  11. package/dist/jsx/index.js +0 -0
  12. package/dist/jsx/index.js.map +1 -1
  13. package/package.json +11 -9
  14. package/src/ListItem.tsx +126 -75
  15. package/types/ListItem.d.ts +744 -167
  16. package/types/index.d.ts +0 -0
  17. package/dist/cjs/Button.js +0 -249
  18. package/dist/cjs/Button.js.map +0 -7
  19. package/dist/cjs/useCurrentColor.js +0 -41
  20. package/dist/cjs/useCurrentColor.js.map +0 -7
  21. package/dist/cjs/useGetThemedIcon.js +0 -45
  22. package/dist/cjs/useGetThemedIcon.js.map +0 -7
  23. package/dist/cjs/wrapStringChildrenInText.js +0 -111
  24. package/dist/cjs/wrapStringChildrenInText.js.map +0 -7
  25. package/dist/esm/Button.js +0 -190
  26. package/dist/esm/Button.js.map +0 -7
  27. package/dist/esm/useCurrentColor.js +0 -19
  28. package/dist/esm/useCurrentColor.js.map +0 -7
  29. package/dist/esm/useGetThemedIcon.js +0 -20
  30. package/dist/esm/useGetThemedIcon.js.map +0 -7
  31. package/dist/esm/wrapStringChildrenInText.js +0 -53
  32. package/dist/esm/wrapStringChildrenInText.js.map +0 -7
  33. package/dist/jsx/Button.js +0 -177
  34. package/dist/jsx/useCurrentColor.js +0 -18
  35. package/dist/jsx/useGetThemedIcon.js +0 -19
  36. package/dist/jsx/wrapStringChildrenInText.js +0 -47
  37. package/types/Button.d.ts +0 -127
  38. package/types/Button.d.ts.map +0 -1
  39. package/types/ListItem.d.ts.map +0 -1
  40. package/types/index.d.ts.map +0 -1
  41. package/types/useCurrentColor.d.ts +0 -5
  42. package/types/useCurrentColor.d.ts.map +0 -1
  43. package/types/useGetThemedIcon.d.ts +0 -6
  44. package/types/useGetThemedIcon.d.ts.map +0 -1
  45. package/types/wrapStringChildrenInText.d.ts +0 -8
  46. package/types/wrapStringChildrenInText.d.ts.map +0 -1
@@ -1,35 +1,8 @@
1
- var __create = Object.create;
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 = __toESM(require("react"));
61
- import_react.default["createElement"];
36
+ var import_react = require("react");
37
+ const NAME = "ListItem";
62
38
  const ListItemFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
63
- name: "ListItem",
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
- selectable: false,
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 ListItemComponent = (0, import_react.forwardRef)((props, ref) => {
121
- const _a = props, {
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
- } = _a, rest = __objRest(_a, [
141
- "children",
142
- "icon",
143
- "iconAfter",
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)(ListItemText, props);
168
- return /* @__PURE__ */ import_react.default.createElement(ListItemFrame, __spreadValues({
169
- fontFamily,
170
- ref
171
- }, rest), themedIcon ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, themedIcon, /* @__PURE__ */ import_react.default.createElement(import_core.Spacer, {
172
- size: spaceSize
173
- })) : null, Boolean(title || subTitle) ? /* @__PURE__ */ import_react.default.createElement(import_stacks.YStack, {
174
- flex: 1
175
- }, /* @__PURE__ */ import_react.default.createElement(ListItemTitle, null, title), subTitle ? typeof subTitle === "string" ? /* @__PURE__ */ import_react.default.createElement(ListItemSubtitle, {
176
- size: subtitleSize
177
- }, subTitle) : subTitle : null, contents) : contents, themedIconAfter ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_core.Spacer, {
178
- flex: true,
179
- size: spaceSize
180
- }), themedIconAfter) : null);
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 ListItemInner = ListItemFrame.extractable((0, import_core.themeable)(ListItemComponent), {
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)(ListItemInner, {
193
- Text: ListItemText,
194
- Subtitle: ListItemSubtitle
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
@@ -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 TamaguiComponent,\n ThemeableProps,\n getSize,\n getVariableValue,\n styled,\n themeable,\n withStaticProperties,\n} from '@tamagui/core'\nimport { getFontSize } from '@tamagui/font-size'\nimport { TextParentStyles, useGetThemedIcon } from '@tamagui/helpers-tamagui'\nimport { ThemeableStack, YStack } from '@tamagui/stacks'\nimport { SizableText, wrapChildrenInText } from '@tamagui/text'\nimport React, { FunctionComponent, forwardRef } from 'react'\nimport { View } from 'react-native'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\ntype ListItemIconProps = { color?: string; size?: number }\ntype IconProp = JSX.Element | FunctionComponent<ListItemIconProps> | null\n\nexport type ListItemProps = Omit<TextParentStyles, 'TextComponent'> &\n GetProps<typeof ListItemFrame> &\n ThemeableProps & {\n // add icon before, passes color and size automatically if Component\n icon?: IconProp\n // add icon after, passes color and size automatically if Component\n iconAfter?: IconProp\n // adjust icon relative to size\n // default: -1\n scaleIcon?: number\n // make the spacing elements flex\n spaceFlex?: number | boolean\n // adjust internal space relative to icon size\n scaleSpace?: number\n // title\n title?: React.ReactNode\n // subtitle\n subTitle?: React.ReactNode\n }\n\nexport const ListItemFrame = styled(ThemeableStack, {\n name: 'ListItem',\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 }\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 },\n\n defaultVariants: {\n size: '$4',\n },\n})\n\nexport const ListItemText = styled(SizableText, {\n name: 'ListItemText',\n color: '$color',\n selectable: false,\n flexGrow: 1,\n flexShrink: 1,\n ellipse: true,\n})\n\nexport const ListItemSubtitle = styled(ListItemText, {\n name: 'ListItemSubtitle',\n color: '$colorPress',\n marginTop: '$-2',\n opacity: 0.65,\n ellipse: true,\n maxWidth: '100%',\n size: '$3',\n})\n\nconst ListItemTitle = styled(ListItemText, {\n name: 'ListItemTitle',\n ellipse: true,\n})\n\nconst ListItemComponent = forwardRef((props: ListItemProps, ref) => {\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 as ListItemProps\n\n const size = props.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 const contents = wrapChildrenInText(ListItemText, props)\n\n return (\n <ListItemFrame fontFamily={fontFamily} ref={ref as any} {...rest}>\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 <ListItemTitle>{title}</ListItemTitle>\n {subTitle ? (\n typeof subTitle === 'string' ? (\n // TODO can use theme but we need to standardize to alt themes\n // or standardize on subtle colors in themes\n <ListItemSubtitle size={subtitleSize}>{subTitle}</ListItemSubtitle>\n ) : (\n subTitle\n )\n ) : null}\n {contents}\n </YStack>\n ) : (\n contents\n )}\n {themedIconAfter ? (\n <>\n <Spacer flex size={spaceSize} />\n {themedIconAfter}\n </>\n ) : null}\n </ListItemFrame>\n )\n})\n\nconst ListItemInner: TamaguiComponent<ListItemProps, HTMLLIElement | View> =\n ListItemFrame.extractable(themeable(ListItemComponent as any) as any, {\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(ListItemInner, {\n Text: ListItemText,\n Subtitle: ListItemSubtitle,\n})\n"],
5
- "mappings": "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",
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/cjs/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './ListItem'\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,uBAAd;",
5
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,uBAAd;",
6
6
  "names": []
7
7
  }
@@ -1,47 +1,21 @@
1
- var __defProp = Object.defineProperty;
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 React, { forwardRef } from "react";
42
- React["createElement"];
15
+ import { forwardRef } from "react";
16
+ const NAME = "ListItem";
43
17
  const ListItemFrame = styled(ThemeableStack, {
44
- name: "ListItem",
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
- selectable: false,
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 ListItemComponent = forwardRef((props, ref) => {
102
- const _a = props, {
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
- } = _a, rest = __objRest(_a, [
122
- "children",
123
- "icon",
124
- "iconAfter",
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(ListItemText, props);
149
- return /* @__PURE__ */ React.createElement(ListItemFrame, __spreadValues({
150
- fontFamily,
151
- ref
152
- }, rest), themedIcon ? /* @__PURE__ */ React.createElement(React.Fragment, null, themedIcon, /* @__PURE__ */ React.createElement(Spacer, {
153
- size: spaceSize
154
- })) : null, Boolean(title || subTitle) ? /* @__PURE__ */ React.createElement(YStack, {
155
- flex: 1
156
- }, /* @__PURE__ */ React.createElement(ListItemTitle, null, title), subTitle ? typeof subTitle === "string" ? /* @__PURE__ */ React.createElement(ListItemSubtitle, {
157
- size: subtitleSize
158
- }, subTitle) : subTitle : null, contents) : contents, themedIconAfter ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Spacer, {
159
- flex: true,
160
- size: spaceSize
161
- }), themedIconAfter) : null);
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 ListItemInner = ListItemFrame.extractable(themeable(ListItemComponent), {
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(ListItemInner, {
174
- Text: ListItemText,
175
- Subtitle: ListItemSubtitle
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
@@ -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 TamaguiComponent,\n ThemeableProps,\n getSize,\n getVariableValue,\n styled,\n themeable,\n withStaticProperties,\n} from '@tamagui/core'\nimport { getFontSize } from '@tamagui/font-size'\nimport { TextParentStyles, useGetThemedIcon } from '@tamagui/helpers-tamagui'\nimport { ThemeableStack, YStack } from '@tamagui/stacks'\nimport { SizableText, wrapChildrenInText } from '@tamagui/text'\nimport React, { FunctionComponent, forwardRef } from 'react'\nimport { View } from 'react-native'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\ntype ListItemIconProps = { color?: string; size?: number }\ntype IconProp = JSX.Element | FunctionComponent<ListItemIconProps> | null\n\nexport type ListItemProps = Omit<TextParentStyles, 'TextComponent'> &\n GetProps<typeof ListItemFrame> &\n ThemeableProps & {\n // add icon before, passes color and size automatically if Component\n icon?: IconProp\n // add icon after, passes color and size automatically if Component\n iconAfter?: IconProp\n // adjust icon relative to size\n // default: -1\n scaleIcon?: number\n // make the spacing elements flex\n spaceFlex?: number | boolean\n // adjust internal space relative to icon size\n scaleSpace?: number\n // title\n title?: React.ReactNode\n // subtitle\n subTitle?: React.ReactNode\n }\n\nexport const ListItemFrame = styled(ThemeableStack, {\n name: 'ListItem',\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 }\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 },\n\n defaultVariants: {\n size: '$4',\n },\n})\n\nexport const ListItemText = styled(SizableText, {\n name: 'ListItemText',\n color: '$color',\n selectable: false,\n flexGrow: 1,\n flexShrink: 1,\n ellipse: true,\n})\n\nexport const ListItemSubtitle = styled(ListItemText, {\n name: 'ListItemSubtitle',\n color: '$colorPress',\n marginTop: '$-2',\n opacity: 0.65,\n ellipse: true,\n maxWidth: '100%',\n size: '$3',\n})\n\nconst ListItemTitle = styled(ListItemText, {\n name: 'ListItemTitle',\n ellipse: true,\n})\n\nconst ListItemComponent = forwardRef((props: ListItemProps, ref) => {\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 as ListItemProps\n\n const size = props.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 const contents = wrapChildrenInText(ListItemText, props)\n\n return (\n <ListItemFrame fontFamily={fontFamily} ref={ref as any} {...rest}>\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 <ListItemTitle>{title}</ListItemTitle>\n {subTitle ? (\n typeof subTitle === 'string' ? (\n // TODO can use theme but we need to standardize to alt themes\n // or standardize on subtle colors in themes\n <ListItemSubtitle size={subtitleSize}>{subTitle}</ListItemSubtitle>\n ) : (\n subTitle\n )\n ) : null}\n {contents}\n </YStack>\n ) : (\n contents\n )}\n {themedIconAfter ? (\n <>\n <Spacer flex size={spaceSize} />\n {themedIconAfter}\n </>\n ) : null}\n </ListItemFrame>\n )\n})\n\nconst ListItemInner: TamaguiComponent<ListItemProps, HTMLLIElement | View> =\n ListItemFrame.extractable(themeable(ListItemComponent as any) as any, {\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(ListItemInner, {\n Text: ListItemText,\n Subtitle: ListItemSubtitle,\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AACA;AACA;AACA;AACA;AAIA,MAAM;AAyBC,MAAM,gBAAgB,OAAO,gBAAgB;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,aAAa;AAC9B,eAAO;AAAA,UACL,WAAW,OAAO,KAAK;AAAA,UACvB,mBAAmB,OAAO,MAAM;AAAA,QAClC;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,eAAe,OAAO,aAAa;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AACX,CAAC;AAEM,MAAM,mBAAmB,OAAO,cAAc;AAAA,EACnD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR,CAAC;AAED,MAAM,gBAAgB,OAAO,cAAc;AAAA,EACzC,MAAM;AAAA,EACN,SAAS;AACX,CAAC;AAED,MAAM,oBAAoB,WAAW,CAAC,OAAsB,QAAQ;AAElE,QAsBI,YArBF;AAAA;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,MAEE,IADC,iBACD,IADC;AAAA,IApBH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIF,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,oBAAoB,QAAQ,MAAM,EAAE;AAC1C,QAAM,eAAe,IAAI,kBAAkB;AAC3C,QAAM,WAAW,YAAY,IAAI,IAAI;AACrC,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,QAAM,CAAC,YAAY,mBAAmB,CAAC,MAAM,SAAS,EAAE,IAAI,aAAa;AACzE,QAAM,YAAY,iBAAiB,QAAQ,IAAI;AAC/C,QAAM,WAAW,mBAAmB,cAAc,KAAK;AAEvD,SACE,oCAAC;AAAA,IAAc;AAAA,IAAwB;AAAA,KAAqB,OACzD,aACC,0DACG,YACD,oCAAC;AAAA,IAAO,MAAM;AAAA,GAAW,CAC3B,IACE,MAEH,QAAQ,SAAS,QAAQ,IACxB,oCAAC;AAAA,IAAO,MAAM;AAAA,KACZ,oCAAC,qBAAe,KAAM,GACrB,WACC,OAAO,aAAa,WAGlB,oCAAC;AAAA,IAAiB,MAAM;AAAA,KAAe,QAAS,IAEhD,WAEA,MACH,QACH,IAEA,UAED,kBACC,0DACE,oCAAC;AAAA,IAAO,MAAI;AAAA,IAAC,MAAM;AAAA,GAAW,GAC7B,eACH,IACE,IACN;AAEJ,CAAC;AAED,MAAM,gBACJ,cAAc,YAAY,UAAU,iBAAwB,GAAU;AAAA,EACpE,aAAa,oBAAI,IAAI;AAAA,IAEnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC;AAEI,MAAM,WAAW,qBAAqB,eAAe;AAAA,EAC1D,MAAM;AAAA,EACN,UAAU;AACZ,CAAC;",
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
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './ListItem'\n"],
5
- "mappings": "AAAA;",
5
+ "mappings": "AAAA,cAAc;",
6
6
  "names": []
7
7
  }