@draftbit/core 46.3.0 → 46.4.1-cc9774.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 (190) hide show
  1. package/lib/commonjs/components/Accordion/AccordionItem.js +25 -5
  2. package/lib/commonjs/components/Justification.js +5 -1
  3. package/lib/commonjs/components/ResizeMode.js +5 -1
  4. package/lib/commonjs/components/Text.js +37 -11
  5. package/lib/commonjs/mappings/FlashList.js +42 -0
  6. package/lib/module/components/Justification.js +1 -0
  7. package/lib/module/components/ResizeMode.js +1 -0
  8. package/lib/module/mappings/FlashList.js +33 -0
  9. package/lib/typescript/src/mappings/FlashList.d.ts +54 -0
  10. package/package.json +4 -3
  11. package/src/Provider.js +9 -0
  12. package/src/components/Accordion/AccordionGroup.js +44 -0
  13. package/src/components/Accordion/AccordionItem.js +32 -0
  14. package/src/components/Accordion/index.js +2 -0
  15. package/src/components/ActionSheet/ActionSheet.js +45 -0
  16. package/src/components/ActionSheet/ActionSheetCancel.js +6 -0
  17. package/src/components/ActionSheet/ActionSheetItem.js +30 -0
  18. package/src/components/ActionSheet/index.js +3 -0
  19. package/src/components/AnimatedCircularProgress.js +43 -0
  20. package/src/components/AspectRatio.js +18 -0
  21. package/src/components/AvatarEdit.js +30 -0
  22. package/src/components/Banner.js +109 -0
  23. package/src/components/Button.js +112 -0
  24. package/src/components/Card.js +57 -0
  25. package/src/components/CardBlock.js +54 -0
  26. package/src/components/CardContainer.js +69 -0
  27. package/src/components/CardContainerRating.js +79 -0
  28. package/src/components/CardContainerShortImage.js +33 -0
  29. package/src/components/CardInline.js +36 -0
  30. package/src/components/Carousel.js +68 -0
  31. package/src/components/Checkbox/Checkbox.js +63 -0
  32. package/src/components/Checkbox/CheckboxGroup.js +21 -0
  33. package/src/components/Checkbox/CheckboxGroupRow.js +77 -0
  34. package/src/components/Checkbox/CheckboxRow.js +78 -0
  35. package/src/components/Checkbox/context.js +14 -0
  36. package/src/components/Checkbox/index.js +3 -0
  37. package/src/components/CircleImage.js +8 -0
  38. package/src/components/CircularProgress.js +81 -0
  39. package/src/components/Config.js +64 -0
  40. package/src/components/Container.js +43 -0
  41. package/src/components/DatePicker/DatePicker.js +368 -0
  42. package/src/components/DatePicker/DatePickerComponent.js +13 -0
  43. package/src/components/DatePicker/DatePickerComponent.web.js +30 -0
  44. package/src/components/DatePicker/DatePickerComponentType.js +1 -0
  45. package/src/components/DeprecatedButton.js +95 -0
  46. package/src/components/DeprecatedCardWrapper.js +18 -0
  47. package/src/components/DeprecatedFAB.js +115 -0
  48. package/src/components/Divider.js +13 -0
  49. package/src/components/Elevation.js +20 -0
  50. package/src/components/FAB.js +46 -0
  51. package/src/components/FieldSearchBarFull.js +53 -0
  52. package/src/components/FormRow.js +19 -0
  53. package/src/components/Header.js +44 -0
  54. package/src/components/HeaderLarge.js +7 -0
  55. package/src/components/HeaderMedium.js +7 -0
  56. package/src/components/HeaderOverline.js +7 -0
  57. package/src/components/IconButton.js +35 -0
  58. package/src/components/Image.js +47 -0
  59. package/src/components/Justification.js +1 -0
  60. package/src/components/Layout.js +50 -0
  61. package/src/components/NumberInput.js +49 -0
  62. package/src/components/Picker/Picker.js +267 -0
  63. package/src/components/Picker/PickerComponent.android.js +69 -0
  64. package/src/components/Picker/PickerComponent.ios.js +79 -0
  65. package/src/components/Picker/PickerComponent.web.js +70 -0
  66. package/src/components/Picker/PickerTypes.js +1 -0
  67. package/src/components/Portal/Portal.js +35 -0
  68. package/src/components/Portal/PortalConsumer.js +27 -0
  69. package/src/components/Portal/PortalHost.js +107 -0
  70. package/src/components/Portal/PortalManager.js +32 -0
  71. package/src/components/ProgressBar.js +118 -0
  72. package/src/components/ProgressCircle.js +13 -0
  73. package/src/components/ProgressIndicator.js +27 -0
  74. package/src/components/RadioButton/RadioButton.js +17 -0
  75. package/src/components/RadioButton/RadioButtonFieldGroup.js +17 -0
  76. package/src/components/RadioButton/RadioButtonGroup.js +43 -0
  77. package/src/components/RadioButton/RadioButtonRow.js +76 -0
  78. package/src/components/RadioButton/context.js +14 -0
  79. package/src/components/RadioButton/index.js +4 -0
  80. package/src/components/ResizeMode.js +1 -0
  81. package/src/components/Row.js +48 -0
  82. package/src/components/RowBodyIcon.js +8 -0
  83. package/src/components/RowHeadlineImageCaption.js +12 -0
  84. package/src/components/RowHeadlineImageIcon.js +14 -0
  85. package/src/components/SVG.js +13 -0
  86. package/src/components/ScreenContainer.js +34 -0
  87. package/src/components/Slider.js +63 -0
  88. package/src/components/StarRating.js +50 -0
  89. package/src/components/StepIndicator.js +346 -0
  90. package/src/components/Stepper.js +39 -0
  91. package/src/components/Surface.js +32 -0
  92. package/src/components/Swiper/Swiper.js +29 -0
  93. package/src/components/Swiper/SwiperItem.js +9 -0
  94. package/src/components/Swiper/index.js +2 -0
  95. package/src/components/Switch.js +56 -0
  96. package/src/components/Text.js +27 -0
  97. package/src/components/TextField.js +423 -0
  98. package/src/components/ToggleButton.js +39 -0
  99. package/src/components/Touchable.js +12 -0
  100. package/src/components/Touchable.web.js +2 -0
  101. package/src/components/Typography.js +36 -0
  102. package/src/components/useAuthState.js +31 -0
  103. package/src/constants.js +10 -0
  104. package/src/hooks.js +12 -0
  105. package/src/index.js +53 -0
  106. package/src/interfaces/Icon.js +8 -0
  107. package/src/mappings/Accordion.js +41 -0
  108. package/src/mappings/AccordionItem.js +16 -0
  109. package/src/mappings/ActionSheet.js +13 -0
  110. package/src/mappings/ActionSheetCancel.js +19 -0
  111. package/src/mappings/ActionSheetItem.js +23 -0
  112. package/src/mappings/ActivityIndicator.js +58 -0
  113. package/src/mappings/AudioPlayer.js +20 -0
  114. package/src/mappings/AvatarEdit.js +38 -0
  115. package/src/mappings/Banner.js +32 -0
  116. package/src/mappings/BlurView.js +42 -0
  117. package/src/mappings/Button.js +74 -0
  118. package/src/mappings/Card.js +52 -0
  119. package/src/mappings/CardBlock.js +123 -0
  120. package/src/mappings/CardContainer.js +104 -0
  121. package/src/mappings/CardContainerRating.js +126 -0
  122. package/src/mappings/CardContainerShortImage.js +120 -0
  123. package/src/mappings/CardInline.js +52 -0
  124. package/src/mappings/Carousel.js +19 -0
  125. package/src/mappings/Checkbox.js +46 -0
  126. package/src/mappings/CheckboxGroup.js +26 -0
  127. package/src/mappings/CheckboxRow.js +61 -0
  128. package/src/mappings/CircleImage.js +25 -0
  129. package/src/mappings/Container.js +30 -0
  130. package/src/mappings/CustomCode.js +8 -0
  131. package/src/mappings/DatePicker.js +157 -0
  132. package/src/mappings/Divider.js +27 -0
  133. package/src/mappings/FAB.js +37 -0
  134. package/src/mappings/Fetch.js +13 -0
  135. package/src/mappings/FieldSearchBarFull.js +50 -0
  136. package/src/mappings/FlashList.js +33 -0
  137. package/src/mappings/FlashList.ts +41 -0
  138. package/src/mappings/FlatList.js +24 -0
  139. package/src/mappings/HeaderLarge.js +29 -0
  140. package/src/mappings/HeaderMedium.js +55 -0
  141. package/src/mappings/HeaderOverline.js +55 -0
  142. package/src/mappings/Icon.js +32 -0
  143. package/src/mappings/IconButton.js +35 -0
  144. package/src/mappings/Image.js +21 -0
  145. package/src/mappings/ImageBackground.js +29 -0
  146. package/src/mappings/KeyboardAvoidingView.js +41 -0
  147. package/src/mappings/KeyboardAwareScrollView.js +50 -0
  148. package/src/mappings/Layout.js +200 -0
  149. package/src/mappings/LinearGradient.js +77 -0
  150. package/src/mappings/MapCallout.js +21 -0
  151. package/src/mappings/MapMarker.js +47 -0
  152. package/src/mappings/MapView.js +139 -0
  153. package/src/mappings/Modal.js +42 -0
  154. package/src/mappings/NumberInput.js +254 -0
  155. package/src/mappings/Picker.js +148 -0
  156. package/src/mappings/ProgressBar.js +101 -0
  157. package/src/mappings/ProgressCircle.js +109 -0
  158. package/src/mappings/ProgressIndicator.js +181 -0
  159. package/src/mappings/RadioButton.js +51 -0
  160. package/src/mappings/RadioButtonGroup.js +17 -0
  161. package/src/mappings/RadioButtonRow.js +42 -0
  162. package/src/mappings/RowBodyIcon.js +75 -0
  163. package/src/mappings/RowHeadlineImageCaption.js +167 -0
  164. package/src/mappings/RowHeadlineImageIcon.js +99 -0
  165. package/src/mappings/SVG.js +20 -0
  166. package/src/mappings/SafeAreaView.js +33 -0
  167. package/src/mappings/ScrollView.js +31 -0
  168. package/src/mappings/Slider.js +60 -0
  169. package/src/mappings/StarRating.js +43 -0
  170. package/src/mappings/Stepper.js +29 -0
  171. package/src/mappings/Surface.js +14 -0
  172. package/src/mappings/Swiper.js +60 -0
  173. package/src/mappings/SwiperItem.js +8 -0
  174. package/src/mappings/Switch.js +81 -0
  175. package/src/mappings/Text.js +251 -0
  176. package/src/mappings/TextArea.js +263 -0
  177. package/src/mappings/TextField.js +381 -0
  178. package/src/mappings/TextInput.js +391 -0
  179. package/src/mappings/ToggleButton.js +50 -0
  180. package/src/mappings/Touchable.js +17 -0
  181. package/src/mappings/Video.js +81 -0
  182. package/src/mappings/View.js +207 -0
  183. package/src/mappings/WebView.js +88 -0
  184. package/src/styles/DarkTheme.js +26 -0
  185. package/src/styles/DefaultTheme.js +111 -0
  186. package/src/styles/fonts.js +62 -0
  187. package/src/styles/overlay.js +60 -0
  188. package/src/styles/shadow.js +51 -0
  189. package/src/theming.js +3 -0
  190. package/src/utilities.js +102 -0
@@ -21,8 +21,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
-
26
24
  const AccordionItem = _ref => {
27
25
  let {
28
26
  Icon,
@@ -37,9 +35,10 @@ const AccordionItem = _ref => {
37
35
  textStyles,
38
36
  viewStyles
39
37
  } = (0, _utilities.extractStyles)(style);
40
- return /*#__PURE__*/React.createElement(_reactNative.Pressable, _extends({
41
- style: [styles.container, viewStyles]
42
- }, rest), /*#__PURE__*/React.createElement(_reactNative.View, {
38
+ return /*#__PURE__*/React.createElement(_reactNative.Pressable, {
39
+ style: [styles.container, viewStyles],
40
+ ...rest
41
+ }, /*#__PURE__*/React.createElement(_reactNative.View, {
43
42
  style: styles.row
44
43
  }, icon ? /*#__PURE__*/React.createElement(Icon, {
45
44
  name: icon,
@@ -74,4 +73,25 @@ const styles = _reactNative.StyleSheet.create({
74
73
 
75
74
  var _default = (0, _theming.withTheme)(AccordionItem);
76
75
 
76
+ exports.default = _default;StyleSheet.create({
77
+ container: {
78
+ padding: 8
79
+ },
80
+ row: {
81
+ flexDirection: "row",
82
+ alignItems: "center",
83
+ paddingLeft: 8
84
+ },
85
+ item: {
86
+ marginVertical: 6,
87
+ paddingLeft: 8
88
+ },
89
+ content: {
90
+ flex: 1,
91
+ justifyContent: "center"
92
+ }
93
+ });
94
+
95
+ var _default = (0, _theming.withTheme)(AccordionItem);
96
+
77
97
  exports.default = _default;
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -15,17 +15,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
-
20
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
-
22
18
  class Text extends React.Component {
23
- constructor() {
24
- super(...arguments);
25
-
26
- _defineProperty(this, "_root", void 0);
27
- }
28
-
29
19
  setNativeProps(args) {
30
20
  return this._root && this._root.setNativeProps(args);
31
21
  }
@@ -36,7 +26,43 @@ class Text extends React.Component {
36
26
  ...rest
37
27
  } = this.props;
38
28
  const writingDirection = _reactNative.I18nManager.isRTL ? "rtl" : "ltr";
39
- return /*#__PURE__*/React.createElement(_reactNative.Text, _extends({}, rest, {
29
+ return /*#__PURE__*/React.createElement(_reactNative.Text, { ...rest,
30
+ ref: c => {
31
+ this._root = c;
32
+ },
33
+ style: [{
34
+ textAlign: "left",
35
+ writingDirection
36
+ }, style]
37
+ });
38
+ }
39
+
40
+ }
41
+
42
+ const BaseLink = _ref => {
43
+ let {
44
+ style,
45
+ theme,
46
+ title,
47
+ ...props
48
+ } = _ref;
49
+ return /*#__PURE__*/React.createElement(Text, {
50
+ hitSlop: 8,
51
+ style: [{
52
+ color: theme.colors.primary
53
+ }, style],
54
+ theme: theme,
55
+ ...props
56
+ }, title);
57
+ };
58
+
59
+ exports.BaseLink = BaseLink;
60
+ const Link = (0, _theming.withTheme)(BaseLink);
61
+ exports.Link = Link;
62
+
63
+ var _default = (0, _theming.withTheme)(Text);
64
+
65
+ exports.default = _default;/React.createElement(_reactNative.Text, _extends({}, rest, {
40
66
  ref: c => {
41
67
  this._root = c;
42
68
  },
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SEED_DATA = void 0;
7
+
8
+ var _types = require("@draftbit/types");
9
+
10
+ const SEED_DATA = {
11
+ name: "FlashList",
12
+ tag: "FlashList",
13
+ description: "Flashlist by Shopify",
14
+ packageName: "@shopify/flash-list",
15
+ category: _types.COMPONENT_TYPES.data,
16
+ stylesPanelSections: _types.CONTAINER_COMPONENT_STYLES_SECTIONS,
17
+ layout: {
18
+ flex: 1
19
+ },
20
+ props: {
21
+ estimatedItemSize: (0, _types.createNumberProp)({
22
+ group: _types.GROUPS.basic,
23
+ label: "Est. Item Size",
24
+ description: "Approximate size of the items before rendering.",
25
+ defaultValue: 50,
26
+ step: 1,
27
+ precision: 0
28
+ }),
29
+ horizontal: (0, _types.createStaticBoolProp)({
30
+ label: "Horizontal",
31
+ description: "Render list horizontally"
32
+ }),
33
+ inverted: (0, _types.createStaticBoolProp)({
34
+ label: "Inverted",
35
+ description: "If true, reverses the direction."
36
+ }),
37
+ numColumns: (0, _types.createNumColumnsType)({
38
+ editable: true
39
+ })
40
+ }
41
+ };
42
+ exports.SEED_DATA = SEED_DATA;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ import { COMPONENT_TYPES, createNumColumnsType, createStaticBoolProp, createNumberProp, CONTAINER_COMPONENT_STYLES_SECTIONS, GROUPS } from "@draftbit/types";
2
+ export const SEED_DATA = {
3
+ name: "FlashList",
4
+ tag: "FlashList",
5
+ description: "Flashlist by Shopify",
6
+ packageName: "@shopify/flash-list",
7
+ category: COMPONENT_TYPES.data,
8
+ stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
9
+ layout: {
10
+ flex: 1
11
+ },
12
+ props: {
13
+ estimatedItemSize: createNumberProp({
14
+ group: GROUPS.basic,
15
+ label: "Est. Item Size",
16
+ description: "Approximate size of the items before rendering.",
17
+ defaultValue: 50,
18
+ step: 1,
19
+ precision: 0
20
+ }),
21
+ horizontal: createStaticBoolProp({
22
+ label: "Horizontal",
23
+ description: "Render list horizontally"
24
+ }),
25
+ inverted: createStaticBoolProp({
26
+ label: "Inverted",
27
+ description: "If true, reverses the direction."
28
+ }),
29
+ numColumns: createNumColumnsType({
30
+ editable: true
31
+ })
32
+ }
33
+ };
@@ -0,0 +1,54 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ packageName: string;
6
+ category: string;
7
+ stylesPanelSections: string[];
8
+ layout: {
9
+ flex: number;
10
+ };
11
+ props: {
12
+ estimatedItemSize: {
13
+ label: string;
14
+ description: string;
15
+ formType: string;
16
+ propType: string;
17
+ group: string;
18
+ defaultValue: null;
19
+ editable: boolean;
20
+ required: boolean;
21
+ step: number;
22
+ };
23
+ horizontal: {
24
+ label: string;
25
+ description: string;
26
+ formType: string;
27
+ propType: string;
28
+ defaultValue: boolean;
29
+ editable: boolean;
30
+ required: boolean;
31
+ group: string;
32
+ };
33
+ inverted: {
34
+ label: string;
35
+ description: string;
36
+ formType: string;
37
+ propType: string;
38
+ defaultValue: boolean;
39
+ editable: boolean;
40
+ required: boolean;
41
+ group: string;
42
+ };
43
+ numColumns: {
44
+ label: string;
45
+ description: string;
46
+ group: string;
47
+ formType: string;
48
+ propType: string;
49
+ defaultValue: number;
50
+ editable: boolean;
51
+ required: boolean;
52
+ };
53
+ };
54
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "46.3.0",
3
+ "version": "46.4.1-cc9774.0+cc97745",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -41,11 +41,12 @@
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.3.0",
44
+ "@draftbit/types": "^46.4.1-cc9774.0+cc97745",
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",
48
48
  "@react-native-picker/picker": "2.4.2",
49
+ "@shopify/flash-list": "1.2.0",
49
50
  "color": "^3.1.2",
50
51
  "date-fns": "^2.16.1",
51
52
  "dateformat": "^3.0.3",
@@ -80,5 +81,5 @@
80
81
  ]
81
82
  ]
82
83
  },
83
- "gitHead": "90a944afbd74ef9350ee8c97f512b0f067642532"
84
+ "gitHead": "cc9774555873faa2b6c3eaf66ffa92daf1341f8d"
84
85
  }
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { ThemeProvider } from "./theming";
3
+ import PortalHost from "./components/Portal/PortalHost";
4
+ export default class Provider extends React.Component {
5
+ render() {
6
+ return (React.createElement(PortalHost, null,
7
+ React.createElement(ThemeProvider, { theme: this.props.theme }, this.props.children)));
8
+ }
9
+ }
@@ -0,0 +1,44 @@
1
+ import * as React from "react";
2
+ import { View, StyleSheet, Pressable, } from "react-native";
3
+ import Text from "../Text";
4
+ import { withTheme } from "../../theming";
5
+ import { extractStyles } from "../../utilities";
6
+ const AccordionGroup = ({ label, expanded: expandedProp = false, openColor, closedColor, caretColor: caretColorProp, caretSize = 24, icon, iconSize = 24, style, children, theme, Icon, }) => {
7
+ const [expanded, setExpanded] = React.useState(expandedProp);
8
+ const { textStyles, viewStyles } = extractStyles(style);
9
+ const expandedColor = openColor || theme.colors.primary;
10
+ const collapsedColor = closedColor || theme.colors.primary;
11
+ const labelColor = expanded ? expandedColor : collapsedColor;
12
+ const caretColor = caretColorProp || labelColor;
13
+ const handlePressAction = () => {
14
+ setExpanded(!expanded);
15
+ };
16
+ return (React.createElement(React.Fragment, null,
17
+ React.createElement(Pressable, { style: [styles.row, viewStyles], onPress: handlePressAction, accessibilityRole: "button" },
18
+ icon ? (React.createElement(Icon, { name: icon, size: iconSize, color: labelColor, style: styles.icon })) : null,
19
+ React.createElement(View, { style: styles.content },
20
+ React.createElement(Text, { selectable: false, style: [
21
+ textStyles,
22
+ {
23
+ color: labelColor,
24
+ },
25
+ ] }, label)),
26
+ React.createElement(Icon, { name: expanded
27
+ ? "MaterialIcons/keyboard-arrow-up"
28
+ : "MaterialIcons/keyboard-arrow-down", color: caretColor, size: caretSize })),
29
+ expanded ? children : null));
30
+ };
31
+ const styles = StyleSheet.create({
32
+ row: {
33
+ flexDirection: "row",
34
+ alignItems: "center",
35
+ },
36
+ content: {
37
+ flex: 1,
38
+ justifyContent: "center",
39
+ },
40
+ icon: {
41
+ marginRight: 8,
42
+ },
43
+ });
44
+ export default withTheme(AccordionGroup);
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+ import { Pressable, StyleSheet, View, } from "react-native";
3
+ import Text from "../Text";
4
+ import { extractStyles } from "../../utilities";
5
+ import { withTheme } from "../../theming";
6
+ const AccordionItem = ({ Icon, icon, label, style, iconColor, theme, ...rest }) => {
7
+ const { textStyles, viewStyles } = extractStyles(style);
8
+ return (React.createElement(Pressable, { style: [styles.container, viewStyles], ...rest },
9
+ React.createElement(View, { style: styles.row },
10
+ icon ? (React.createElement(Icon, { name: icon, size: 24, color: iconColor || theme.colors.primary })) : null,
11
+ React.createElement(View, { style: [styles.item, styles.content] },
12
+ React.createElement(Text, { selectable: false, style: textStyles }, label)))));
13
+ };
14
+ const styles = StyleSheet.create({
15
+ container: {
16
+ padding: 8,
17
+ },
18
+ row: {
19
+ flexDirection: "row",
20
+ alignItems: "center",
21
+ paddingLeft: 8,
22
+ },
23
+ item: {
24
+ marginVertical: 6,
25
+ paddingLeft: 8,
26
+ },
27
+ content: {
28
+ flex: 1,
29
+ justifyContent: "center",
30
+ },
31
+ });
32
+ export default withTheme(AccordionItem);
@@ -0,0 +1,2 @@
1
+ export { default as AccordionGroup } from "./AccordionGroup";
2
+ export { default as AccordionItem } from "./AccordionItem";
@@ -0,0 +1,45 @@
1
+ import React from "react";
2
+ import { View, StyleSheet } from "react-native";
3
+ import Portal from "../Portal/Portal";
4
+ import Touchable from "../Touchable";
5
+ import ActionSheetCancel from "./ActionSheetCancel";
6
+ const ActionSheet = ({ visible = false, onClose, children }) => {
7
+ return visible ? (React.createElement(Portal, null,
8
+ React.createElement(Touchable, { style: styles.wrapper, onPress: onClose },
9
+ React.createElement(View, { style: styles.overlay }),
10
+ React.createElement(View, { style: styles.groupWrapper },
11
+ React.createElement(View, { style: styles.group }, React.Children.toArray(children).filter((child) => (child === null || child === void 0 ? void 0 : child.type) !== ActionSheetCancel)),
12
+ React.createElement(View, { style: styles.group }, React.Children.toArray(children).filter((child) => child.type === ActionSheetCancel)))))) : (React.createElement(React.Fragment, null));
13
+ };
14
+ const styles = StyleSheet.create({
15
+ wrapper: {
16
+ flex: 1,
17
+ display: "flex",
18
+ flexDirection: "column",
19
+ },
20
+ overlay: {
21
+ position: "absolute",
22
+ top: 0,
23
+ left: 0,
24
+ right: 0,
25
+ bottom: 0,
26
+ backgroundColor: "#000000",
27
+ opacity: 0.3,
28
+ },
29
+ groupWrapper: {
30
+ flex: 1,
31
+ flexDirection: "column",
32
+ justifyContent: "flex-end",
33
+ display: "flex",
34
+ marginBottom: 25,
35
+ },
36
+ group: {
37
+ display: "flex",
38
+ flexDirection: "column",
39
+ borderRadius: 10,
40
+ marginHorizontal: 7,
41
+ marginVertical: 2.5,
42
+ overflow: "hidden",
43
+ },
44
+ });
45
+ export default ActionSheet;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import ActionSheetItem from "./ActionSheetItem";
3
+ const ActionSheetCancel = ({ label = "Cancel", color, style, onPress, }) => {
4
+ return (React.createElement(ActionSheetItem, { label: label, color: color || "#FF453A", style: [style], onPress: onPress }));
5
+ };
6
+ export default ActionSheetCancel;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import { Text, StyleSheet, TouchableOpacity, } from "react-native";
3
+ import { extractStyles } from "../../utilities";
4
+ const ActionSheetItem = ({ label, style, color, onPress, }) => {
5
+ const { textStyles, viewStyles } = extractStyles(style);
6
+ return (React.createElement(TouchableOpacity, { activeOpacity: 0.7, style: [styles.wrapper, viewStyles], onPress: onPress },
7
+ React.createElement(Text, { style: [styles.label, textStyles, { color }] }, label)));
8
+ };
9
+ const styles = StyleSheet.create({
10
+ wrapper: {
11
+ borderBottomWidth: StyleSheet.hairlineWidth,
12
+ borderBottomColor: "#CCCCCC",
13
+ backgroundColor: "#F1F1F1",
14
+ minHeight: 50,
15
+ overflow: "hidden",
16
+ display: "flex",
17
+ justifyContent: "center",
18
+ },
19
+ label: {
20
+ fontSize: 16,
21
+ textAlign: "center",
22
+ color: "#0A84FF",
23
+ fontWeight: "500",
24
+ overflow: "hidden",
25
+ paddingHorizontal: 20,
26
+ paddingVertical: 10,
27
+ alignSelf: "center",
28
+ },
29
+ });
30
+ export default ActionSheetItem;
@@ -0,0 +1,3 @@
1
+ export { default as ActionSheet } from "./ActionSheet";
2
+ export { default as ActionSheetItem } from "./ActionSheetItem";
3
+ export { default as ActionSheetCancel } from "./ActionSheetCancel";
@@ -0,0 +1,43 @@
1
+ import * as React from "react";
2
+ import { Animated, Easing, } from "react-native";
3
+ import CircularProgress from "./CircularProgress";
4
+ const AnimatedProgress = Animated.createAnimatedComponent(CircularProgress);
5
+ const AnimatedCircularProgress = ({ duration = 500, easing = Easing.out(Easing.ease), fill, prefill = 0, useNativeDriver = false, tintColorSecondary, onAnimationComplete, tintColor = "black", ...other }) => {
6
+ const [fillAnimation] = React.useState(new Animated.Value(prefill));
7
+ const animate = React.useCallback((toVal = -1, dur, ease) => {
8
+ const toValue = toVal >= 0 ? toVal : fill;
9
+ const dura = dur || duration;
10
+ const eas = ease || easing;
11
+ const useNative = useNativeDriver;
12
+ const anim = Animated.timing(fillAnimation, {
13
+ useNativeDriver: useNative,
14
+ toValue,
15
+ easing: eas,
16
+ duration: dura,
17
+ });
18
+ anim.start(onAnimationComplete);
19
+ return anim;
20
+ }, [
21
+ duration,
22
+ easing,
23
+ fill,
24
+ useNativeDriver,
25
+ fillAnimation,
26
+ onAnimationComplete,
27
+ ]);
28
+ const animateColor = () => {
29
+ if (!tintColorSecondary) {
30
+ return tintColor;
31
+ }
32
+ const tintAnimation = fillAnimation.interpolate({
33
+ inputRange: [0, 100],
34
+ outputRange: [tintColor, tintColorSecondary],
35
+ });
36
+ return tintAnimation;
37
+ };
38
+ React.useEffect(() => {
39
+ animate();
40
+ }, [fill, animate]);
41
+ return (React.createElement(AnimatedProgress, { ...other, style: other.style, childrenContainerStyle: other.childrenContainerStyle, fill: fillAnimation, tintColor: animateColor() }));
42
+ };
43
+ export default AnimatedCircularProgress;
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { View, StyleSheet, } from "react-native";
3
+ const AspectRatio = (props) => {
4
+ const [layout, setLayout] = React.useState(null);
5
+ const { aspectRatio = 1, ...inputStyle } = StyleSheet.flatten(props.style) || {};
6
+ const style = [inputStyle, { aspectRatio }];
7
+ if (layout) {
8
+ const { width = 0, height = 0 } = layout;
9
+ if (width === 0) {
10
+ style.push({ width: height * (1 / aspectRatio), height });
11
+ }
12
+ else {
13
+ style.push({ width, height: width * (1 / aspectRatio) });
14
+ }
15
+ }
16
+ return (React.createElement(View, { ...props, style: style, onLayout: ({ nativeEvent: { layout: l } }) => setLayout(l) }, props.children));
17
+ };
18
+ export default AspectRatio;
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ import { View } from "react-native";
3
+ import Touchable from "./Touchable";
4
+ import CircleImage from "./CircleImage";
5
+ import { withTheme } from "../theming";
6
+ const AvatarEdit = ({ Icon, image, size = 80, onPress = () => { }, style, theme, ...rest }) => {
7
+ const colorStyles = {
8
+ editBackgroundColor: theme.colors.primary,
9
+ editIconColor: theme.colors.surface,
10
+ editBorderColor: theme.colors.surface,
11
+ };
12
+ const dimensions = {
13
+ width: size,
14
+ height: size,
15
+ };
16
+ return (React.createElement(View, { style: [style, dimensions], ...rest },
17
+ React.createElement(Touchable, { onPress: onPress },
18
+ React.createElement(CircleImage, { source: image, size: size }),
19
+ React.createElement(View, { style: {
20
+ position: "absolute",
21
+ top: -3,
22
+ right: -3,
23
+ borderColor: colorStyles.editBorderColor,
24
+ backgroundColor: colorStyles.editBackgroundColor,
25
+ borderRadius: size * (3 / 16),
26
+ padding: size * (3 / 32),
27
+ } },
28
+ React.createElement(Icon, { name: "MaterialIcons/edit", color: colorStyles.editIconColor, size: size * (3 / 16) })))));
29
+ };
30
+ export default withTheme(AvatarEdit);