@builder.io/sdk-solid 0.0.5 → 0.0.8

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 (62) hide show
  1. package/package.json +59 -2
  2. package/src/blocks/button.jsx +8 -0
  3. package/src/blocks/button.lite.tsx +3 -1
  4. package/src/blocks/{columns.js → columns.jsx} +39 -81
  5. package/src/blocks/columns.lite.tsx +28 -23
  6. package/src/blocks/{custom-code.js → custom-code.jsx} +5 -25
  7. package/src/blocks/custom-code.lite.tsx +3 -1
  8. package/src/blocks/{embed.js → embed.jsx} +5 -15
  9. package/src/blocks/embed.lite.tsx +3 -1
  10. package/src/blocks/{form.js → form.jsx} +34 -136
  11. package/src/blocks/form.lite.tsx +7 -2
  12. package/src/blocks/fragment.jsx +6 -0
  13. package/src/blocks/fragment.lite.tsx +3 -1
  14. package/src/blocks/{image.js → image.jsx} +47 -138
  15. package/src/blocks/image.lite.tsx +3 -1
  16. package/src/blocks/img.jsx +11 -0
  17. package/src/blocks/img.lite.tsx +3 -1
  18. package/src/blocks/input.jsx +8 -0
  19. package/src/blocks/input.lite.tsx +3 -1
  20. package/src/blocks/raw-text.jsx +6 -0
  21. package/src/blocks/raw-text.lite.tsx +3 -1
  22. package/src/blocks/{section.js → section.jsx} +9 -23
  23. package/src/blocks/section.lite.tsx +3 -1
  24. package/src/blocks/select.jsx +17 -0
  25. package/src/blocks/select.lite.tsx +9 -4
  26. package/src/blocks/submit-button.jsx +8 -0
  27. package/src/blocks/submit-button.lite.tsx +3 -1
  28. package/src/blocks/symbol.jsx +25 -0
  29. package/src/blocks/symbol.lite.tsx +3 -1
  30. package/src/blocks/text.jsx +6 -0
  31. package/src/blocks/text.lite.tsx +3 -1
  32. package/src/blocks/textarea.jsx +6 -0
  33. package/src/blocks/textarea.lite.tsx +3 -1
  34. package/src/blocks/video.jsx +15 -0
  35. package/src/blocks/video.lite.tsx +3 -1
  36. package/src/components/block-styles.jsx +5 -0
  37. package/src/components/block-styles.lite.tsx +3 -1
  38. package/src/components/error-boundary.jsx +5 -0
  39. package/src/components/error-boundary.lite.tsx +3 -1
  40. package/src/components/{render-block.js → render-block.jsx} +30 -70
  41. package/src/components/render-block.lite.tsx +11 -3
  42. package/src/components/render-blocks.jsx +57 -0
  43. package/src/components/render-blocks.lite.tsx +7 -4
  44. package/src/components/render-content/components/{render-styles.js → render-styles.jsx} +5 -13
  45. package/src/components/render-content/components/render-styles.lite.tsx +3 -1
  46. package/src/components/render-content/{render-content.js → render-content.jsx} +25 -78
  47. package/src/components/render-content/render-content.lite.tsx +3 -1
  48. package/src/index.js +11 -11
  49. package/src/blocks/button.js +0 -32
  50. package/src/blocks/fragment.js +0 -15
  51. package/src/blocks/img.js +0 -39
  52. package/src/blocks/input.js +0 -45
  53. package/src/blocks/raw-text.js +0 -25
  54. package/src/blocks/select.js +0 -57
  55. package/src/blocks/submit-button.js +0 -18
  56. package/src/blocks/symbol.js +0 -69
  57. package/src/blocks/text.js +0 -15
  58. package/src/blocks/textarea.js +0 -34
  59. package/src/blocks/video.js +0 -54
  60. package/src/components/block-styles.js +0 -3
  61. package/src/components/error-boundary.js +0 -3
  62. package/src/components/render-blocks.js +0 -104
@@ -1,18 +0,0 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { insert as _$insert } from "solid-js/web";
3
- import { spread as _$spread } from "solid-js/web";
4
-
5
- const _tmpl$ = /*#__PURE__*/_$template(`<button type="submit"></button>`, 2);
6
-
7
- export default function SubmitButton(props) {
8
- return (() => {
9
- const _el$ = _tmpl$.cloneNode(true);
10
-
11
- _$spread(_el$, () => props.attributes, false, true);
12
-
13
- _$insert(_el$, () => props.text);
14
-
15
- return _el$;
16
- })();
17
- }import { registerComponent } from '../functions/register-component';
18
- registerComponent(SubmitButton, {name:'Form:SubmitButton',builtIn:true,image:'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98',defaultStyles:{appearance:'none',paddingTop:'15px',paddingBottom:'15px',paddingLeft:'25px',paddingRight:'25px',backgroundColor:'#3898EC',color:'white',borderRadius:'4px',cursor:'pointer'},inputs:[{name:'text',type:'text',defaultValue:'Click me'}],static:true,noWrap:true});
@@ -1,69 +0,0 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { setAttribute as _$setAttribute } from "solid-js/web";
3
- import { effect as _$effect } from "solid-js/web";
4
- import { insert as _$insert } from "solid-js/web";
5
- import { createComponent as _$createComponent } from "solid-js/web";
6
- import { spread as _$spread } from "solid-js/web";
7
-
8
- const _tmpl$ = /*#__PURE__*/_$template(`<div></div>`, 2);
9
-
10
- import { createMutable } from "solid-js/store";
11
- import RenderContent from "../components/render-content/render-content";
12
- import BuilderContext from "../context/builder.context";
13
- export default function Symbol(props) {
14
- const state = createMutable({
15
- className: "builder-symbol",
16
- content: null
17
- });
18
- const builderContext = useContext(BuilderContext);
19
- onMount(() => {
20
- state.content = props.symbol?.content;
21
- });
22
- return (() => {
23
- const _el$ = _tmpl$.cloneNode(true);
24
-
25
- _$spread(_el$, () => props.attributes, false, true);
26
-
27
- _$insert(_el$, _$createComponent(RenderContent, {
28
- get apiKey() {
29
- return builderContext.apiKey;
30
- },
31
-
32
- get context() {
33
- return builderContext.context;
34
- },
35
-
36
- get data() {
37
- return { ...props.symbol?.data,
38
- ...builderContext.state,
39
- ...props.symbol?.state.content?.data?.state
40
- };
41
- },
42
-
43
- get model() {
44
- return props.symbol?.model;
45
- },
46
-
47
- get content() {
48
- return state.content;
49
- }
50
-
51
- }));
52
-
53
- _$effect(_p$ => {
54
- const _v$ = state.className,
55
- _v$2 = {
56
- class: state.className
57
- };
58
- _v$ !== _p$._v$ && (_el$.className = _p$._v$ = _v$);
59
- _v$2 !== _p$._v$2 && _$setAttribute(_el$, "dataset", _p$._v$2 = _v$2);
60
- return _p$;
61
- }, {
62
- _v$: undefined,
63
- _v$2: undefined
64
- });
65
-
66
- return _el$;
67
- })();
68
- }import { registerComponent } from '../functions/register-component';
69
- registerComponent(Symbol, {name:'Symbol',noWrap:true,static:true,inputs:[{name:'symbol',type:'uiSymbol'},{name:'dataOnly',helperText:"Make this a data symbol that doesn't display any UI",type:'boolean',defaultValue:false,advanced:true,hideFromUI:true},{name:'inheritState',helperText:'Inherit the parent component state and data',type:'boolean',defaultValue:false,advanced:true},{name:'renderToLiquid',helperText:'Render this symbols contents to liquid. Turn off to fetch with javascript and use custom targeting',type:'boolean',defaultValue:false,advanced:true,hideFromUI:true},{name:'useChildren',hideFromUI:true,type:'boolean'}]});
@@ -1,15 +0,0 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { effect as _$effect } from "solid-js/web";
3
-
4
- const _tmpl$ = /*#__PURE__*/_$template(`<div></div>`, 2);
5
-
6
- export default function Text(props) {
7
- return (() => {
8
- const _el$ = _tmpl$.cloneNode(true);
9
-
10
- _$effect(() => _el$.innerHTML = props.text);
11
-
12
- return _el$;
13
- })();
14
- }import { registerComponent } from '../functions/register-component';
15
- registerComponent(Text, {name:'Text',static:true,builtIn:true,image:'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929',inputs:[{name:'text',type:'html',required:true,autoFocus:true,bubble:true,defaultValue:'Enter some text...'}],defaultStyles:{lineHeight:'normal',height:'auto',textAlign:'center'}});
@@ -1,34 +0,0 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { setAttribute as _$setAttribute } from "solid-js/web";
3
- import { effect as _$effect } from "solid-js/web";
4
- import { spread as _$spread } from "solid-js/web";
5
-
6
- const _tmpl$ = /*#__PURE__*/_$template(`<textarea></textarea>`, 2);
7
-
8
- export default function Textarea(props) {
9
- return (() => {
10
- const _el$ = _tmpl$.cloneNode(true);
11
-
12
- _$spread(_el$, () => props.attributes, false, false);
13
-
14
- _$effect(_p$ => {
15
- const _v$ = props.placeholder,
16
- _v$2 = props.name,
17
- _v$3 = props.value,
18
- _v$4 = props.defaultValue;
19
- _v$ !== _p$._v$ && _$setAttribute(_el$, "placeholder", _p$._v$ = _v$);
20
- _v$2 !== _p$._v$2 && _$setAttribute(_el$, "name", _p$._v$2 = _v$2);
21
- _v$3 !== _p$._v$3 && (_el$.value = _p$._v$3 = _v$3);
22
- _v$4 !== _p$._v$4 && _$setAttribute(_el$, "defaultvalue", _p$._v$4 = _v$4);
23
- return _p$;
24
- }, {
25
- _v$: undefined,
26
- _v$2: undefined,
27
- _v$3: undefined,
28
- _v$4: undefined
29
- });
30
-
31
- return _el$;
32
- })();
33
- }import { registerComponent } from '../functions/register-component';
34
- registerComponent(Textarea, {name:'Form:TextArea',builtIn:true,image:'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3',inputs:[{advanced:true,name:'value',type:'string'},{name:'name',type:'string',required:true,helperText:'Every input in a form needs a unique name describing what it gets, e.g. "email"'},{name:'defaultValue',type:'string'},{name:'placeholder',type:'string',defaultValue:'Hello there'},{name:'required',type:'boolean',defaultValue:false}],defaultStyles:{paddingTop:'10px',paddingBottom:'10px',paddingLeft:'10px',paddingRight:'10px',borderRadius:'3px',borderWidth:'1px',borderStyle:'solid',borderColor:'#ccc'},static:true,noWrap:true});
@@ -1,54 +0,0 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { setAttribute as _$setAttribute } from "solid-js/web";
3
- import { style as _$style } from "solid-js/web";
4
- import { effect as _$effect } from "solid-js/web";
5
- import { spread as _$spread } from "solid-js/web";
6
-
7
- const _tmpl$ = /*#__PURE__*/_$template(`<video preload="none"></video>`, 2);
8
-
9
- export default function Video(props) {
10
- return (() => {
11
- const _el$ = _tmpl$.cloneNode(true);
12
-
13
- _$spread(_el$, () => props.attributes, false, false);
14
-
15
- _$effect(_p$ => {
16
- const _v$ = {
17
- width: "100%",
18
- height: "100%",
19
- ...props.attributes?.style,
20
- "object-fit": props.fit,
21
- "object-position": props.position,
22
- // Hack to get object fit to work as expected and
23
- // not have the video overflow
24
- "border-radius": 1
25
- },
26
- _v$2 = props.video || "no-src",
27
- _v$3 = props.posterImage,
28
- _v$4 = props.autoPlay,
29
- _v$5 = props.muted,
30
- _v$6 = props.controls,
31
- _v$7 = props.loop;
32
-
33
- _p$._v$ = _$style(_el$, _v$, _p$._v$);
34
- _v$2 !== _p$._v$2 && _$setAttribute(_el$, "key", _p$._v$2 = _v$2);
35
- _v$3 !== _p$._v$3 && _$setAttribute(_el$, "poster", _p$._v$3 = _v$3);
36
- _v$4 !== _p$._v$4 && _$setAttribute(_el$, "autoplay", _p$._v$4 = _v$4);
37
- _v$5 !== _p$._v$5 && (_el$.muted = _p$._v$5 = _v$5);
38
- _v$6 !== _p$._v$6 && (_el$.controls = _p$._v$6 = _v$6);
39
- _v$7 !== _p$._v$7 && (_el$.loop = _p$._v$7 = _v$7);
40
- return _p$;
41
- }, {
42
- _v$: undefined,
43
- _v$2: undefined,
44
- _v$3: undefined,
45
- _v$4: undefined,
46
- _v$5: undefined,
47
- _v$6: undefined,
48
- _v$7: undefined
49
- });
50
-
51
- return _el$;
52
- })();
53
- }import { registerComponent } from '../functions/register-component';
54
- registerComponent(Video, {name:'Video',canHaveChildren:true,builtIn:true,defaultStyles:{minHeight:'20px',minWidth:'20px'},image:'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb',inputs:[{name:'video',type:'file',allowedFileTypes:['mp4'],bubble:true,defaultValue:'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/assets%2FKQlEmWDxA0coC3PK6UvkrjwkIGI2%2F28cb070609f546cdbe5efa20e931aa4b?alt=media&token=912e9551-7a7c-4dfb-86b6-3da1537d1a7f',required:true},{name:'posterImage',type:'file',allowedFileTypes:['jpeg','png'],helperText:'Image to show before the video plays'},{name:'autoPlay',type:'boolean',defaultValue:true},{name:'controls',type:'boolean',defaultValue:false},{name:'muted',type:'boolean',defaultValue:true},{name:'loop',type:'boolean',defaultValue:true},{name:'playsInline',type:'boolean',defaultValue:true},{name:'fit',type:'text',defaultValue:'cover',enum:['contain','cover','fill','auto']},{name:'fitContent',type:'boolean',helperText:'When child blocks are provided, fit to them instead of using the aspect ratio',defaultValue:true,advanced:true},{name:'position',type:'text',defaultValue:'center',enum:['center','top','left','right','bottom','top left','top right','bottom left','bottom right']},{name:'height',type:'number',advanced:true},{name:'width',type:'number',advanced:true},{name:'aspectRatio',type:'number',advanced:true,defaultValue:0.7004048582995948},{name:'lazyLoad',type:'boolean',helperText:'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',defaultValue:true,advanced:true}]});
@@ -1,3 +0,0 @@
1
- export default function BlockStyles(props) {
2
- return [];
3
- }
@@ -1,3 +0,0 @@
1
- export default function ErrorBoundary(props) {
2
- return [];
3
- }
@@ -1,104 +0,0 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
- import { setAttribute as _$setAttribute } from "solid-js/web";
4
- import { effect as _$effect } from "solid-js/web";
5
- import { insert as _$insert } from "solid-js/web";
6
- import { createComponent as _$createComponent } from "solid-js/web";
7
-
8
- const _tmpl$ = /*#__PURE__*/_$template(`<div></div>`, 2);
9
-
10
- import { Show, For } from "solid-js";
11
- import { createMutable } from "solid-js/store";
12
- import { css } from "solid-styled-components";
13
- import { isEditing } from "../functions/is-editing";
14
- import RenderBlock from "./render-block";
15
- export default function RenderBlocks(props) {
16
- const state = createMutable({
17
- get className() {
18
- return "builder-blocks" + (!props.blocks?.length ? " no-blocks" : "");
19
- },
20
-
21
- onClick() {
22
- if (isEditing() && !props.blocks?.length) {
23
- window.parent?.postMessage({
24
- type: "builder.clickEmptyBlocks",
25
- data: {
26
- parentElementId: props.parent,
27
- dataPath: props.path
28
- }
29
- }, "*");
30
- }
31
- },
32
-
33
- onMouseEnter() {
34
- if (isEditing() && !props.blocks?.length) {
35
- window.parent?.postMessage({
36
- type: "builder.hoverEmptyBlocks",
37
- data: {
38
- parentElementId: props.parent,
39
- dataPath: props.path
40
- }
41
- }, "*");
42
- }
43
- }
44
-
45
- });
46
- return (() => {
47
- const _el$ = _tmpl$.cloneNode(true);
48
-
49
- _el$.addEventListener("mouseenter", event => state.onMouseEnter());
50
-
51
- _el$.$$click = event => state.onClick();
52
-
53
- _$insert(_el$, _$createComponent(Show, {
54
- get when() {
55
- return props.blocks;
56
- },
57
-
58
- get children() {
59
- return _$createComponent(For, {
60
- get each() {
61
- return props.blocks;
62
- },
63
-
64
- children: (block, index) => _$createComponent(RenderBlock, {
65
- get key() {
66
- return block.id;
67
- },
68
-
69
- block: block
70
- })
71
- });
72
- }
73
-
74
- }));
75
-
76
- _$effect(_p$ => {
77
- const _v$ = state.className + " " + css({
78
- display: "flex",
79
- flexDirection: "column",
80
- alignItems: "stretch"
81
- }),
82
- _v$2 = props.path,
83
- _v$3 = props.parent,
84
- _v$4 = {
85
- class: state.className
86
- };
87
-
88
- _v$ !== _p$._v$ && (_el$.className = _p$._v$ = _v$);
89
- _v$2 !== _p$._v$2 && _$setAttribute(_el$, "builder-path", _p$._v$2 = _v$2);
90
- _v$3 !== _p$._v$3 && _$setAttribute(_el$, "builder-parent-id", _p$._v$3 = _v$3);
91
- _v$4 !== _p$._v$4 && _$setAttribute(_el$, "dataset", _p$._v$4 = _v$4);
92
- return _p$;
93
- }, {
94
- _v$: undefined,
95
- _v$2: undefined,
96
- _v$3: undefined,
97
- _v$4: undefined
98
- });
99
-
100
- return _el$;
101
- })();
102
- }
103
-
104
- _$delegateEvents(["click"]);