@draftbit/core 46.10.2 → 46.10.3-1b8e7d.2

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 (94) hide show
  1. package/lib/commonjs/components/Accordion/AccordionItem.js +23 -4
  2. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +23 -5
  3. package/lib/commonjs/components/Checkbox/CheckboxRow.js +23 -6
  4. package/lib/commonjs/components/Checkbox/context.js +1 -1
  5. package/lib/commonjs/components/Table/Table.js +123 -0
  6. package/lib/commonjs/components/Table/TableCell.js +49 -0
  7. package/lib/commonjs/components/Table/TableCommon.js +30 -0
  8. package/lib/commonjs/components/Table/TableRow.js +61 -0
  9. package/lib/commonjs/components/Table/index.js +27 -0
  10. package/lib/commonjs/index.js +19 -28
  11. package/lib/commonjs/mappings/NativeBase/Layout.js +108 -0
  12. package/lib/commonjs/mappings/Table.js +140 -0
  13. package/lib/module/components/Table/Table.js +114 -0
  14. package/lib/module/components/Table/TableCell.js +41 -0
  15. package/lib/module/components/Table/TableCommon.js +21 -0
  16. package/lib/module/components/Table/TableRow.js +53 -0
  17. package/lib/module/components/Table/index.js +3 -0
  18. package/lib/module/index.js +1 -4
  19. package/lib/module/mappings/NativeBase/Layout.js +101 -0
  20. package/lib/module/mappings/Table.js +133 -0
  21. package/lib/typescript/src/components/Table/Table.d.ts +19 -0
  22. package/lib/typescript/src/components/Table/Table.d.ts.map +1 -0
  23. package/lib/typescript/src/components/Table/TableCell.d.ts +9 -0
  24. package/lib/typescript/src/components/Table/TableCell.d.ts.map +1 -0
  25. package/lib/typescript/src/components/Table/TableCommon.d.ts +20 -0
  26. package/lib/typescript/src/components/Table/TableCommon.d.ts.map +1 -0
  27. package/lib/typescript/src/components/{RowBodyIcon.d.ts → Table/TableRow.d.ts} +7 -9
  28. package/lib/typescript/src/components/Table/TableRow.d.ts.map +1 -0
  29. package/lib/typescript/src/components/Table/index.d.ts +4 -0
  30. package/lib/typescript/src/components/Table/index.d.ts.map +1 -0
  31. package/lib/typescript/src/index.d.ts +1 -4
  32. package/lib/typescript/src/index.d.ts.map +1 -1
  33. package/lib/typescript/src/mappings/NativeBase/Layout.d.ts +133 -0
  34. package/lib/typescript/src/mappings/NativeBase/Layout.d.ts.map +1 -0
  35. package/lib/typescript/src/mappings/Table.d.ts +337 -0
  36. package/lib/typescript/src/mappings/Table.d.ts.map +1 -0
  37. package/package.json +3 -3
  38. package/src/components/Table/Table.js +93 -0
  39. package/src/components/Table/Table.tsx +176 -0
  40. package/src/components/Table/TableCell.js +31 -0
  41. package/src/components/Table/TableCell.tsx +63 -0
  42. package/src/components/Table/TableCommon.js +12 -0
  43. package/src/components/Table/TableCommon.ts +40 -0
  44. package/src/components/Table/TableRow.js +37 -0
  45. package/src/components/Table/TableRow.tsx +77 -0
  46. package/src/components/Table/index.js +3 -0
  47. package/src/components/Table/index.tsx +3 -0
  48. package/src/index.js +1 -4
  49. package/src/index.tsx +2 -4
  50. package/src/mappings/NativeBase/Layout.js +124 -0
  51. package/src/mappings/NativeBase/Layout.ts +145 -0
  52. package/src/mappings/Table.js +150 -0
  53. package/src/mappings/Table.ts +170 -0
  54. package/lib/commonjs/components/Container.js +0 -93
  55. package/lib/commonjs/components/DeprecatedFAB.js +0 -157
  56. package/lib/commonjs/components/Row.js +0 -73
  57. package/lib/commonjs/components/RowBodyIcon.js +0 -45
  58. package/lib/commonjs/components/RowHeadlineImageCaption.js +0 -45
  59. package/lib/commonjs/components/RowHeadlineImageIcon.js +0 -51
  60. package/lib/commonjs/mappings/Container.js +0 -37
  61. package/lib/module/components/Container.js +0 -83
  62. package/lib/module/components/DeprecatedFAB.js +0 -147
  63. package/lib/module/components/Row.js +0 -63
  64. package/lib/module/components/RowBodyIcon.js +0 -35
  65. package/lib/module/components/RowHeadlineImageCaption.js +0 -35
  66. package/lib/module/components/RowHeadlineImageIcon.js +0 -41
  67. package/lib/module/mappings/Container.js +0 -30
  68. package/lib/typescript/src/components/Container.d.ts +0 -21
  69. package/lib/typescript/src/components/Container.d.ts.map +0 -1
  70. package/lib/typescript/src/components/DeprecatedFAB.d.ts +0 -56
  71. package/lib/typescript/src/components/DeprecatedFAB.d.ts.map +0 -1
  72. package/lib/typescript/src/components/Row.d.ts +0 -21
  73. package/lib/typescript/src/components/Row.d.ts.map +0 -1
  74. package/lib/typescript/src/components/RowBodyIcon.d.ts.map +0 -1
  75. package/lib/typescript/src/components/RowHeadlineImageCaption.d.ts +0 -16
  76. package/lib/typescript/src/components/RowHeadlineImageCaption.d.ts.map +0 -1
  77. package/lib/typescript/src/components/RowHeadlineImageIcon.d.ts +0 -18
  78. package/lib/typescript/src/components/RowHeadlineImageIcon.d.ts.map +0 -1
  79. package/lib/typescript/src/mappings/Container.d.ts +0 -55
  80. package/lib/typescript/src/mappings/Container.d.ts.map +0 -1
  81. package/src/components/Container.js +0 -43
  82. package/src/components/Container.tsx +0 -116
  83. package/src/components/DeprecatedFAB.js +0 -114
  84. package/src/components/DeprecatedFAB.tsx +0 -231
  85. package/src/components/Row.js +0 -48
  86. package/src/components/Row.tsx +0 -108
  87. package/src/components/RowBodyIcon.js +0 -8
  88. package/src/components/RowBodyIcon.tsx +0 -47
  89. package/src/components/RowHeadlineImageCaption.js +0 -12
  90. package/src/components/RowHeadlineImageCaption.tsx +0 -49
  91. package/src/components/RowHeadlineImageIcon.js +0 -14
  92. package/src/components/RowHeadlineImageIcon.tsx +0 -61
  93. package/src/mappings/Container.js +0 -30
  94. package/src/mappings/Container.ts +0 -41
@@ -1,114 +0,0 @@
1
- import * as React from "react";
2
- import { ActivityIndicator, View, StyleSheet, Pressable, } from "react-native";
3
- import color from "color";
4
- import Config from "./Config";
5
- import Text from "./Text";
6
- import Elevation from "./Elevation";
7
- import { withTheme } from "../theming";
8
- const FAB = ({ Icon, icon, disabled = false, type = "solid", loading = false, color: colorOverride, label, onPress, elevation = 0, style, theme: { colors, disabledOpacity, roundness, typography }, ...rest }) => {
9
- let backgroundColor, borderColor, textColor, borderWidth;
10
- const buttonColor = colorOverride || colors.primary;
11
- if (type === "standard" || type === "extended" || type === "fixed") {
12
- backgroundColor = buttonColor;
13
- if (disabled) {
14
- textColor = color(colors.surface).alpha(disabledOpacity).rgb().string();
15
- }
16
- else {
17
- textColor = colors.surface;
18
- }
19
- }
20
- else {
21
- backgroundColor = "transparent";
22
- if (disabled) {
23
- textColor = color(buttonColor).alpha(disabledOpacity).rgb().string();
24
- }
25
- else {
26
- textColor = buttonColor;
27
- }
28
- }
29
- if (type === "outline") {
30
- if (disabled) {
31
- borderColor = color(buttonColor).alpha(disabledOpacity).rgb().string();
32
- }
33
- else {
34
- borderColor = buttonColor;
35
- }
36
- borderWidth = StyleSheet.hairlineWidth;
37
- }
38
- else {
39
- borderColor = "transparent";
40
- borderWidth = 0;
41
- }
42
- const buttonStyle = {
43
- backgroundColor,
44
- borderColor,
45
- borderWidth,
46
- borderRadius: roundness,
47
- alignItems: "center",
48
- justifyContent: "center",
49
- };
50
- const buttonStyles = [styles.button, buttonStyle];
51
- const contentStyle = [styles.content];
52
- const textStyle = {
53
- textAlign: "center",
54
- color: textColor,
55
- };
56
- const iconStyle = [
57
- styles.icon,
58
- {
59
- width: Config.buttonIconSize,
60
- },
61
- ];
62
- if (type === "standard" || type === "outline") {
63
- buttonStyle.width = Config.FABSize;
64
- buttonStyle.height = Config.FABSize;
65
- buttonStyle.borderRadius = Config.FABBorderRadius;
66
- contentStyle.push({
67
- width: Config.FABSize,
68
- height: Config.FABSize,
69
- });
70
- }
71
- if (type === "extended" || type === "fixed") {
72
- iconStyle.push({
73
- marginLeft: 16,
74
- marginRight: -8,
75
- });
76
- textStyle.margin = 16;
77
- }
78
- if (type === "fixed") {
79
- buttonStyles.push({
80
- height: Config.FABFixedHeight,
81
- alignSelf: "stretch",
82
- });
83
- }
84
- return (React.createElement(Elevation, { style: [{ elevation }, style] },
85
- React.createElement(Pressable, { ...rest, onPress: onPress, accessibilityState: { disabled }, accessibilityRole: "button", disabled: disabled || loading, style: buttonStyles },
86
- React.createElement(View, { style: styles.content },
87
- icon && loading !== true ? (React.createElement(View, { style: iconStyle },
88
- React.createElement(Icon, { name: icon, size: Config.buttonIconSize, color: textColor }))) : null,
89
- loading ? (React.createElement(ActivityIndicator, { size: "small", color: textColor, style: iconStyle })) : null,
90
- label ? (React.createElement(Text, { numberOfLines: 1, style: [textStyle, typography.button] }, label)) : null))));
91
- };
92
- const styles = StyleSheet.create({
93
- button: {
94
- borderStyle: "solid",
95
- },
96
- content: {
97
- flexDirection: "row",
98
- alignItems: "center",
99
- justifyContent: "center",
100
- },
101
- icon: {
102
- alignItems: "center",
103
- justifyContent: "center",
104
- width: Config.buttonIconSize,
105
- },
106
- fixed: {
107
- left: 0,
108
- right: 0,
109
- bottom: 0,
110
- height: 64,
111
- borderRadius: 0,
112
- },
113
- });
114
- export default withTheme(FAB);
@@ -1,231 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- ActivityIndicator,
4
- View,
5
- StyleSheet,
6
- StyleProp,
7
- ViewStyle,
8
- TextStyle,
9
- Pressable,
10
- PressableProps,
11
- } from "react-native";
12
- import color from "color";
13
- import Config from "./Config";
14
- import Text from "./Text";
15
- import Elevation from "./Elevation";
16
- import { withTheme } from "../theming";
17
-
18
- import type { Theme } from "../styles/DefaultTheme";
19
- import type { IconSlot } from "../interfaces/Icon";
20
-
21
- /**
22
- * A floating action button represents the primary action in an application.
23
- *
24
- * <div class="screenshots">
25
- * <img src="screenshots/fab-1.png" />
26
- * <img src="screenshots/fab-2.png" />
27
- * </div>
28
- *
29
- * ## Usage
30
- * ```js
31
- * import * as React from 'react';
32
- * import { StyleSheet } from 'react-native';
33
- * import { FAB } from '@draftbit/ui';
34
- *
35
- * const MyComponent = () => (
36
- * <FAB
37
- * style={styles.fab}
38
- * type="outline"
39
- * icon="add"
40
- * onPress={() => console.log('Pressed')}
41
- * />
42
- * );
43
- *
44
- * const styles = StyleSheet.create({
45
- * fab: {
46
- * position: 'absolute',
47
- * margin: 16,
48
- * right: 0,
49
- * bottom: 0,
50
- * },
51
- * })
52
- *
53
- * export default MyComponent;
54
- * ```
55
- */
56
-
57
- type Props = {
58
- disabled?: boolean;
59
- type?: "solid" | "extended" | "outline" | "fixed" | "standard";
60
- loading?: boolean;
61
- icon?: string;
62
- color?: string;
63
- label?: string;
64
- onPress: () => void;
65
- elevation?: number;
66
- theme: Theme;
67
- style?: StyleProp<ViewStyle>;
68
- } & PressableProps &
69
- IconSlot;
70
-
71
- const FAB: React.FC<React.PropsWithChildren<Props>> = ({
72
- Icon,
73
- icon,
74
- disabled = false,
75
- type = "solid",
76
- loading = false,
77
- color: colorOverride,
78
- label,
79
- onPress,
80
- elevation = 0,
81
- style,
82
- theme: { colors, disabledOpacity, roundness, typography },
83
- ...rest
84
- }) => {
85
- let backgroundColor, borderColor, textColor, borderWidth;
86
- const buttonColor = colorOverride || colors.primary;
87
-
88
- if (type === "standard" || type === "extended" || type === "fixed") {
89
- backgroundColor = buttonColor;
90
-
91
- if (disabled) {
92
- textColor = color(colors.surface).alpha(disabledOpacity).rgb().string();
93
- } else {
94
- textColor = colors.surface;
95
- }
96
- } else {
97
- backgroundColor = "transparent";
98
-
99
- if (disabled) {
100
- textColor = color(buttonColor).alpha(disabledOpacity).rgb().string();
101
- } else {
102
- textColor = buttonColor;
103
- }
104
- }
105
-
106
- if (type === "outline") {
107
- if (disabled) {
108
- borderColor = color(buttonColor).alpha(disabledOpacity).rgb().string();
109
- } else {
110
- borderColor = buttonColor;
111
- }
112
- borderWidth = StyleSheet.hairlineWidth;
113
- } else {
114
- borderColor = "transparent";
115
- borderWidth = 0;
116
- }
117
-
118
- const buttonStyle: StyleProp<ViewStyle> = {
119
- backgroundColor,
120
- borderColor,
121
- borderWidth,
122
- borderRadius: roundness,
123
- alignItems: "center",
124
- justifyContent: "center",
125
- };
126
-
127
- const buttonStyles: StyleProp<ViewStyle>[] = [styles.button, buttonStyle];
128
-
129
- const contentStyle: StyleProp<ViewStyle>[] = [styles.content];
130
-
131
- const textStyle: StyleProp<TextStyle> = {
132
- textAlign: "center",
133
- color: textColor,
134
- };
135
-
136
- const iconStyle: StyleProp<ViewStyle>[] = [
137
- styles.icon,
138
- {
139
- width: Config.buttonIconSize,
140
- },
141
- ];
142
-
143
- if (type === "standard" || type === "outline") {
144
- buttonStyle.width = Config.FABSize;
145
- buttonStyle.height = Config.FABSize;
146
- buttonStyle.borderRadius = Config.FABBorderRadius;
147
-
148
- contentStyle.push({
149
- width: Config.FABSize,
150
- height: Config.FABSize,
151
- });
152
- }
153
-
154
- if (type === "extended" || type === "fixed") {
155
- iconStyle.push({
156
- marginLeft: 16,
157
- marginRight: -8,
158
- });
159
-
160
- textStyle.margin = 16;
161
- }
162
-
163
- if (type === "fixed") {
164
- buttonStyles.push({
165
- height: Config.FABFixedHeight,
166
- alignSelf: "stretch",
167
- });
168
- }
169
-
170
- return (
171
- <Elevation style={[{ elevation }, style]}>
172
- <Pressable
173
- {...rest}
174
- onPress={onPress}
175
- accessibilityState={{ disabled }}
176
- accessibilityRole="button"
177
- disabled={disabled || loading}
178
- style={buttonStyles}
179
- >
180
- <View style={styles.content}>
181
- {icon && loading !== true ? (
182
- <View style={iconStyle}>
183
- <Icon
184
- name={icon}
185
- size={Config.buttonIconSize}
186
- color={textColor}
187
- />
188
- </View>
189
- ) : null}
190
- {loading ? (
191
- <ActivityIndicator
192
- size="small"
193
- color={textColor}
194
- style={iconStyle}
195
- />
196
- ) : null}
197
- {label ? (
198
- <Text numberOfLines={1} style={[textStyle, typography.button]}>
199
- {label}
200
- </Text>
201
- ) : null}
202
- </View>
203
- </Pressable>
204
- </Elevation>
205
- );
206
- };
207
-
208
- const styles = StyleSheet.create({
209
- button: {
210
- borderStyle: "solid",
211
- },
212
- content: {
213
- flexDirection: "row",
214
- alignItems: "center",
215
- justifyContent: "center",
216
- },
217
- icon: {
218
- alignItems: "center",
219
- justifyContent: "center",
220
- width: Config.buttonIconSize,
221
- },
222
- fixed: {
223
- left: 0,
224
- right: 0,
225
- bottom: 0,
226
- height: 64,
227
- borderRadius: 0,
228
- },
229
- });
230
-
231
- export default withTheme(FAB);
@@ -1,48 +0,0 @@
1
- import * as React from "react";
2
- import { View, Text, Image, StyleSheet, } from "react-native";
3
- import { withTheme } from "../theming";
4
- import Config from "./Config";
5
- const Row = ({ titleTypeStyle, titleColor, subtitleTypeStyle, subtitleColor, title, subtitle, multilineSubtitle, image, right, style, }) => {
6
- return (React.createElement(View, { style: [styles.container, { padding: 16 }, style] },
7
- React.createElement(View, { style: styles.leftContainer },
8
- image && (React.createElement(Image, { source: typeof image === "string" ? { uri: image } : image, style: {
9
- marginRight: 12,
10
- width: subtitle
11
- ? Config.rowMultiLineImageSize
12
- : Config.rowSingleLineImageSize,
13
- height: subtitle
14
- ? Config.rowMultiLineImageSize
15
- : Config.rowSingleLineImageSize,
16
- } })),
17
- React.createElement(View, { style: styles.textContainer },
18
- React.createElement(Text, { style: [
19
- titleTypeStyle,
20
- {
21
- color: titleColor,
22
- },
23
- ], numberOfLines: 1 }, title),
24
- subtitle ? (React.createElement(Text, { style: [
25
- subtitleTypeStyle,
26
- {
27
- color: subtitleColor,
28
- marginTop: 4,
29
- },
30
- ], numberOfLines: multilineSubtitle ? undefined : 1 }, subtitle)) : null)),
31
- right && right()));
32
- };
33
- const styles = StyleSheet.create({
34
- leftContainer: {
35
- flexDirection: "row",
36
- flex: 1,
37
- },
38
- container: {
39
- flexDirection: "row",
40
- justifyContent: "space-between",
41
- alignItems: "center",
42
- },
43
- textContainer: {
44
- flex: 1,
45
- justifyContent: "center",
46
- },
47
- });
48
- export default withTheme(Row);
@@ -1,108 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- View,
4
- Text,
5
- Image,
6
- ImageSourcePropType,
7
- StyleSheet,
8
- StyleProp,
9
- TextStyle,
10
- ViewStyle,
11
- } from "react-native";
12
- import { withTheme } from "../theming";
13
- import Config from "./Config";
14
- import theme from "../styles/DefaultTheme";
15
-
16
- type Props = {
17
- titleTypeStyle?: StyleProp<TextStyle>;
18
- titleColor?: string;
19
- subtitleTypeStyle?: StyleProp<TextStyle>;
20
- subtitleColor?: string;
21
- title?: string;
22
- subtitle?: string;
23
- multilineSubtitle?: boolean;
24
- image?: string | ImageSourcePropType;
25
- right?: () => React.ReactNode;
26
- style?: StyleProp<ViewStyle>;
27
- theme: typeof theme;
28
- };
29
-
30
- const Row: React.FC<React.PropsWithChildren<Props>> = ({
31
- titleTypeStyle,
32
- titleColor,
33
- subtitleTypeStyle,
34
- subtitleColor,
35
- title,
36
- subtitle,
37
- multilineSubtitle,
38
- image,
39
- right,
40
- style,
41
- }) => {
42
- return (
43
- <View style={[styles.container, { padding: 16 }, style]}>
44
- <View style={styles.leftContainer}>
45
- {image && (
46
- <Image
47
- source={typeof image === "string" ? { uri: image } : image}
48
- style={{
49
- marginRight: 12,
50
- width: subtitle
51
- ? Config.rowMultiLineImageSize
52
- : Config.rowSingleLineImageSize,
53
- height: subtitle
54
- ? Config.rowMultiLineImageSize
55
- : Config.rowSingleLineImageSize,
56
- }}
57
- />
58
- )}
59
- <View style={styles.textContainer}>
60
- <Text
61
- style={[
62
- titleTypeStyle,
63
- {
64
- color: titleColor,
65
- },
66
- ]}
67
- numberOfLines={1}
68
- >
69
- {title}
70
- </Text>
71
- {subtitle ? (
72
- <Text
73
- style={[
74
- subtitleTypeStyle,
75
- {
76
- color: subtitleColor,
77
- marginTop: 4,
78
- },
79
- ]}
80
- numberOfLines={multilineSubtitle ? undefined : 1}
81
- >
82
- {subtitle}
83
- </Text>
84
- ) : null}
85
- </View>
86
- </View>
87
- {right && right()}
88
- </View>
89
- );
90
- };
91
-
92
- const styles = StyleSheet.create({
93
- leftContainer: {
94
- flexDirection: "row",
95
- flex: 1,
96
- },
97
- container: {
98
- flexDirection: "row",
99
- justifyContent: "space-between",
100
- alignItems: "center",
101
- },
102
- textContainer: {
103
- flex: 1,
104
- justifyContent: "center",
105
- },
106
- });
107
-
108
- export default withTheme(Row);
@@ -1,8 +0,0 @@
1
- import * as React from "react";
2
- import { withTheme } from "../theming";
3
- import Row from "./Row";
4
- import Config from "./Config";
5
- const RowBodyIcon = ({ Icon, title, subtitle, icon, style, theme: { colors, typography }, }) => {
6
- return (React.createElement(Row, { titleTypeStyle: typography.body1, titleColor: colors.medium, subtitleTypeStyle: typography.subtitle2, subtitleColor: colors.light, title: title, subtitle: subtitle, right: () => (React.createElement(Icon, { name: icon, size: Config.rowSingleLineIconSize, color: colors.light, style: { marginLeft: 16 } })), style: style }));
7
- };
8
- export default withTheme(RowBodyIcon);
@@ -1,47 +0,0 @@
1
- import * as React from "react";
2
- import { withTheme } from "../theming";
3
- import type { Theme } from "../styles/DefaultTheme";
4
- import type { IconSlot } from "../interfaces/Icon";
5
-
6
- import Row from "./Row";
7
- import Config from "./Config";
8
- import { StyleProp, ViewStyle } from "react-native";
9
-
10
- type Props = {
11
- title?: string;
12
- subtitle?: string;
13
- icon: string;
14
- style?: StyleProp<ViewStyle>;
15
- theme: Theme;
16
- } & IconSlot;
17
-
18
- const RowBodyIcon: React.FC<React.PropsWithChildren<Props>> = ({
19
- Icon,
20
- title,
21
- subtitle,
22
- icon,
23
- style,
24
- theme: { colors, typography },
25
- }) => {
26
- return (
27
- <Row
28
- titleTypeStyle={typography.body1}
29
- titleColor={colors.medium}
30
- subtitleTypeStyle={typography.subtitle2}
31
- subtitleColor={colors.light}
32
- title={title}
33
- subtitle={subtitle}
34
- right={() => (
35
- <Icon
36
- name={icon}
37
- size={Config.rowSingleLineIconSize}
38
- color={colors.light}
39
- style={{ marginLeft: 16 }}
40
- />
41
- )}
42
- style={style}
43
- />
44
- );
45
- };
46
-
47
- export default withTheme(RowBodyIcon);
@@ -1,12 +0,0 @@
1
- import * as React from "react";
2
- import { Text } from "react-native";
3
- import { withTheme } from "../theming";
4
- import Row from "./Row";
5
- const RowHeadlineImageCaption = ({ title, subtitle, caption, image, style, theme: { colors, typography }, }) => {
6
- return (React.createElement(Row, { titleTypeStyle: typography.headline6, titleColor: colors.strong, subtitleTypeStyle: typography.body2, subtitleColor: colors.medium, title: title, subtitle: subtitle, image: image, right: () => (React.createElement(Text, { style: {
7
- ...typography.caption,
8
- color: colors.strong,
9
- marginLeft: 16,
10
- } }, caption)), style: style }));
11
- };
12
- export default withTheme(RowHeadlineImageCaption);
@@ -1,49 +0,0 @@
1
- import * as React from "react";
2
- import { Text, ImageSourcePropType, StyleProp, ViewStyle } from "react-native";
3
- import { withTheme } from "../theming";
4
- import Row from "./Row";
5
- import theme from "../styles/DefaultTheme";
6
-
7
- type Props = {
8
- title?: string;
9
- subtitle?: string;
10
- caption?: string;
11
- image: string | ImageSourcePropType;
12
- style?: StyleProp<ViewStyle>;
13
- theme: typeof theme;
14
- };
15
-
16
- const RowHeadlineImageCaption: React.FC<React.PropsWithChildren<Props>> = ({
17
- title,
18
- subtitle,
19
- caption,
20
- image,
21
- style,
22
- theme: { colors, typography },
23
- }) => {
24
- return (
25
- <Row
26
- titleTypeStyle={typography.headline6}
27
- titleColor={colors.strong}
28
- subtitleTypeStyle={typography.body2}
29
- subtitleColor={colors.medium}
30
- title={title}
31
- subtitle={subtitle}
32
- image={image}
33
- right={() => (
34
- <Text
35
- style={{
36
- ...typography.caption,
37
- color: colors.strong,
38
- marginLeft: 16,
39
- }}
40
- >
41
- {caption}
42
- </Text>
43
- )}
44
- style={style}
45
- />
46
- );
47
- };
48
-
49
- export default withTheme(RowHeadlineImageCaption);
@@ -1,14 +0,0 @@
1
- import * as React from "react";
2
- import { withTheme } from "../theming";
3
- import Row from "./Row";
4
- import Config from "./Config";
5
- const RowHeadlineImageIcon = ({ Icon, icon, title, image, subtitle, multilineSubtitle = false, style, theme: { colors, typography }, }) => {
6
- return (React.createElement(Row, { titleTypeStyle: typography.headline6, titleColor: colors.strong, subtitleTypeStyle: typography.body2, subtitleColor: colors.medium, title: title, subtitle: subtitle, multilineSubtitle: multilineSubtitle, image: image, right: () => (React.createElement(Icon, { name: icon, size: multilineSubtitle
7
- ? Config.rowMultiLineIconSize
8
- : Config.rowSingleLineIconSize, color: colors.light, style: {
9
- marginLeft: 16,
10
- alignSelf: multilineSubtitle ? "flex-start" : "center",
11
- marginTop: multilineSubtitle ? 4 : 0,
12
- } })), style: style }));
13
- };
14
- export default withTheme(RowHeadlineImageIcon);
@@ -1,61 +0,0 @@
1
- import * as React from "react";
2
- import { withTheme } from "../theming";
3
- import type { Theme } from "../styles/DefaultTheme";
4
- import type { IconSlot } from "../interfaces/Icon";
5
-
6
- import Row from "./Row";
7
- import Config from "./Config";
8
- import { ImageSourcePropType, StyleProp, ViewStyle } from "react-native";
9
-
10
- type Props = {
11
- title?: string;
12
- image: string | ImageSourcePropType;
13
- subtitle?: string;
14
- multilineSubtitle?: boolean;
15
- icon: string;
16
- style?: StyleProp<ViewStyle>;
17
- theme: Theme;
18
- } & IconSlot;
19
-
20
- const RowHeadlineImageIcon: React.FC<React.PropsWithChildren<Props>> = ({
21
- Icon,
22
- icon,
23
- title,
24
- image,
25
- subtitle,
26
- multilineSubtitle = false,
27
- style,
28
- theme: { colors, typography },
29
- }) => {
30
- return (
31
- <Row
32
- titleTypeStyle={typography.headline6}
33
- titleColor={colors.strong}
34
- subtitleTypeStyle={typography.body2}
35
- subtitleColor={colors.medium}
36
- title={title}
37
- subtitle={subtitle}
38
- multilineSubtitle={multilineSubtitle}
39
- image={image}
40
- right={() => (
41
- <Icon
42
- name={icon}
43
- size={
44
- multilineSubtitle
45
- ? Config.rowMultiLineIconSize
46
- : Config.rowSingleLineIconSize
47
- }
48
- color={colors.light}
49
- style={{
50
- marginLeft: 16,
51
- alignSelf: multilineSubtitle ? "flex-start" : "center",
52
- marginTop: multilineSubtitle ? 4 : 0,
53
- }}
54
- />
55
- )}
56
- style={style}
57
- />
58
- );
59
- };
60
-
61
- export default withTheme(RowHeadlineImageIcon);