loopwind 0.17.0 → 0.18.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 (341) hide show
  1. package/dist/sdk/index.d.ts +2 -2
  2. package/dist/sdk/index.d.ts.map +1 -1
  3. package/dist/sdk/index.js +1 -1
  4. package/dist/sdk/index.js.map +1 -1
  5. package/dist/sdk/template.d.ts +97 -0
  6. package/dist/sdk/template.d.ts.map +1 -1
  7. package/dist/sdk/template.js +217 -0
  8. package/dist/sdk/template.js.map +1 -1
  9. package/examples/code-editor-templates.ts +173 -0
  10. package/examples/nextjs-template-import.ts +58 -0
  11. package/examples/visual-builder-templates.ts +336 -0
  12. package/package.json +3 -1
  13. package/test-jsx-support.mjs +120 -0
  14. package/test-sdk-user-templates.mjs +469 -0
  15. package/website/.astro/integrations/_inox-tools_astro-when/types.d.ts +1 -0
  16. package/website/.astro/types.d.ts +1 -0
  17. package/website/DEPLOYMENT.md +142 -0
  18. package/website/OG_IMAGES.md +141 -0
  19. package/website/astro.config.mjs +9 -1
  20. package/website/dist/.gitkeep +1 -0
  21. package/website/dist/_astro/agents.Yx-L_igG.css +1 -0
  22. package/website/dist/_routes.json +30 -0
  23. package/website/dist/_worker.js/_@astrojs-ssr-adapter.mjs +1033 -0
  24. package/website/dist/_worker.js/_astro-internal_middleware.mjs +40 -0
  25. package/website/dist/_worker.js/chunks/abap_BTmsHiP5.mjs +1 -0
  26. package/website/dist/_worker.js/chunks/actionscript-3_DmBelb1E.mjs +1 -0
  27. package/website/dist/_worker.js/chunks/ada_8-E0ahCN.mjs +1 -0
  28. package/website/dist/_worker.js/chunks/andromeeda_XI-CXx50.mjs +1 -0
  29. package/website/dist/_worker.js/chunks/angular-html_DKGh3gGH.mjs +1 -0
  30. package/website/dist/_worker.js/chunks/angular-ts_-qZGsJoA.mjs +1 -0
  31. package/website/dist/_worker.js/chunks/apache_ijTUt0Ee.mjs +1 -0
  32. package/website/dist/_worker.js/chunks/apex_agu1c6Sh.mjs +1 -0
  33. package/website/dist/_worker.js/chunks/apl_Bj2f7Art.mjs +1 -0
  34. package/website/dist/_worker.js/chunks/applescript_B_vXrOh3.mjs +1 -0
  35. package/website/dist/_worker.js/chunks/ara_DCEQ2rnh.mjs +1 -0
  36. package/website/dist/_worker.js/chunks/asciidoc_CGN_EkYS.mjs +1 -0
  37. package/website/dist/_worker.js/chunks/asm_BBWZgnDp.mjs +1 -0
  38. package/website/dist/_worker.js/chunks/astro/assets-service_j52rQLzU.mjs +721 -0
  39. package/website/dist/_worker.js/chunks/astro/server_Y5_QHO8v.mjs +2401 -0
  40. package/website/dist/_worker.js/chunks/astro-designed-error-pages_BNTLO-TA.mjs +542 -0
  41. package/website/dist/_worker.js/chunks/astro_Dr_hht3h.mjs +1 -0
  42. package/website/dist/_worker.js/chunks/aurora-x_9GHG8nSq.mjs +1 -0
  43. package/website/dist/_worker.js/chunks/awk_DHRvhXot.mjs +1 -0
  44. package/website/dist/_worker.js/chunks/ayu-dark_CcvqmEHE.mjs +1 -0
  45. package/website/dist/_worker.js/chunks/ballerina_C7SdeSZb.mjs +1 -0
  46. package/website/dist/_worker.js/chunks/bat_Dv4A3u45.mjs +1 -0
  47. package/website/dist/_worker.js/chunks/beancount_BfPf9Luv.mjs +1 -0
  48. package/website/dist/_worker.js/chunks/berry_B8rfM3lL.mjs +1 -0
  49. package/website/dist/_worker.js/chunks/bibtex_TcjYgtJM.mjs +1 -0
  50. package/website/dist/_worker.js/chunks/bicep_CrlFWCdN.mjs +1 -0
  51. package/website/dist/_worker.js/chunks/blade_lanKVYID.mjs +1 -0
  52. package/website/dist/_worker.js/chunks/bsl_BhppzXMB.mjs +1 -0
  53. package/website/dist/_worker.js/chunks/c_6FBALJTK.mjs +1 -0
  54. package/website/dist/_worker.js/chunks/cadence_2txU9LVE.mjs +1 -0
  55. package/website/dist/_worker.js/chunks/cairo_BkrFAIlP.mjs +1 -0
  56. package/website/dist/_worker.js/chunks/catppuccin-frappe_CkEqIYhU.mjs +1 -0
  57. package/website/dist/_worker.js/chunks/catppuccin-latte_DG4Gx_-v.mjs +1 -0
  58. package/website/dist/_worker.js/chunks/catppuccin-macchiato_Cwi3vCXf.mjs +1 -0
  59. package/website/dist/_worker.js/chunks/catppuccin-mocha_L9_OPlFX.mjs +1 -0
  60. package/website/dist/_worker.js/chunks/clarity_BEAe4Ulu.mjs +1 -0
  61. package/website/dist/_worker.js/chunks/clojure_VnUX6p2g.mjs +1 -0
  62. package/website/dist/_worker.js/chunks/cmake_0-SGkZEj.mjs +1 -0
  63. package/website/dist/_worker.js/chunks/cobol_92M_KGaE.mjs +1 -0
  64. package/website/dist/_worker.js/chunks/codeowners_CzMwskBv.mjs +1 -0
  65. package/website/dist/_worker.js/chunks/codeql_DWJZNHv1.mjs +1 -0
  66. package/website/dist/_worker.js/chunks/coffee_CQjKU2fh.mjs +1 -0
  67. package/website/dist/_worker.js/chunks/common-lisp_BBLWDpS5.mjs +1 -0
  68. package/website/dist/_worker.js/chunks/coq_hedRFV3D.mjs +1 -0
  69. package/website/dist/_worker.js/chunks/cpp_DlS1i6Zs.mjs +1 -0
  70. package/website/dist/_worker.js/chunks/crystal_D6n65fKV.mjs +1 -0
  71. package/website/dist/_worker.js/chunks/csharp_C6FCVFzc.mjs +1 -0
  72. package/website/dist/_worker.js/chunks/css_C5uJEgmJ.mjs +1 -0
  73. package/website/dist/_worker.js/chunks/csv_CtMYuuJl.mjs +1 -0
  74. package/website/dist/_worker.js/chunks/cue_BsPexqx6.mjs +1 -0
  75. package/website/dist/_worker.js/chunks/cypher_apzf6OBi.mjs +1 -0
  76. package/website/dist/_worker.js/chunks/d_DcvIRcgm.mjs +1 -0
  77. package/website/dist/_worker.js/chunks/dark-plus_C01ONtzj.mjs +1 -0
  78. package/website/dist/_worker.js/chunks/dart_WkzM5WrV.mjs +1 -0
  79. package/website/dist/_worker.js/chunks/dax_DjXAO5V4.mjs +1 -0
  80. package/website/dist/_worker.js/chunks/desktop_C92LCxdc.mjs +1 -0
  81. package/website/dist/_worker.js/chunks/diff_CVwM_9XJ.mjs +1 -0
  82. package/website/dist/_worker.js/chunks/docker_DPzgJf6Z.mjs +1 -0
  83. package/website/dist/_worker.js/chunks/dotenv_D_vgANvA.mjs +1 -0
  84. package/website/dist/_worker.js/chunks/dracula-soft_CLnUBwFm.mjs +1 -0
  85. package/website/dist/_worker.js/chunks/dracula_lBVpb6Lb.mjs +1 -0
  86. package/website/dist/_worker.js/chunks/dream-maker_DTLbzd_J.mjs +1 -0
  87. package/website/dist/_worker.js/chunks/edge_i54JYm3_.mjs +1 -0
  88. package/website/dist/_worker.js/chunks/elixir_BJCIjTu4.mjs +1 -0
  89. package/website/dist/_worker.js/chunks/elm_BbXD39-_.mjs +1 -0
  90. package/website/dist/_worker.js/chunks/emacs-lisp_pxa5cXaN.mjs +1 -0
  91. package/website/dist/_worker.js/chunks/erb_Ccjijeee.mjs +1 -0
  92. package/website/dist/_worker.js/chunks/erlang_B2VM_hi7.mjs +1 -0
  93. package/website/dist/_worker.js/chunks/everforest-dark_BxvIPBim.mjs +1 -0
  94. package/website/dist/_worker.js/chunks/everforest-light_B7VoyaJM.mjs +1 -0
  95. package/website/dist/_worker.js/chunks/fennel_D-uo7X6c.mjs +1 -0
  96. package/website/dist/_worker.js/chunks/fish_BjePoK3m.mjs +1 -0
  97. package/website/dist/_worker.js/chunks/fluent_C8fgkzLX.mjs +1 -0
  98. package/website/dist/_worker.js/chunks/fortran-fixed-form_D1pu5zrc.mjs +1 -0
  99. package/website/dist/_worker.js/chunks/fortran-free-form_CSGOhJD6.mjs +1 -0
  100. package/website/dist/_worker.js/chunks/fsharp_B0xy-A4Y.mjs +1 -0
  101. package/website/dist/_worker.js/chunks/gdresource_CWppjlHq.mjs +1 -0
  102. package/website/dist/_worker.js/chunks/gdscript_eQCHchcS.mjs +1 -0
  103. package/website/dist/_worker.js/chunks/gdshader_C4kxepX7.mjs +1 -0
  104. package/website/dist/_worker.js/chunks/genie_ACtQLcDW.mjs +1 -0
  105. package/website/dist/_worker.js/chunks/gherkin_BFp2uKUd.mjs +1 -0
  106. package/website/dist/_worker.js/chunks/git-commit_CLg9ZwMV.mjs +1 -0
  107. package/website/dist/_worker.js/chunks/git-rebase_DG8A80Nt.mjs +1 -0
  108. package/website/dist/_worker.js/chunks/github-dark-default_BI0EP2Kv.mjs +1 -0
  109. package/website/dist/_worker.js/chunks/github-dark-dimmed_a_NIC0Xb.mjs +1 -0
  110. package/website/dist/_worker.js/chunks/github-dark-high-contrast_jZGqT7hk.mjs +1 -0
  111. package/website/dist/_worker.js/chunks/github-dark_CHCDNd2O.mjs +1 -0
  112. package/website/dist/_worker.js/chunks/github-light-default_DRbOW5RG.mjs +1 -0
  113. package/website/dist/_worker.js/chunks/github-light-high-contrast_tn_kWutM.mjs +1 -0
  114. package/website/dist/_worker.js/chunks/github-light_D9brYzot.mjs +1 -0
  115. package/website/dist/_worker.js/chunks/gleam_Dmhu1oxW.mjs +1 -0
  116. package/website/dist/_worker.js/chunks/glimmer-js_BfZbXy8A.mjs +1 -0
  117. package/website/dist/_worker.js/chunks/glimmer-ts_B9QVICrD.mjs +1 -0
  118. package/website/dist/_worker.js/chunks/glsl_DD2PPwOs.mjs +1 -0
  119. package/website/dist/_worker.js/chunks/gnuplot_D2OYChUX.mjs +1 -0
  120. package/website/dist/_worker.js/chunks/go_DYGFTe3h.mjs +1 -0
  121. package/website/dist/_worker.js/chunks/graphql_B7XsT3nH.mjs +1 -0
  122. package/website/dist/_worker.js/chunks/groovy_BO12Uwkl.mjs +1 -0
  123. package/website/dist/_worker.js/chunks/hack_CB2_ztCP.mjs +1 -0
  124. package/website/dist/_worker.js/chunks/haml_CyfDcDD3.mjs +1 -0
  125. package/website/dist/_worker.js/chunks/handlebars_CfpxpWm2.mjs +1 -0
  126. package/website/dist/_worker.js/chunks/haskell_jUeC5uN5.mjs +1 -0
  127. package/website/dist/_worker.js/chunks/haxe_B6GxP1WB.mjs +1 -0
  128. package/website/dist/_worker.js/chunks/hcl_DwoHV2oh.mjs +1 -0
  129. package/website/dist/_worker.js/chunks/hjson_DV7cJRk4.mjs +1 -0
  130. package/website/dist/_worker.js/chunks/hlsl_BlFCscPI.mjs +1 -0
  131. package/website/dist/_worker.js/chunks/houston_COBFG1Mx.mjs +1 -0
  132. package/website/dist/_worker.js/chunks/html-derivative_C9pJ337h.mjs +1 -0
  133. package/website/dist/_worker.js/chunks/html_D1OkrZS5.mjs +1 -0
  134. package/website/dist/_worker.js/chunks/http_DIGXRqvJ.mjs +1 -0
  135. package/website/dist/_worker.js/chunks/hxml_DEwh9i-c.mjs +1 -0
  136. package/website/dist/_worker.js/chunks/hy_DDoIgW1K.mjs +1 -0
  137. package/website/dist/_worker.js/chunks/imba_B00zbHo4.mjs +1 -0
  138. package/website/dist/_worker.js/chunks/index_C1UTDwYg.mjs +1861 -0
  139. package/website/dist/_worker.js/chunks/ini_D7XQA_p8.mjs +1 -0
  140. package/website/dist/_worker.js/chunks/java_B9wdFd8K.mjs +1 -0
  141. package/website/dist/_worker.js/chunks/javascript_CLsPGOON.mjs +1 -0
  142. package/website/dist/_worker.js/chunks/jinja_jarBCAN1.mjs +1 -0
  143. package/website/dist/_worker.js/chunks/jison_oGg3J708.mjs +1 -0
  144. package/website/dist/_worker.js/chunks/json5_DlZ1Kyaa.mjs +1 -0
  145. package/website/dist/_worker.js/chunks/json_DaYk_FMp.mjs +1 -0
  146. package/website/dist/_worker.js/chunks/jsonc_DlwgfSDs.mjs +1 -0
  147. package/website/dist/_worker.js/chunks/jsonl_BbCCVaZF.mjs +1 -0
  148. package/website/dist/_worker.js/chunks/jsonnet_Dt-G75xe.mjs +1 -0
  149. package/website/dist/_worker.js/chunks/jssm_BtKFTj2A.mjs +1 -0
  150. package/website/dist/_worker.js/chunks/jsx_DDx_xAZ8.mjs +1 -0
  151. package/website/dist/_worker.js/chunks/julia_CK0lv68l.mjs +1 -0
  152. package/website/dist/_worker.js/chunks/kanagawa-dragon_BldAK3Oo.mjs +1 -0
  153. package/website/dist/_worker.js/chunks/kanagawa-lotus_DVM8FX9_.mjs +1 -0
  154. package/website/dist/_worker.js/chunks/kanagawa-wave_Dpih0AKP.mjs +1 -0
  155. package/website/dist/_worker.js/chunks/kotlin_kWneB9V_.mjs +1 -0
  156. package/website/dist/_worker.js/chunks/kusto_BKVATd95.mjs +1 -0
  157. package/website/dist/_worker.js/chunks/laserwave_BqatxsVl.mjs +1 -0
  158. package/website/dist/_worker.js/chunks/latex_LVDcGBbc.mjs +1 -0
  159. package/website/dist/_worker.js/chunks/lean_W7qo-5M2.mjs +1 -0
  160. package/website/dist/_worker.js/chunks/less_DFNwJnBH.mjs +1 -0
  161. package/website/dist/_worker.js/chunks/light-plus_Dp0AoWsO.mjs +1 -0
  162. package/website/dist/_worker.js/chunks/liquid_D24qs0pc.mjs +1 -0
  163. package/website/dist/_worker.js/chunks/log_IPWMXriF.mjs +1 -0
  164. package/website/dist/_worker.js/chunks/logo_C6KaatrQ.mjs +1 -0
  165. package/website/dist/_worker.js/chunks/lua_CwnEf-T7.mjs +1 -0
  166. package/website/dist/_worker.js/chunks/luau_Br3-CXjS.mjs +1 -0
  167. package/website/dist/_worker.js/chunks/make_UBNG-kOo.mjs +1 -0
  168. package/website/dist/_worker.js/chunks/markdown_C7mhJFCm.mjs +1 -0
  169. package/website/dist/_worker.js/chunks/marko_4tchUvI7.mjs +1 -0
  170. package/website/dist/_worker.js/chunks/material-theme-darker_SKtaNEPn.mjs +1 -0
  171. package/website/dist/_worker.js/chunks/material-theme-lighter_zOX_DZCH.mjs +1 -0
  172. package/website/dist/_worker.js/chunks/material-theme-ocean_BN9WbhdC.mjs +1 -0
  173. package/website/dist/_worker.js/chunks/material-theme-palenight_DT_covjH.mjs +1 -0
  174. package/website/dist/_worker.js/chunks/material-theme_6RpeM3kc.mjs +1 -0
  175. package/website/dist/_worker.js/chunks/matlab_DCOXsPKR.mjs +1 -0
  176. package/website/dist/_worker.js/chunks/mdc_B9gb2UFP.mjs +1 -0
  177. package/website/dist/_worker.js/chunks/mdx_DGU7Nu9u.mjs +1 -0
  178. package/website/dist/_worker.js/chunks/mermaid_B69URzsZ.mjs +1 -0
  179. package/website/dist/_worker.js/chunks/min-dark_BgxifOMI.mjs +1 -0
  180. package/website/dist/_worker.js/chunks/min-light_BrPjXxUp.mjs +1 -0
  181. package/website/dist/_worker.js/chunks/mipsasm_9U-4_t7k.mjs +1 -0
  182. package/website/dist/_worker.js/chunks/mojo_B0wt7ug3.mjs +1 -0
  183. package/website/dist/_worker.js/chunks/monokai_B6Pxpoyi.mjs +1 -0
  184. package/website/dist/_worker.js/chunks/move_1eid4CyR.mjs +1 -0
  185. package/website/dist/_worker.js/chunks/narrat_Ds6-p5JZ.mjs +1 -0
  186. package/website/dist/_worker.js/chunks/nextflow_v2N1Qlqa.mjs +1 -0
  187. package/website/dist/_worker.js/chunks/nginx_Bp9Ab2NH.mjs +1 -0
  188. package/website/dist/_worker.js/chunks/night-owl_CdwOw_sc.mjs +1 -0
  189. package/website/dist/_worker.js/chunks/nim_BXGDUe53.mjs +1 -0
  190. package/website/dist/_worker.js/chunks/nix_CUig1nJH.mjs +1 -0
  191. package/website/dist/_worker.js/chunks/noop-middleware_DlWGj5t5.mjs +10 -0
  192. package/website/dist/_worker.js/chunks/nord_SPoG1iae.mjs +1 -0
  193. package/website/dist/_worker.js/chunks/nushell_DJw1Lca8.mjs +1 -0
  194. package/website/dist/_worker.js/chunks/objective-c_Bktzl_CO.mjs +1 -0
  195. package/website/dist/_worker.js/chunks/objective-cpp_CP4DWdDp.mjs +1 -0
  196. package/website/dist/_worker.js/chunks/ocaml_CeEAs7bZ.mjs +1 -0
  197. package/website/dist/_worker.js/chunks/one-dark-pro_-hIwCNMi.mjs +1 -0
  198. package/website/dist/_worker.js/chunks/one-light_DSmYvJ05.mjs +1 -0
  199. package/website/dist/_worker.js/chunks/pascal_C-S_Ms_o.mjs +1 -0
  200. package/website/dist/_worker.js/chunks/perl_CKamvo15.mjs +1 -0
  201. package/website/dist/_worker.js/chunks/php_BlmcX_F3.mjs +1 -0
  202. package/website/dist/_worker.js/chunks/plastic_Ryt8tVoA.mjs +1 -0
  203. package/website/dist/_worker.js/chunks/plsql_Cb3v7cBj.mjs +1 -0
  204. package/website/dist/_worker.js/chunks/po_DZbdNRlo.mjs +1 -0
  205. package/website/dist/_worker.js/chunks/poimandres_bYmE3_5d.mjs +1 -0
  206. package/website/dist/_worker.js/chunks/polar_pJkMGwoW.mjs +1 -0
  207. package/website/dist/_worker.js/chunks/postcss_BAXSOKgk.mjs +1 -0
  208. package/website/dist/_worker.js/chunks/powerquery_oITMGN4x.mjs +1 -0
  209. package/website/dist/_worker.js/chunks/powershell_6306-xIF.mjs +1 -0
  210. package/website/dist/_worker.js/chunks/prisma_DSDxnZGz.mjs +1 -0
  211. package/website/dist/_worker.js/chunks/prolog_CxG7tjZR.mjs +1 -0
  212. package/website/dist/_worker.js/chunks/proto_CS9ByXm1.mjs +1 -0
  213. package/website/dist/_worker.js/chunks/pug_BMtLJo6U.mjs +1 -0
  214. package/website/dist/_worker.js/chunks/puppet_BfeeSzee.mjs +1 -0
  215. package/website/dist/_worker.js/chunks/purescript_BFfueNaH.mjs +1 -0
  216. package/website/dist/_worker.js/chunks/python_Cc4Faapv.mjs +1 -0
  217. package/website/dist/_worker.js/chunks/qml_C1CTJTK8.mjs +1 -0
  218. package/website/dist/_worker.js/chunks/qmldir_nG1KaqKR.mjs +1 -0
  219. package/website/dist/_worker.js/chunks/qss_Cncxk263.mjs +1 -0
  220. package/website/dist/_worker.js/chunks/r_ChR54Ihi.mjs +1 -0
  221. package/website/dist/_worker.js/chunks/racket_BDrhptDs.mjs +1 -0
  222. package/website/dist/_worker.js/chunks/raku_07OUHa0P.mjs +1 -0
  223. package/website/dist/_worker.js/chunks/razor_DIP3INLa.mjs +1 -0
  224. package/website/dist/_worker.js/chunks/red_DOPXfj-6.mjs +1 -0
  225. package/website/dist/_worker.js/chunks/reg_B64SwEDj.mjs +1 -0
  226. package/website/dist/_worker.js/chunks/regexp_ButFGoB5.mjs +1 -0
  227. package/website/dist/_worker.js/chunks/rel_BWJAWqZD.mjs +1 -0
  228. package/website/dist/_worker.js/chunks/riscv_79gXlbsF.mjs +1 -0
  229. package/website/dist/_worker.js/chunks/rose-pine-dawn_DHIjVGd3.mjs +1 -0
  230. package/website/dist/_worker.js/chunks/rose-pine-moon_t86aEbs0.mjs +1 -0
  231. package/website/dist/_worker.js/chunks/rose-pine_BHgrcDCs.mjs +1 -0
  232. package/website/dist/_worker.js/chunks/rst_D3F4Fcpj.mjs +1 -0
  233. package/website/dist/_worker.js/chunks/ruby_Cs7vM9iv.mjs +1 -0
  234. package/website/dist/_worker.js/chunks/rust_DpyRVatH.mjs +1 -0
  235. package/website/dist/_worker.js/chunks/sas_DW45xZXN.mjs +1 -0
  236. package/website/dist/_worker.js/chunks/sass_C6SiMwN_.mjs +1 -0
  237. package/website/dist/_worker.js/chunks/scala_DlZOjNZk.mjs +1 -0
  238. package/website/dist/_worker.js/chunks/scheme_D2ezSJXu.mjs +1 -0
  239. package/website/dist/_worker.js/chunks/scss_DG5Spjqu.mjs +1 -0
  240. package/website/dist/_worker.js/chunks/sdbl_ZCYaj4VN.mjs +1 -0
  241. package/website/dist/_worker.js/chunks/shaderlab_CAcRkg1_.mjs +1 -0
  242. package/website/dist/_worker.js/chunks/shellscript_BWwhkDVh.mjs +1 -0
  243. package/website/dist/_worker.js/chunks/shellsession_BfEA3juK.mjs +1 -0
  244. package/website/dist/_worker.js/chunks/slack-dark_CL3lSpCc.mjs +1 -0
  245. package/website/dist/_worker.js/chunks/slack-ochin_DdZKOQVh.mjs +1 -0
  246. package/website/dist/_worker.js/chunks/smalltalk_DgilzSui.mjs +1 -0
  247. package/website/dist/_worker.js/chunks/snazzy-light_eJU08Pz_.mjs +1 -0
  248. package/website/dist/_worker.js/chunks/solarized-dark_Dg_YQywx.mjs +1 -0
  249. package/website/dist/_worker.js/chunks/solarized-light_BnIsrA6p.mjs +1 -0
  250. package/website/dist/_worker.js/chunks/solidity_DkseH8pQ.mjs +1 -0
  251. package/website/dist/_worker.js/chunks/soy_DU7bOYoG.mjs +1 -0
  252. package/website/dist/_worker.js/chunks/sparql_BuI1DBDH.mjs +1 -0
  253. package/website/dist/_worker.js/chunks/splunk_B8Ha9Pkg.mjs +1 -0
  254. package/website/dist/_worker.js/chunks/sql_BniHwea5.mjs +1 -0
  255. package/website/dist/_worker.js/chunks/ssh-config_CkE1GuVe.mjs +1 -0
  256. package/website/dist/_worker.js/chunks/stata_Dtqpbd_l.mjs +1 -0
  257. package/website/dist/_worker.js/chunks/stylus_CXTtglzO.mjs +1 -0
  258. package/website/dist/_worker.js/chunks/svelte_BjWYcUCN.mjs +1 -0
  259. package/website/dist/_worker.js/chunks/swift_BzHql_rM.mjs +1 -0
  260. package/website/dist/_worker.js/chunks/synthwave-84_DLRNhxNA.mjs +1 -0
  261. package/website/dist/_worker.js/chunks/system-verilog_ChyInPph.mjs +1 -0
  262. package/website/dist/_worker.js/chunks/systemd_Bi9Qa2qD.mjs +1 -0
  263. package/website/dist/_worker.js/chunks/talonscript_B3sH_Y-V.mjs +1 -0
  264. package/website/dist/_worker.js/chunks/tasl_BJ5yipRs.mjs +1 -0
  265. package/website/dist/_worker.js/chunks/tcl_CoJQjNoP.mjs +1 -0
  266. package/website/dist/_worker.js/chunks/templ_CrU7Ffil.mjs +1 -0
  267. package/website/dist/_worker.js/chunks/terraform_DT9JSFpC.mjs +1 -0
  268. package/website/dist/_worker.js/chunks/tex_5PKu2yA0.mjs +1 -0
  269. package/website/dist/_worker.js/chunks/tokyo-night_Buo8OK7-.mjs +1 -0
  270. package/website/dist/_worker.js/chunks/toml_CPuXX3oc.mjs +1 -0
  271. package/website/dist/_worker.js/chunks/ts-tags_D0M_1VSH.mjs +1 -0
  272. package/website/dist/_worker.js/chunks/tsv_CuivVNot.mjs +1 -0
  273. package/website/dist/_worker.js/chunks/tsx_MkuGr8MY.mjs +1 -0
  274. package/website/dist/_worker.js/chunks/turtle_BqgEPK7f.mjs +1 -0
  275. package/website/dist/_worker.js/chunks/twig_r1G9rpYJ.mjs +1 -0
  276. package/website/dist/_worker.js/chunks/typescript_Au5buqzM.mjs +1 -0
  277. package/website/dist/_worker.js/chunks/typespec_47rhBK_z.mjs +1 -0
  278. package/website/dist/_worker.js/chunks/typst_BAtuQLh-.mjs +1 -0
  279. package/website/dist/_worker.js/chunks/v_BIvWImHg.mjs +1 -0
  280. package/website/dist/_worker.js/chunks/vala_DYEacj30.mjs +1 -0
  281. package/website/dist/_worker.js/chunks/vb_CikQuqGJ.mjs +1 -0
  282. package/website/dist/_worker.js/chunks/verilog_BQRENwI-.mjs +1 -0
  283. package/website/dist/_worker.js/chunks/vesper_DA0kvTmj.mjs +1 -0
  284. package/website/dist/_worker.js/chunks/vhdl_DHscJIyg.mjs +1 -0
  285. package/website/dist/_worker.js/chunks/viml_F2pvMwvG.mjs +1 -0
  286. package/website/dist/_worker.js/chunks/vitesse-black_D9tjNzd0.mjs +1 -0
  287. package/website/dist/_worker.js/chunks/vitesse-dark_Bnm5d0hd.mjs +1 -0
  288. package/website/dist/_worker.js/chunks/vitesse-light_CHwbyjNR.mjs +1 -0
  289. package/website/dist/_worker.js/chunks/vue-html_DyYtbbMK.mjs +1 -0
  290. package/website/dist/_worker.js/chunks/vue_DofN6juy.mjs +1 -0
  291. package/website/dist/_worker.js/chunks/vyper_CiR0m-OV.mjs +1 -0
  292. package/website/dist/_worker.js/chunks/wasm_CwIGgRGf.mjs +1 -0
  293. package/website/dist/_worker.js/chunks/wasm_jKWhg0J0.mjs +1 -0
  294. package/website/dist/_worker.js/chunks/wenyan_DKvVZKXW.mjs +1 -0
  295. package/website/dist/_worker.js/chunks/wgsl_BOWZY7yw.mjs +1 -0
  296. package/website/dist/_worker.js/chunks/wikitext_CXDhhHPy.mjs +1 -0
  297. package/website/dist/_worker.js/chunks/wolfram_ChkmGnW0.mjs +1 -0
  298. package/website/dist/_worker.js/chunks/xml_DXH3hHIu.mjs +1 -0
  299. package/website/dist/_worker.js/chunks/xsl_DuP2mFjg.mjs +1 -0
  300. package/website/dist/_worker.js/chunks/yaml_IGiEkTge.mjs +1 -0
  301. package/website/dist/_worker.js/chunks/zenscript_59iXGyNw.mjs +1 -0
  302. package/website/dist/_worker.js/chunks/zig_DKzb0zdT.mjs +1 -0
  303. package/website/dist/_worker.js/index.js +53 -0
  304. package/website/dist/_worker.js/manifest_BAAoOzaU.mjs +98 -0
  305. package/website/dist/_worker.js/pages/_image.astro.mjs +24 -0
  306. package/website/dist/_worker.js/pages/agents.astro.mjs +1 -0
  307. package/website/dist/_worker.js/pages/animation.astro.mjs +1 -0
  308. package/website/dist/_worker.js/pages/api/raw-markdown/_---path_.astro.mjs +44 -0
  309. package/website/dist/_worker.js/pages/config.astro.mjs +1 -0
  310. package/website/dist/_worker.js/pages/fonts.astro.mjs +1 -0
  311. package/website/dist/_worker.js/pages/getting-started.astro.mjs +1 -0
  312. package/website/dist/_worker.js/pages/helpers.astro.mjs +1 -0
  313. package/website/dist/_worker.js/pages/images.astro.mjs +1 -0
  314. package/website/dist/_worker.js/pages/index.astro.mjs +1 -0
  315. package/website/dist/_worker.js/pages/llm.txt.astro.mjs +1 -0
  316. package/website/dist/_worker.js/pages/preview.astro.mjs +1 -0
  317. package/website/dist/_worker.js/pages/sdk.astro.mjs +1 -0
  318. package/website/dist/_worker.js/pages/sitemap.xml.astro.mjs +1 -0
  319. package/website/dist/_worker.js/pages/styling.astro.mjs +1 -0
  320. package/website/dist/_worker.js/pages/templates.astro.mjs +1 -0
  321. package/website/dist/_worker.js/pages/video.astro.mjs +1 -0
  322. package/website/dist/_worker.js/renderers.mjs +57 -0
  323. package/website/dist/agents/index.html +3 -2
  324. package/website/dist/animation/index.html +402 -128
  325. package/website/dist/config/index.html +184 -0
  326. package/website/dist/fonts/index.html +56 -52
  327. package/website/dist/getting-started/index.html +107 -0
  328. package/website/dist/helpers/index.html +8 -8
  329. package/website/dist/images/index.html +50 -23
  330. package/website/dist/index.html +114 -148
  331. package/website/dist/llm.txt +751 -1055
  332. package/website/dist/preview/index.html +111 -0
  333. package/website/dist/robots.txt +35 -0
  334. package/website/dist/sdk/index.html +390 -52
  335. package/website/dist/sitemap.xml +76 -0
  336. package/website/dist/styling/index.html +10 -7
  337. package/website/dist/templates/index.html +11 -59
  338. package/website/dist/video/index.html +106 -537
  339. package/website/package-lock.json +1077 -17
  340. package/website/templates/og-image.tsx +61 -0
  341. package/website/dist/_astro/agents.I1-fN38o.css +0 -1
@@ -0,0 +1,336 @@
1
+ /**
2
+ * Example: Visual Builder - Templates from JSON schemas
3
+ *
4
+ * Use case: Building a drag-and-drop template builder where users
5
+ * construct templates visually without writing code.
6
+ *
7
+ * Safe for user-generated content - no code execution!
8
+ */
9
+
10
+ import {
11
+ defineTemplateFromSchema,
12
+ renderImage,
13
+ renderVideo,
14
+ type TemplateSchema,
15
+ } from 'loopwind/sdk';
16
+ import fs from 'fs/promises';
17
+
18
+ // Example 1: Simple card template
19
+ const cardSchema: TemplateSchema = {
20
+ name: 'simple-card',
21
+ size: { width: 1200, height: 630 },
22
+ config: {
23
+ colors: {
24
+ primary: '#3b82f6',
25
+ background: '#ffffff',
26
+ text: '#1f2937',
27
+ },
28
+ },
29
+ elements: [
30
+ {
31
+ type: 'div',
32
+ className: 'flex flex-col w-full h-full bg-background p-12 justify-center',
33
+ children: [
34
+ {
35
+ type: 'h1',
36
+ className: 'text-6xl font-bold text-primary mb-4',
37
+ content: '{{title}}',
38
+ },
39
+ {
40
+ type: 'p',
41
+ className: 'text-2xl text-text',
42
+ content: '{{description}}',
43
+ },
44
+ ],
45
+ },
46
+ ],
47
+ };
48
+
49
+ async function renderSimpleCard() {
50
+ const template = defineTemplateFromSchema(cardSchema);
51
+
52
+ const png = await renderImage(template, {
53
+ title: 'Visual Builder',
54
+ description: 'No code required!',
55
+ });
56
+
57
+ await fs.writeFile('simple-card.png', png);
58
+ console.log('✓ Rendered simple-card.png');
59
+ }
60
+
61
+ // Example 2: Complex layout with multiple sections
62
+ const complexSchema: TemplateSchema = {
63
+ name: 'complex-layout',
64
+ size: { width: 1200, height: 630 },
65
+ config: {
66
+ colors: {
67
+ primary: '#8b5cf6',
68
+ secondary: '#ec4899',
69
+ background: '#fafafa',
70
+ text: '#0f172a',
71
+ },
72
+ },
73
+ elements: [
74
+ {
75
+ type: 'div',
76
+ className: 'flex w-full h-full bg-background',
77
+ children: [
78
+ // Left sidebar
79
+ {
80
+ type: 'div',
81
+ className: 'flex flex-col w-1/3 bg-primary p-8 justify-between',
82
+ children: [
83
+ {
84
+ type: 'h2',
85
+ className: 'text-3xl font-bold text-white',
86
+ content: '{{category}}',
87
+ },
88
+ {
89
+ type: 'p',
90
+ className: 'text-lg text-white/80',
91
+ content: '{{subtitle}}',
92
+ },
93
+ ],
94
+ },
95
+ // Right content area
96
+ {
97
+ type: 'div',
98
+ className: 'flex flex-col flex-1 p-12 justify-center',
99
+ children: [
100
+ {
101
+ type: 'h1',
102
+ className: 'text-6xl font-bold text-text mb-6',
103
+ content: '{{title}}',
104
+ },
105
+ {
106
+ type: 'div',
107
+ className: 'w-24 h-2 bg-secondary mb-6',
108
+ },
109
+ {
110
+ type: 'p',
111
+ className: 'text-2xl text-text/70',
112
+ content: '{{description}}',
113
+ },
114
+ ],
115
+ },
116
+ ],
117
+ },
118
+ ],
119
+ };
120
+
121
+ async function renderComplexLayout() {
122
+ const template = defineTemplateFromSchema(complexSchema);
123
+
124
+ const png = await renderImage(template, {
125
+ category: 'TECHNOLOGY',
126
+ subtitle: 'Innovation Series',
127
+ title: 'The Future of AI',
128
+ description: 'Exploring the next generation of artificial intelligence',
129
+ });
130
+
131
+ await fs.writeFile('complex-layout.png', png);
132
+ console.log('✓ Rendered complex-layout.png');
133
+ }
134
+
135
+ // Example 3: Template with dynamic branding
136
+ const brandedSchema: TemplateSchema = {
137
+ name: 'branded-template',
138
+ size: { width: 1200, height: 630 },
139
+ elements: [
140
+ {
141
+ type: 'div',
142
+ className: 'flex flex-col w-full h-full bg-brand-bg p-12 justify-between',
143
+ children: [
144
+ {
145
+ type: 'div',
146
+ className: 'flex items-center gap-4',
147
+ children: [
148
+ {
149
+ type: 'div',
150
+ className: 'w-16 h-16 rounded-full bg-brand-primary',
151
+ },
152
+ {
153
+ type: 'span',
154
+ className: 'text-2xl font-bold text-brand-text',
155
+ content: '{{companyName}}',
156
+ },
157
+ ],
158
+ },
159
+ {
160
+ type: 'div',
161
+ children: [
162
+ {
163
+ type: 'h1',
164
+ className: 'text-6xl font-bold text-brand-text mb-4',
165
+ content: '{{title}}',
166
+ },
167
+ {
168
+ type: 'p',
169
+ className: 'text-2xl text-brand-text/80',
170
+ content: '{{tagline}}',
171
+ },
172
+ ],
173
+ },
174
+ ],
175
+ },
176
+ ],
177
+ };
178
+
179
+ async function renderWithBranding(brandColors: any, props: any) {
180
+ const template = defineTemplateFromSchema({
181
+ ...brandedSchema,
182
+ config: { colors: brandColors },
183
+ });
184
+
185
+ const png = await renderImage(template, props);
186
+ return png;
187
+ }
188
+
189
+ async function renderMultipleBrands() {
190
+ // Brand 1: Blue theme
191
+ const brand1 = await renderWithBranding(
192
+ {
193
+ 'brand-primary': '#3b82f6',
194
+ 'brand-bg': '#eff6ff',
195
+ 'brand-text': '#1e3a8a',
196
+ },
197
+ {
198
+ companyName: 'TechCorp',
199
+ title: 'Innovation Summit 2024',
200
+ tagline: 'Building the Future Together',
201
+ }
202
+ );
203
+ await fs.writeFile('brand-1.png', brand1);
204
+ console.log('✓ Rendered brand-1.png');
205
+
206
+ // Brand 2: Purple theme
207
+ const brand2 = await renderWithBranding(
208
+ {
209
+ 'brand-primary': '#8b5cf6',
210
+ 'brand-bg': '#faf5ff',
211
+ 'brand-text': '#581c87',
212
+ },
213
+ {
214
+ companyName: 'DesignStudio',
215
+ title: 'Creative Workshop',
216
+ tagline: 'Unleash Your Creativity',
217
+ }
218
+ );
219
+ await fs.writeFile('brand-2.png', brand2);
220
+ console.log('✓ Rendered brand-2.png');
221
+ }
222
+
223
+ // Example 4: User interface builder output
224
+ // This simulates what a drag-and-drop builder would generate
225
+ interface BuilderElement {
226
+ id: string;
227
+ type: string;
228
+ className: string;
229
+ content?: string;
230
+ children?: BuilderElement[];
231
+ }
232
+
233
+ function convertBuilderToSchema(
234
+ name: string,
235
+ elements: BuilderElement[],
236
+ config?: any
237
+ ): TemplateSchema {
238
+ // Remove IDs and convert to schema format
239
+ const cleanElements = (els: BuilderElement[]) => {
240
+ return els.map((el) => ({
241
+ type: el.type as any,
242
+ className: el.className,
243
+ content: el.content,
244
+ children: el.children ? cleanElements(el.children) : undefined,
245
+ }));
246
+ };
247
+
248
+ return {
249
+ name,
250
+ size: { width: 1200, height: 630 },
251
+ config,
252
+ elements: cleanElements(elements),
253
+ };
254
+ }
255
+
256
+ async function renderFromBuilder() {
257
+ // Simulated output from visual builder
258
+ const builderOutput: BuilderElement[] = [
259
+ {
260
+ id: 'root-1',
261
+ type: 'div',
262
+ className: 'flex items-center justify-center w-full h-full bg-gradient-to-br from-indigo-500 to-purple-600',
263
+ children: [
264
+ {
265
+ id: 'text-1',
266
+ type: 'h1',
267
+ className: 'text-8xl font-bold text-white',
268
+ content: '{{message}}',
269
+ },
270
+ ],
271
+ },
272
+ ];
273
+
274
+ const schema = convertBuilderToSchema('builder-output', builderOutput);
275
+ const template = defineTemplateFromSchema(schema);
276
+
277
+ const png = await renderImage(template, {
278
+ message: 'Built Visually!',
279
+ });
280
+
281
+ await fs.writeFile('builder-output.png', png);
282
+ console.log('✓ Rendered builder-output.png');
283
+ }
284
+
285
+ // Example 5: Video schema (for animated templates)
286
+ const videoSchema: TemplateSchema = {
287
+ name: 'animated-card',
288
+ type: 'video',
289
+ size: { width: 1920, height: 1080 },
290
+ video: { fps: 30, duration: 3 },
291
+ config: {
292
+ colors: {
293
+ background: '#000000',
294
+ text: '#ffffff',
295
+ },
296
+ },
297
+ elements: [
298
+ {
299
+ type: 'div',
300
+ className: 'flex items-center justify-center w-full h-full bg-background',
301
+ children: [
302
+ {
303
+ type: 'h1',
304
+ className: 'text-8xl font-bold text-text enter-fade-in/0/1500 exit-fade-out/2500/3000',
305
+ content: '{{title}}',
306
+ },
307
+ ],
308
+ },
309
+ ],
310
+ };
311
+
312
+ async function renderVideoSchema() {
313
+ const template = defineTemplateFromSchema(videoSchema);
314
+
315
+ const mp4 = await renderVideo(template, {
316
+ title: 'Schema Video',
317
+ });
318
+
319
+ await fs.writeFile('animated-card.mp4', mp4);
320
+ console.log('✓ Rendered animated-card.mp4');
321
+ }
322
+
323
+ // Run all examples
324
+ async function main() {
325
+ console.log('Visual Builder Examples\n');
326
+
327
+ await renderSimpleCard();
328
+ await renderComplexLayout();
329
+ await renderMultipleBrands();
330
+ await renderFromBuilder();
331
+ await renderVideoSchema();
332
+
333
+ console.log('\n✅ All visual builder examples completed!');
334
+ }
335
+
336
+ main().catch(console.error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loopwind",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
4
4
  "description": "A CLI tool for AI code agents and developers for generating images and videos.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,6 +46,7 @@
46
46
  "url": "https://github.com/tomtev/loopwind/issues"
47
47
  },
48
48
  "dependencies": {
49
+ "@babel/standalone": "^7.28.5",
49
50
  "@resvg/resvg-js": "^2.6.0",
50
51
  "@vitejs/plugin-react": "^5.1.1",
51
52
  "boxen": "^7.1.1",
@@ -74,6 +75,7 @@
74
75
  "vite": "^7.2.2"
75
76
  },
76
77
  "devDependencies": {
78
+ "@types/babel__standalone": "^7.1.9",
77
79
  "@types/chalk-animation": "^1.6.3",
78
80
  "@types/express": "^5.0.5",
79
81
  "@types/gradient-string": "^1.1.6",
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Test JSX support in defineTemplateFromSource
3
+ */
4
+
5
+ import { defineTemplateFromSource, renderImage } from './dist/sdk/index.js';
6
+
7
+ console.log('Testing JSX Support in defineTemplateFromSource\n');
8
+
9
+ // Test 1: Simple JSX template
10
+ const simpleJSX = `
11
+ export const meta = {
12
+ name: 'jsx-test',
13
+ type: 'image',
14
+ size: { width: 400, height: 200 }
15
+ };
16
+
17
+ export default ({ tw, title }) => (
18
+ <div style={tw('flex items-center justify-center w-full h-full bg-blue-500')}>
19
+ <h1 style={tw('text-4xl font-bold text-white')}>{title}</h1>
20
+ </div>
21
+ );
22
+ `;
23
+
24
+ try {
25
+ const template1 = defineTemplateFromSource(simpleJSX);
26
+ const png1 = await renderImage(template1, { title: 'JSX Works!' });
27
+ console.log('✓ Simple JSX template works');
28
+ console.log(' PNG size:', png1.length, 'bytes\n');
29
+ } catch (error) {
30
+ console.error('✗ Simple JSX template failed:', error.message);
31
+ }
32
+
33
+ // Test 2: Nested JSX
34
+ const nestedJSX = `
35
+ export const meta = {
36
+ name: 'nested-jsx',
37
+ size: { width: 600, height: 300 }
38
+ };
39
+
40
+ export default ({ tw, title, subtitle, items }) => (
41
+ <div style={tw('flex flex-col w-full h-full bg-white p-8')}>
42
+ <h1 style={tw('text-5xl font-bold text-gray-900 mb-4')}>{title}</h1>
43
+ <p style={tw('text-2xl text-gray-600 mb-6')}>{subtitle}</p>
44
+ <div style={tw('flex gap-4')}>
45
+ {items.map((item, i) => (
46
+ <div style={tw('px-4 py-2 bg-blue-500 text-white rounded')}>
47
+ {item}
48
+ </div>
49
+ ))}
50
+ </div>
51
+ </div>
52
+ );
53
+ `;
54
+
55
+ try {
56
+ const template2 = defineTemplateFromSource(nestedJSX);
57
+ const png2 = await renderImage(template2, {
58
+ title: 'Nested JSX',
59
+ subtitle: 'With multiple levels',
60
+ items: ['One', 'Two', 'Three']
61
+ });
62
+ console.log('✓ Nested JSX template works');
63
+ console.log(' PNG size:', png2.length, 'bytes\n');
64
+ } catch (error) {
65
+ console.error('✗ Nested JSX template failed:', error.message);
66
+ }
67
+
68
+ // Test 3: Self-closing tags
69
+ const selfClosing = `
70
+ export const meta = {
71
+ name: 'self-closing',
72
+ size: { width: 400, height: 200 }
73
+ };
74
+
75
+ export default ({ tw }) => (
76
+ <div style={tw('flex flex-col items-center justify-center w-full h-full bg-gray-100 gap-4')}>
77
+ <div style={tw('w-32 h-32 bg-red-500 rounded-full')} />
78
+ <div style={tw('w-32 h-32 bg-blue-500 rounded-lg')} />
79
+ <div style={tw('w-32 h-32 bg-green-500')} />
80
+ </div>
81
+ );
82
+ `;
83
+
84
+ try {
85
+ const template3 = defineTemplateFromSource(selfClosing);
86
+ const png3 = await renderImage(template3, {});
87
+ console.log('✓ Self-closing tags work');
88
+ console.log(' PNG size:', png3.length, 'bytes\n');
89
+ } catch (error) {
90
+ console.error('✗ Self-closing tags failed:', error.message);
91
+ }
92
+
93
+ // Test 4: Complex attributes
94
+ const complexAttrs = `
95
+ export const meta = {
96
+ name: 'complex-attrs',
97
+ size: { width: 500, height: 250 }
98
+ };
99
+
100
+ export default ({ tw, title, count }) => (
101
+ <div style={tw('flex flex-col w-full h-full bg-gradient-to-br from-purple-600 to-pink-500 p-8')}>
102
+ <h1 style={tw('text-4xl font-bold text-white mb-4')}>{title}</h1>
103
+ <div style={tw('flex items-center gap-2')}>
104
+ <span style={tw('text-2xl text-white')}>Count:</span>
105
+ <span style={tw('text-3xl font-bold text-yellow-300')}>{count}</span>
106
+ </div>
107
+ </div>
108
+ );
109
+ `;
110
+
111
+ try {
112
+ const template4 = defineTemplateFromSource(complexAttrs);
113
+ const png4 = await renderImage(template4, { title: 'Complex JSX', count: 42 });
114
+ console.log('✓ Complex attributes work');
115
+ console.log(' PNG size:', png4.length, 'bytes\n');
116
+ } catch (error) {
117
+ console.error('✗ Complex attributes failed:', error.message);
118
+ }
119
+
120
+ console.log('✅ All JSX tests completed!');