@builder.io/sdk-svelte 0.0.1-9 → 0.0.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 (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 +3 -0
  177. package/package/functions/get-block-tag.js +4 -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,148 @@
1
+ <script context="module" lang="ts">
2
+ import type { BuilderBlock } from "../../types/builder-block.js";
3
+
4
+ export interface ImageProps {
5
+ className?: string;
6
+ image: string;
7
+ sizes?: string;
8
+ lazy?: boolean;
9
+ height?: number;
10
+ width?: number;
11
+ altText?: string;
12
+ backgroundSize?: string;
13
+ backgroundPosition?: string;
14
+ srcset?: string;
15
+ aspectRatio?: number;
16
+ children?: JSX.Element;
17
+ fitContent?: boolean;
18
+ builderBlock?: BuilderBlock;
19
+ noWebp?: boolean;
20
+ src?: string;
21
+ }
22
+ </script>
23
+
24
+ <script lang="ts">
25
+ import { getSrcSet } from "./image.helpers.js";
26
+
27
+ export let image: ImageProps["image"];
28
+ export let src: ImageProps["src"];
29
+ export let srcset: ImageProps["srcset"];
30
+ export let noWebp: ImageProps["noWebp"];
31
+ export let altText: ImageProps["altText"];
32
+ export let backgroundSize: ImageProps["backgroundSize"];
33
+ export let className: ImageProps["className"];
34
+ export let sizes: ImageProps["sizes"];
35
+ export let aspectRatio: ImageProps["aspectRatio"];
36
+ export let fitContent: ImageProps["fitContent"];
37
+ export let builderBlock: ImageProps["builderBlock"];
38
+
39
+ function mitosis_styling(node, vars) {
40
+ Object.entries(vars).forEach(([p, v]) => {
41
+ node.style[p] = v;
42
+ });
43
+ }
44
+
45
+ $: srcSetToUse = () => {
46
+ const imageToUse = image || src;
47
+ const url = imageToUse;
48
+
49
+ if (
50
+ !url || // We can auto add srcset for cdn.builder.io and shopify
51
+ // images, otherwise you can supply this prop manually
52
+ !(url.match(/builder\.io/) || url.match(/cdn\.shopify\.com/))
53
+ ) {
54
+ return srcset;
55
+ }
56
+
57
+ if (srcset && image?.includes("builder.io/api/v1/image")) {
58
+ if (!srcset.includes(image.split("?")[0])) {
59
+ console.debug("Removed given srcset");
60
+ return getSrcSet(url);
61
+ }
62
+ } else if (image && !srcset) {
63
+ return getSrcSet(url);
64
+ }
65
+
66
+ return getSrcSet(url);
67
+ };
68
+
69
+ $: webpSrcSet = () => {
70
+ if (srcSetToUse?.()?.match(/builder\.io/) && !noWebp) {
71
+ return srcSetToUse().replace(/\?/g, "?format=webp&");
72
+ } else {
73
+ return "";
74
+ }
75
+ };
76
+ </script>
77
+
78
+ <div class="div">
79
+ <picture>
80
+ {#if webpSrcSet()}
81
+ <source type="image/webp" srcset={webpSrcSet()} />
82
+ {/if}
83
+ <img
84
+ use:mitosis_styling={{
85
+ objectPosition: backgroundSize || "center",
86
+ objectFit: backgroundSize || "cover",
87
+ }}
88
+ loading="lazy"
89
+ alt={altText}
90
+ role={altText ? "presentation" : undefined}
91
+ class={"builder-image" + (className ? " " + className : "") + " img"}
92
+ src={image}
93
+ srcset={srcSetToUse()}
94
+ {sizes}
95
+ />
96
+ <source srcset={srcSetToUse()} />
97
+ </picture>
98
+
99
+ {#if aspectRatio && !(fitContent && builderBlock?.children?.length)}
100
+ <div
101
+ use:mitosis_styling={{
102
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
103
+ paddingTop: aspectRatio * 100 + "%",
104
+ }}
105
+ class="builder-image-sizer div-2"
106
+ />
107
+ {/if}
108
+
109
+ {#if builderBlock?.children?.length && fitContent}
110
+ <slot />
111
+ {/if}
112
+
113
+ {#if !fitContent}
114
+ <div class="div-3">
115
+ <slot />
116
+ </div>
117
+ {/if}
118
+ </div>
119
+
120
+ <style>
121
+ .div {
122
+ position: relative;
123
+ }
124
+ .img {
125
+ opacity: 1;
126
+ transition: opacity 0.2s ease-in-out;
127
+ position: absolute;
128
+ height: 100%;
129
+ width: 100%;
130
+ top: 0px;
131
+ left: 0px;
132
+ }
133
+ .div-2 {
134
+ width: 100%;
135
+ pointer-events: none;
136
+ font-size: 0;
137
+ }
138
+ .div-3 {
139
+ display: flex;
140
+ flex-direction: column;
141
+ align-items: stretch;
142
+ position: absolute;
143
+ top: 0;
144
+ left: 0;
145
+ width: 100%;
146
+ height: 100%;
147
+ }
148
+ </style>
@@ -0,0 +1,119 @@
1
+ <script context="module"></script>
2
+
3
+ <script>import { getSrcSet } from "./image.helpers.js";
4
+ export let image;
5
+ export let src;
6
+ export let srcset;
7
+ export let noWebp;
8
+ export let altText;
9
+ export let backgroundSize;
10
+ export let className;
11
+ export let sizes;
12
+ export let aspectRatio;
13
+ export let fitContent;
14
+ export let builderBlock;
15
+ function mitosis_styling(node, vars) {
16
+ Object.entries(vars).forEach(([p, v]) => {
17
+ node.style[p] = v;
18
+ });
19
+ }
20
+ $: srcSetToUse = () => {
21
+ const imageToUse = image || src;
22
+ const url = imageToUse;
23
+ if (!url || // We can auto add srcset for cdn.builder.io and shopify
24
+ // images, otherwise you can supply this prop manually
25
+ !(url.match(/builder\.io/) || url.match(/cdn\.shopify\.com/))) {
26
+ return srcset;
27
+ }
28
+ if (srcset && image?.includes("builder.io/api/v1/image")) {
29
+ if (!srcset.includes(image.split("?")[0])) {
30
+ console.debug("Removed given srcset");
31
+ return getSrcSet(url);
32
+ }
33
+ }
34
+ else if (image && !srcset) {
35
+ return getSrcSet(url);
36
+ }
37
+ return getSrcSet(url);
38
+ };
39
+ $: webpSrcSet = () => {
40
+ if (srcSetToUse?.()?.match(/builder\.io/) && !noWebp) {
41
+ return srcSetToUse().replace(/\?/g, "?format=webp&");
42
+ }
43
+ else {
44
+ return "";
45
+ }
46
+ };
47
+ </script>
48
+
49
+ <div class="div">
50
+ <picture>
51
+ {#if webpSrcSet()}
52
+ <source type="image/webp" srcset={webpSrcSet()} />
53
+ {/if}
54
+ <img
55
+ use:mitosis_styling={{
56
+ objectPosition: backgroundSize || "center",
57
+ objectFit: backgroundSize || "cover",
58
+ }}
59
+ loading="lazy"
60
+ alt={altText}
61
+ role={altText ? "presentation" : undefined}
62
+ class={"builder-image" + (className ? " " + className : "") + " img"}
63
+ src={image}
64
+ srcset={srcSetToUse()}
65
+ {sizes}
66
+ />
67
+ <source srcset={srcSetToUse()} />
68
+ </picture>
69
+
70
+ {#if aspectRatio && !(fitContent && builderBlock?.children?.length)}
71
+ <div
72
+ use:mitosis_styling={{
73
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
74
+ paddingTop: aspectRatio * 100 + "%",
75
+ }}
76
+ class="builder-image-sizer div-2"
77
+ />
78
+ {/if}
79
+
80
+ {#if builderBlock?.children?.length && fitContent}
81
+ <slot />
82
+ {/if}
83
+
84
+ {#if !fitContent}
85
+ <div class="div-3">
86
+ <slot />
87
+ </div>
88
+ {/if}
89
+ </div>
90
+
91
+ <style>
92
+ .div {
93
+ position: relative;
94
+ }
95
+ .img {
96
+ opacity: 1;
97
+ transition: opacity 0.2s ease-in-out;
98
+ position: absolute;
99
+ height: 100%;
100
+ width: 100%;
101
+ top: 0px;
102
+ left: 0px;
103
+ }
104
+ .div-2 {
105
+ width: 100%;
106
+ pointer-events: none;
107
+ font-size: 0;
108
+ }
109
+ .div-3 {
110
+ display: flex;
111
+ flex-direction: column;
112
+ align-items: stretch;
113
+ position: absolute;
114
+ top: 0;
115
+ left: 0;
116
+ width: 100%;
117
+ height: 100%;
118
+ }
119
+ </style>
@@ -0,0 +1,48 @@
1
+ /// <reference types="react" />
2
+ import { SvelteComponentTyped } from "svelte";
3
+ import type { BuilderBlock } from "../../types/builder-block.js";
4
+ export interface ImageProps {
5
+ className?: string;
6
+ image: string;
7
+ sizes?: string;
8
+ lazy?: boolean;
9
+ height?: number;
10
+ width?: number;
11
+ altText?: string;
12
+ backgroundSize?: string;
13
+ backgroundPosition?: string;
14
+ srcset?: string;
15
+ aspectRatio?: number;
16
+ children?: JSX.Element;
17
+ fitContent?: boolean;
18
+ builderBlock?: BuilderBlock;
19
+ noWebp?: boolean;
20
+ src?: string;
21
+ }
22
+ declare const __propDef: {
23
+ props: {
24
+ image: ImageProps["image"];
25
+ src: ImageProps["src"];
26
+ srcset: ImageProps["srcset"];
27
+ noWebp: ImageProps["noWebp"];
28
+ altText: ImageProps["altText"];
29
+ backgroundSize: ImageProps["backgroundSize"];
30
+ className: ImageProps["className"];
31
+ sizes: ImageProps["sizes"];
32
+ aspectRatio: ImageProps["aspectRatio"];
33
+ fitContent: ImageProps["fitContent"];
34
+ builderBlock: ImageProps["builderBlock"];
35
+ };
36
+ events: {
37
+ [evt: string]: CustomEvent<any>;
38
+ };
39
+ slots: {
40
+ default: {};
41
+ };
42
+ };
43
+ export declare type ImageProps = typeof __propDef.props;
44
+ export declare type ImageEvents = typeof __propDef.events;
45
+ export declare type ImageSlots = typeof __propDef.slots;
46
+ export default class Image extends SvelteComponentTyped<ImageProps, ImageEvents, ImageSlots> {
47
+ }
48
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;
@@ -0,0 +1,18 @@
1
+ export const componentInfo = {
2
+ // friendlyName?
3
+ name: 'Raw:Img',
4
+ hideFromInsertMenu: true,
5
+ builtIn: true,
6
+ image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4',
7
+ inputs: [
8
+ {
9
+ name: 'image',
10
+ bubble: true,
11
+ type: 'file',
12
+ allowedFileTypes: ['jpeg', 'jpg', 'png', 'svg'],
13
+ required: true,
14
+ },
15
+ ],
16
+ noWrap: true,
17
+ static: true,
18
+ };
File without changes
@@ -0,0 +1,48 @@
1
+ <script context="module" lang="ts">
2
+ export interface ImgProps {
3
+ attributes?: any;
4
+ imgSrc?: string; // TODO(misko): I think this is unused
5
+
6
+ image?: string;
7
+ altText?: string;
8
+ backgroundSize?: "cover" | "contain";
9
+ backgroundPosition?:
10
+ | "center"
11
+ | "top"
12
+ | "left"
13
+ | "right"
14
+ | "bottom"
15
+ | "top left"
16
+ | "top right"
17
+ | "bottom left"
18
+ | "bottom right";
19
+ }
20
+ </script>
21
+
22
+ <script lang="ts">
23
+ import { isEditing } from "../../functions/is-editing.js";
24
+
25
+ export let backgroundSize: ImgProps["backgroundSize"];
26
+ export let backgroundPosition: ImgProps["backgroundPosition"];
27
+ export let imgSrc: ImgProps["imgSrc"];
28
+ export let altText: ImgProps["altText"];
29
+ export let image: ImgProps["image"];
30
+ export let attributes: ImgProps["attributes"];
31
+
32
+ function mitosis_styling(node, vars) {
33
+ Object.entries(vars).forEach(([p, v]) => {
34
+ node.style[p] = v;
35
+ });
36
+ }
37
+ </script>
38
+
39
+ <img
40
+ {...attributes}
41
+ use:mitosis_styling={{
42
+ objectFit: backgroundSize || "cover",
43
+ objectPosition: backgroundPosition || "center",
44
+ }}
45
+ key={(isEditing() && imgSrc) || "default-key"}
46
+ alt={altText}
47
+ src={imgSrc || image}
48
+ />
@@ -0,0 +1,26 @@
1
+ <script context="module"></script>
2
+
3
+ <script>import { isEditing } from "../../functions/is-editing.js";
4
+ export let backgroundSize;
5
+ export let backgroundPosition;
6
+ export let imgSrc;
7
+ export let altText;
8
+ export let image;
9
+ export let attributes;
10
+ function mitosis_styling(node, vars) {
11
+ Object.entries(vars).forEach(([p, v]) => {
12
+ node.style[p] = v;
13
+ });
14
+ }
15
+ </script>
16
+
17
+ <img
18
+ {...attributes}
19
+ use:mitosis_styling={{
20
+ objectFit: backgroundSize || "cover",
21
+ objectPosition: backgroundPosition || "center",
22
+ }}
23
+ key={(isEditing() && imgSrc) || "default-key"}
24
+ alt={altText}
25
+ src={imgSrc || image}
26
+ />
@@ -0,0 +1,29 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ export interface ImgProps {
3
+ attributes?: any;
4
+ imgSrc?: string;
5
+ image?: string;
6
+ altText?: string;
7
+ backgroundSize?: "cover" | "contain";
8
+ backgroundPosition?: "center" | "top" | "left" | "right" | "bottom" | "top left" | "top right" | "bottom left" | "bottom right";
9
+ }
10
+ declare const __propDef: {
11
+ props: {
12
+ backgroundSize: ImgProps["backgroundSize"];
13
+ backgroundPosition: ImgProps["backgroundPosition"];
14
+ imgSrc: ImgProps["imgSrc"];
15
+ altText: ImgProps["altText"];
16
+ image: ImgProps["image"];
17
+ attributes: ImgProps["attributes"];
18
+ };
19
+ events: {
20
+ [evt: string]: CustomEvent<any>;
21
+ };
22
+ slots: {};
23
+ };
24
+ export declare type ImgProps = typeof __propDef.props;
25
+ export declare type ImgEvents = typeof __propDef.events;
26
+ export declare type ImgSlots = typeof __propDef.slots;
27
+ export default class Img extends SvelteComponentTyped<ImgProps, ImgEvents, ImgSlots> {
28
+ }
29
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;
@@ -0,0 +1,72 @@
1
+ export const componentInfo = {
2
+ name: 'Form:Input',
3
+ builtIn: true,
4
+ image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca',
5
+ inputs: [
6
+ {
7
+ name: 'type',
8
+ type: 'text',
9
+ enum: [
10
+ 'text',
11
+ 'number',
12
+ 'email',
13
+ 'url',
14
+ 'checkbox',
15
+ 'radio',
16
+ 'range',
17
+ 'date',
18
+ 'datetime-local',
19
+ 'search',
20
+ 'tel',
21
+ 'time',
22
+ 'file',
23
+ 'month',
24
+ 'week',
25
+ 'password',
26
+ 'color',
27
+ 'hidden',
28
+ ],
29
+ defaultValue: 'text',
30
+ },
31
+ {
32
+ name: 'name',
33
+ type: 'string',
34
+ required: true,
35
+ helperText: 'Every input in a form needs a unique name describing what it takes, e.g. "email"',
36
+ },
37
+ {
38
+ name: 'placeholder',
39
+ type: 'string',
40
+ defaultValue: 'Hello there',
41
+ helperText: 'Text to display when there is no value',
42
+ },
43
+ // TODO: handle value vs default value automatically like ng-model
44
+ {
45
+ name: 'defaultValue',
46
+ type: 'string',
47
+ },
48
+ {
49
+ name: 'value',
50
+ type: 'string',
51
+ advanced: true,
52
+ },
53
+ {
54
+ name: 'required',
55
+ type: 'boolean',
56
+ helperText: 'Is this input required to be filled out to submit a form',
57
+ defaultValue: false,
58
+ },
59
+ ],
60
+ noWrap: true,
61
+ static: true,
62
+ defaultStyles: {
63
+ paddingTop: '10px',
64
+ paddingBottom: '10px',
65
+ paddingLeft: '10px',
66
+ paddingRight: '10px',
67
+ borderRadius: '3px',
68
+ borderWidth: '1px',
69
+ borderStyle: 'solid',
70
+ borderColor: '#ccc',
71
+ },
72
+ };
File without changes
@@ -0,0 +1,34 @@
1
+ <script context="module" lang="ts">
2
+ export interface FormInputProps {
3
+ type?: string;
4
+ attributes?: any;
5
+ name?: string;
6
+ value?: string;
7
+ placeholder?: string;
8
+ defaultValue?: string;
9
+ required?: boolean;
10
+ }
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ import { isEditing } from "../../functions/is-editing.js";
15
+
16
+ export let attributes: FormInputProps["attributes"];
17
+ export let defaultValue: FormInputProps["defaultValue"];
18
+ export let placeholder: FormInputProps["placeholder"];
19
+ export let type: FormInputProps["type"];
20
+ export let name: FormInputProps["name"];
21
+ export let value: FormInputProps["value"];
22
+ export let required: FormInputProps["required"];
23
+ </script>
24
+
25
+ <input
26
+ {...attributes}
27
+ key={isEditing() && defaultValue ? defaultValue : "default-key"}
28
+ {placeholder}
29
+ {type}
30
+ {name}
31
+ {value}
32
+ {defaultValue}
33
+ {required}
34
+ />
@@ -0,0 +1,22 @@
1
+ <script context="module"></script>
2
+
3
+ <script>import { isEditing } from "../../functions/is-editing.js";
4
+ export let attributes;
5
+ export let defaultValue;
6
+ export let placeholder;
7
+ export let type;
8
+ export let name;
9
+ export let value;
10
+ export let required;
11
+ </script>
12
+
13
+ <input
14
+ {...attributes}
15
+ key={isEditing() && defaultValue ? defaultValue : "default-key"}
16
+ {placeholder}
17
+ {type}
18
+ {name}
19
+ {value}
20
+ {defaultValue}
21
+ {required}
22
+ />
@@ -0,0 +1,31 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ export interface FormInputProps {
3
+ type?: string;
4
+ attributes?: any;
5
+ name?: string;
6
+ value?: string;
7
+ placeholder?: string;
8
+ defaultValue?: string;
9
+ required?: boolean;
10
+ }
11
+ declare const __propDef: {
12
+ props: {
13
+ attributes: FormInputProps["attributes"];
14
+ defaultValue: FormInputProps["defaultValue"];
15
+ placeholder: FormInputProps["placeholder"];
16
+ type: FormInputProps["type"];
17
+ name: FormInputProps["name"];
18
+ value: FormInputProps["value"];
19
+ required: FormInputProps["required"];
20
+ };
21
+ events: {
22
+ [evt: string]: CustomEvent<any>;
23
+ };
24
+ slots: {};
25
+ };
26
+ export declare type InputProps = typeof __propDef.props;
27
+ export declare type InputEvents = typeof __propDef.events;
28
+ export declare type InputSlots = typeof __propDef.slots;
29
+ export default class Input extends SvelteComponentTyped<InputProps, InputEvents, InputSlots> {
30
+ }
31
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;
@@ -0,0 +1,13 @@
1
+ export const componentInfo = {
2
+ name: 'Builder:RawText',
3
+ hideFromInsertMenu: true,
4
+ builtIn: true,
5
+ inputs: [
6
+ {
7
+ name: 'text',
8
+ bubble: true,
9
+ type: 'longText',
10
+ required: true,
11
+ },
12
+ ],
13
+ };
File without changes
@@ -0,0 +1,15 @@
1
+ <script context="module" lang="ts">
2
+ export interface RawTextProps {
3
+ attributes?: any;
4
+ text?: string; // builderBlock?: any;
5
+ }
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ export let attributes: RawTextProps["attributes"];
10
+ export let text: RawTextProps["text"];
11
+ </script>
12
+
13
+ <span class={attributes?.class || attributes?.className}
14
+ >{@html text || ""}</span
15
+ >
@@ -0,0 +1,9 @@
1
+ <script context="module"></script>
2
+
3
+ <script>export let attributes;
4
+ export let text;
5
+ </script>
6
+
7
+ <span class={attributes?.class || attributes?.className}
8
+ >{@html text || ""}</span
9
+ >
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ export interface RawTextProps {
3
+ attributes?: any;
4
+ text?: string;
5
+ }
6
+ declare const __propDef: {
7
+ props: {
8
+ attributes: RawTextProps["attributes"];
9
+ text: RawTextProps["text"];
10
+ };
11
+ events: {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export declare type RawTextProps = typeof __propDef.props;
17
+ export declare type RawTextEvents = typeof __propDef.events;
18
+ export declare type RawTextSlots = typeof __propDef.slots;
19
+ export default class RawText extends SvelteComponentTyped<RawTextProps, RawTextEvents, RawTextSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { ComponentInfo } from '../../types/components';
2
+ export declare const componentInfo: ComponentInfo;