@draftbit/core 46.2.4-0e692a.5 → 46.2.4-25c40a.5

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 (78) hide show
  1. package/lib/commonjs/components/Banner.js +24 -4
  2. package/lib/commonjs/components/Config.js +1 -1
  3. package/lib/commonjs/components/DeprecatedCardWrapper.js +17 -2
  4. package/lib/commonjs/components/Picker/PickerComponent.android.js +24 -5
  5. package/lib/commonjs/components/RadioButton/RadioButtonFieldGroup.js +11 -2
  6. package/lib/commonjs/components/{Svg.js → SVG.js} +7 -6
  7. package/lib/commonjs/components/Table/index.js +55 -0
  8. package/lib/commonjs/components/Table/table.js +35 -0
  9. package/lib/commonjs/components/Table/tableCell.js +50 -0
  10. package/lib/commonjs/components/Table/tableHeader.js +41 -0
  11. package/lib/commonjs/components/Table/tablePaginator.js +17 -0
  12. package/lib/commonjs/components/Table/tableRow.js +47 -0
  13. package/lib/commonjs/components/Table/tableTitle.js +60 -0
  14. package/lib/commonjs/components/Touchable.js +16 -2
  15. package/lib/commonjs/constants.js +1 -1
  16. package/lib/commonjs/index.js +45 -7
  17. package/lib/commonjs/mappings/{Svg.js → SVG.js} +0 -1
  18. package/lib/commonjs/mappings/StarRating.js +6 -2
  19. package/lib/commonjs/mappings/table.js +103 -0
  20. package/lib/commonjs/utilities.js +2 -2
  21. package/lib/module/components/Config.js +1 -1
  22. package/lib/module/components/Portal/PortalManager.js +20 -12
  23. package/lib/module/components/{Svg.js → SVG.js} +7 -6
  24. package/lib/module/components/Table/index.js +6 -0
  25. package/lib/module/components/Table/table.js +23 -0
  26. package/lib/module/components/Table/tableCell.js +37 -0
  27. package/lib/module/components/Table/tableHeader.js +25 -0
  28. package/lib/module/components/Table/tablePaginator.js +6 -0
  29. package/lib/module/components/Table/tableRow.js +33 -0
  30. package/lib/module/components/Table/tableTitle.js +47 -0
  31. package/lib/module/index.js +2 -1
  32. package/lib/module/mappings/SVG.js +14 -0
  33. package/lib/module/mappings/table.js +94 -0
  34. package/lib/module/utilities.js +3 -3
  35. package/lib/typescript/src/components/SVG.d.ts +8 -0
  36. package/lib/typescript/src/components/Table/index.d.ts +6 -0
  37. package/lib/typescript/src/components/Table/table.d.ts +8 -0
  38. package/lib/typescript/src/components/Table/tableCell.d.ts +10 -0
  39. package/lib/typescript/src/components/Table/tableHeader.d.ts +12 -0
  40. package/lib/typescript/src/components/Table/tablePaginator.d.ts +3 -0
  41. package/lib/typescript/src/components/Table/tableRow.d.ts +12 -0
  42. package/lib/typescript/src/components/Table/tableTitle.d.ts +12 -0
  43. package/lib/typescript/src/index.d.ts +2 -1
  44. package/lib/typescript/src/mappings/{Svg.d.ts → SVG.d.ts} +0 -1
  45. package/lib/typescript/src/mappings/table.d.ts +153 -0
  46. package/lib/typescript/src/utilities.d.ts +3 -3
  47. package/package.json +4 -4
  48. package/src/components/Config.js +1 -1
  49. package/src/components/Config.ts +1 -1
  50. package/src/components/{Svg.js → SVG.js} +6 -5
  51. package/src/components/SVG.tsx +35 -0
  52. package/src/components/Table/index.js +6 -0
  53. package/src/components/Table/index.tsx +6 -0
  54. package/src/components/Table/table.js +10 -0
  55. package/src/components/Table/table.tsx +22 -0
  56. package/src/components/Table/tableCell.js +21 -0
  57. package/src/components/Table/tableCell.tsx +44 -0
  58. package/src/components/Table/tableHeader.js +11 -0
  59. package/src/components/Table/tableHeader.tsx +28 -0
  60. package/src/components/Table/tablePaginator.js +5 -0
  61. package/src/components/Table/tablePaginator.tsx +10 -0
  62. package/src/components/Table/tableRow.js +16 -0
  63. package/src/components/Table/tableRow.tsx +31 -0
  64. package/src/components/Table/tableTitle.js +28 -0
  65. package/src/components/Table/tableTitle.tsx +58 -0
  66. package/src/index.js +2 -1
  67. package/src/index.tsx +10 -1
  68. package/src/mappings/SVG.js +14 -0
  69. package/src/mappings/SVG.ts +15 -0
  70. package/src/mappings/table.js +137 -0
  71. package/src/mappings/table.ts +145 -0
  72. package/src/utilities.js +5 -2
  73. package/src/utilities.ts +13 -2
  74. package/lib/module/mappings/Svg.js +0 -15
  75. package/lib/typescript/src/components/Svg.d.ts +0 -7
  76. package/src/components/Svg.tsx +0 -35
  77. package/src/mappings/Svg.js +0 -20
  78. package/src/mappings/Svg.ts +0 -25
@@ -17,7 +17,7 @@ export { default as FAB } from "./components/FAB";
17
17
  export { default as FieldSearchBarFull } from "./components/FieldSearchBarFull";
18
18
  export { default as IconButton } from "./components/IconButton";
19
19
  export { default as Image } from "./components/Image";
20
- export { default as Svg } from "./components/Svg";
20
+ export { default as SVG } from "./components/SVG";
21
21
  export { default as NumberInput } from "./components/NumberInput";
22
22
  export { default as ScreenContainer } from "./components/ScreenContainer";
23
23
  export { default as StarRating } from "./components/StarRating";
@@ -31,6 +31,7 @@ export { ActionSheet, ActionSheetItem, ActionSheetCancel, } from "./components/A
31
31
  export { Swiper, SwiperItem } from "./components/Swiper";
32
32
  export { Center, Circle, Square, Row, Stack, Spacer, } from "./components/Layout";
33
33
  export { RadioButton, RadioButtonGroup, RadioButtonRow, RadioButtonFieldGroup, } from "./components/RadioButton/index";
34
+ export { Table, TableRow, TablePaginator, TableHeader, TableCell, TableTitle, } from "./components/Table";
34
35
  export { default as Button } from "./components/DeprecatedButton";
35
36
  export { default as CardBlock } from "./components/CardBlock";
36
37
  export { default as CardContainer } from "./components/CardContainer";
@@ -7,7 +7,6 @@ export declare const SEED_DATA: {
7
7
  width: number;
8
8
  height: number;
9
9
  };
10
- stylesPanelSections: string[];
11
10
  props: {
12
11
  source: {
13
12
  label: string;
@@ -0,0 +1,153 @@
1
+ export declare const SEED_DATA: ({
2
+ name: string;
3
+ tag: string;
4
+ category: string;
5
+ stylesPanelSections: string[];
6
+ layout: {
7
+ width: string;
8
+ paddingLeft?: undefined;
9
+ paddingRight?: undefined;
10
+ borderBottomWidth?: undefined;
11
+ borderStyle?: undefined;
12
+ paddingTop?: undefined;
13
+ paddingBottom?: undefined;
14
+ backgroundColor?: undefined;
15
+ fontSize?: undefined;
16
+ fontWeight?: undefined;
17
+ };
18
+ props: {
19
+ numeric?: undefined;
20
+ value?: undefined;
21
+ isAscending?: undefined;
22
+ numberOfLines?: undefined;
23
+ };
24
+ } | {
25
+ name: string;
26
+ tag: string;
27
+ category: string;
28
+ stylesPanelSections: string[];
29
+ layout: {
30
+ paddingLeft: number;
31
+ paddingRight: number;
32
+ borderBottomWidth: number;
33
+ borderStyle: string;
34
+ width?: undefined;
35
+ paddingTop?: undefined;
36
+ paddingBottom?: undefined;
37
+ backgroundColor?: undefined;
38
+ fontSize?: undefined;
39
+ fontWeight?: undefined;
40
+ };
41
+ props: {
42
+ numeric?: undefined;
43
+ value?: undefined;
44
+ isAscending?: undefined;
45
+ numberOfLines?: undefined;
46
+ };
47
+ } | {
48
+ name: string;
49
+ tag: string;
50
+ category: string;
51
+ layout: {
52
+ paddingTop: number;
53
+ paddingBottom: number;
54
+ paddingLeft: number;
55
+ paddingRight: number;
56
+ width?: undefined;
57
+ borderBottomWidth?: undefined;
58
+ borderStyle?: undefined;
59
+ backgroundColor?: undefined;
60
+ fontSize?: undefined;
61
+ fontWeight?: undefined;
62
+ };
63
+ stylesPanelSections: string[];
64
+ props: {
65
+ numeric: {
66
+ label: string;
67
+ description: string;
68
+ formType: string;
69
+ propType: string;
70
+ defaultValue: boolean;
71
+ editable: boolean;
72
+ required: boolean;
73
+ group: string;
74
+ };
75
+ value: any;
76
+ isAscending?: undefined;
77
+ numberOfLines?: undefined;
78
+ };
79
+ } | {
80
+ name: string;
81
+ tag: string;
82
+ category: string;
83
+ stylesPanelSections: string[];
84
+ layout: {
85
+ paddingLeft: number;
86
+ paddingRight: number;
87
+ borderBottomWidth: number;
88
+ borderStyle: string;
89
+ backgroundColor: string;
90
+ width?: undefined;
91
+ paddingTop?: undefined;
92
+ paddingBottom?: undefined;
93
+ fontSize?: undefined;
94
+ fontWeight?: undefined;
95
+ };
96
+ props: {
97
+ numeric?: undefined;
98
+ value?: undefined;
99
+ isAscending?: undefined;
100
+ numberOfLines?: undefined;
101
+ };
102
+ } | {
103
+ name: string;
104
+ tag: string;
105
+ category: string;
106
+ stylesPanelSections: string[];
107
+ layout: {
108
+ fontSize: number;
109
+ fontWeight: string;
110
+ paddingTop: number;
111
+ paddingBottom: number;
112
+ paddingLeft: number;
113
+ paddingRight: number;
114
+ width?: undefined;
115
+ borderBottomWidth?: undefined;
116
+ borderStyle?: undefined;
117
+ backgroundColor?: undefined;
118
+ };
119
+ props: {
120
+ numeric: {
121
+ label: string;
122
+ description: string;
123
+ formType: string;
124
+ propType: string;
125
+ defaultValue: boolean;
126
+ editable: boolean;
127
+ required: boolean;
128
+ group: string;
129
+ };
130
+ value: any;
131
+ isAscending: {
132
+ label: string;
133
+ description: string;
134
+ formType: string;
135
+ propType: string;
136
+ defaultValue: boolean;
137
+ editable: boolean;
138
+ required: boolean;
139
+ group: string;
140
+ };
141
+ numberOfLines: {
142
+ label: string;
143
+ description: string;
144
+ formType: string;
145
+ propType: string;
146
+ group: string;
147
+ defaultValue: null;
148
+ editable: boolean;
149
+ required: boolean;
150
+ step: number;
151
+ };
152
+ };
153
+ })[];
@@ -1,8 +1,8 @@
1
1
  /// <reference types="lodash" />
2
- import { StyleProp, TextStyle } from "react-native";
2
+ import { StyleProp } from "react-native";
3
3
  export declare function extractStyles(style: StyleProp<any>): {
4
- viewStyles: any;
5
- textStyles: TextStyle;
4
+ viewStyles: Partial<any>;
5
+ textStyles: import("lodash").Dictionary<any>;
6
6
  };
7
7
  export declare const borderStyleNames: string[];
8
8
  export declare const marginStyleNames: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "46.2.4-0e692a.5+0e692adc",
3
+ "version": "46.2.4-25c40a.5+25c40a3d",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@date-io/date-fns": "^1.3.13",
43
43
  "@draftbit/react-theme-provider": "^2.1.1",
44
- "@draftbit/types": "^46.2.4-0e692a.5+0e692adc",
44
+ "@draftbit/types": "^46.2.4",
45
45
  "@material-ui/core": "^4.11.0",
46
46
  "@material-ui/pickers": "^3.2.10",
47
47
  "@react-native-community/slider": "4.2.3",
@@ -53,7 +53,7 @@
53
53
  "lodash.omit": "^4.5.0",
54
54
  "lodash.tonumber": "^4.0.3",
55
55
  "react-native-modal-datetime-picker": "^13.0.0",
56
- "react-native-svg": "^13.2.0",
56
+ "react-native-svg": "^12.3.0",
57
57
  "react-native-typography": "^1.4.1",
58
58
  "react-native-web-swiper": "^2.2.3"
59
59
  },
@@ -80,5 +80,5 @@
80
80
  ]
81
81
  ]
82
82
  },
83
- "gitHead": "0e692adc6f7d632b5a1e30eedeba4d9b5f810afa"
83
+ "gitHead": "25c40a3d0679730c3c3c55b8c82d8a2399a65fb2"
84
84
  }
@@ -42,7 +42,7 @@ export default {
42
42
  cardIconElevation: 1,
43
43
  placeholderImageURL: "https://static.draftbit.com/images/placeholder-image" + getExtension(),
44
44
  getPlaceholderImageUrl: (size) => buildImageUrl({ width: size.width, height: size.height }, "image-placeholder_1"),
45
- placeholderSvgURL: "https://static.draftbit.com/images/placeholder-image.svg",
45
+ placeholderSvgURL: "https://static.draftbit.com/images/placeholder-svg.svg",
46
46
  squareImageUrl: buildImageUrl({ width: 100, height: 100 }, "Avatar"),
47
47
  FABSize: 40,
48
48
  FABBorderRadius: 20,
@@ -60,7 +60,7 @@ export default {
60
60
  { width: size.width, height: size.height },
61
61
  "image-placeholder_1"
62
62
  ),
63
- placeholderSvgURL: "https://static.draftbit.com/images/placeholder-image.svg",
63
+ placeholderSvgURL: "https://static.draftbit.com/images/placeholder-svg.svg",
64
64
  squareImageUrl: buildImageUrl({ width: 100, height: 100 }, "Avatar"),
65
65
  FABSize: 40,
66
66
  FABBorderRadius: 20,
@@ -2,12 +2,13 @@ import * as React from "react";
2
2
  import { View, Platform, Image } from "react-native";
3
3
  import { SvgUri } from "react-native-svg";
4
4
  import Config from "./Config";
5
- const Svg = ({ source = Config.placeholderSvgURL, style, }) => {
5
+ const SVG = ({ source, style }) => {
6
+ let svgSource = source === null || source === undefined ? Config.placeholderSvgURL : source;
6
7
  return (React.createElement(React.Fragment, null,
7
8
  Platform.OS === "ios" && (React.createElement(View, { style: style },
8
- React.createElement(SvgUri, { width: "100%", height: "100%", uri: source }))),
9
+ React.createElement(SvgUri, { width: "100%", height: "100%", uri: svgSource }))),
9
10
  Platform.OS === "android" && (React.createElement(View, { style: style },
10
- React.createElement(SvgUri, { width: "100%", height: "100%", uri: source }))),
11
- Platform.OS === "web" && (React.createElement(Image, { style: style, source: { uri: source } }))));
11
+ React.createElement(SvgUri, { width: "100%", height: "100%", uri: svgSource }))),
12
+ Platform.OS === "web" && (React.createElement(Image, { style: style, source: { uri: svgSource } }))));
12
13
  };
13
- export default Svg;
14
+ export default SVG;
@@ -0,0 +1,35 @@
1
+ import * as React from "react";
2
+ import { View, Platform, Image, StyleProp, ImageStyle } from "react-native";
3
+ import { SvgUri } from "react-native-svg";
4
+
5
+ import Config from "./Config";
6
+
7
+ type SVGComponentProps = {
8
+ source: string;
9
+ style?: StyleProp<ImageStyle>;
10
+ };
11
+
12
+ const SVG = ({ source, style }: SVGComponentProps) => {
13
+ let svgSource =
14
+ source === null || source === undefined ? Config.placeholderSvgURL : source;
15
+
16
+ return (
17
+ <>
18
+ {Platform.OS === "ios" && (
19
+ <View style={style}>
20
+ <SvgUri width="100%" height="100%" uri={svgSource} />
21
+ </View>
22
+ )}
23
+ {Platform.OS === "android" && (
24
+ <View style={style}>
25
+ <SvgUri width="100%" height="100%" uri={svgSource} />
26
+ </View>
27
+ )}
28
+ {Platform.OS === "web" && (
29
+ <Image style={style} source={{ uri: svgSource }} />
30
+ )}
31
+ </>
32
+ );
33
+ };
34
+
35
+ export default SVG;
@@ -0,0 +1,6 @@
1
+ export { default as Table } from "./table";
2
+ export { default as TableHeader } from "./tableHeader";
3
+ export { default as TablePaginator } from "./tablePaginator";
4
+ export { default as TableRow } from "./tableRow";
5
+ export { default as TableCell } from "./tableCell";
6
+ export { default as TableTitle } from "./tableTitle";
@@ -0,0 +1,6 @@
1
+ export { default as Table } from "./table";
2
+ export { default as TableHeader } from "./tableHeader";
3
+ export { default as TablePaginator } from "./tablePaginator";
4
+ export { default as TableRow } from "./tableRow";
5
+ export { default as TableCell } from "./tableCell";
6
+ export { default as TableTitle } from "./tableTitle";
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { View, StyleSheet } from "react-native";
3
+ const Table = ({ children, style, ...rest }) => (React.createElement(View, { ...rest, style: [styles.wrapper, style] }, children));
4
+ const styles = StyleSheet.create({
5
+ wrapper: {
6
+ display: "flex",
7
+ flexDirection: "column",
8
+ },
9
+ });
10
+ export default Table;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import { View, StyleProp, ViewStyle, StyleSheet } from "react-native";
3
+
4
+ export interface TableProps {
5
+ children: React.ReactNode;
6
+ style?: StyleProp<ViewStyle>;
7
+ }
8
+
9
+ const Table = ({ children, style, ...rest }: TableProps) => (
10
+ <View {...rest} style={[styles.wrapper, style]}>
11
+ {children}
12
+ </View>
13
+ );
14
+
15
+ const styles = StyleSheet.create({
16
+ wrapper: {
17
+ display: "flex",
18
+ flexDirection: "column",
19
+ },
20
+ });
21
+
22
+ export default Table;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import { View, Text, StyleSheet } from "react-native";
3
+ import { extractStyles } from "../../utilities";
4
+ const TableCell = ({ children, style, numeric, value, ...rest }) => {
5
+ const { textStyles, viewStyles } = extractStyles(style);
6
+ return (React.createElement(View, { ...rest, style: [styles.wrapper, numeric && styles.right, viewStyles] },
7
+ React.createElement(Text, { numberOfLines: 1, style: textStyles },
8
+ children,
9
+ value)));
10
+ };
11
+ const styles = StyleSheet.create({
12
+ wrapper: {
13
+ flex: 1,
14
+ display: "flex",
15
+ flexDirection: "row",
16
+ },
17
+ right: {
18
+ justifyContent: "flex-end",
19
+ },
20
+ });
21
+ export default TableCell;
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ import { View, Text, StyleProp, ViewStyle, StyleSheet } from "react-native";
3
+ import { extractStyles } from "../../utilities";
4
+
5
+ export interface TableCellProps {
6
+ children: React.ReactNode;
7
+ numeric?: boolean;
8
+ style?: StyleProp<ViewStyle>;
9
+ value: string;
10
+ }
11
+
12
+ const TableCell = ({
13
+ children,
14
+ style,
15
+ numeric,
16
+ value,
17
+ ...rest
18
+ }: TableCellProps) => {
19
+ const { textStyles, viewStyles } = extractStyles(style);
20
+ return (
21
+ <View
22
+ {...rest}
23
+ style={[styles.wrapper, numeric && styles.right, viewStyles]}
24
+ >
25
+ <Text numberOfLines={1} style={textStyles}>
26
+ {children}
27
+ {value}
28
+ </Text>
29
+ </View>
30
+ );
31
+ };
32
+
33
+ const styles = StyleSheet.create({
34
+ wrapper: {
35
+ flex: 1,
36
+ display: "flex",
37
+ flexDirection: "row",
38
+ },
39
+ right: {
40
+ justifyContent: "flex-end",
41
+ },
42
+ });
43
+
44
+ export default TableCell;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { View, StyleSheet } from "react-native";
3
+ import { withTheme } from "../../theming";
4
+ const TableHeader = ({ children, style, theme, ...rest }) => (React.createElement(View, { ...rest, style: [styles.wrapper, { borderBottomColor: theme.colors.medium }, style] }, children));
5
+ const styles = StyleSheet.create({
6
+ wrapper: {
7
+ display: "flex",
8
+ flexDirection: "row",
9
+ },
10
+ });
11
+ export default withTheme(TableHeader);
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { View, StyleProp, ViewStyle, StyleSheet } from "react-native";
3
+ import { Theme } from "../../styles/DefaultTheme";
4
+ import { withTheme } from "../../theming";
5
+
6
+ export interface TableHeaderProps {
7
+ children: React.ReactNode;
8
+ style?: StyleProp<ViewStyle>;
9
+ theme: Theme;
10
+ }
11
+
12
+ const TableHeader = ({ children, style, theme, ...rest }: TableHeaderProps) => (
13
+ <View
14
+ {...rest}
15
+ style={[styles.wrapper, { borderBottomColor: theme.colors.medium }, style]}
16
+ >
17
+ {children}
18
+ </View>
19
+ );
20
+
21
+ const styles = StyleSheet.create({
22
+ wrapper: {
23
+ display: "flex",
24
+ flexDirection: "row",
25
+ },
26
+ });
27
+
28
+ export default withTheme(TableHeader);
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { View, Text } from "react-native";
3
+ const TablePaginator = () => (React.createElement(View, null,
4
+ React.createElement(Text, null, "Table Paginator")));
5
+ export default TablePaginator;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { View, Text } from "react-native";
3
+
4
+ const TablePaginator = () => (
5
+ <View>
6
+ <Text>Table Paginator</Text>
7
+ </View>
8
+ );
9
+
10
+ export default TablePaginator;
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { View, StyleSheet } from "react-native";
3
+ import { withTheme } from "../../theming";
4
+ const TableRow = ({ children, style, theme, ...rest }) => (React.createElement(View, { ...rest, style: [styles.container, { borderBottomColor: theme.colors.light }, style] },
5
+ React.createElement(View, { style: styles.content }, children)));
6
+ const styles = StyleSheet.create({
7
+ container: {
8
+ display: "flex",
9
+ flexDirection: "row",
10
+ },
11
+ content: {
12
+ flex: 1,
13
+ flexDirection: "row",
14
+ },
15
+ });
16
+ export default withTheme(TableRow);
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { View, StyleProp, ViewStyle, StyleSheet } from "react-native";
3
+ import { Theme } from "../../styles/DefaultTheme";
4
+ import { withTheme } from "../../theming";
5
+ export interface TableRowProps {
6
+ children: React.ReactNode;
7
+ style?: StyleProp<ViewStyle>;
8
+ theme: Theme;
9
+ }
10
+
11
+ const TableRow = ({ children, style, theme, ...rest }: TableRowProps) => (
12
+ <View
13
+ {...rest}
14
+ style={[styles.container, { borderBottomColor: theme.colors.light }, style]}
15
+ >
16
+ <View style={styles.content}>{children}</View>
17
+ </View>
18
+ );
19
+
20
+ const styles = StyleSheet.create({
21
+ container: {
22
+ display: "flex",
23
+ flexDirection: "row",
24
+ },
25
+ content: {
26
+ flex: 1,
27
+ flexDirection: "row",
28
+ },
29
+ });
30
+
31
+ export default withTheme(TableRow);
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { View, Text, StyleSheet } from "react-native";
3
+ import { extractStyles } from "../../utilities";
4
+ const TableTitle = ({ children, style, numeric = false, isAscending = false, numberOfLines = 1, title, ...rest }) => {
5
+ const { textStyles, viewStyles } = extractStyles(style);
6
+ return (React.createElement(View, { ...rest, style: [styles.wrapper, numeric && styles.right, viewStyles] },
7
+ React.createElement(Text, { style: [isAscending ? styles.sorted : { color: "gray" }, textStyles], numberOfLines: numberOfLines },
8
+ children,
9
+ title)));
10
+ };
11
+ const styles = StyleSheet.create({
12
+ wrapper: {
13
+ flex: 1,
14
+ display: "flex",
15
+ flexDirection: "row",
16
+ },
17
+ right: {
18
+ justifyContent: "flex-end",
19
+ },
20
+ sorted: {
21
+ // marginLeft: 8,
22
+ },
23
+ icon: {
24
+ height: 24,
25
+ justifyContent: "center",
26
+ },
27
+ });
28
+ export default TableTitle;
@@ -0,0 +1,58 @@
1
+ import React from "react";
2
+ import { View, Text, StyleProp, ViewStyle, StyleSheet } from "react-native";
3
+ import { extractStyles } from "../../utilities";
4
+
5
+ export interface TableCellProps {
6
+ children: React.ReactNode;
7
+ numeric?: boolean;
8
+ isAscending: boolean;
9
+ numberOfLines?: number;
10
+ title?: string;
11
+ style?: StyleProp<ViewStyle>;
12
+ }
13
+
14
+ const TableTitle = ({
15
+ children,
16
+ style,
17
+ numeric = false,
18
+ isAscending = false,
19
+ numberOfLines = 1,
20
+ title,
21
+ ...rest
22
+ }: TableCellProps) => {
23
+ const { textStyles, viewStyles } = extractStyles(style);
24
+ return (
25
+ <View
26
+ {...rest}
27
+ style={[styles.wrapper, numeric && styles.right, viewStyles]}
28
+ >
29
+ <Text
30
+ style={[isAscending ? styles.sorted : { color: "gray" }, textStyles]}
31
+ numberOfLines={numberOfLines}
32
+ >
33
+ {children}
34
+ {title}
35
+ </Text>
36
+ </View>
37
+ );
38
+ };
39
+
40
+ const styles = StyleSheet.create({
41
+ wrapper: {
42
+ flex: 1,
43
+ display: "flex",
44
+ flexDirection: "row",
45
+ },
46
+ right: {
47
+ justifyContent: "flex-end",
48
+ },
49
+ sorted: {
50
+ // marginLeft: 8,
51
+ },
52
+ icon: {
53
+ height: 24,
54
+ justifyContent: "center",
55
+ },
56
+ });
57
+
58
+ export default TableTitle;
package/src/index.js CHANGED
@@ -17,7 +17,7 @@ export { default as FAB } from "./components/FAB";
17
17
  export { default as FieldSearchBarFull } from "./components/FieldSearchBarFull";
18
18
  export { default as IconButton } from "./components/IconButton";
19
19
  export { default as Image } from "./components/Image";
20
- export { default as Svg } from "./components/Svg";
20
+ export { default as SVG } from "./components/SVG";
21
21
  export { default as NumberInput } from "./components/NumberInput";
22
22
  export { default as ScreenContainer } from "./components/ScreenContainer";
23
23
  export { default as StarRating } from "./components/StarRating";
@@ -31,6 +31,7 @@ export { ActionSheet, ActionSheetItem, ActionSheetCancel, } from "./components/A
31
31
  export { Swiper, SwiperItem } from "./components/Swiper";
32
32
  export { Center, Circle, Square, Row, Stack, Spacer, } from "./components/Layout";
33
33
  export { RadioButton, RadioButtonGroup, RadioButtonRow, RadioButtonFieldGroup, } from "./components/RadioButton/index";
34
+ export { Table, TableRow, TablePaginator, TableHeader, TableCell, TableTitle, } from "./components/Table";
34
35
  /* Deprecated: Fix or Delete! */
35
36
  export { default as Button } from "./components/DeprecatedButton";
36
37
  export { default as CardBlock } from "./components/CardBlock";
package/src/index.tsx CHANGED
@@ -18,7 +18,7 @@ export { default as FAB } from "./components/FAB";
18
18
  export { default as FieldSearchBarFull } from "./components/FieldSearchBarFull";
19
19
  export { default as IconButton } from "./components/IconButton";
20
20
  export { default as Image } from "./components/Image";
21
- export { default as Svg } from "./components/Svg";
21
+ export { default as SVG } from "./components/SVG";
22
22
  export { default as NumberInput } from "./components/NumberInput";
23
23
  export { default as ScreenContainer } from "./components/ScreenContainer";
24
24
  export { default as StarRating } from "./components/StarRating";
@@ -51,6 +51,15 @@ export {
51
51
  RadioButtonFieldGroup,
52
52
  } from "./components/RadioButton/index";
53
53
 
54
+ export {
55
+ Table,
56
+ TableRow,
57
+ TablePaginator,
58
+ TableHeader,
59
+ TableCell,
60
+ TableTitle,
61
+ } from "./components/Table";
62
+
54
63
  /* Deprecated: Fix or Delete! */
55
64
  export { default as Button } from "./components/DeprecatedButton";
56
65
  export { default as CardBlock } from "./components/CardBlock";