@draftbit/core 46.8.1-fdeb41.2 → 46.8.1

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 (96) hide show
  1. package/lib/commonjs/components/DeckSwiper/DeckSwiper.js +38 -4
  2. package/lib/commonjs/components/Layout.js +19 -40
  3. package/lib/commonjs/components/Picker/Picker.js +8 -9
  4. package/lib/commonjs/constants.js +1 -1
  5. package/lib/commonjs/mappings/Accordion.js +1 -0
  6. package/lib/commonjs/mappings/AccordionItem.js +1 -0
  7. package/lib/commonjs/mappings/ActionSheet.js +1 -0
  8. package/lib/commonjs/mappings/ActionSheetCancel.js +1 -0
  9. package/lib/commonjs/mappings/ActionSheetItem.js +1 -0
  10. package/lib/commonjs/mappings/LinearGradient.js +1 -0
  11. package/lib/commonjs/mappings/MapCallout.js +1 -0
  12. package/lib/commonjs/mappings/MapMarker.js +1 -0
  13. package/lib/commonjs/mappings/MapView.js +1 -0
  14. package/lib/commonjs/mappings/Swiper.js +1 -0
  15. package/lib/commonjs/mappings/SwiperItem.js +2 -1
  16. package/lib/commonjs/mappings/TextArea.js +1 -0
  17. package/lib/commonjs/mappings/TextField.js +1 -0
  18. package/lib/module/components/DeckSwiper/DeckSwiper.js +38 -4
  19. package/lib/module/components/Picker/Picker.js +8 -9
  20. package/lib/module/mappings/Accordion.js +2 -1
  21. package/lib/module/mappings/AccordionItem.js +2 -1
  22. package/lib/module/mappings/ActionSheet.js +2 -1
  23. package/lib/module/mappings/ActionSheetCancel.js +2 -1
  24. package/lib/module/mappings/ActionSheetItem.js +2 -1
  25. package/lib/module/mappings/LinearGradient.js +2 -1
  26. package/lib/module/mappings/MapCallout.js +2 -1
  27. package/lib/module/mappings/MapMarker.js +2 -1
  28. package/lib/module/mappings/MapView.js +2 -1
  29. package/lib/module/mappings/Swiper.js +2 -1
  30. package/lib/module/mappings/SwiperItem.js +3 -2
  31. package/lib/module/mappings/TextArea.js +2 -1
  32. package/lib/module/mappings/TextField.js +1 -0
  33. package/lib/typescript/src/components/DeckSwiper/DeckSwiper.d.ts +8 -2
  34. package/lib/typescript/src/components/DeckSwiper/DeckSwiper.d.ts.map +1 -1
  35. package/lib/typescript/src/components/DeckSwiper/DeckSwiperCard.d.ts +2 -3
  36. package/lib/typescript/src/components/DeckSwiper/DeckSwiperCard.d.ts.map +1 -1
  37. package/lib/typescript/src/components/Picker/Picker.d.ts.map +1 -1
  38. package/lib/typescript/src/mappings/Accordion.d.ts +1 -0
  39. package/lib/typescript/src/mappings/Accordion.d.ts.map +1 -1
  40. package/lib/typescript/src/mappings/AccordionItem.d.ts +1 -0
  41. package/lib/typescript/src/mappings/AccordionItem.d.ts.map +1 -1
  42. package/lib/typescript/src/mappings/ActionSheet.d.ts +1 -0
  43. package/lib/typescript/src/mappings/ActionSheet.d.ts.map +1 -1
  44. package/lib/typescript/src/mappings/ActionSheetCancel.d.ts +1 -0
  45. package/lib/typescript/src/mappings/ActionSheetCancel.d.ts.map +1 -1
  46. package/lib/typescript/src/mappings/ActionSheetItem.d.ts +1 -0
  47. package/lib/typescript/src/mappings/ActionSheetItem.d.ts.map +1 -1
  48. package/lib/typescript/src/mappings/LinearGradient.d.ts +1 -0
  49. package/lib/typescript/src/mappings/LinearGradient.d.ts.map +1 -1
  50. package/lib/typescript/src/mappings/MapCallout.d.ts +1 -0
  51. package/lib/typescript/src/mappings/MapCallout.d.ts.map +1 -1
  52. package/lib/typescript/src/mappings/MapMarker.d.ts +1 -0
  53. package/lib/typescript/src/mappings/MapMarker.d.ts.map +1 -1
  54. package/lib/typescript/src/mappings/MapView.d.ts +1 -0
  55. package/lib/typescript/src/mappings/MapView.d.ts.map +1 -1
  56. package/lib/typescript/src/mappings/Swiper.d.ts +1 -0
  57. package/lib/typescript/src/mappings/Swiper.d.ts.map +1 -1
  58. package/lib/typescript/src/mappings/SwiperItem.d.ts +1 -0
  59. package/lib/typescript/src/mappings/SwiperItem.d.ts.map +1 -1
  60. package/lib/typescript/src/mappings/TextArea.d.ts +1 -0
  61. package/lib/typescript/src/mappings/TextArea.d.ts.map +1 -1
  62. package/lib/typescript/src/mappings/TextField.d.ts +1 -1
  63. package/lib/typescript/src/mappings/TextField.d.ts.map +1 -1
  64. package/package.json +3 -3
  65. package/src/components/DeckSwiper/DeckSwiper.js +33 -3
  66. package/src/components/DeckSwiper/DeckSwiper.tsx +51 -9
  67. package/src/components/DeckSwiper/DeckSwiperCard.js +1 -1
  68. package/src/components/DeckSwiper/DeckSwiperCard.tsx +3 -6
  69. package/src/components/Picker/Picker.js +7 -8
  70. package/src/components/Picker/Picker.tsx +7 -9
  71. package/src/mappings/Accordion.js +10 -1
  72. package/src/mappings/Accordion.ts +10 -0
  73. package/src/mappings/AccordionItem.js +2 -1
  74. package/src/mappings/AccordionItem.ts +2 -0
  75. package/src/mappings/ActionSheet.js +2 -1
  76. package/src/mappings/ActionSheet.ts +7 -1
  77. package/src/mappings/ActionSheetCancel.js +2 -1
  78. package/src/mappings/ActionSheetCancel.ts +2 -0
  79. package/src/mappings/ActionSheetItem.js +2 -1
  80. package/src/mappings/ActionSheetItem.ts +2 -0
  81. package/src/mappings/LinearGradient.js +6 -1
  82. package/src/mappings/LinearGradient.ts +6 -0
  83. package/src/mappings/MapCallout.js +2 -1
  84. package/src/mappings/MapCallout.ts +2 -0
  85. package/src/mappings/MapMarker.js +2 -1
  86. package/src/mappings/MapMarker.ts +2 -0
  87. package/src/mappings/MapView.js +2 -1
  88. package/src/mappings/MapView.ts +2 -0
  89. package/src/mappings/Swiper.js +10 -1
  90. package/src/mappings/Swiper.ts +10 -0
  91. package/src/mappings/SwiperItem.js +2 -1
  92. package/src/mappings/SwiperItem.ts +5 -1
  93. package/src/mappings/TextArea.js +10 -1
  94. package/src/mappings/TextArea.ts +10 -0
  95. package/src/mappings/TextField.js +9 -0
  96. package/src/mappings/TextField.ts +9 -0
@@ -17,13 +17,47 @@ const DeckSwiper = _ref => {
17
17
  verticalEnabled = true,
18
18
  horizontalEnabled = true,
19
19
  visibleCardCount = 1,
20
+ data,
21
+ keyExtractor,
22
+ renderItem,
20
23
  style,
21
24
  children
22
25
  } = _ref;
26
+ //Both 'renderItem' and 'data' are optional to allow direct children. But if one is included, both need to be included
27
+ if (data && !renderItem || renderItem && !data) {
28
+ throw new Error("'renderItem' and 'data' need to both be provided to lazily render. Either remove them entirley or include both");
29
+ }
30
+ if (data && renderItem && children) {
31
+ console.warn("'children' of DeckSwiper ignored due to usage of 'data' and 'renderItem'");
32
+ }
23
33
  const childrenArray = _react.default.useMemo(() => _react.default.Children.toArray(children), [children]);
24
34
 
25
35
  // an array of indices based on children count
26
36
  const cardsFillerData = _react.default.useMemo(() => Array.from(Array(childrenArray.length).keys()), [childrenArray]);
37
+ const cardsData = data || cardsFillerData;
38
+ const renderCard = (card, index) => {
39
+ if (renderItem) {
40
+ return renderItem({
41
+ item: card,
42
+ index
43
+ });
44
+ } else {
45
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, childrenArray[index]);
46
+ }
47
+ };
48
+ const renderFirstCard = () => {
49
+ if (cardsData.length) {
50
+ return renderCard(cardsData[0], 0);
51
+ }
52
+ return undefined;
53
+ };
54
+ const cardKeyExtractor = card => {
55
+ if (keyExtractor) {
56
+ return keyExtractor(card);
57
+ } else {
58
+ return card === null || card === void 0 ? void 0 : card.toString();
59
+ }
60
+ };
27
61
 
28
62
  /**
29
63
  * By default react-native-deck-swiper positions everything with absolute position.
@@ -37,10 +71,10 @@ const DeckSwiper = _ref => {
37
71
 
38
72
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
39
73
  style: styles.containerHeightFiller
40
- }, childrenArray.length && childrenArray[0]), /*#__PURE__*/_react.default.createElement(_reactNativeDeckSwiper.default, {
41
- cards: cardsFillerData,
42
- renderCard: (_, i) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, childrenArray[i]),
43
- keyExtractor: card => card === null || card === void 0 ? void 0 : card.toString(),
74
+ }, renderFirstCard()), /*#__PURE__*/_react.default.createElement(_reactNativeDeckSwiper.default, {
75
+ cards: cardsData,
76
+ renderCard: renderCard,
77
+ keyExtractor: cardKeyExtractor,
44
78
  containerStyle: _reactNative.StyleSheet.flatten([styles.cardsContainer, style]),
45
79
  cardStyle: styles.card,
46
80
  onSwiped: onIndexChanged,
@@ -13,6 +13,7 @@ var React = _interopRequireWildcard(require("react"));
13
13
  var _reactNative = require("react-native");
14
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
15
  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; }
16
+ 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); }
16
17
  function Center(_ref) {
17
18
  let {
18
19
  width = 240,
@@ -22,16 +23,15 @@ function Center(_ref) {
22
23
  style,
23
24
  ...rest
24
25
  } = _ref;
25
- return /*#__PURE__*/React.createElement(_reactNative.View, {
26
+ return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
26
27
  style: [{
27
28
  justifyContent: "center",
28
29
  alignItems: "center",
29
30
  width,
30
31
  height,
31
32
  backgroundColor: bgColor
32
- }, style],
33
- ...rest
34
- }, children);
33
+ }, style]
34
+ }, rest), children);
35
35
  }
36
36
  function Circle(_ref2) {
37
37
  let {
@@ -42,7 +42,7 @@ function Circle(_ref2) {
42
42
  ...rest
43
43
  } = _ref2;
44
44
  const borderRadius = 1000;
45
- return /*#__PURE__*/React.createElement(Center, {
45
+ return /*#__PURE__*/React.createElement(Center, _extends({
46
46
  width: size,
47
47
  height: size,
48
48
  bgColor: bgColor,
@@ -50,9 +50,8 @@ function Circle(_ref2) {
50
50
  backgroundColor: bgColor,
51
51
  borderRadius,
52
52
  overflow: "hidden"
53
- }],
54
- ...rest
55
- }, children);
53
+ }]
54
+ }, rest), children);
56
55
  }
57
56
  function Square(_ref3) {
58
57
  let {
@@ -62,13 +61,12 @@ function Square(_ref3) {
62
61
  style,
63
62
  ...rest
64
63
  } = _ref3;
65
- return /*#__PURE__*/React.createElement(Center, {
64
+ return /*#__PURE__*/React.createElement(Center, _extends({
66
65
  style: style,
67
66
  width: size,
68
67
  height: size,
69
- bgColor: bgColor,
70
- ...rest
71
- }, children);
68
+ bgColor: bgColor
69
+ }, rest), children);
72
70
  }
73
71
  function Row(_ref4) {
74
72
  let {
@@ -78,14 +76,15 @@ function Row(_ref4) {
78
76
  style,
79
77
  ...rest
80
78
  } = _ref4;
81
- return /*#__PURE__*/React.createElement(_reactNative.View, {
82
- style: [style, {
79
+ return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
80
+ style: [style,
81
+ // style goes first b/c we can't override these
82
+ {
83
83
  alignItems,
84
84
  flexDirection: "row",
85
85
  justifyContent: justifyContent
86
- }],
87
- ...rest
88
- }, children);
86
+ }]
87
+ }, rest), children);
89
88
  }
90
89
  function Spacer(_ref5) {
91
90
  let {
@@ -97,36 +96,16 @@ function Spacer(_ref5) {
97
96
  style,
98
97
  ...rest
99
98
  } = _ref5;
100
- return /*#__PURE__*/React.createElement(_reactNative.View, {
99
+ return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
101
100
  style: [style, {
102
101
  paddingRight: right,
103
102
  paddingTop: top,
104
103
  paddingLeft: left,
105
104
  paddingBottom: bottom
106
- }],
107
- ...rest
108
- }, children);
105
+ }]
106
+ }, rest), children);
109
107
  }
110
108
  function Stack(_ref6) {
111
- let {
112
- children,
113
- justifyContent = "flex-start",
114
- alignItems = "flex-start",
115
- style,
116
- ...rest
117
- } = _ref6;
118
- return (
119
- /*#__PURE__*/
120
- // style must go first since we don't want justifyContent, alignItems overridden
121
- React.createElement(_reactNative.View, {
122
- style: [style, {
123
- justifyContent,
124
- alignItems
125
- }],
126
- ...rest
127
- }, children)
128
- );
129
- }Stack(_ref6) {
130
109
  let {
131
110
  children,
132
111
  justifyContent = "flex-start",
@@ -46,6 +46,9 @@ const isWeb = _reactNative.Platform.OS === "web";
46
46
  const unstyledColor = "rgba(165, 173, 183, 1)";
47
47
  const disabledColor = "rgb(240, 240, 240)";
48
48
  const errorColor = "rgba(255, 69, 100, 1)";
49
+
50
+ //Empty string for 'value' is treated as a non-value
51
+ //reason: Draftbit uses empty string as initial value for string state*/
49
52
  const Picker = _ref => {
50
53
  var _find$label, _find;
51
54
  let {
@@ -76,12 +79,12 @@ const Picker = _ref => {
76
79
  setPickerVisible(!pickerVisible);
77
80
  };
78
81
  React.useEffect(() => {
79
- if (value != null) {
82
+ if (value != null && value !== "") {
80
83
  setInternalValue(value);
81
84
  }
82
85
  }, [value]);
83
86
  React.useEffect(() => {
84
- if (defaultValue != null) {
87
+ if (defaultValue != null && defaultValue !== "") {
85
88
  setInternalValue(defaultValue);
86
89
  }
87
90
  }, [defaultValue]);
@@ -96,11 +99,7 @@ const Picker = _ref => {
96
99
  _reactNative.Keyboard.dismiss();
97
100
  }
98
101
  }, [pickerVisible, autoDismissKeyboard]);
99
- const normalizedOptions = normalizeOptions(options);
100
- const pickerOptions = placeholder ? [{
101
- value: placeholder,
102
- label: placeholder
103
- }, ...normalizedOptions] : normalizedOptions;
102
+ const pickerOptions = normalizeOptions(options);
104
103
  const {
105
104
  viewStyles,
106
105
  textStyles
@@ -200,10 +199,10 @@ const Picker = _ref => {
200
199
  } : {})
201
200
  };
202
201
  const handleValueChange = (newValue, itemIndex) => {
203
- if (!placeholder || itemIndex > 0) {
202
+ if (newValue !== "") {
204
203
  onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newValue, itemIndex);
204
+ setInternalValue(newValue);
205
205
  }
206
- setInternalValue(newValue);
207
206
  };
208
207
  return (
209
208
  /*#__PURE__*/
@@ -12,4 +12,4 @@ const APPROX_STATUSBAR_HEIGHT = _reactNative.Platform.select({
12
12
  android: DEFAULT_STATUSBAR_HEIGHT_EXPO,
13
13
  ios: _reactNative.Platform.Version < 11 ? DEFAULT_STATUSBAR_HEIGHT_EXPO : 0
14
14
  });
15
- exports.APPROX_STATUSBAR_HEIGHT = APPROX_STATUSBAR_HEIGHT;
15
+ exports.APPROX_STATUSBAR_HEIGHT = APPROX_STATUSBAR_HEIGHT;AR_HEIGHT;
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "AccordionGroup",
11
11
  description: "An expandable container containing components",
12
12
  category: _types.COMPONENT_TYPES.container,
13
+ stylesPanelSections: [_types.StylesPanelSections.LayoutSelectedItem, _types.StylesPanelSections.Background, _types.StylesPanelSections.Size, _types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Position, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Effects],
13
14
  layout: {
14
15
  paddingTop: 8,
15
16
  paddingRight: 8,
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "AccordionItem",
11
11
  description: "Item to be used in Accordion",
12
12
  category: _types.COMPONENT_TYPES.deprecated,
13
+ stylesPanelSections: _types.CONTAINER_COMPONENT_STYLES_SECTIONS,
13
14
  props: {
14
15
  icon: (0, _types.createIconProp)(),
15
16
  label: (0, _types.createTextProp)({
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "ActionSheet",
11
11
  description: "Action Sheet container",
12
12
  category: _types.COMPONENT_TYPES.actionsheet,
13
+ stylesPanelSections: [_types.StylesPanelSections.Size, _types.StylesPanelSections.Margins],
13
14
  props: {
14
15
  visible: (0, _types.createStaticBoolProp)({
15
16
  group: _types.GROUPS.data,
@@ -9,6 +9,7 @@ const SEED_DATA = {
9
9
  name: "Action Sheet Cancel",
10
10
  tag: "ActionSheetCancel",
11
11
  description: "Action Sheet cancel",
12
+ stylesPanelSections: [_types.StylesPanelSections.Size, _types.StylesPanelSections.Margins],
12
13
  category: _types.COMPONENT_TYPES.actionsheet,
13
14
  triggers: [_types.Triggers.OnPress],
14
15
  props: {
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "ActionSheetItem",
11
11
  description: "Action Sheet item",
12
12
  category: _types.COMPONENT_TYPES.actionsheet,
13
+ stylesPanelSections: [_types.StylesPanelSections.Size, _types.StylesPanelSections.Margins],
13
14
  triggers: [_types.Triggers.OnPress],
14
15
  layout: {
15
16
  textAlign: "center"
@@ -13,6 +13,7 @@ const SEED_DATA = {
13
13
  width: "100%",
14
14
  height: "100%"
15
15
  },
16
+ stylesPanelSections: [_types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Effects],
16
17
  props: {
17
18
  endY: {
18
19
  group: _types.GROUPS.basic,
@@ -9,6 +9,7 @@ const SEED_DATA = {
9
9
  name: "Map Callout",
10
10
  tag: "MapCallout",
11
11
  packageName: "@draftbit/maps",
12
+ stylesPanelSections: _types.CONTAINER_COMPONENT_STYLES_SECTIONS,
12
13
  description: "An info window to display on top of a marker when it is clicked",
13
14
  category: _types.COMPONENT_TYPES.map,
14
15
  triggers: [_types.Triggers.OnPress],
@@ -11,6 +11,7 @@ const SEED_DATA = {
11
11
  packageName: "@draftbit/maps",
12
12
  description: "A marker to show inside map view",
13
13
  category: _types.COMPONENT_TYPES.map,
14
+ stylesPanelSections: _types.CONTAINER_COMPONENT_STYLES_SECTIONS,
14
15
  layout: {},
15
16
  props: {
16
17
  latitude: (0, _types.createNumberProp)({
@@ -11,6 +11,7 @@ const SEED_DATA = {
11
11
  packageName: "@draftbit/maps",
12
12
  description: "A map view",
13
13
  category: _types.COMPONENT_TYPES.map,
14
+ stylesPanelSections: [_types.StylesPanelSections.Size, _types.StylesPanelSections.Margins],
14
15
  layout: {
15
16
  flex: 1,
16
17
  width: "100%",
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "Swiper",
11
11
  description: "Swiper container",
12
12
  category: _types.COMPONENT_TYPES.swiper,
13
+ stylesPanelSections: [_types.StylesPanelSections.LayoutSelectedItem, _types.StylesPanelSections.Background, _types.StylesPanelSections.Size, _types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Position, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Effects],
13
14
  layout: {
14
15
  height: 300,
15
16
  width: "100%"
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "SwiperItem",
11
11
  description: "Swiper item",
12
12
  category: _types.COMPONENT_TYPES.swiper,
13
- props: {}
13
+ props: {},
14
+ stylesPanelSections: _types.CONTAINER_COMPONENT_STYLES_SECTIONS
14
15
  };
15
16
  exports.SEED_DATA = SEED_DATA;
@@ -10,6 +10,7 @@ const SEED_DATA = {
10
10
  tag: "TextInput",
11
11
  description: "An input field that allows for multiple lines.",
12
12
  category: _types.COMPONENT_TYPES.input,
13
+ stylesPanelSections: [_types.StylesPanelSections.Typography, _types.StylesPanelSections.Background, _types.StylesPanelSections.Size, _types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Position, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Effects],
13
14
  layout: {
14
15
  borderLeftWidth: 1,
15
16
  borderRightWidth: 1,
@@ -279,6 +279,7 @@ const SEED_DATA = [{
279
279
  preview_image_url: "{CLOUDINARY_URL}/Textfield.png",
280
280
  supports_list_render: false,
281
281
  triggers: SEED_DATA_TRIGGERS,
282
+ stylesPanelSections: [_types.StylesPanelSections.Typography, _types.StylesPanelSections.Background, _types.StylesPanelSections.Size, _types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Position, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Effects],
282
283
  props: {
283
284
  ...SEED_DATA_PROPS,
284
285
  type: {
@@ -10,13 +10,47 @@ const DeckSwiper = _ref => {
10
10
  verticalEnabled = true,
11
11
  horizontalEnabled = true,
12
12
  visibleCardCount = 1,
13
+ data,
14
+ keyExtractor,
15
+ renderItem,
13
16
  style,
14
17
  children
15
18
  } = _ref;
19
+ //Both 'renderItem' and 'data' are optional to allow direct children. But if one is included, both need to be included
20
+ if (data && !renderItem || renderItem && !data) {
21
+ throw new Error("'renderItem' and 'data' need to both be provided to lazily render. Either remove them entirley or include both");
22
+ }
23
+ if (data && renderItem && children) {
24
+ console.warn("'children' of DeckSwiper ignored due to usage of 'data' and 'renderItem'");
25
+ }
16
26
  const childrenArray = React.useMemo(() => React.Children.toArray(children), [children]);
17
27
 
18
28
  // an array of indices based on children count
19
29
  const cardsFillerData = React.useMemo(() => Array.from(Array(childrenArray.length).keys()), [childrenArray]);
30
+ const cardsData = data || cardsFillerData;
31
+ const renderCard = (card, index) => {
32
+ if (renderItem) {
33
+ return renderItem({
34
+ item: card,
35
+ index
36
+ });
37
+ } else {
38
+ return /*#__PURE__*/React.createElement(React.Fragment, null, childrenArray[index]);
39
+ }
40
+ };
41
+ const renderFirstCard = () => {
42
+ if (cardsData.length) {
43
+ return renderCard(cardsData[0], 0);
44
+ }
45
+ return undefined;
46
+ };
47
+ const cardKeyExtractor = card => {
48
+ if (keyExtractor) {
49
+ return keyExtractor(card);
50
+ } else {
51
+ return card === null || card === void 0 ? void 0 : card.toString();
52
+ }
53
+ };
20
54
 
21
55
  /**
22
56
  * By default react-native-deck-swiper positions everything with absolute position.
@@ -30,10 +64,10 @@ const DeckSwiper = _ref => {
30
64
 
31
65
  return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
32
66
  style: styles.containerHeightFiller
33
- }, childrenArray.length && childrenArray[0]), /*#__PURE__*/React.createElement(DeckSwiperComponent, {
34
- cards: cardsFillerData,
35
- renderCard: (_, i) => /*#__PURE__*/React.createElement(React.Fragment, null, childrenArray[i]),
36
- keyExtractor: card => card === null || card === void 0 ? void 0 : card.toString(),
67
+ }, renderFirstCard()), /*#__PURE__*/React.createElement(DeckSwiperComponent, {
68
+ cards: cardsData,
69
+ renderCard: renderCard,
70
+ keyExtractor: cardKeyExtractor,
37
71
  containerStyle: StyleSheet.flatten([styles.cardsContainer, style]),
38
72
  cardStyle: styles.card,
39
73
  onSwiped: onIndexChanged,
@@ -37,6 +37,9 @@ const isWeb = Platform.OS === "web";
37
37
  const unstyledColor = "rgba(165, 173, 183, 1)";
38
38
  const disabledColor = "rgb(240, 240, 240)";
39
39
  const errorColor = "rgba(255, 69, 100, 1)";
40
+
41
+ //Empty string for 'value' is treated as a non-value
42
+ //reason: Draftbit uses empty string as initial value for string state*/
40
43
  const Picker = _ref => {
41
44
  var _find$label, _find;
42
45
  let {
@@ -67,12 +70,12 @@ const Picker = _ref => {
67
70
  setPickerVisible(!pickerVisible);
68
71
  };
69
72
  React.useEffect(() => {
70
- if (value != null) {
73
+ if (value != null && value !== "") {
71
74
  setInternalValue(value);
72
75
  }
73
76
  }, [value]);
74
77
  React.useEffect(() => {
75
- if (defaultValue != null) {
78
+ if (defaultValue != null && defaultValue !== "") {
76
79
  setInternalValue(defaultValue);
77
80
  }
78
81
  }, [defaultValue]);
@@ -87,11 +90,7 @@ const Picker = _ref => {
87
90
  Keyboard.dismiss();
88
91
  }
89
92
  }, [pickerVisible, autoDismissKeyboard]);
90
- const normalizedOptions = normalizeOptions(options);
91
- const pickerOptions = placeholder ? [{
92
- value: placeholder,
93
- label: placeholder
94
- }, ...normalizedOptions] : normalizedOptions;
93
+ const pickerOptions = normalizeOptions(options);
95
94
  const {
96
95
  viewStyles,
97
96
  textStyles
@@ -191,10 +190,10 @@ const Picker = _ref => {
191
190
  } : {})
192
191
  };
193
192
  const handleValueChange = (newValue, itemIndex) => {
194
- if (!placeholder || itemIndex > 0) {
193
+ if (newValue !== "") {
195
194
  onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newValue, itemIndex);
195
+ setInternalValue(newValue);
196
196
  }
197
- setInternalValue(newValue);
198
197
  };
199
198
  return (
200
199
  /*#__PURE__*/
@@ -1,9 +1,10 @@
1
- import { COMPONENT_TYPES, createNumberProp, createIconProp, createTextProp, createStaticBoolProp, createColorProp } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createNumberProp, createIconProp, createTextProp, createStaticBoolProp, createColorProp, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Accordion",
4
4
  tag: "AccordionGroup",
5
5
  description: "An expandable container containing components",
6
6
  category: COMPONENT_TYPES.container,
7
+ stylesPanelSections: [StylesPanelSections.LayoutSelectedItem, StylesPanelSections.Background, StylesPanelSections.Size, StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Position, StylesPanelSections.Borders, StylesPanelSections.Effects],
7
8
  layout: {
8
9
  paddingTop: 8,
9
10
  paddingRight: 8,
@@ -1,9 +1,10 @@
1
- import { COMPONENT_TYPES, createIconProp, createTextProp, createColorProp } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createIconProp, createTextProp, createColorProp, CONTAINER_COMPONENT_STYLES_SECTIONS } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Accordion Item",
4
4
  tag: "AccordionItem",
5
5
  description: "Item to be used in Accordion",
6
6
  category: COMPONENT_TYPES.deprecated,
7
+ stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
7
8
  props: {
8
9
  icon: createIconProp(),
9
10
  label: createTextProp({
@@ -1,9 +1,10 @@
1
- import { COMPONENT_TYPES, createStaticBoolProp, GROUPS } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createStaticBoolProp, GROUPS, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Action Sheet",
4
4
  tag: "ActionSheet",
5
5
  description: "Action Sheet container",
6
6
  category: COMPONENT_TYPES.actionsheet,
7
+ stylesPanelSections: [StylesPanelSections.Size, StylesPanelSections.Margins],
7
8
  props: {
8
9
  visible: createStaticBoolProp({
9
10
  group: GROUPS.data,
@@ -1,8 +1,9 @@
1
- import { COMPONENT_TYPES, createActionProp, createColorProp, createTextProp, GROUPS, Triggers } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createActionProp, createColorProp, createTextProp, GROUPS, Triggers, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Action Sheet Cancel",
4
4
  tag: "ActionSheetCancel",
5
5
  description: "Action Sheet cancel",
6
+ stylesPanelSections: [StylesPanelSections.Size, StylesPanelSections.Margins],
6
7
  category: COMPONENT_TYPES.actionsheet,
7
8
  triggers: [Triggers.OnPress],
8
9
  props: {
@@ -1,9 +1,10 @@
1
- import { COMPONENT_TYPES, createActionProp, createColorProp, createTextProp, GROUPS, Triggers } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createActionProp, createColorProp, createTextProp, GROUPS, Triggers, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Action Sheet Item",
4
4
  tag: "ActionSheetItem",
5
5
  description: "Action Sheet item",
6
6
  category: COMPONENT_TYPES.actionsheet,
7
+ stylesPanelSections: [StylesPanelSections.Size, StylesPanelSections.Margins],
7
8
  triggers: [Triggers.OnPress],
8
9
  layout: {
9
10
  textAlign: "center"
@@ -1,4 +1,4 @@
1
- import { createColorProp, FORM_TYPES, GROUPS, PROP_TYPES } from "@draftbit/types";
1
+ import { createColorProp, FORM_TYPES, GROUPS, PROP_TYPES, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Linear Gradient",
4
4
  tag: "LinearGradient",
@@ -7,6 +7,7 @@ export const SEED_DATA = {
7
7
  width: "100%",
8
8
  height: "100%"
9
9
  },
10
+ stylesPanelSections: [StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Borders, StylesPanelSections.Effects],
10
11
  props: {
11
12
  endY: {
12
13
  group: GROUPS.basic,
@@ -1,8 +1,9 @@
1
- import { COMPONENT_TYPES, createActionProp, createBoolProp, GROUPS, Triggers } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createActionProp, createBoolProp, GROUPS, Triggers, CONTAINER_COMPONENT_STYLES_SECTIONS } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Map Callout",
4
4
  tag: "MapCallout",
5
5
  packageName: "@draftbit/maps",
6
+ stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
6
7
  description: "An info window to display on top of a marker when it is clicked",
7
8
  category: COMPONENT_TYPES.map,
8
9
  triggers: [Triggers.OnPress],
@@ -1,10 +1,11 @@
1
- import { COMPONENT_TYPES, createBoolProp, createColorProp, createNumberProp, createTextProp, GROUPS } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createBoolProp, createColorProp, createNumberProp, createTextProp, GROUPS, CONTAINER_COMPONENT_STYLES_SECTIONS } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Map Marker",
4
4
  tag: "MapMarker",
5
5
  packageName: "@draftbit/maps",
6
6
  description: "A marker to show inside map view",
7
7
  category: COMPONENT_TYPES.map,
8
+ stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
8
9
  layout: {},
9
10
  props: {
10
11
  latitude: createNumberProp({
@@ -1,10 +1,11 @@
1
- import { COMPONENT_TYPES, createBoolProp, createColorProp, createNumberProp, createTextProp, GROUPS, FORM_TYPES, PROP_TYPES } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createBoolProp, createColorProp, createNumberProp, createTextProp, GROUPS, FORM_TYPES, PROP_TYPES, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Map View",
4
4
  tag: "MapView",
5
5
  packageName: "@draftbit/maps",
6
6
  description: "A map view",
7
7
  category: COMPONENT_TYPES.map,
8
+ stylesPanelSections: [StylesPanelSections.Size, StylesPanelSections.Margins],
8
9
  layout: {
9
10
  flex: 1,
10
11
  width: "100%",
@@ -1,9 +1,10 @@
1
- import { COMPONENT_TYPES, createBoolProp, createNumberProp, createTextProp, createColorProp, GROUPS, Triggers, createActionProp } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createBoolProp, createNumberProp, createTextProp, createColorProp, GROUPS, Triggers, createActionProp, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Swiper",
4
4
  tag: "Swiper",
5
5
  description: "Swiper container",
6
6
  category: COMPONENT_TYPES.swiper,
7
+ stylesPanelSections: [StylesPanelSections.LayoutSelectedItem, StylesPanelSections.Background, StylesPanelSections.Size, StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Position, StylesPanelSections.Borders, StylesPanelSections.Effects],
7
8
  layout: {
8
9
  height: 300,
9
10
  width: "100%"
@@ -1,8 +1,9 @@
1
- import { COMPONENT_TYPES } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, CONTAINER_COMPONENT_STYLES_SECTIONS } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Swiper Item",
4
4
  tag: "SwiperItem",
5
5
  description: "Swiper item",
6
6
  category: COMPONENT_TYPES.swiper,
7
- props: {}
7
+ props: {},
8
+ stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS
8
9
  };
@@ -1,9 +1,10 @@
1
- import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, Triggers, createDisabledProp } from "@draftbit/types";
1
+ import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, Triggers, createDisabledProp, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Text Area",
4
4
  tag: "TextInput",
5
5
  description: "An input field that allows for multiple lines.",
6
6
  category: COMPONENT_TYPES.input,
7
+ stylesPanelSections: [StylesPanelSections.Typography, StylesPanelSections.Background, StylesPanelSections.Size, StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Position, StylesPanelSections.Borders, StylesPanelSections.Effects],
7
8
  layout: {
8
9
  borderLeftWidth: 1,
9
10
  borderRightWidth: 1,
@@ -273,6 +273,7 @@ export const SEED_DATA = [{
273
273
  preview_image_url: "{CLOUDINARY_URL}/Textfield.png",
274
274
  supports_list_render: false,
275
275
  triggers: SEED_DATA_TRIGGERS,
276
+ stylesPanelSections: [StylesPanelSections.Typography, StylesPanelSections.Background, StylesPanelSections.Size, StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Position, StylesPanelSections.Borders, StylesPanelSections.Effects],
276
277
  props: {
277
278
  ...SEED_DATA_PROPS,
278
279
  type: {