@draftbit/core 46.4.4-535477.2 → 46.4.4-618dac.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 (57) hide show
  1. package/lib/commonjs/components/BottomSheet/BottomSheet.native.js +68 -0
  2. package/lib/commonjs/components/BottomSheet/BottomSheet.web.js +97 -0
  3. package/lib/commonjs/components/BottomSheet/index.js +15 -0
  4. package/lib/commonjs/components/BottomSheet/types.js +5 -0
  5. package/lib/commonjs/components/CircleImage.js +16 -2
  6. package/lib/commonjs/components/Text.js +6 -2
  7. package/lib/commonjs/components/TextField.js +5 -1
  8. package/lib/commonjs/index.js +8 -0
  9. package/lib/commonjs/mappings/AudioPlayer.js +2 -32
  10. package/lib/commonjs/mappings/BottomSheet.js +22 -0
  11. package/lib/commonjs/mappings/TextField.js +1 -1
  12. package/lib/commonjs/mappings/TextInput.js +1 -1
  13. package/lib/module/components/BottomSheet/BottomSheet.native.js +50 -0
  14. package/lib/module/components/BottomSheet/BottomSheet.web.js +78 -0
  15. package/lib/module/components/BottomSheet/index.js +2 -0
  16. package/lib/module/components/BottomSheet/types.js +1 -0
  17. package/lib/module/components/Text.js +6 -2
  18. package/lib/module/components/TextField.js +5 -1
  19. package/lib/module/index.js +1 -0
  20. package/lib/module/mappings/AudioPlayer.js +3 -33
  21. package/lib/module/mappings/BottomSheet.js +13 -0
  22. package/lib/module/mappings/TextField.js +1 -1
  23. package/lib/module/mappings/TextInput.js +1 -1
  24. package/lib/typescript/src/components/BottomSheet/BottomSheet.native.d.ts +4 -0
  25. package/lib/typescript/src/components/BottomSheet/BottomSheet.web.d.ts +4 -0
  26. package/lib/typescript/src/components/BottomSheet/index.d.ts +1 -0
  27. package/lib/typescript/src/components/BottomSheet/types.d.ts +8 -0
  28. package/lib/typescript/src/components/Text.d.ts +2 -1
  29. package/lib/typescript/src/components/TextField.d.ts +2 -1
  30. package/lib/typescript/src/index.d.ts +1 -0
  31. package/lib/typescript/src/mappings/AudioPlayer.d.ts +1 -62
  32. package/lib/typescript/src/mappings/BottomSheet.d.ts +19 -0
  33. package/lib/typescript/src/mappings/TextField.d.ts +2 -2
  34. package/lib/typescript/src/mappings/TextInput.d.ts +1 -1
  35. package/package.json +5 -3
  36. package/src/components/BottomSheet/BottomSheet.native.js +37 -0
  37. package/src/components/BottomSheet/BottomSheet.native.tsx +60 -0
  38. package/src/components/BottomSheet/BottomSheet.web.js +56 -0
  39. package/src/components/BottomSheet/BottomSheet.web.tsx +90 -0
  40. package/src/components/BottomSheet/index.js +2 -0
  41. package/src/components/BottomSheet/index.tsx +2 -0
  42. package/src/components/BottomSheet/types.js +1 -0
  43. package/src/components/BottomSheet/types.tsx +8 -0
  44. package/src/components/Text.js +8 -2
  45. package/src/components/Text.tsx +6 -1
  46. package/src/components/TextField.js +6 -1
  47. package/src/components/TextField.tsx +7 -1
  48. package/src/index.js +1 -0
  49. package/src/index.tsx +1 -0
  50. package/src/mappings/AudioPlayer.js +2 -39
  51. package/src/mappings/AudioPlayer.ts +1 -41
  52. package/src/mappings/BottomSheet.js +20 -0
  53. package/src/mappings/BottomSheet.ts +25 -0
  54. package/src/mappings/TextField.js +1 -1
  55. package/src/mappings/TextField.ts +1 -1
  56. package/src/mappings/TextInput.js +1 -1
  57. package/src/mappings/TextInput.ts +1 -1
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _bottomSheet = _interopRequireWildcard(require("@gorhom/bottom-sheet"));
13
+
14
+ var _utilities = require("../../utilities");
15
+
16
+ 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); }
17
+
18
+ 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; }
19
+
20
+ const BottomSheetComponent = _ref => {
21
+ let {
22
+ style,
23
+ children,
24
+ step
25
+ } = _ref;
26
+ const bottomSheetRef = (0, _react.useRef)(null);
27
+ const {
28
+ viewStyles
29
+ } = (0, _utilities.extractStyles)(style); // variables
30
+
31
+ const snapPoints = (0, _react.useMemo)(() => ["25%", "50%", "90%"], []); // callbacks
32
+
33
+ const handleSheetChanges = (0, _react.useCallback)(index => {
34
+ console.log("handleSheetChanges", index);
35
+ }, []);
36
+
37
+ _react.default.useEffect(() => {
38
+ if (step === -1) {
39
+ var _bottomSheetRef$curre;
40
+
41
+ bottomSheetRef === null || bottomSheetRef === void 0 ? void 0 : (_bottomSheetRef$curre = bottomSheetRef.current) === null || _bottomSheetRef$curre === void 0 ? void 0 : _bottomSheetRef$curre.close();
42
+ }
43
+ }, [step]);
44
+
45
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
46
+ style: [containerStyle.container, viewStyles, {
47
+ backgroundColor: step !== -1 ? "grey" : "transparent"
48
+ }]
49
+ }, /*#__PURE__*/_react.default.createElement(_bottomSheet.default, {
50
+ ref: bottomSheetRef,
51
+ index: step,
52
+ snapPoints: snapPoints,
53
+ onChange: handleSheetChanges
54
+ }, /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetView, null, children)));
55
+ };
56
+
57
+ var _default = BottomSheetComponent;
58
+ exports.default = _default;
59
+
60
+ const containerStyle = _reactNative.StyleSheet.create({
61
+ container: {
62
+ flex: 1
63
+ },
64
+ contentContainer: {
65
+ flex: 1,
66
+ alignItems: "center"
67
+ }
68
+ });
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeScrollBottomSheet = _interopRequireDefault(require("react-native-scroll-bottom-sheet"));
13
+
14
+ var _utilities = require("../../utilities");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const windowHeight = _reactNative.Dimensions.get("window").height;
19
+
20
+ const BottomSheetComponent = _ref => {
21
+ let {
22
+ style,
23
+ children,
24
+ step
25
+ } = _ref;
26
+ const {
27
+ viewStyles
28
+ } = (0, _utilities.extractStyles)(style);
29
+
30
+ const bottomSheetRef = _react.default.useRef();
31
+
32
+ const webStep = _react.default.useMemo(() => step + 1, [step]);
33
+
34
+ const snapPoints = _react.default.useMemo(() => ["25%", "50%", windowHeight - 200], []);
35
+
36
+ _react.default.useEffect(() => {
37
+ var _bottomSheetRef$curre;
38
+
39
+ bottomSheetRef === null || bottomSheetRef === void 0 ? void 0 : (_bottomSheetRef$curre = bottomSheetRef.current) === null || _bottomSheetRef$curre === void 0 ? void 0 : _bottomSheetRef$curre.snapTo(snapPoints.length - webStep); // bottomSheetRef.current.snapTo(step);
40
+ }, [webStep, step, snapPoints]);
41
+
42
+ if (step === -1) {
43
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
44
+ }
45
+
46
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
47
+ style: styles.container
48
+ }, /*#__PURE__*/_react.default.createElement(_reactNativeScrollBottomSheet.default, {
49
+ ref: bottomSheetRef,
50
+ componentType: "ScrollView",
51
+ snapPoints: snapPoints,
52
+ initialSnapIndex: 0,
53
+ renderHandle: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
54
+ style: styles.header
55
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
56
+ style: styles.panelHandle
57
+ })),
58
+ contentContainerStyle: styles.contentContainerStyle
59
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
60
+ style: { ...styles.container,
61
+ ...viewStyles,
62
+ backgroundColor: webStep !== -1 ? "grey" : "transparent"
63
+ }
64
+ }, children)));
65
+ };
66
+
67
+ var _default = BottomSheetComponent;
68
+ exports.default = _default;
69
+
70
+ const styles = _reactNative.StyleSheet.create({
71
+ container: {
72
+ flex: 1
73
+ },
74
+ contentContainerStyle: {
75
+ padding: 16
76
+ },
77
+ header: {
78
+ alignItems: "center",
79
+ backgroundColor: "white",
80
+ paddingVertical: 20,
81
+ borderTopLeftRadius: 20,
82
+ borderTopRightRadius: 20
83
+ },
84
+ panelHandle: {
85
+ width: 40,
86
+ height: 2,
87
+ backgroundColor: "rgba(0,0,0,0.3)",
88
+ borderRadius: 4
89
+ },
90
+ item: {
91
+ padding: 20,
92
+ justifyContent: "center",
93
+ backgroundColor: "white",
94
+ alignItems: "center",
95
+ marginVertical: 10
96
+ }
97
+ });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "BottomSheet", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _BottomSheet.default;
10
+ }
11
+ });
12
+
13
+ var _BottomSheet = _interopRequireDefault(require("./BottomSheet"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -17,8 +17,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
17
17
 
18
18
  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; }
19
19
 
20
- 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); }
21
-
22
20
  const CircleImage = _ref => {
23
21
  let {
24
22
  source = _Config.default.placeholderImageURL,
@@ -27,6 +25,22 @@ const CircleImage = _ref => {
27
25
  ...props
28
26
  } = _ref;
29
27
  const borderRadius = size / 2;
28
+ return /*#__PURE__*/React.createElement(_reactNative.Image, {
29
+ style: [{
30
+ width: size,
31
+ height: size,
32
+ borderRadius
33
+ }, style],
34
+ source: typeof source === "string" ? {
35
+ uri: source
36
+ } : source,
37
+ resizeMode: "cover",
38
+ ...props
39
+ });
40
+ };
41
+
42
+ var _default = CircleImage;
43
+ exports.default = _default;size / 2;
30
44
  return /*#__PURE__*/React.createElement(_reactNative.Image, _extends({
31
45
  style: [{
32
46
  width: size,
@@ -24,10 +24,14 @@ class Text extends React.Component {
24
24
  super(...arguments);
25
25
 
26
26
  _defineProperty(this, "_root", void 0);
27
+
28
+ _defineProperty(this, "state", {
29
+ nativeProps: {}
30
+ });
27
31
  }
28
32
 
29
33
  setNativeProps(args) {
30
- return this._root && this._root.setNativeProps(args);
34
+ this.state.nativeProps = args || {};
31
35
  }
32
36
 
33
37
  render() {
@@ -36,7 +40,7 @@ class Text extends React.Component {
36
40
  ...rest
37
41
  } = this.props;
38
42
  const writingDirection = _reactNative.I18nManager.isRTL ? "rtl" : "ltr";
39
- return /*#__PURE__*/React.createElement(_reactNative.Text, _extends({}, rest, {
43
+ return /*#__PURE__*/React.createElement(_reactNative.Text, _extends({}, rest, this.state.nativeProps, {
40
44
  ref: c => {
41
45
  this._root = c;
42
46
  },
@@ -32,6 +32,7 @@ class TextField extends React.Component {
32
32
  super(...arguments);
33
33
 
34
34
  _defineProperty(this, "state", {
35
+ nativeProps: {},
35
36
  labeled: new _reactNative.Animated.Value(this.props.value || this.props.error ? 0 : 1),
36
37
  focused: false,
37
38
  placeholder: this.props.error ? this.props.placeholder : "",
@@ -162,7 +163,9 @@ class TextField extends React.Component {
162
163
  * @internal
163
164
  */
164
165
  setNativeProps(args) {
165
- return this._root && this._root.setNativeProps(args);
166
+ this.setState(state => ({ ...state,
167
+ nativeState: args || {}
168
+ }));
166
169
  }
167
170
 
168
171
  isFocused() {
@@ -444,6 +447,7 @@ class TextField extends React.Component {
444
447
  underlineColorAndroid: "transparent",
445
448
  style: inputStyles,
446
449
  ...rest,
450
+ ...this.state.nativeProps,
447
451
  value: this.state.value
448
452
  })), rightIconName ? /*#__PURE__*/React.createElement(Icon, {
449
453
  name: rightIconName,
@@ -51,6 +51,12 @@ Object.defineProperty(exports, "Banner", {
51
51
  return _Banner.default;
52
52
  }
53
53
  });
54
+ Object.defineProperty(exports, "BottomSheet", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _BottomSheet.BottomSheet;
58
+ }
59
+ });
54
60
  Object.defineProperty(exports, "Button", {
55
61
  enumerable: true,
56
62
  get: function () {
@@ -472,6 +478,8 @@ var _ActionSheet = require("./components/ActionSheet");
472
478
 
473
479
  var _Swiper = require("./components/Swiper");
474
480
 
481
+ var _BottomSheet = require("./components/BottomSheet");
482
+
475
483
  var _Layout = require("./components/Layout");
476
484
 
477
485
  var _index = require("./components/RadioButton/index");
@@ -12,17 +12,7 @@ const SEED_DATA = {
12
12
  tag: "AudioPlayer",
13
13
  description: "Given a source URL, plays sounds & audio!",
14
14
  category: _types.COMPONENT_TYPES.media,
15
- stylesPanelSections: [_types.StylesPanelSections.Typography, _types.StylesPanelSections.Background, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Size, _types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Position],
16
- layout: {
17
- backgroundColor: "#eee",
18
- paddingLeft: 16,
19
- paddingRight: 16,
20
- paddingTop: 8,
21
- paddingBottom: 8,
22
- borderRadius: 24,
23
- flexDirection: "row",
24
- alignItems: "center"
25
- },
15
+ layout: {},
26
16
  props: {
27
17
  source: {
28
18
  group: _types.GROUPS.data,
@@ -33,27 +23,7 @@ const SEED_DATA = {
33
23
  defaultValue: "https://static.draftbit.com/audio/intro-to-draftbit-audio.mp3",
34
24
  formType: _types.FORM_TYPES.sourceUrl,
35
25
  propType: _types.PROP_TYPES.OBJECT
36
- },
37
- sliderColor: (0, _types.createColorProp)({
38
- label: "Thumb Color",
39
- defaultValue: "strong"
40
- }),
41
- completedTrackColor: (0, _types.createColorProp)({
42
- label: "Completed Track Color",
43
- defaultValue: "background"
44
- }),
45
- remainingTrackColor: (0, _types.createColorProp)({
46
- label: "Remaining Track Color",
47
- defaultValue: "light"
48
- }),
49
- trackThumbSize: (0, _types.createNumberProp)({
50
- label: "Thumb Size",
51
- defaultValue: 24
52
- }),
53
- playIconColor: (0, _types.createColorProp)({
54
- label: "Play Icon Color",
55
- defaultValue: "strong"
56
- })
26
+ }
57
27
  }
58
28
  };
59
29
  exports.SEED_DATA = SEED_DATA;
@@ -0,0 +1,22 @@
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: "Bottom Sheet",
12
+ tag: "BottomSheet",
13
+ category: _types.COMPONENT_TYPES.container,
14
+ stylesPanelSections: [_types.StylesPanelSections.Background, _types.StylesPanelSections.Borders, _types.StylesPanelSections.Size, _types.StylesPanelSections.MarginsAndPaddings, _types.StylesPanelSections.Position, _types.StylesPanelSections.Effects],
15
+ props: {
16
+ step: (0, _types.createNumberProp)({
17
+ label: "Step",
18
+ description: "Step can be -1, 0, 1, or 2."
19
+ })
20
+ }
21
+ };
22
+ exports.SEED_DATA = SEED_DATA;
@@ -24,7 +24,7 @@ const SEED_DATA_PROPS = {
24
24
  description: "Can automatically capitalize sentences, words, and characters (Default: none).",
25
25
  editable: true,
26
26
  required: false,
27
- defaultValue: null,
27
+ defaultValue: "none",
28
28
  options: ["none", "sentences", "words", "characters"],
29
29
  formType: _types.FORM_TYPES.flatArray,
30
30
  propType: _types.PROP_TYPES.STRING
@@ -103,7 +103,7 @@ const SEED_DATA = [{
103
103
  description: "Can automatically capitalize sentences, words, and characters (Default: none).",
104
104
  editable: true,
105
105
  required: false,
106
- defaultValue: null,
106
+ defaultValue: "none",
107
107
  options: ["none", "sentences", "words", "characters"],
108
108
  formType: _types.FORM_TYPES.flatArray,
109
109
  propType: _types.PROP_TYPES.STRING
@@ -0,0 +1,50 @@
1
+ import React, { useCallback, useMemo, useRef } from "react";
2
+ import { View, StyleSheet } from "react-native";
3
+ import BottomSheet, { BottomSheetView } from "@gorhom/bottom-sheet";
4
+ import { extractStyles } from "../../utilities";
5
+
6
+ const BottomSheetComponent = _ref => {
7
+ let {
8
+ style,
9
+ children,
10
+ step
11
+ } = _ref;
12
+ const bottomSheetRef = useRef(null);
13
+ const {
14
+ viewStyles
15
+ } = extractStyles(style); // variables
16
+
17
+ const snapPoints = useMemo(() => ["25%", "50%", "90%"], []); // callbacks
18
+
19
+ const handleSheetChanges = useCallback(index => {
20
+ console.log("handleSheetChanges", index);
21
+ }, []);
22
+ React.useEffect(() => {
23
+ if (step === -1) {
24
+ var _bottomSheetRef$curre;
25
+
26
+ bottomSheetRef === null || bottomSheetRef === void 0 ? void 0 : (_bottomSheetRef$curre = bottomSheetRef.current) === null || _bottomSheetRef$curre === void 0 ? void 0 : _bottomSheetRef$curre.close();
27
+ }
28
+ }, [step]);
29
+ return /*#__PURE__*/React.createElement(View, {
30
+ style: [containerStyle.container, viewStyles, {
31
+ backgroundColor: step !== -1 ? "grey" : "transparent"
32
+ }]
33
+ }, /*#__PURE__*/React.createElement(BottomSheet, {
34
+ ref: bottomSheetRef,
35
+ index: step,
36
+ snapPoints: snapPoints,
37
+ onChange: handleSheetChanges
38
+ }, /*#__PURE__*/React.createElement(BottomSheetView, null, children)));
39
+ };
40
+
41
+ export default BottomSheetComponent;
42
+ const containerStyle = StyleSheet.create({
43
+ container: {
44
+ flex: 1
45
+ },
46
+ contentContainer: {
47
+ flex: 1,
48
+ alignItems: "center"
49
+ }
50
+ });
@@ -0,0 +1,78 @@
1
+ import React from "react";
2
+ import { StyleSheet, View, Dimensions } from "react-native";
3
+ import ScrollBottomSheet from "react-native-scroll-bottom-sheet";
4
+ import { extractStyles } from "../../utilities";
5
+ const windowHeight = Dimensions.get("window").height;
6
+
7
+ const BottomSheetComponent = _ref => {
8
+ let {
9
+ style,
10
+ children,
11
+ step
12
+ } = _ref;
13
+ const {
14
+ viewStyles
15
+ } = extractStyles(style);
16
+ const bottomSheetRef = React.useRef();
17
+ const webStep = React.useMemo(() => step + 1, [step]);
18
+ const snapPoints = React.useMemo(() => ["25%", "50%", windowHeight - 200], []);
19
+ React.useEffect(() => {
20
+ var _bottomSheetRef$curre;
21
+
22
+ bottomSheetRef === null || bottomSheetRef === void 0 ? void 0 : (_bottomSheetRef$curre = bottomSheetRef.current) === null || _bottomSheetRef$curre === void 0 ? void 0 : _bottomSheetRef$curre.snapTo(snapPoints.length - webStep); // bottomSheetRef.current.snapTo(step);
23
+ }, [webStep, step, snapPoints]);
24
+
25
+ if (step === -1) {
26
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
27
+ }
28
+
29
+ return /*#__PURE__*/React.createElement(View, {
30
+ style: styles.container
31
+ }, /*#__PURE__*/React.createElement(ScrollBottomSheet, {
32
+ ref: bottomSheetRef,
33
+ componentType: "ScrollView",
34
+ snapPoints: snapPoints,
35
+ initialSnapIndex: 0,
36
+ renderHandle: () => /*#__PURE__*/React.createElement(View, {
37
+ style: styles.header
38
+ }, /*#__PURE__*/React.createElement(View, {
39
+ style: styles.panelHandle
40
+ })),
41
+ contentContainerStyle: styles.contentContainerStyle
42
+ }, /*#__PURE__*/React.createElement(View, {
43
+ style: { ...styles.container,
44
+ ...viewStyles,
45
+ backgroundColor: webStep !== -1 ? "grey" : "transparent"
46
+ }
47
+ }, children)));
48
+ };
49
+
50
+ export default BottomSheetComponent;
51
+ const styles = StyleSheet.create({
52
+ container: {
53
+ flex: 1
54
+ },
55
+ contentContainerStyle: {
56
+ padding: 16
57
+ },
58
+ header: {
59
+ alignItems: "center",
60
+ backgroundColor: "white",
61
+ paddingVertical: 20,
62
+ borderTopLeftRadius: 20,
63
+ borderTopRightRadius: 20
64
+ },
65
+ panelHandle: {
66
+ width: 40,
67
+ height: 2,
68
+ backgroundColor: "rgba(0,0,0,0.3)",
69
+ borderRadius: 4
70
+ },
71
+ item: {
72
+ padding: 20,
73
+ justifyContent: "center",
74
+ backgroundColor: "white",
75
+ alignItems: "center",
76
+ marginVertical: 10
77
+ }
78
+ });
@@ -0,0 +1,2 @@
1
+ //@ts-ignore
2
+ export { default as BottomSheet } from "./BottomSheet";
@@ -0,0 +1 @@
1
+ export {};
@@ -11,10 +11,14 @@ class Text extends React.Component {
11
11
  super(...arguments);
12
12
 
13
13
  _defineProperty(this, "_root", void 0);
14
+
15
+ _defineProperty(this, "state", {
16
+ nativeProps: {}
17
+ });
14
18
  }
15
19
 
16
20
  setNativeProps(args) {
17
- return this._root && this._root.setNativeProps(args);
21
+ this.state.nativeProps = args || {};
18
22
  }
19
23
 
20
24
  render() {
@@ -23,7 +27,7 @@ class Text extends React.Component {
23
27
  ...rest
24
28
  } = this.props;
25
29
  const writingDirection = I18nManager.isRTL ? "rtl" : "ltr";
26
- return /*#__PURE__*/React.createElement(NativeText, _extends({}, rest, {
30
+ return /*#__PURE__*/React.createElement(NativeText, _extends({}, rest, this.state.nativeProps, {
27
31
  ref: c => {
28
32
  this._root = c;
29
33
  },
@@ -16,6 +16,7 @@ class TextField extends React.Component {
16
16
  super(...arguments);
17
17
 
18
18
  _defineProperty(this, "state", {
19
+ nativeProps: {},
19
20
  labeled: new Animated.Value(this.props.value || this.props.error ? 0 : 1),
20
21
  focused: false,
21
22
  placeholder: this.props.error ? this.props.placeholder : "",
@@ -146,7 +147,9 @@ class TextField extends React.Component {
146
147
  * @internal
147
148
  */
148
149
  setNativeProps(args) {
149
- return this._root && this._root.setNativeProps(args);
150
+ this.setState(state => ({ ...state,
151
+ nativeState: args || {}
152
+ }));
150
153
  }
151
154
 
152
155
  isFocused() {
@@ -426,6 +429,7 @@ class TextField extends React.Component {
426
429
  underlineColorAndroid: "transparent",
427
430
  style: inputStyles,
428
431
  ...rest,
432
+ ...this.state.nativeProps,
429
433
  value: this.state.value
430
434
  })), rightIconName ? /*#__PURE__*/React.createElement(Icon, {
431
435
  name: rightIconName,
@@ -29,6 +29,7 @@ export { default as Touchable } from "./components/Touchable";
29
29
  export { AccordionGroup, AccordionItem } from "./components/Accordion";
30
30
  export { ActionSheet, ActionSheetItem, ActionSheetCancel } from "./components/ActionSheet";
31
31
  export { Swiper, SwiperItem } from "./components/Swiper";
32
+ export { BottomSheet } from "./components/BottomSheet";
32
33
  export { Center, Circle, Square, Row, Stack, Spacer } from "./components/Layout";
33
34
  export { RadioButton, RadioButtonGroup, RadioButtonRow, RadioButtonFieldGroup } from "./components/RadioButton/index";
34
35
  /* Deprecated: Fix or Delete! */
@@ -1,20 +1,10 @@
1
- import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, StylesPanelSections, createColorProp, createNumberProp } from "@draftbit/types";
1
+ import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "Audio Player",
4
4
  tag: "AudioPlayer",
5
5
  description: "Given a source URL, plays sounds & audio!",
6
6
  category: COMPONENT_TYPES.media,
7
- stylesPanelSections: [StylesPanelSections.Typography, StylesPanelSections.Background, StylesPanelSections.Borders, StylesPanelSections.Size, StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Position],
8
- layout: {
9
- backgroundColor: "#eee",
10
- paddingLeft: 16,
11
- paddingRight: 16,
12
- paddingTop: 8,
13
- paddingBottom: 8,
14
- borderRadius: 24,
15
- flexDirection: "row",
16
- alignItems: "center"
17
- },
7
+ layout: {},
18
8
  props: {
19
9
  source: {
20
10
  group: GROUPS.data,
@@ -25,26 +15,6 @@ export const SEED_DATA = {
25
15
  defaultValue: "https://static.draftbit.com/audio/intro-to-draftbit-audio.mp3",
26
16
  formType: FORM_TYPES.sourceUrl,
27
17
  propType: PROP_TYPES.OBJECT
28
- },
29
- sliderColor: createColorProp({
30
- label: "Thumb Color",
31
- defaultValue: "strong"
32
- }),
33
- completedTrackColor: createColorProp({
34
- label: "Completed Track Color",
35
- defaultValue: "background"
36
- }),
37
- remainingTrackColor: createColorProp({
38
- label: "Remaining Track Color",
39
- defaultValue: "light"
40
- }),
41
- trackThumbSize: createNumberProp({
42
- label: "Thumb Size",
43
- defaultValue: 24
44
- }),
45
- playIconColor: createColorProp({
46
- label: "Play Icon Color",
47
- defaultValue: "strong"
48
- })
18
+ }
49
19
  }
50
20
  };
@@ -0,0 +1,13 @@
1
+ import { COMPONENT_TYPES, createNumberProp, StylesPanelSections } from "@draftbit/types";
2
+ export const SEED_DATA = {
3
+ name: "Bottom Sheet",
4
+ tag: "BottomSheet",
5
+ category: COMPONENT_TYPES.container,
6
+ stylesPanelSections: [StylesPanelSections.Background, StylesPanelSections.Borders, StylesPanelSections.Size, StylesPanelSections.MarginsAndPaddings, StylesPanelSections.Position, StylesPanelSections.Effects],
7
+ props: {
8
+ step: createNumberProp({
9
+ label: "Step",
10
+ description: "Step can be -1, 0, 1, or 2."
11
+ })
12
+ }
13
+ };
@@ -16,7 +16,7 @@ const SEED_DATA_PROPS = {
16
16
  description: "Can automatically capitalize sentences, words, and characters (Default: none).",
17
17
  editable: true,
18
18
  required: false,
19
- defaultValue: null,
19
+ defaultValue: "none",
20
20
  options: ["none", "sentences", "words", "characters"],
21
21
  formType: FORM_TYPES.flatArray,
22
22
  propType: PROP_TYPES.STRING
@@ -94,7 +94,7 @@ export const SEED_DATA = [{
94
94
  description: "Can automatically capitalize sentences, words, and characters (Default: none).",
95
95
  editable: true,
96
96
  required: false,
97
- defaultValue: null,
97
+ defaultValue: "none",
98
98
  options: ["none", "sentences", "words", "characters"],
99
99
  formType: FORM_TYPES.flatArray,
100
100
  propType: PROP_TYPES.STRING