@draftbit/core 46.10.3-177666.2 → 46.10.3-17bcb4.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 (133) hide show
  1. package/lib/commonjs/components/AvatarEdit.js +15 -4
  2. package/lib/commonjs/components/Banner.js +23 -4
  3. package/lib/commonjs/components/Checkbox/Checkbox.js +3 -4
  4. package/lib/commonjs/components/Checkbox/CheckboxGroup.js +17 -2
  5. package/lib/commonjs/components/CircularProgress.js +26 -8
  6. package/lib/commonjs/components/DeprecatedButton.js +20 -3
  7. package/lib/commonjs/components/DeprecatedCardWrapper.js +54 -0
  8. package/lib/commonjs/components/DeprecatedFAB.js +157 -0
  9. package/lib/commonjs/components/Elevation.js +14 -2
  10. package/lib/commonjs/components/FormRow.js +16 -2
  11. package/lib/commonjs/components/IconButton.js +19 -4
  12. package/lib/commonjs/components/Layout.js +40 -19
  13. package/lib/commonjs/components/NumberInput.js +12 -3
  14. package/lib/commonjs/components/Picker/Picker.js +9 -6
  15. package/lib/commonjs/components/Picker/PickerComponent.web.js +20 -3
  16. package/lib/commonjs/components/Portal/Portal.js +27 -3
  17. package/lib/commonjs/components/Portal/PortalHost.js +44 -15
  18. package/lib/commonjs/components/Pressable.js +15 -2
  19. package/lib/commonjs/components/ProgressIndicator.js +55 -0
  20. package/lib/commonjs/components/RadioButton/RadioButton.js +13 -2
  21. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +15 -2
  22. package/lib/commonjs/components/RadioButton/context.js +1 -1
  23. package/lib/commonjs/components/ResizeMode.js +5 -0
  24. package/lib/commonjs/components/ScreenContainer.js +24 -6
  25. package/lib/commonjs/components/Slider.js +21 -4
  26. package/lib/commonjs/components/StarRating.js +23 -4
  27. package/lib/commonjs/components/StepIndicator.js +57 -18
  28. package/lib/commonjs/components/Surface.js +14 -2
  29. package/lib/commonjs/components/Switch.js +19 -10
  30. package/lib/commonjs/components/ToggleButton.js +15 -2
  31. package/lib/commonjs/constants.js +1 -1
  32. package/lib/commonjs/hooks.js +1 -2
  33. package/lib/commonjs/mappings/CardBlock.js +126 -0
  34. package/lib/commonjs/mappings/CardContainer.js +108 -0
  35. package/lib/commonjs/mappings/CardContainerRating.js +130 -0
  36. package/lib/commonjs/mappings/CardContainerShortImage.js +124 -0
  37. package/lib/commonjs/mappings/CardInline.js +59 -0
  38. package/lib/commonjs/mappings/HeaderLarge.js +34 -0
  39. package/lib/commonjs/mappings/HeaderMedium.js +60 -0
  40. package/lib/commonjs/mappings/HeaderOverline.js +60 -0
  41. package/lib/commonjs/mappings/ProgressIndicator.js +188 -0
  42. package/lib/commonjs/styles/overlay.js +1 -3
  43. package/lib/module/components/Accordion/AccordionItem.js +4 -25
  44. package/lib/module/components/AnimatedCircularProgress.js +13 -1
  45. package/lib/module/components/AvatarEdit.js +15 -4
  46. package/lib/module/components/Banner.js +25 -4
  47. package/lib/module/components/Button.js +33 -10
  48. package/lib/module/components/Checkbox/CheckboxGroup.js +16 -2
  49. package/lib/module/components/Checkbox/CheckboxGroupRow.js +24 -5
  50. package/lib/module/components/Checkbox/CheckboxRow.js +24 -6
  51. package/lib/module/components/DatePicker/DatePicker.js +27 -13
  52. package/lib/module/components/DeprecatedCardWrapper.js +32 -0
  53. package/lib/module/components/DeprecatedFAB.js +167 -0
  54. package/lib/module/components/Divider.js +18 -1
  55. package/lib/module/components/Layout.js +42 -21
  56. package/lib/module/components/Picker/PickerComponent.android.js +21 -3
  57. package/lib/module/components/Portal/PortalConsumer.js +22 -7
  58. package/lib/module/components/ProgressIndicator.js +45 -0
  59. package/lib/module/components/RadioButton/RadioButton.js +13 -1
  60. package/lib/module/components/RadioButton/RadioButtonFieldGroup.js +10 -1
  61. package/lib/module/components/RadioButton/context.js +1 -1
  62. package/lib/module/components/ResizeMode.js +1 -0
  63. package/lib/module/components/StepIndicator.js +58 -18
  64. package/lib/module/components/Surface.js +15 -1
  65. package/lib/module/components/Switch.js +21 -10
  66. package/lib/module/components/TabView/TabView.js +17 -7
  67. package/lib/module/components/TabView/TabViewItem.js +4 -3
  68. package/lib/module/components/Table/Table.js +6 -5
  69. package/lib/module/components/TextField.js +78 -28
  70. package/lib/module/components/ToggleButton.js +16 -2
  71. package/lib/module/constants.js +1 -0
  72. package/lib/module/mappings/CardBlock.js +119 -0
  73. package/lib/module/mappings/CardContainer.js +101 -0
  74. package/lib/module/mappings/CardContainerRating.js +123 -0
  75. package/lib/module/mappings/CardContainerShortImage.js +117 -0
  76. package/lib/module/mappings/CardInline.js +52 -0
  77. package/lib/module/mappings/HeaderLarge.js +27 -0
  78. package/lib/module/mappings/HeaderMedium.js +53 -0
  79. package/lib/module/mappings/HeaderOverline.js +53 -0
  80. package/lib/module/mappings/ProgressIndicator.js +181 -0
  81. package/lib/typescript/src/components/DeprecatedCardWrapper.d.ts +15 -0
  82. package/lib/typescript/src/components/DeprecatedCardWrapper.d.ts.map +1 -0
  83. package/lib/typescript/src/components/DeprecatedFAB.d.ts +56 -0
  84. package/lib/typescript/src/components/DeprecatedFAB.d.ts.map +1 -0
  85. package/lib/typescript/src/components/ProgressIndicator.d.ts +24 -0
  86. package/lib/typescript/src/components/ProgressIndicator.d.ts.map +1 -0
  87. package/lib/typescript/src/components/ResizeMode.d.ts +2 -0
  88. package/lib/typescript/src/components/ResizeMode.d.ts.map +1 -0
  89. package/lib/typescript/src/mappings/CardBlock.d.ts +289 -0
  90. package/lib/typescript/src/mappings/CardBlock.d.ts.map +1 -0
  91. package/lib/typescript/src/mappings/CardContainer.d.ts +102 -0
  92. package/lib/typescript/src/mappings/CardContainer.d.ts.map +1 -0
  93. package/lib/typescript/src/mappings/CardContainerRating.d.ts +108 -0
  94. package/lib/typescript/src/mappings/CardContainerRating.d.ts.map +1 -0
  95. package/lib/typescript/src/mappings/CardContainerShortImage.d.ts +139 -0
  96. package/lib/typescript/src/mappings/CardContainerShortImage.d.ts.map +1 -0
  97. package/lib/typescript/src/mappings/CardInline.d.ts +62 -0
  98. package/lib/typescript/src/mappings/CardInline.d.ts.map +1 -0
  99. package/lib/typescript/src/mappings/HeaderLarge.d.ts +34 -0
  100. package/lib/typescript/src/mappings/HeaderLarge.d.ts.map +1 -0
  101. package/lib/typescript/src/mappings/HeaderMedium.d.ts +53 -0
  102. package/lib/typescript/src/mappings/HeaderMedium.d.ts.map +1 -0
  103. package/lib/typescript/src/mappings/HeaderOverline.d.ts +53 -0
  104. package/lib/typescript/src/mappings/HeaderOverline.d.ts.map +1 -0
  105. package/lib/typescript/src/mappings/ProgressIndicator.d.ts +181 -0
  106. package/lib/typescript/src/mappings/ProgressIndicator.d.ts.map +1 -0
  107. package/package.json +3 -3
  108. package/src/components/DeprecatedCardWrapper.js +18 -0
  109. package/src/components/DeprecatedCardWrapper.tsx +46 -0
  110. package/src/components/DeprecatedFAB.js +114 -0
  111. package/src/components/DeprecatedFAB.tsx +231 -0
  112. package/src/components/ProgressIndicator.js +27 -0
  113. package/src/components/ProgressIndicator.tsx +71 -0
  114. package/src/components/ResizeMode.js +1 -0
  115. package/src/components/ResizeMode.ts +7 -0
  116. package/src/mappings/CardBlock.js +123 -0
  117. package/src/mappings/CardBlock.ts +136 -0
  118. package/src/mappings/CardContainer.js +104 -0
  119. package/src/mappings/CardContainer.ts +116 -0
  120. package/src/mappings/CardContainerRating.js +126 -0
  121. package/src/mappings/CardContainerRating.ts +137 -0
  122. package/src/mappings/CardContainerShortImage.js +120 -0
  123. package/src/mappings/CardContainerShortImage.ts +130 -0
  124. package/src/mappings/CardInline.js +52 -0
  125. package/src/mappings/CardInline.ts +61 -0
  126. package/src/mappings/HeaderLarge.js +29 -0
  127. package/src/mappings/HeaderLarge.ts +38 -0
  128. package/src/mappings/HeaderMedium.js +55 -0
  129. package/src/mappings/HeaderMedium.ts +63 -0
  130. package/src/mappings/HeaderOverline.js +55 -0
  131. package/src/mappings/HeaderOverline.ts +63 -0
  132. package/src/mappings/ProgressIndicator.js +181 -0
  133. package/src/mappings/ProgressIndicator.ts +190 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardInline.d.ts","sourceRoot":"","sources":["../../../../src/mappings/CardInline.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDrB,CAAC"}
@@ -0,0 +1,34 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ layout: {};
8
+ triggers: string[];
9
+ props: {
10
+ onPress: {
11
+ label: string;
12
+ description: string;
13
+ editable: boolean;
14
+ required: boolean;
15
+ formType: string;
16
+ propType: string;
17
+ defaultValue: null;
18
+ group: string;
19
+ };
20
+ title: any;
21
+ buttonText: any;
22
+ icon: {
23
+ label: string;
24
+ description: string;
25
+ formType: string;
26
+ propType: string;
27
+ defaultValue: string;
28
+ required: boolean;
29
+ editable: boolean;
30
+ group: string;
31
+ };
32
+ };
33
+ }[];
34
+ //# sourceMappingURL=HeaderLarge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderLarge.d.ts","sourceRoot":"","sources":["../../../../src/mappings/HeaderLarge.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BrB,CAAC"}
@@ -0,0 +1,53 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ preview_image_url: string;
8
+ supports_list_render: boolean;
9
+ props: {
10
+ title: {
11
+ group: string;
12
+ label: string;
13
+ description: string;
14
+ formType: string;
15
+ propType: string;
16
+ defaultValue: string;
17
+ editable: boolean;
18
+ required: boolean;
19
+ };
20
+ buttonText: {
21
+ group: string;
22
+ label: string;
23
+ description: string;
24
+ formType: string;
25
+ propType: string;
26
+ defaultValue: string;
27
+ editable: boolean;
28
+ required: boolean;
29
+ };
30
+ icon: {
31
+ group: string;
32
+ label: string;
33
+ description: string;
34
+ formType: string;
35
+ propType: string;
36
+ defaultValue: null;
37
+ editable: boolean;
38
+ required: boolean;
39
+ };
40
+ onPress: {
41
+ group: string;
42
+ label: string;
43
+ description: string;
44
+ editable: boolean;
45
+ required: boolean;
46
+ formType: string;
47
+ propType: string;
48
+ defaultValue: null;
49
+ };
50
+ };
51
+ layout: {};
52
+ }[];
53
+ //# sourceMappingURL=HeaderMedium.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderMedium.d.ts","sourceRoot":"","sources":["../../../../src/mappings/HeaderMedium.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDrB,CAAC"}
@@ -0,0 +1,53 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ preview_image_url: string;
8
+ supports_list_render: boolean;
9
+ props: {
10
+ title: {
11
+ group: string;
12
+ label: string;
13
+ description: string;
14
+ formType: string;
15
+ propType: string;
16
+ defaultValue: string;
17
+ editable: boolean;
18
+ required: boolean;
19
+ };
20
+ buttonText: {
21
+ group: string;
22
+ label: string;
23
+ description: string;
24
+ formType: string;
25
+ propType: string;
26
+ defaultValue: string;
27
+ editable: boolean;
28
+ required: boolean;
29
+ };
30
+ icon: {
31
+ group: string;
32
+ label: string;
33
+ description: string;
34
+ formType: string;
35
+ propType: string;
36
+ defaultValue: null;
37
+ editable: boolean;
38
+ required: boolean;
39
+ };
40
+ onPress: {
41
+ group: string;
42
+ label: string;
43
+ description: string;
44
+ editable: boolean;
45
+ required: boolean;
46
+ formType: string;
47
+ propType: string;
48
+ defaultValue: null;
49
+ };
50
+ };
51
+ layout: {};
52
+ }[];
53
+ //# sourceMappingURL=HeaderOverline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderOverline.d.ts","sourceRoot":"","sources":["../../../../src/mappings/HeaderOverline.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDrB,CAAC"}
@@ -0,0 +1,181 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ preview_image_url: string;
8
+ supports_list_render: boolean;
9
+ layout: {};
10
+ props: {
11
+ numberOfSteps: {
12
+ group: string;
13
+ label: string;
14
+ description: string;
15
+ editable: boolean;
16
+ required: boolean;
17
+ formType: string;
18
+ propType: string;
19
+ min: number;
20
+ max: number;
21
+ step: number;
22
+ precision: number;
23
+ defaultValue: number;
24
+ };
25
+ currentStep: {
26
+ group: string;
27
+ label: string;
28
+ description: string;
29
+ editable: boolean;
30
+ required: boolean;
31
+ formType: string;
32
+ propType: string;
33
+ min: number;
34
+ max: number;
35
+ step: number;
36
+ precision: number;
37
+ defaultValue: number;
38
+ };
39
+ stepIndicatorSize: {
40
+ group: string;
41
+ label: string;
42
+ description: string;
43
+ editable: boolean;
44
+ required: boolean;
45
+ formType: string;
46
+ propType: string;
47
+ min: number;
48
+ max: number;
49
+ step: number;
50
+ precision: number;
51
+ defaultValue: number;
52
+ };
53
+ stepIndicatorLabelFontSize: {
54
+ group: string;
55
+ label: string;
56
+ description: string;
57
+ editable: boolean;
58
+ required: boolean;
59
+ formType: string;
60
+ propType: string;
61
+ min: number;
62
+ max: number;
63
+ step: number;
64
+ precision: number;
65
+ defaultValue: number;
66
+ };
67
+ currentStepIndicatorLabelFontSize: {
68
+ group: string;
69
+ label: string;
70
+ description: string;
71
+ editable: boolean;
72
+ required: boolean;
73
+ formType: string;
74
+ propType: string;
75
+ min: number;
76
+ max: number;
77
+ step: number;
78
+ precision: number;
79
+ defaultValue: number;
80
+ };
81
+ unfinishedColor: {
82
+ group: string;
83
+ label: string;
84
+ description: string;
85
+ editable: boolean;
86
+ required: boolean;
87
+ formType: string;
88
+ propType: string;
89
+ defaultValue: null;
90
+ };
91
+ finishedColor: {
92
+ group: string;
93
+ label: string;
94
+ description: string;
95
+ editable: boolean;
96
+ required: boolean;
97
+ formType: string;
98
+ propType: string;
99
+ defaultValue: null;
100
+ };
101
+ stepNumberUnfinishedColor: {
102
+ group: string;
103
+ label: string;
104
+ description: string;
105
+ editable: boolean;
106
+ required: boolean;
107
+ formType: string;
108
+ propType: string;
109
+ defaultValue: null;
110
+ };
111
+ stepNumberFinishedColor: {
112
+ group: string;
113
+ label: string;
114
+ description: string;
115
+ editable: boolean;
116
+ required: boolean;
117
+ formType: string;
118
+ propType: string;
119
+ defaultValue: null;
120
+ };
121
+ stepIndicatorCurrentColor: {
122
+ group: string;
123
+ label: string;
124
+ description: string;
125
+ editable: boolean;
126
+ required: boolean;
127
+ formType: string;
128
+ propType: string;
129
+ defaultValue: null;
130
+ };
131
+ stepIndicatorLabelCurrentColor: {
132
+ group: string;
133
+ label: string;
134
+ description: string;
135
+ editable: boolean;
136
+ required: boolean;
137
+ formType: string;
138
+ propType: string;
139
+ defaultValue: null;
140
+ };
141
+ stepStrokeCurrentColor: {
142
+ group: string;
143
+ label: string;
144
+ description: string;
145
+ editable: boolean;
146
+ required: boolean;
147
+ formType: string;
148
+ propType: string;
149
+ defaultValue: null;
150
+ };
151
+ currentStepStrokeWidth: {
152
+ group: string;
153
+ label: string;
154
+ description: string;
155
+ editable: boolean;
156
+ required: boolean;
157
+ formType: string;
158
+ propType: string;
159
+ min: number;
160
+ max: number;
161
+ step: number;
162
+ precision: number;
163
+ defaultValue: number;
164
+ };
165
+ currentStepIndicatorSize: {
166
+ group: string;
167
+ label: string;
168
+ description: string;
169
+ editable: boolean;
170
+ required: boolean;
171
+ formType: string;
172
+ propType: string;
173
+ min: number;
174
+ max: number;
175
+ step: number;
176
+ precision: number;
177
+ defaultValue: null;
178
+ };
179
+ };
180
+ };
181
+ //# sourceMappingURL=ProgressIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressIndicator.d.ts","sourceRoot":"","sources":["../../../../src/mappings/ProgressIndicator.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqLrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "46.10.3-177666.2+177666e",
3
+ "version": "46.10.3-17bcb4.2+17bcb40",
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.10.3-177666.2+177666e",
44
+ "@draftbit/types": "^46.10.3-17bcb4.2+17bcb40",
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",
@@ -100,5 +100,5 @@
100
100
  ]
101
101
  ]
102
102
  },
103
- "gitHead": "177666ee8ef3cc890c08bb938748ee789b2fb194"
103
+ "gitHead": "17bcb40c7216343fdeab3522d220cc4b7888d7a3"
104
104
  }
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { withTheme } from "../theming";
3
+ import Touchable from "./Touchable";
4
+ const getWidth = (numColumns) => {
5
+ switch (numColumns) {
6
+ case 1:
7
+ return "33%";
8
+ case 2:
9
+ return "50%";
10
+ default:
11
+ return "100%";
12
+ }
13
+ };
14
+ const Card = ({ numColumns = 3, children, onPress, style, ...rest }) => {
15
+ const width = getWidth(numColumns);
16
+ return (React.createElement(Touchable, { disabled: !onPress, onPress: onPress, style: [style, { width }], ...rest }, children));
17
+ };
18
+ export default withTheme(Card);
@@ -0,0 +1,46 @@
1
+ import React from "react";
2
+ import { withTheme } from "../theming";
3
+ import Touchable from "./Touchable";
4
+ import { StyleProp, ViewStyle } from "react-native";
5
+ import theme from "../styles/DefaultTheme";
6
+
7
+ type Props = {
8
+ numColumns?: number;
9
+ children?: React.ReactNode;
10
+ onPress?: () => void;
11
+ style?: StyleProp<ViewStyle>;
12
+ theme: typeof theme;
13
+ };
14
+
15
+ const getWidth = (numColumns: number) => {
16
+ switch (numColumns) {
17
+ case 1:
18
+ return "33%";
19
+ case 2:
20
+ return "50%";
21
+ default:
22
+ return "100%";
23
+ }
24
+ };
25
+
26
+ const Card: React.FC<React.PropsWithChildren<Props>> = ({
27
+ numColumns = 3,
28
+ children,
29
+ onPress,
30
+ style,
31
+ ...rest
32
+ }) => {
33
+ const width = getWidth(numColumns);
34
+ return (
35
+ <Touchable
36
+ disabled={!onPress}
37
+ onPress={onPress}
38
+ style={[style, { width }]}
39
+ {...rest}
40
+ >
41
+ {children}
42
+ </Touchable>
43
+ );
44
+ };
45
+
46
+ export default withTheme(Card);
@@ -0,0 +1,114 @@
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);