@builder.io/sdk-svelte 0.0.1-9 → 0.0.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 (359) hide show
  1. package/README.md +4 -0
  2. package/package/CHANGELOG.md +19 -0
  3. package/package/README.md +19 -0
  4. package/{src/types/builder-block.js → package/blocks/button/button.lite.d.ts} +0 -0
  5. package/package/blocks/button/button.lite.tsx +36 -0
  6. package/package/blocks/button/button.svelte +28 -0
  7. package/package/blocks/button/button.svelte.d.ts +25 -0
  8. package/package/blocks/button/component-info.d.ts +2 -0
  9. package/package/blocks/button/component-info.js +39 -0
  10. package/{src/types/builder-content.js → package/blocks/columns/columns.lite.d.ts} +0 -0
  11. package/package/blocks/columns/columns.lite.tsx +139 -0
  12. package/package/blocks/columns/columns.svelte +109 -0
  13. package/package/blocks/columns/columns.svelte.d.ts +33 -0
  14. package/package/blocks/columns/component-info.d.ts +2 -0
  15. package/package/blocks/columns/component-info.js +241 -0
  16. package/package/blocks/custom-code/component-info.d.ts +2 -0
  17. package/package/blocks/custom-code/component-info.js +28 -0
  18. package/{src/types/components.js → package/blocks/custom-code/custom-code.lite.d.ts} +0 -0
  19. package/package/blocks/custom-code/custom-code.lite.tsx +70 -0
  20. package/package/blocks/custom-code/custom-code.svelte +55 -0
  21. package/package/blocks/custom-code/custom-code.svelte.d.ts +21 -0
  22. package/package/blocks/embed/component-info.d.ts +2 -0
  23. package/package/blocks/embed/component-info.js +47 -0
  24. package/{src/types/deep-partial.js → package/blocks/embed/embed.lite.d.ts} +0 -0
  25. package/package/blocks/embed/embed.lite.tsx +52 -0
  26. package/package/blocks/embed/embed.svelte +41 -0
  27. package/package/blocks/embed/embed.svelte.d.ts +19 -0
  28. package/package/blocks/embed/helpers.d.ts +1 -0
  29. package/package/blocks/embed/helpers.js +6 -0
  30. package/package/blocks/form/component-info.d.ts +2 -0
  31. package/package/blocks/form/component-info.js +268 -0
  32. package/{src/types/element.js → package/blocks/form/form.lite.d.ts} +0 -0
  33. package/package/blocks/form/form.lite.tsx +351 -0
  34. package/package/blocks/form/form.svelte +259 -0
  35. package/package/blocks/form/form.svelte.d.ts +70 -0
  36. package/package/blocks/fragment/component-info.d.ts +2 -0
  37. package/package/blocks/fragment/component-info.js +8 -0
  38. package/{src/types/targets.js → package/blocks/fragment/fragment.lite.d.ts} +0 -0
  39. package/package/blocks/fragment/fragment.lite.tsx +12 -0
  40. package/package/blocks/fragment/fragment.svelte +5 -0
  41. package/package/blocks/fragment/fragment.svelte.d.ts +21 -0
  42. package/package/blocks/image/component-info.d.ts +2 -0
  43. package/package/blocks/image/component-info.js +153 -0
  44. package/package/blocks/image/image.helpers.d.ts +1 -0
  45. package/package/blocks/image/image.helpers.js +56 -0
  46. package/{src/types/typescript.js → package/blocks/image/image.lite.d.ts} +0 -0
  47. package/package/blocks/image/image.lite.tsx +148 -0
  48. package/package/blocks/image/image.svelte +119 -0
  49. package/package/blocks/image/image.svelte.d.ts +48 -0
  50. package/package/blocks/img/component-info.d.ts +2 -0
  51. package/package/blocks/img/component-info.js +18 -0
  52. package/package/blocks/img/img.lite.d.ts +0 -0
  53. package/package/blocks/img/img.lite.tsx +48 -0
  54. package/package/blocks/img/img.svelte +26 -0
  55. package/package/blocks/img/img.svelte.d.ts +29 -0
  56. package/package/blocks/input/component-info.d.ts +2 -0
  57. package/package/blocks/input/component-info.js +72 -0
  58. package/package/blocks/input/input.lite.d.ts +0 -0
  59. package/package/blocks/input/input.lite.tsx +34 -0
  60. package/package/blocks/input/input.svelte +22 -0
  61. package/package/blocks/input/input.svelte.d.ts +31 -0
  62. package/package/blocks/raw-text/component-info.d.ts +2 -0
  63. package/package/blocks/raw-text/component-info.js +13 -0
  64. package/package/blocks/raw-text/raw-text.lite.d.ts +0 -0
  65. package/package/blocks/raw-text/raw-text.lite.tsx +15 -0
  66. package/package/blocks/raw-text/raw-text.svelte +9 -0
  67. package/package/blocks/raw-text/raw-text.svelte.d.ts +21 -0
  68. package/package/blocks/section/component-info.d.ts +2 -0
  69. package/package/blocks/section/component-info.js +46 -0
  70. package/package/blocks/section/section.lite.d.ts +0 -0
  71. package/package/blocks/section/section.lite.tsx +30 -0
  72. package/package/blocks/section/section.svelte +21 -0
  73. package/package/blocks/section/section.svelte.d.ts +25 -0
  74. package/package/blocks/select/component-info.d.ts +2 -0
  75. package/package/blocks/select/component-info.js +56 -0
  76. package/package/blocks/select/select.lite.d.ts +0 -0
  77. package/package/blocks/select/select.lite.tsx +34 -0
  78. package/package/blocks/select/select.svelte +21 -0
  79. package/package/blocks/select/select.svelte.d.ts +30 -0
  80. package/package/blocks/submit-button/component-info.d.ts +2 -0
  81. package/package/blocks/submit-button/component-info.js +29 -0
  82. package/package/blocks/submit-button/submit-button.lite.d.ts +0 -0
  83. package/package/blocks/submit-button/submit-button.lite.tsx +15 -0
  84. package/package/blocks/submit-button/submit-button.svelte +9 -0
  85. package/package/blocks/submit-button/submit-button.svelte.d.ts +21 -0
  86. package/package/blocks/symbol/component-info.d.ts +2 -0
  87. package/package/blocks/symbol/component-info.js +40 -0
  88. package/package/blocks/symbol/symbol.lite.d.ts +0 -0
  89. package/package/blocks/symbol/symbol.lite.tsx +92 -0
  90. package/package/blocks/symbol/symbol.svelte +66 -0
  91. package/package/blocks/symbol/symbol.svelte.d.ts +35 -0
  92. package/package/blocks/text/component-info.d.ts +2 -0
  93. package/package/blocks/text/component-info.js +21 -0
  94. package/package/blocks/text/text.lite.d.ts +0 -0
  95. package/package/blocks/text/text.lite.tsx +11 -0
  96. package/package/blocks/text/text.svelte +6 -0
  97. package/package/blocks/text/text.svelte.d.ts +19 -0
  98. package/package/blocks/textarea/component-info.d.ts +2 -0
  99. package/package/blocks/textarea/component-info.js +44 -0
  100. package/package/blocks/textarea/textarea.lite.d.ts +0 -0
  101. package/package/blocks/textarea/textarea.lite.tsx +19 -0
  102. package/package/blocks/textarea/textarea.svelte +10 -0
  103. package/package/blocks/textarea/textarea.svelte.d.ts +27 -0
  104. package/package/blocks/util.d.ts +1 -0
  105. package/package/blocks/util.js +4 -0
  106. package/package/blocks/video/component-info.d.ts +2 -0
  107. package/package/blocks/video/component-info.js +103 -0
  108. package/package/blocks/video/video.lite.d.ts +0 -0
  109. package/package/blocks/video/video.lite.tsx +92 -0
  110. package/package/blocks/video/video.svelte +63 -0
  111. package/package/blocks/video/video.svelte.d.ts +41 -0
  112. package/package/components/render-block/block-styles.lite.d.ts +0 -0
  113. package/package/components/render-block/block-styles.lite.tsx +60 -0
  114. package/package/components/render-block/block-styles.svelte +45 -0
  115. package/package/components/render-block/block-styles.svelte.d.ts +23 -0
  116. package/package/components/render-block/render-block.helpers.d.ts +1 -0
  117. package/package/components/render-block/render-block.helpers.js +24 -0
  118. package/package/components/render-block/render-block.lite.d.ts +0 -0
  119. package/package/components/render-block/render-block.lite.tsx +216 -0
  120. package/package/components/render-block/render-block.svelte +185 -0
  121. package/package/components/render-block/render-block.svelte.d.ts +23 -0
  122. package/package/components/render-block/render-component.lite.d.ts +0 -0
  123. package/package/components/render-block/render-component.lite.tsx +33 -0
  124. package/package/components/render-block/render-component.svelte +24 -0
  125. package/package/components/render-block/render-component.svelte.d.ts +27 -0
  126. package/package/components/render-block/render-repeated-block.lite.d.ts +0 -0
  127. package/package/components/render-block/render-repeated-block.lite.tsx +49 -0
  128. package/package/components/render-block/render-repeated-block.svelte +36 -0
  129. package/package/components/render-block/render-repeated-block.svelte.d.ts +23 -0
  130. package/package/components/render-block/types.d.ts +6 -0
  131. package/package/components/render-block/types.js +2 -0
  132. package/package/components/render-blocks.lite.d.ts +0 -0
  133. package/package/components/render-blocks.lite.tsx +91 -0
  134. package/package/components/render-blocks.svelte +73 -0
  135. package/package/components/render-blocks.svelte.d.ts +24 -0
  136. package/package/components/render-content/components/render-styles.lite.d.ts +0 -0
  137. package/package/components/render-content/components/render-styles.lite.tsx +86 -0
  138. package/package/components/render-content/components/render-styles.svelte +61 -0
  139. package/package/components/render-content/components/render-styles.svelte.d.ts +29 -0
  140. package/package/components/render-content/index.d.ts +1 -0
  141. package/package/components/render-content/index.js +1 -0
  142. package/package/components/render-content/render-content.lite.d.ts +0 -0
  143. package/package/components/render-content/render-content.lite.tsx +356 -0
  144. package/package/components/render-content/render-content.svelte +260 -0
  145. package/package/components/render-content/render-content.svelte.d.ts +36 -0
  146. package/package/components/render-inlined-styles.lite.d.ts +0 -0
  147. package/package/components/render-inlined-styles.lite.tsx +27 -0
  148. package/package/components/render-inlined-styles.svelte +19 -0
  149. package/package/components/render-inlined-styles.svelte.d.ts +19 -0
  150. package/package/constants/builder-registered-components.d.ts +6 -0
  151. package/package/constants/builder-registered-components.js +36 -0
  152. package/package/constants/device-sizes.d.ts +2 -0
  153. package/package/constants/device-sizes.js +18 -0
  154. package/package/constants/target.d.ts +2 -0
  155. package/package/constants/target.js +2 -0
  156. package/package/context/builder.context.d.ts +11 -0
  157. package/package/context/builder.context.js +11 -0
  158. package/package/context/types.d.ts +16 -0
  159. package/package/context/types.js +3 -0
  160. package/package/functions/camel-to-kebab-case.d.ts +1 -0
  161. package/package/functions/camel-to-kebab-case.js +1 -0
  162. package/package/functions/convert-style-object.d.ts +1 -0
  163. package/package/functions/convert-style-object.js +3 -0
  164. package/package/functions/evaluate.d.ts +5 -0
  165. package/package/functions/evaluate.js +25 -0
  166. package/package/functions/event-handler-name.d.ts +1 -0
  167. package/package/functions/event-handler-name.js +4 -0
  168. package/package/functions/get-block-actions.d.ts +9 -0
  169. package/package/functions/get-block-actions.js +21 -0
  170. package/package/functions/get-block-component-options.d.ts +2 -0
  171. package/package/functions/get-block-component-options.js +11 -0
  172. package/package/functions/get-block-properties.d.ts +5 -0
  173. package/package/functions/get-block-properties.js +10 -0
  174. package/package/functions/get-block-styles.d.ts +2 -0
  175. package/package/functions/get-block-styles.js +21 -0
  176. package/package/functions/get-block-tag.d.ts +10 -0
  177. package/package/functions/get-block-tag.js +9 -0
  178. package/package/functions/get-builder-search-params/fn.test.d.ts +1 -0
  179. package/package/functions/get-builder-search-params/fn.test.js +13 -0
  180. package/package/functions/get-builder-search-params/index.d.ts +6 -0
  181. package/package/functions/get-builder-search-params/index.js +29 -0
  182. package/package/functions/get-content/ab-testing.d.ts +3 -0
  183. package/package/functions/get-content/ab-testing.js +40 -0
  184. package/package/functions/get-content/fn.test.d.ts +1 -0
  185. package/package/functions/get-content/fn.test.js +31 -0
  186. package/package/functions/get-content/index.d.ts +9 -0
  187. package/package/functions/get-content/index.js +42 -0
  188. package/package/functions/get-content/types.d.ts +26 -0
  189. package/package/functions/get-content/types.js +1 -0
  190. package/package/functions/get-fetch.d.ts +1 -0
  191. package/package/functions/get-fetch.js +9 -0
  192. package/package/functions/get-global-this.d.ts +1 -0
  193. package/package/functions/get-global-this.js +15 -0
  194. package/package/functions/get-processed-block.d.ts +10 -0
  195. package/package/functions/get-processed-block.js +29 -0
  196. package/package/functions/get-processed-block.test.d.ts +1 -0
  197. package/package/functions/get-processed-block.test.js +32 -0
  198. package/package/functions/if-target.d.ts +7 -0
  199. package/package/functions/if-target.js +10 -0
  200. package/package/functions/is-browser.d.ts +1 -0
  201. package/package/functions/is-browser.js +3 -0
  202. package/package/functions/is-editing.d.ts +1 -0
  203. package/package/functions/is-editing.js +4 -0
  204. package/package/functions/is-iframe.d.ts +1 -0
  205. package/package/functions/is-iframe.js +4 -0
  206. package/package/functions/is-previewing.d.ts +1 -0
  207. package/package/functions/is-previewing.js +11 -0
  208. package/package/functions/mark-mutable.d.ts +2 -0
  209. package/package/functions/mark-mutable.js +6 -0
  210. package/package/functions/on-change.d.ts +7 -0
  211. package/package/functions/on-change.js +28 -0
  212. package/package/functions/on-change.test.d.ts +1 -0
  213. package/package/functions/on-change.test.js +20 -0
  214. package/package/functions/register-component.d.ts +14 -0
  215. package/package/functions/register-component.js +42 -0
  216. package/package/functions/register.d.ts +16 -0
  217. package/package/functions/register.js +29 -0
  218. package/package/functions/sanitize-styles.d.ts +4 -0
  219. package/package/functions/sanitize-styles.js +6 -0
  220. package/package/functions/set-editor-settings.d.ts +4 -0
  221. package/package/functions/set-editor-settings.js +12 -0
  222. package/package/functions/set.d.ts +7 -0
  223. package/package/functions/set.js +21 -0
  224. package/package/functions/set.test.d.ts +1 -0
  225. package/package/functions/set.test.js +16 -0
  226. package/package/functions/track.d.ts +21 -0
  227. package/package/functions/track.js +49 -0
  228. package/package/functions/transform-block.d.ts +2 -0
  229. package/package/functions/transform-block.js +5 -0
  230. package/package/helpers/cookie.d.ts +9 -0
  231. package/package/helpers/cookie.js +55 -0
  232. package/package/helpers/css.d.ts +1 -0
  233. package/package/helpers/css.js +9 -0
  234. package/package/helpers/flatten.d.ts +6 -0
  235. package/package/helpers/flatten.js +19 -0
  236. package/package/helpers/localStorage.d.ts +9 -0
  237. package/package/helpers/localStorage.js +23 -0
  238. package/package/helpers/nullable.d.ts +2 -0
  239. package/package/helpers/nullable.js +1 -0
  240. package/package/helpers/sessionId.d.ts +7 -0
  241. package/package/helpers/sessionId.js +20 -0
  242. package/package/helpers/time.d.ts +1 -0
  243. package/package/helpers/time.js +2 -0
  244. package/package/helpers/url.d.ts +6 -0
  245. package/package/helpers/url.js +12 -0
  246. package/package/helpers/url.test.d.ts +1 -0
  247. package/package/helpers/url.test.js +15 -0
  248. package/package/helpers/uuid.d.ts +8 -0
  249. package/package/helpers/uuid.js +15 -0
  250. package/package/helpers/visitorId.d.ts +8 -0
  251. package/package/helpers/visitorId.js +26 -0
  252. package/package/index-helpers/blocks-exports.d.ts +10 -0
  253. package/package/index-helpers/blocks-exports.js +10 -0
  254. package/package/index-helpers/top-of-file.d.ts +1 -0
  255. package/package/index-helpers/top-of-file.js +4 -0
  256. package/package/index.d.ts +10 -0
  257. package/package/index.js +10 -0
  258. package/package/scripts/init-editing.d.ts +2 -0
  259. package/package/scripts/init-editing.js +84 -0
  260. package/package/types/builder-block.d.ts +57 -0
  261. package/package/types/builder-block.js +1 -0
  262. package/package/types/builder-content.d.ts +38 -0
  263. package/package/types/builder-content.js +1 -0
  264. package/package/types/can-track.d.ts +3 -0
  265. package/package/types/can-track.js +1 -0
  266. package/package/types/components.d.ts +177 -0
  267. package/package/types/components.js +1 -0
  268. package/package/types/deep-partial.d.ts +3 -0
  269. package/package/types/deep-partial.js +1 -0
  270. package/package/types/element.d.ts +59 -0
  271. package/package/types/element.js +1 -0
  272. package/package/types/targets.d.ts +3 -0
  273. package/package/types/targets.js +1 -0
  274. package/package/types/typescript.d.ts +4 -0
  275. package/package/types/typescript.js +1 -0
  276. package/package.json +31 -8
  277. package/src/blocks/button/button.svelte +0 -49
  278. package/src/blocks/button/component-info.js +0 -41
  279. package/src/blocks/columns/columns.svelte +0 -103
  280. package/src/blocks/columns/component-info.js +0 -217
  281. package/src/blocks/custom-code/component-info.js +0 -31
  282. package/src/blocks/custom-code/custom-code.svelte +0 -64
  283. package/src/blocks/embed/component-info.js +0 -24
  284. package/src/blocks/embed/embed.svelte +0 -63
  285. package/src/blocks/form/component-info.js +0 -262
  286. package/src/blocks/form/form.svelte +0 -333
  287. package/src/blocks/fragment/component-info.js +0 -11
  288. package/src/blocks/fragment/fragment.svelte +0 -28
  289. package/src/blocks/image/component-info.js +0 -104
  290. package/src/blocks/image/image.svelte +0 -117
  291. package/src/blocks/img/component-info.js +0 -20
  292. package/src/blocks/img/img.svelte +0 -36
  293. package/src/blocks/input/component-info.js +0 -74
  294. package/src/blocks/input/input.svelte +0 -35
  295. package/src/blocks/raw-text/component-info.js +0 -16
  296. package/src/blocks/raw-text/raw-text.svelte +0 -29
  297. package/src/blocks/section/component-info.js +0 -49
  298. package/src/blocks/section/section.svelte +0 -36
  299. package/src/blocks/select/component-info.js +0 -59
  300. package/src/blocks/select/select.svelte +0 -41
  301. package/src/blocks/submit-button/component-info.js +0 -28
  302. package/src/blocks/submit-button/submit-button.svelte +0 -33
  303. package/src/blocks/symbol/component-info.js +0 -42
  304. package/src/blocks/symbol/symbol.svelte +0 -54
  305. package/src/blocks/text/component-info.js +0 -24
  306. package/src/blocks/text/text.svelte +0 -28
  307. package/src/blocks/textarea/component-info.js +0 -47
  308. package/src/blocks/textarea/textarea.svelte +0 -32
  309. package/src/blocks/video/component-info.js +0 -106
  310. package/src/blocks/video/video.svelte +0 -45
  311. package/src/components/error-boundary.svelte +0 -26
  312. package/src/components/render-block/block-styles.svelte +0 -51
  313. package/src/components/render-block/render-block.helpers.js +0 -23
  314. package/src/components/render-block/render-block.svelte +0 -174
  315. package/src/components/render-blocks.svelte +0 -82
  316. package/src/components/render-content/components/render-styles.svelte +0 -90
  317. package/src/components/render-content/index.js +0 -4
  318. package/src/components/render-content/render-content.svelte +0 -252
  319. package/src/components/render-inlined-styles.svelte +0 -51
  320. package/src/constants/builder-registered-components.js +0 -45
  321. package/src/constants/device-sizes.js +0 -39
  322. package/src/constants/target.js +0 -4
  323. package/src/context/builder.context.js +0 -8
  324. package/src/functions/evaluate.js +0 -28
  325. package/src/functions/event-handler-name.js +0 -7
  326. package/src/functions/fast-clone.js +0 -4
  327. package/src/functions/get-block-actions.js +0 -23
  328. package/src/functions/get-block-component-options.js +0 -23
  329. package/src/functions/get-block-properties.js +0 -29
  330. package/src/functions/get-block-styles.js +0 -31
  331. package/src/functions/get-block-tag.js +0 -6
  332. package/src/functions/get-builder-search-params/fn.test.js +0 -13
  333. package/src/functions/get-builder-search-params/index.js +0 -22
  334. package/src/functions/get-content/fn.test.js +0 -31
  335. package/src/functions/get-content/index.js +0 -138
  336. package/src/functions/get-fetch.js +0 -34
  337. package/src/functions/get-global-this.js +0 -18
  338. package/src/functions/get-processed-block.js +0 -46
  339. package/src/functions/get-processed-block.test.js +0 -31
  340. package/src/functions/if-target.js +0 -15
  341. package/src/functions/is-browser.js +0 -6
  342. package/src/functions/is-editing.js +0 -7
  343. package/src/functions/is-iframe.js +0 -7
  344. package/src/functions/is-previewing.js +0 -14
  345. package/src/functions/macro-eval.js +0 -5
  346. package/src/functions/on-change.js +0 -27
  347. package/src/functions/on-change.test.js +0 -19
  348. package/src/functions/previewing-model-name.js +0 -11
  349. package/src/functions/register-component.js +0 -70
  350. package/src/functions/register.js +0 -29
  351. package/src/functions/set-editor-settings.js +0 -15
  352. package/src/functions/set.js +0 -11
  353. package/src/functions/set.test.js +0 -16
  354. package/src/functions/track.js +0 -22
  355. package/src/functions/transform-block.js +0 -6
  356. package/src/index-helpers/blocks-exports.js +0 -20
  357. package/src/index-helpers/top-of-file.js +0 -4
  358. package/src/index.js +0 -10
  359. package/src/scripts/init-editing.js +0 -80
@@ -0,0 +1,241 @@
1
+ import { markSerializable } from '../util.js';
2
+ export const componentInfo = {
3
+ // TODO: ways to statically preprocess JSON for references, functions, etc
4
+ name: 'Columns',
5
+ builtIn: true,
6
+ inputs: [
7
+ {
8
+ name: 'columns',
9
+ type: 'array',
10
+ broadcast: true,
11
+ subFields: [
12
+ {
13
+ name: 'blocks',
14
+ type: 'array',
15
+ hideFromUI: true,
16
+ defaultValue: [
17
+ {
18
+ '@type': '@builder.io/sdk:Element',
19
+ responsiveStyles: {
20
+ large: {
21
+ display: 'flex',
22
+ flexDirection: 'column',
23
+ alignItems: 'stretch',
24
+ flexShrink: '0',
25
+ position: 'relative',
26
+ marginTop: '30px',
27
+ textAlign: 'center',
28
+ lineHeight: 'normal',
29
+ height: 'auto',
30
+ minHeight: '20px',
31
+ minWidth: '20px',
32
+ overflow: 'hidden',
33
+ },
34
+ },
35
+ component: {
36
+ name: 'Image',
37
+ options: {
38
+ image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d',
39
+ backgroundPosition: 'center',
40
+ backgroundSize: 'cover',
41
+ aspectRatio: 0.7004048582995948,
42
+ },
43
+ },
44
+ },
45
+ {
46
+ '@type': '@builder.io/sdk:Element',
47
+ responsiveStyles: {
48
+ large: {
49
+ display: 'flex',
50
+ flexDirection: 'column',
51
+ alignItems: 'stretch',
52
+ flexShrink: '0',
53
+ position: 'relative',
54
+ marginTop: '30px',
55
+ textAlign: 'center',
56
+ lineHeight: 'normal',
57
+ height: 'auto',
58
+ },
59
+ },
60
+ component: {
61
+ name: 'Text',
62
+ options: {
63
+ text: '<p>Enter some text...</p>',
64
+ },
65
+ },
66
+ },
67
+ ],
68
+ },
69
+ {
70
+ name: 'width',
71
+ type: 'number',
72
+ hideFromUI: true,
73
+ helperText: 'Width %, e.g. set to 50 to fill half of the space',
74
+ },
75
+ {
76
+ name: 'link',
77
+ type: 'url',
78
+ helperText: 'Optionally set a url that clicking this column will link to',
79
+ },
80
+ ],
81
+ defaultValue: [
82
+ {
83
+ blocks: [
84
+ {
85
+ '@type': '@builder.io/sdk:Element',
86
+ responsiveStyles: {
87
+ large: {
88
+ display: 'flex',
89
+ flexDirection: 'column',
90
+ alignItems: 'stretch',
91
+ flexShrink: '0',
92
+ position: 'relative',
93
+ marginTop: '30px',
94
+ textAlign: 'center',
95
+ lineHeight: 'normal',
96
+ height: 'auto',
97
+ minHeight: '20px',
98
+ minWidth: '20px',
99
+ overflow: 'hidden',
100
+ },
101
+ },
102
+ component: {
103
+ name: 'Image',
104
+ options: {
105
+ image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d',
106
+ backgroundPosition: 'center',
107
+ backgroundSize: 'cover',
108
+ aspectRatio: 0.7004048582995948,
109
+ },
110
+ },
111
+ },
112
+ {
113
+ '@type': '@builder.io/sdk:Element',
114
+ responsiveStyles: {
115
+ large: {
116
+ display: 'flex',
117
+ flexDirection: 'column',
118
+ alignItems: 'stretch',
119
+ flexShrink: '0',
120
+ position: 'relative',
121
+ marginTop: '30px',
122
+ textAlign: 'center',
123
+ lineHeight: 'normal',
124
+ height: 'auto',
125
+ },
126
+ },
127
+ component: {
128
+ name: 'Text',
129
+ options: {
130
+ text: '<p>Enter some text...</p>',
131
+ },
132
+ },
133
+ },
134
+ ],
135
+ },
136
+ {
137
+ blocks: [
138
+ {
139
+ '@type': '@builder.io/sdk:Element',
140
+ responsiveStyles: {
141
+ large: {
142
+ display: 'flex',
143
+ flexDirection: 'column',
144
+ alignItems: 'stretch',
145
+ flexShrink: '0',
146
+ position: 'relative',
147
+ marginTop: '30px',
148
+ textAlign: 'center',
149
+ lineHeight: 'normal',
150
+ height: 'auto',
151
+ minHeight: '20px',
152
+ minWidth: '20px',
153
+ overflow: 'hidden',
154
+ },
155
+ },
156
+ component: {
157
+ name: 'Image',
158
+ options: {
159
+ image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d',
160
+ backgroundPosition: 'center',
161
+ backgroundSize: 'cover',
162
+ aspectRatio: 0.7004048582995948,
163
+ },
164
+ },
165
+ },
166
+ {
167
+ '@type': '@builder.io/sdk:Element',
168
+ responsiveStyles: {
169
+ large: {
170
+ display: 'flex',
171
+ flexDirection: 'column',
172
+ alignItems: 'stretch',
173
+ flexShrink: '0',
174
+ position: 'relative',
175
+ marginTop: '30px',
176
+ textAlign: 'center',
177
+ lineHeight: 'normal',
178
+ height: 'auto',
179
+ },
180
+ },
181
+ component: {
182
+ name: 'Text',
183
+ options: {
184
+ text: '<p>Enter some text...</p>',
185
+ },
186
+ },
187
+ },
188
+ ],
189
+ },
190
+ ],
191
+ onChange: markSerializable((options) => {
192
+ function clearWidths() {
193
+ columns.forEach((col) => {
194
+ col.delete('width');
195
+ });
196
+ }
197
+ const columns = options.get('columns');
198
+ if (Array.isArray(columns)) {
199
+ const containsColumnWithWidth = !!columns.find((col) => col.get('width'));
200
+ if (containsColumnWithWidth) {
201
+ const containsColumnWithoutWidth = !!columns.find((col) => !col.get('width'));
202
+ if (containsColumnWithoutWidth) {
203
+ clearWidths();
204
+ }
205
+ else {
206
+ const sumWidths = columns.reduce((memo, col) => {
207
+ return memo + col.get('width');
208
+ }, 0);
209
+ const widthsDontAddUp = sumWidths !== 100;
210
+ if (widthsDontAddUp) {
211
+ clearWidths();
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }),
217
+ },
218
+ {
219
+ name: 'space',
220
+ type: 'number',
221
+ defaultValue: 20,
222
+ helperText: 'Size of gap between columns',
223
+ advanced: true,
224
+ },
225
+ {
226
+ name: 'stackColumnsAt',
227
+ type: 'string',
228
+ defaultValue: 'tablet',
229
+ helperText: 'Convert horizontal columns to vertical at what device size',
230
+ enum: ['tablet', 'mobile', 'never'],
231
+ advanced: true,
232
+ },
233
+ {
234
+ name: 'reverseColumnsWhenStacked',
235
+ type: 'boolean',
236
+ defaultValue: false,
237
+ helperText: 'When stacking columns for mobile devices, reverse the ordering',
238
+ advanced: true,
239
+ },
240
+ ],
241
+ };
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;
@@ -0,0 +1,28 @@
1
+ export const componentInfo = {
2
+ name: 'Custom Code',
3
+ static: true,
4
+ builtIn: true,
5
+ requiredPermissions: ['editCode'],
6
+ inputs: [
7
+ {
8
+ name: 'code',
9
+ type: 'html',
10
+ required: true,
11
+ defaultValue: '<p>Hello there, I am custom HTML code!</p>',
12
+ code: true,
13
+ },
14
+ {
15
+ name: 'replaceNodes',
16
+ type: 'boolean',
17
+ helperText: 'Preserve server rendered dom nodes',
18
+ advanced: true,
19
+ },
20
+ {
21
+ name: 'scriptsClientOnly',
22
+ type: 'boolean',
23
+ defaultValue: false,
24
+ helperText: 'Only print and run scripts on the client. Important when scripts influence DOM that could be replaced when client loads',
25
+ advanced: true,
26
+ },
27
+ ],
28
+ };
@@ -0,0 +1,70 @@
1
+ <script context="module" lang="ts">
2
+ export interface CustomCodeProps {
3
+ code: string;
4
+ replaceNodes?: boolean;
5
+ }
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { onMount } from "svelte";
10
+
11
+ export let replaceNodes: CustomCodeProps["replaceNodes"];
12
+ export let code: CustomCodeProps["code"];
13
+
14
+ function findAndRunScripts() {
15
+ // TODO: Move this function to standalone one in '@builder.io/utils'
16
+ if (elem && typeof window !== "undefined") {
17
+ const scripts = elem.getElementsByTagName("script");
18
+
19
+ for (let i = 0; i < scripts.length; i++) {
20
+ const script = scripts[i];
21
+
22
+ if (script.src) {
23
+ if (scriptsInserted.includes(script.src)) {
24
+ continue;
25
+ }
26
+
27
+ scriptsInserted.push(script.src);
28
+ const newScript = document.createElement("script");
29
+ newScript.async = true;
30
+ newScript.src = script.src;
31
+ document.head.appendChild(newScript);
32
+ } else if (
33
+ !script.type ||
34
+ [
35
+ "text/javascript",
36
+ "application/javascript",
37
+ "application/ecmascript",
38
+ ].includes(script.type)
39
+ ) {
40
+ if (scriptsRun.includes(script.innerText)) {
41
+ continue;
42
+ }
43
+
44
+ try {
45
+ scriptsRun.push(script.innerText);
46
+ new Function(script.innerText)();
47
+ } catch (error) {
48
+ console.warn("`CustomCode`: Error running script:", error);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ let elem;
56
+
57
+ let scriptsInserted = [];
58
+ let scriptsRun = [];
59
+
60
+ onMount(() => {
61
+ findAndRunScripts();
62
+ });
63
+ </script>
64
+
65
+ <div
66
+ bind:this={elem}
67
+ class={"builder-custom-code" + (replaceNodes ? " replace-nodes" : "")}
68
+ >
69
+ {@html code}
70
+ </div>
@@ -0,0 +1,55 @@
1
+ <script context="module"></script>
2
+
3
+ <script>import { onMount } from "svelte";
4
+ export let replaceNodes;
5
+ export let code;
6
+ function findAndRunScripts() {
7
+ // TODO: Move this function to standalone one in '@builder.io/utils'
8
+ if (elem && typeof window !== "undefined") {
9
+ const scripts = elem.getElementsByTagName("script");
10
+ for (let i = 0; i < scripts.length; i++) {
11
+ const script = scripts[i];
12
+ if (script.src) {
13
+ if (scriptsInserted.includes(script.src)) {
14
+ continue;
15
+ }
16
+ scriptsInserted.push(script.src);
17
+ const newScript = document.createElement("script");
18
+ newScript.async = true;
19
+ newScript.src = script.src;
20
+ document.head.appendChild(newScript);
21
+ }
22
+ else if (!script.type ||
23
+ [
24
+ "text/javascript",
25
+ "application/javascript",
26
+ "application/ecmascript",
27
+ ].includes(script.type)) {
28
+ if (scriptsRun.includes(script.innerText)) {
29
+ continue;
30
+ }
31
+ try {
32
+ scriptsRun.push(script.innerText);
33
+ new Function(script.innerText)();
34
+ }
35
+ catch (error) {
36
+ console.warn("`CustomCode`: Error running script:", error);
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+ let elem;
43
+ let scriptsInserted = [];
44
+ let scriptsRun = [];
45
+ onMount(() => {
46
+ findAndRunScripts();
47
+ });
48
+ </script>
49
+
50
+ <div
51
+ bind:this={elem}
52
+ class={"builder-custom-code" + (replaceNodes ? " replace-nodes" : "")}
53
+ >
54
+ {@html code}
55
+ </div>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ export interface CustomCodeProps {
3
+ code: string;
4
+ replaceNodes?: boolean;
5
+ }
6
+ declare const __propDef: {
7
+ props: {
8
+ replaceNodes: CustomCodeProps["replaceNodes"];
9
+ code: CustomCodeProps["code"];
10
+ };
11
+ events: {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export declare type CustomCodeProps = typeof __propDef.props;
17
+ export declare type CustomCodeEvents = typeof __propDef.events;
18
+ export declare type CustomCodeSlots = typeof __propDef.slots;
19
+ export default class CustomCode extends SvelteComponentTyped<CustomCodeProps, CustomCodeEvents, CustomCodeSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;
@@ -0,0 +1,47 @@
1
+ import { markSerializable } from '../util.js';
2
+ export const componentInfo = {
3
+ name: 'Embed',
4
+ static: true,
5
+ builtIn: true,
6
+ inputs: [
7
+ {
8
+ name: 'url',
9
+ type: 'url',
10
+ required: true,
11
+ defaultValue: '',
12
+ helperText: 'e.g. enter a youtube url, google map, etc',
13
+ onChange: markSerializable((options) => {
14
+ const url = options.get('url');
15
+ if (url) {
16
+ options.set('content', 'Loading...');
17
+ // TODO: get this out of here!
18
+ const apiKey = 'ae0e60e78201a3f2b0de4b';
19
+ return fetch(`https://iframe.ly/api/iframely?url=${url}&api_key=${apiKey}`)
20
+ .then((res) => res.json())
21
+ .then((data) => {
22
+ if (options.get('url') === url) {
23
+ if (data.html) {
24
+ options.set('content', data.html);
25
+ }
26
+ else {
27
+ options.set('content', 'Invalid url, please try another');
28
+ }
29
+ }
30
+ })
31
+ .catch((_err) => {
32
+ options.set('content', 'There was an error embedding this URL, please try again or another URL');
33
+ });
34
+ }
35
+ else {
36
+ options.delete('content');
37
+ }
38
+ }),
39
+ },
40
+ {
41
+ name: 'content',
42
+ type: 'html',
43
+ defaultValue: '<div style="padding: 20px; text-align: center">(Choose an embed URL)<div>',
44
+ hideFromUI: true,
45
+ },
46
+ ],
47
+ };
@@ -0,0 +1,52 @@
1
+ <script context="module" lang="ts">
2
+ export interface EmbedProps {
3
+ content: string;
4
+ }
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { afterUpdate } from "svelte";
9
+
10
+ import { isJsScript } from "./helpers.js";
11
+
12
+ export let content: EmbedProps["content"];
13
+
14
+ function findAndRunScripts() {
15
+ const scripts = elem.getElementsByTagName("script");
16
+
17
+ for (let i = 0; i < scripts.length; i++) {
18
+ const script = scripts[i];
19
+
20
+ if (script.src && !scriptsInserted.includes(script.src)) {
21
+ scriptsInserted.push(script.src);
22
+ const newScript = document.createElement("script");
23
+ newScript.async = true;
24
+ newScript.src = script.src;
25
+ document.head.appendChild(newScript);
26
+ } else if (isJsScript(script) && !scriptsRun.includes(script.innerText)) {
27
+ try {
28
+ scriptsRun.push(script.innerText);
29
+ new Function(script.innerText)();
30
+ } catch (error) {
31
+ console.warn("`Embed`: Error running script:", error);
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ let elem;
38
+
39
+ let scriptsInserted = [];
40
+ let scriptsRun = [];
41
+ let ranInitFn = false;
42
+
43
+ function onUpdateFn_0() {
44
+ if (elem && !ranInitFn) {
45
+ ranInitFn = true;
46
+ findAndRunScripts();
47
+ }
48
+ }
49
+ $: onUpdateFn_0(...[elem, ranInitFn]);
50
+ </script>
51
+
52
+ <div class="builder-embed" bind:this={elem}>{@html content}</div>
@@ -0,0 +1,41 @@
1
+ <script context="module"></script>
2
+
3
+ <script>import "svelte";
4
+ import { isJsScript } from "./helpers.js";
5
+ export let content;
6
+ function findAndRunScripts() {
7
+ const scripts = elem.getElementsByTagName("script");
8
+ for (let i = 0; i < scripts.length; i++) {
9
+ const script = scripts[i];
10
+ if (script.src && !scriptsInserted.includes(script.src)) {
11
+ scriptsInserted.push(script.src);
12
+ const newScript = document.createElement("script");
13
+ newScript.async = true;
14
+ newScript.src = script.src;
15
+ document.head.appendChild(newScript);
16
+ }
17
+ else if (isJsScript(script) && !scriptsRun.includes(script.innerText)) {
18
+ try {
19
+ scriptsRun.push(script.innerText);
20
+ new Function(script.innerText)();
21
+ }
22
+ catch (error) {
23
+ console.warn("`Embed`: Error running script:", error);
24
+ }
25
+ }
26
+ }
27
+ }
28
+ let elem;
29
+ let scriptsInserted = [];
30
+ let scriptsRun = [];
31
+ let ranInitFn = false;
32
+ function onUpdateFn_0() {
33
+ if (elem && !ranInitFn) {
34
+ ranInitFn = true;
35
+ findAndRunScripts();
36
+ }
37
+ }
38
+ $: onUpdateFn_0(...[elem, ranInitFn]);
39
+ </script>
40
+
41
+ <div class="builder-embed" bind:this={elem}>{@html content}</div>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ export interface EmbedProps {
3
+ content: string;
4
+ }
5
+ declare const __propDef: {
6
+ props: {
7
+ content: EmbedProps["content"];
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export declare type EmbedProps = typeof __propDef.props;
15
+ export declare type EmbedEvents = typeof __propDef.events;
16
+ export declare type EmbedSlots = typeof __propDef.slots;
17
+ export default class Embed extends SvelteComponentTyped<EmbedProps, EmbedEvents, EmbedSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1 @@
1
+ export declare const isJsScript: (script: HTMLScriptElement) => boolean;
@@ -0,0 +1,6 @@
1
+ const SCRIPT_MIME_TYPES = [
2
+ 'text/javascript',
3
+ 'application/javascript',
4
+ 'application/ecmascript',
5
+ ];
6
+ export const isJsScript = (script) => SCRIPT_MIME_TYPES.includes(script.type);
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;