@draftbit/core 46.2.4-0e692a.5 → 46.2.4-1897f4.12

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 (43) hide show
  1. package/lib/commonjs/components/CircleImage.js +16 -2
  2. package/lib/commonjs/components/CircularProgress.js +15 -7
  3. package/lib/commonjs/components/DatePicker/DatePicker.js +7 -8
  4. package/lib/commonjs/components/Divider.js +16 -2
  5. package/lib/commonjs/components/Layout.js +40 -19
  6. package/lib/commonjs/components/Portal/Portal.js +12 -3
  7. package/lib/commonjs/components/{Svg.js → SVG.js} +2 -2
  8. package/lib/commonjs/components/ScreenContainer.js +23 -5
  9. package/lib/commonjs/components/StarRating.js +25 -5
  10. package/lib/commonjs/components/Switch.js +23 -10
  11. package/lib/commonjs/components/ToggleButton.js +18 -3
  12. package/lib/commonjs/components/Youtube.js +73 -0
  13. package/lib/commonjs/constants.js +1 -1
  14. package/lib/commonjs/index.js +15 -7
  15. package/lib/commonjs/mappings/FlashList.js +42 -0
  16. package/lib/commonjs/mappings/{Svg.js → SVG.js} +1 -1
  17. package/lib/commonjs/mappings/Youtube.js +42 -0
  18. package/lib/module/components/{Svg.js → SVG.js} +2 -2
  19. package/lib/module/components/Youtube.js +59 -0
  20. package/lib/module/index.js +3 -2
  21. package/lib/module/mappings/FlashList.js +33 -0
  22. package/lib/module/mappings/{Svg.js → SVG.js} +2 -2
  23. package/lib/module/mappings/Youtube.js +33 -0
  24. package/lib/typescript/src/components/SVG.d.ts +8 -0
  25. package/lib/typescript/src/components/Youtube.d.ts +44 -0
  26. package/lib/typescript/src/index.d.ts +2 -1
  27. package/lib/typescript/src/mappings/FlashList.d.ts +54 -0
  28. package/lib/typescript/src/mappings/{Svg.d.ts → SVG.d.ts} +0 -0
  29. package/lib/typescript/src/mappings/Youtube.d.ts +36 -0
  30. package/package.json +8 -5
  31. package/src/components/{Svg.js → SVG.js} +2 -2
  32. package/src/components/{Svg.tsx → SVG.tsx} +5 -5
  33. package/src/components/Youtube.js +38 -0
  34. package/src/components/Youtube.tsx +66 -0
  35. package/src/index.js +2 -1
  36. package/src/index.tsx +2 -1
  37. package/src/mappings/FlashList.js +33 -0
  38. package/src/mappings/FlashList.ts +41 -0
  39. package/src/mappings/{Svg.js → SVG.js} +2 -2
  40. package/src/mappings/{Svg.ts → SVG.ts} +2 -2
  41. package/src/mappings/Youtube.js +33 -0
  42. package/src/mappings/Youtube.ts +39 -0
  43. package/lib/typescript/src/components/Svg.d.ts +0 -7
@@ -291,6 +291,12 @@ Object.defineProperty(exports, "RowHeadlineImageIcon", {
291
291
  return _RowHeadlineImageIcon.default;
292
292
  }
293
293
  });
294
+ Object.defineProperty(exports, "SVG", {
295
+ enumerable: true,
296
+ get: function () {
297
+ return _SVG.default;
298
+ }
299
+ });
294
300
  Object.defineProperty(exports, "ScreenContainer", {
295
301
  enumerable: true,
296
302
  get: function () {
@@ -339,12 +345,6 @@ Object.defineProperty(exports, "Surface", {
339
345
  return _Surface.default;
340
346
  }
341
347
  });
342
- Object.defineProperty(exports, "Svg", {
343
- enumerable: true,
344
- get: function () {
345
- return _Svg.default;
346
- }
347
- });
348
348
  Object.defineProperty(exports, "Swiper", {
349
349
  enumerable: true,
350
350
  get: function () {
@@ -393,6 +393,12 @@ Object.defineProperty(exports, "Touchable", {
393
393
  return _Touchable.default;
394
394
  }
395
395
  });
396
+ Object.defineProperty(exports, "Youtube", {
397
+ enumerable: true,
398
+ get: function () {
399
+ return _Youtube.default;
400
+ }
401
+ });
396
402
  Object.defineProperty(exports, "injectIcon", {
397
403
  enumerable: true,
398
404
  get: function () {
@@ -448,7 +454,7 @@ var _IconButton = _interopRequireDefault(require("./components/IconButton"));
448
454
 
449
455
  var _Image = _interopRequireDefault(require("./components/Image"));
450
456
 
451
- var _Svg = _interopRequireDefault(require("./components/Svg"));
457
+ var _SVG = _interopRequireDefault(require("./components/SVG"));
452
458
 
453
459
  var _NumberInput = _interopRequireDefault(require("./components/NumberInput"));
454
460
 
@@ -512,6 +518,8 @@ var _Stepper = _interopRequireDefault(require("./components/Stepper"));
512
518
 
513
519
  var _useAuthState = require("./components/useAuthState");
514
520
 
521
+ var _Youtube = _interopRequireDefault(require("./components/Youtube"));
522
+
515
523
  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); }
516
524
 
517
525
  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; }
@@ -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;
@@ -18,7 +18,7 @@ const SEED_DATA = {
18
18
  },
19
19
  stylesPanelSections: [_types.StylesPanelSections.Size, _types.StylesPanelSections.Margins, _types.StylesPanelSections.Position, _types.StylesPanelSections.Effects],
20
20
  props: {
21
- source: (0, _types.createSvgProp)()
21
+ source: (0, _types.createSVGProp)()
22
22
  }
23
23
  };
24
24
  exports.SEED_DATA = SEED_DATA;
@@ -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: "Youtube",
12
+ tag: "Youtube",
13
+ description: "Given a VideoId orPlaylist and play Youtube video",
14
+ doc_link: "https://lonelycpp.github.io/react-native-youtube-iframe",
15
+ code_link: "https://github.com/LonelyCpp/react-native-youtube-iframe",
16
+ category: _types.COMPONENT_TYPES.media,
17
+ stylesPanelSections: [_types.StylesPanelSections.Size, _types.StylesPanelSections.Position],
18
+ layout: {
19
+ height: 250
20
+ },
21
+ props: {
22
+ videoId: (0, _types.createTextProp)({
23
+ label: "Video ID",
24
+ description: "VideoId of the Youtube video.",
25
+ defaultValue: "nwMUpDESXrI"
26
+ }),
27
+ playlist: (0, _types.createTextProp)({
28
+ label: "Playlist",
29
+ description: "Playlist of the Youtube videos.",
30
+ defaultValue: "PLUa6TiXzjIrwowt6P-uGCJm8ovm-9S1Ks"
31
+ }),
32
+ mute: (0, _types.createStaticBoolProp)({
33
+ label: "Mute Audio",
34
+ description: "Mute the audio of the video."
35
+ }),
36
+ autoplay: (0, _types.createStaticBoolProp)({
37
+ label: "Auto Play",
38
+ description: "Autoplay the video on load."
39
+ })
40
+ }
41
+ };
42
+ exports.SEED_DATA = SEED_DATA;
@@ -3,7 +3,7 @@ import { View, Platform, Image } from "react-native";
3
3
  import { SvgUri } from "react-native-svg";
4
4
  import Config from "./Config";
5
5
 
6
- const Svg = _ref => {
6
+ const SVG = _ref => {
7
7
  let {
8
8
  source = Config.placeholderSvgURL,
9
9
  style
@@ -28,4 +28,4 @@ const Svg = _ref => {
28
28
  }));
29
29
  };
30
30
 
31
- export default Svg;
31
+ export default SVG;
@@ -0,0 +1,59 @@
1
+ import { COMPONENT_TYPES, createBoolProp, createTextProp } from "@draftbit/types";
2
+ import React from "react";
3
+ import YoutubePlayer from "react-native-youtube-iframe";
4
+ import { extractStyles } from "../utilities";
5
+
6
+ const Youtube = _ref => {
7
+ let {
8
+ videoId,
9
+ playlist,
10
+ style,
11
+ mute,
12
+ autoplay
13
+ } = _ref;
14
+ const {
15
+ viewStyles: {
16
+ height,
17
+ width
18
+ }
19
+ } = extractStyles(style);
20
+ return /*#__PURE__*/React.createElement(YoutubePlayer, {
21
+ height: height,
22
+ width: width,
23
+ play: autoplay,
24
+ videoId: videoId,
25
+ playList: playlist,
26
+ mute: mute
27
+ });
28
+ };
29
+
30
+ export default Youtube;
31
+ export const SEED_DATA = {
32
+ name: "Youtube",
33
+ tag: "Youtube",
34
+ description: "Youtube Component",
35
+ category: COMPONENT_TYPES.media,
36
+ layout: {
37
+ width: "100%"
38
+ },
39
+ props: {
40
+ videoId: createTextProp({
41
+ label: "VideoId",
42
+ description: "Youtube Video ID"
43
+ }),
44
+ playlist: createTextProp({
45
+ label: "PlayList",
46
+ description: "Playlist ID"
47
+ }),
48
+ mute: createBoolProp({
49
+ label: "Mute",
50
+ description: "Whether to mute video",
51
+ defaultValue: false
52
+ }),
53
+ autoplay: createBoolProp({
54
+ label: "Autoplay",
55
+ description: "Whether to Autoplay video",
56
+ defaultValue: false
57
+ })
58
+ }
59
+ };
@@ -17,7 +17,7 @@ export { default as FAB } from "./components/FAB";
17
17
  export { default as FieldSearchBarFull } from "./components/FieldSearchBarFull";
18
18
  export { default as IconButton } from "./components/IconButton";
19
19
  export { default as Image } from "./components/Image";
20
- export { default as Svg } from "./components/Svg";
20
+ export { default as SVG } from "./components/SVG";
21
21
  export { default as NumberInput } from "./components/NumberInput";
22
22
  export { default as ScreenContainer } from "./components/ScreenContainer";
23
23
  export { default as StarRating } from "./components/StarRating";
@@ -50,4 +50,5 @@ export { default as RowHeadlineImageCaption } from "./components/RowHeadlineImag
50
50
  export { default as RowHeadlineImageIcon } from "./components/RowHeadlineImageIcon";
51
51
  export { default as Slider } from "./components/Slider";
52
52
  export { default as Stepper } from "./components/Stepper";
53
- export { useAuthState } from "./components/useAuthState"; // a comment to fix sourcemap comment issue
53
+ export { useAuthState } from "./components/useAuthState";
54
+ export { default as Youtube } from "./components/Youtube"; // a comment to fix sourcemap comment issue
@@ -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
+ };
@@ -1,4 +1,4 @@
1
- import { COMPONENT_TYPES, createSvgProp, StylesPanelSections } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createSVGProp, StylesPanelSections } from "@draftbit/types";
2
2
  export const SEED_DATA = {
3
3
  name: "SVG",
4
4
  tag: "SVG",
@@ -10,6 +10,6 @@ export const SEED_DATA = {
10
10
  },
11
11
  stylesPanelSections: [StylesPanelSections.Size, StylesPanelSections.Margins, StylesPanelSections.Position, StylesPanelSections.Effects],
12
12
  props: {
13
- source: createSvgProp()
13
+ source: createSVGProp()
14
14
  }
15
15
  };
@@ -0,0 +1,33 @@
1
+ import { COMPONENT_TYPES, createStaticBoolProp, createTextProp, StylesPanelSections } from "@draftbit/types";
2
+ export const SEED_DATA = {
3
+ name: "Youtube",
4
+ tag: "Youtube",
5
+ description: "Given a VideoId orPlaylist and play Youtube video",
6
+ doc_link: "https://lonelycpp.github.io/react-native-youtube-iframe",
7
+ code_link: "https://github.com/LonelyCpp/react-native-youtube-iframe",
8
+ category: COMPONENT_TYPES.media,
9
+ stylesPanelSections: [StylesPanelSections.Size, StylesPanelSections.Position],
10
+ layout: {
11
+ height: 250
12
+ },
13
+ props: {
14
+ videoId: createTextProp({
15
+ label: "Video ID",
16
+ description: "VideoId of the Youtube video.",
17
+ defaultValue: "nwMUpDESXrI"
18
+ }),
19
+ playlist: createTextProp({
20
+ label: "Playlist",
21
+ description: "Playlist of the Youtube videos.",
22
+ defaultValue: "PLUa6TiXzjIrwowt6P-uGCJm8ovm-9S1Ks"
23
+ }),
24
+ mute: createStaticBoolProp({
25
+ label: "Mute Audio",
26
+ description: "Mute the audio of the video."
27
+ }),
28
+ autoplay: createStaticBoolProp({
29
+ label: "Auto Play",
30
+ description: "Autoplay the video on load."
31
+ })
32
+ }
33
+ };
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ImageStyle } from "react-native";
3
+ declare type SVGComponentProps = {
4
+ source: string;
5
+ style?: StyleProp<ImageStyle>;
6
+ };
7
+ declare const SVG: React.FC<React.PropsWithChildren<SVGComponentProps>>;
8
+ export default SVG;
@@ -0,0 +1,44 @@
1
+ /// <reference types="react" />
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ declare type Props = {
4
+ videoId: string;
5
+ playlist: string;
6
+ style: StyleProp<ViewStyle>;
7
+ mute: boolean;
8
+ autoplay: boolean;
9
+ };
10
+ declare const Youtube: ({ videoId, playlist, style, mute, autoplay }: Props) => JSX.Element;
11
+ export default Youtube;
12
+ export declare const SEED_DATA: {
13
+ name: string;
14
+ tag: string;
15
+ description: string;
16
+ category: string;
17
+ layout: {
18
+ width: string;
19
+ };
20
+ props: {
21
+ videoId: any;
22
+ playlist: any;
23
+ mute: {
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
+ autoplay: {
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
+ };
44
+ };
@@ -17,7 +17,7 @@ export { default as FAB } from "./components/FAB";
17
17
  export { default as FieldSearchBarFull } from "./components/FieldSearchBarFull";
18
18
  export { default as IconButton } from "./components/IconButton";
19
19
  export { default as Image } from "./components/Image";
20
- export { default as Svg } from "./components/Svg";
20
+ export { default as SVG } from "./components/SVG";
21
21
  export { default as NumberInput } from "./components/NumberInput";
22
22
  export { default as ScreenContainer } from "./components/ScreenContainer";
23
23
  export { default as StarRating } from "./components/StarRating";
@@ -49,3 +49,4 @@ export { default as RowHeadlineImageIcon } from "./components/RowHeadlineImageIc
49
49
  export { default as Slider } from "./components/Slider";
50
50
  export { default as Stepper } from "./components/Stepper";
51
51
  export { useAuthState } from "./components/useAuthState";
52
+ export { default as Youtube } from "./components/Youtube";
@@ -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
+ };
@@ -0,0 +1,36 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ doc_link: string;
6
+ code_link: string;
7
+ category: string;
8
+ stylesPanelSections: string[];
9
+ layout: {
10
+ height: number;
11
+ };
12
+ props: {
13
+ videoId: any;
14
+ playlist: any;
15
+ mute: {
16
+ label: string;
17
+ description: string;
18
+ formType: string;
19
+ propType: string;
20
+ defaultValue: boolean;
21
+ editable: boolean;
22
+ required: boolean;
23
+ group: string;
24
+ };
25
+ autoplay: {
26
+ label: string;
27
+ description: string;
28
+ formType: string;
29
+ propType: string;
30
+ defaultValue: boolean;
31
+ editable: boolean;
32
+ required: boolean;
33
+ group: string;
34
+ };
35
+ };
36
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "46.2.4-0e692a.5+0e692adc",
3
+ "version": "46.2.4-1897f4.12+1897f4fd",
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.2.4-0e692a.5+0e692adc",
44
+ "@draftbit/types": "^46.4.0",
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",
@@ -53,9 +54,11 @@
53
54
  "lodash.omit": "^4.5.0",
54
55
  "lodash.tonumber": "^4.0.3",
55
56
  "react-native-modal-datetime-picker": "^13.0.0",
56
- "react-native-svg": "^13.2.0",
57
+ "react-native-svg": "12.3.0",
57
58
  "react-native-typography": "^1.4.1",
58
- "react-native-web-swiper": "^2.2.3"
59
+ "react-native-web-swiper": "^2.2.3",
60
+ "react-native-web-webview": "^1.0.2",
61
+ "react-native-youtube-iframe": "^2.2.2"
59
62
  },
60
63
  "devDependencies": {
61
64
  "@types/color": "^3.0.1",
@@ -80,5 +83,5 @@
80
83
  ]
81
84
  ]
82
85
  },
83
- "gitHead": "0e692adc6f7d632b5a1e30eedeba4d9b5f810afa"
86
+ "gitHead": "1897f4fdeb43ea9f5d4af7d3d72eb56f4ad791d8"
84
87
  }
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { View, Platform, Image } from "react-native";
3
3
  import { SvgUri } from "react-native-svg";
4
4
  import Config from "./Config";
5
- const Svg = ({ source = Config.placeholderSvgURL, style, }) => {
5
+ const SVG = ({ source = Config.placeholderSvgURL, style, }) => {
6
6
  return (React.createElement(React.Fragment, null,
7
7
  Platform.OS === "ios" && (React.createElement(View, { style: style },
8
8
  React.createElement(SvgUri, { width: "100%", height: "100%", uri: source }))),
@@ -10,4 +10,4 @@ const Svg = ({ source = Config.placeholderSvgURL, style, }) => {
10
10
  React.createElement(SvgUri, { width: "100%", height: "100%", uri: source }))),
11
11
  Platform.OS === "web" && (React.createElement(Image, { style: style, source: { uri: source } }))));
12
12
  };
13
- export default Svg;
13
+ export default SVG;
@@ -1,15 +1,15 @@
1
1
  import * as React from "react";
2
- import { View, Platform, Image } from "react-native";
2
+ import { View, Platform, Image, StyleProp, ImageStyle } from "react-native";
3
3
  import { SvgUri } from "react-native-svg";
4
4
 
5
5
  import Config from "./Config";
6
6
 
7
- type SvgComponentProps = {
7
+ type SVGComponentProps = {
8
8
  source: string;
9
- style?: any;
9
+ style?: StyleProp<ImageStyle>;
10
10
  };
11
11
 
12
- const Svg: React.FC<React.PropsWithChildren<SvgComponentProps>> = ({
12
+ const SVG: React.FC<React.PropsWithChildren<SVGComponentProps>> = ({
13
13
  source = Config.placeholderSvgURL,
14
14
  style,
15
15
  }) => {
@@ -32,4 +32,4 @@ const Svg: React.FC<React.PropsWithChildren<SvgComponentProps>> = ({
32
32
  );
33
33
  };
34
34
 
35
- export default Svg;
35
+ export default SVG;
@@ -0,0 +1,38 @@
1
+ import { COMPONENT_TYPES, createBoolProp, createTextProp, } from "@draftbit/types";
2
+ import React from "react";
3
+ import YoutubePlayer from "react-native-youtube-iframe";
4
+ import { extractStyles } from "../utilities";
5
+ const Youtube = ({ videoId, playlist, style, mute, autoplay }) => {
6
+ const { viewStyles: { height, width }, } = extractStyles(style);
7
+ return (React.createElement(YoutubePlayer, { height: height, width: width, play: autoplay, videoId: videoId, playList: playlist, mute: mute }));
8
+ };
9
+ export default Youtube;
10
+ export const SEED_DATA = {
11
+ name: "Youtube",
12
+ tag: "Youtube",
13
+ description: "Youtube Component",
14
+ category: COMPONENT_TYPES.media,
15
+ layout: {
16
+ width: "100%",
17
+ },
18
+ props: {
19
+ videoId: createTextProp({
20
+ label: "VideoId",
21
+ description: "Youtube Video ID",
22
+ }),
23
+ playlist: createTextProp({
24
+ label: "PlayList",
25
+ description: "Playlist ID",
26
+ }),
27
+ mute: createBoolProp({
28
+ label: "Mute",
29
+ description: "Whether to mute video",
30
+ defaultValue: false,
31
+ }),
32
+ autoplay: createBoolProp({
33
+ label: "Autoplay",
34
+ description: "Whether to Autoplay video",
35
+ defaultValue: false,
36
+ }),
37
+ },
38
+ };
@@ -0,0 +1,66 @@
1
+ import {
2
+ COMPONENT_TYPES,
3
+ createBoolProp,
4
+ createTextProp,
5
+ } from "@draftbit/types";
6
+ import React from "react";
7
+ import { StyleProp, ViewStyle } from "react-native";
8
+ import YoutubePlayer from "react-native-youtube-iframe";
9
+ import { extractStyles } from "../utilities";
10
+
11
+ type Props = {
12
+ videoId: string;
13
+ playlist: string;
14
+ style: StyleProp<ViewStyle>;
15
+ mute: boolean;
16
+ autoplay: boolean;
17
+ };
18
+
19
+ const Youtube = ({ videoId, playlist, style, mute, autoplay }: Props) => {
20
+ const {
21
+ viewStyles: { height, width },
22
+ } = extractStyles(style);
23
+
24
+ return (
25
+ <YoutubePlayer
26
+ height={height}
27
+ width={width}
28
+ play={autoplay}
29
+ videoId={videoId}
30
+ playList={playlist}
31
+ mute={mute}
32
+ />
33
+ );
34
+ };
35
+
36
+ export default Youtube;
37
+
38
+ export const SEED_DATA = {
39
+ name: "Youtube",
40
+ tag: "Youtube",
41
+ description: "Youtube Component",
42
+ category: COMPONENT_TYPES.media,
43
+ layout: {
44
+ width: "100%",
45
+ },
46
+ props: {
47
+ videoId: createTextProp({
48
+ label: "VideoId",
49
+ description: "Youtube Video ID",
50
+ }),
51
+ playlist: createTextProp({
52
+ label: "PlayList",
53
+ description: "Playlist ID",
54
+ }),
55
+ mute: createBoolProp({
56
+ label: "Mute",
57
+ description: "Whether to mute video",
58
+ defaultValue: false,
59
+ }),
60
+ autoplay: createBoolProp({
61
+ label: "Autoplay",
62
+ description: "Whether to Autoplay video",
63
+ defaultValue: false,
64
+ }),
65
+ },
66
+ };