loopwind 0.22.0 → 0.24.0

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 (486) hide show
  1. package/README.md +13 -117
  2. package/dist/cli.js +16 -10
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/add.d.ts.map +1 -1
  5. package/dist/commands/add.js +6 -10
  6. package/dist/commands/add.js.map +1 -1
  7. package/dist/commands/agent.d.ts +8 -0
  8. package/dist/commands/agent.d.ts.map +1 -0
  9. package/dist/commands/agent.js +101 -0
  10. package/dist/commands/agent.js.map +1 -0
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +17 -7
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/render.d.ts.map +1 -1
  15. package/dist/commands/render.js +17 -19
  16. package/dist/commands/render.js.map +1 -1
  17. package/dist/default-templates/AGENTS.md +10 -24
  18. package/dist/lib/config.d.ts +2 -3
  19. package/dist/lib/config.d.ts.map +1 -1
  20. package/dist/lib/config.js +4 -9
  21. package/dist/lib/config.js.map +1 -1
  22. package/dist/lib/constants.d.ts +1 -3
  23. package/dist/lib/constants.d.ts.map +1 -1
  24. package/dist/lib/constants.js +2 -4
  25. package/dist/lib/constants.js.map +1 -1
  26. package/dist/lib/installer.d.ts +2 -0
  27. package/dist/lib/installer.d.ts.map +1 -1
  28. package/dist/lib/installer.js +6 -7
  29. package/dist/lib/installer.js.map +1 -1
  30. package/dist/lib/renderer.d.ts.map +1 -1
  31. package/dist/lib/renderer.js +14 -8
  32. package/dist/lib/renderer.js.map +1 -1
  33. package/dist/lib/resvg-init.d.ts +15 -0
  34. package/dist/lib/resvg-init.d.ts.map +1 -0
  35. package/dist/lib/resvg-init.js +55 -0
  36. package/dist/lib/resvg-init.js.map +1 -0
  37. package/dist/lib/tailwind/colors.d.ts +8 -0
  38. package/dist/lib/tailwind/colors.d.ts.map +1 -0
  39. package/dist/lib/tailwind/colors.js +102 -0
  40. package/dist/lib/tailwind/colors.js.map +1 -0
  41. package/dist/lib/tailwind/index.d.ts +10 -0
  42. package/dist/lib/tailwind/index.d.ts.map +1 -0
  43. package/dist/lib/tailwind/index.js +9 -0
  44. package/dist/lib/tailwind/index.js.map +1 -0
  45. package/dist/lib/tailwind/resolvers.d.ts +28 -0
  46. package/dist/lib/tailwind/resolvers.d.ts.map +1 -0
  47. package/dist/lib/tailwind/resolvers.js +94 -0
  48. package/dist/lib/tailwind/resolvers.js.map +1 -0
  49. package/dist/lib/tailwind/types.d.ts +29 -0
  50. package/dist/lib/tailwind/types.d.ts.map +1 -0
  51. package/dist/lib/tailwind/types.js +8 -0
  52. package/dist/lib/tailwind/types.js.map +1 -0
  53. package/dist/lib/tailwind-config-loader.d.ts +8 -45
  54. package/dist/lib/tailwind-config-loader.d.ts.map +1 -1
  55. package/dist/lib/tailwind-config-loader.js +6 -429
  56. package/dist/lib/tailwind-config-loader.js.map +1 -1
  57. package/dist/lib/tailwind.d.ts +1 -1
  58. package/dist/lib/tailwind.d.ts.map +1 -1
  59. package/dist/lib/tailwind.js +1 -1
  60. package/dist/lib/tailwind.js.map +1 -1
  61. package/dist/lib/utils.d.ts +13 -29
  62. package/dist/lib/utils.d.ts.map +1 -1
  63. package/dist/lib/utils.js +45 -155
  64. package/dist/lib/utils.js.map +1 -1
  65. package/dist/lib/video-renderer.d.ts.map +1 -1
  66. package/dist/lib/video-renderer.js +6 -5
  67. package/dist/lib/video-renderer.js.map +1 -1
  68. package/dist/types/config.d.ts +0 -2
  69. package/dist/types/config.d.ts.map +1 -1
  70. package/dist/types/config.js.map +1 -1
  71. package/package.json +2 -12
  72. package/REGISTRY_SETUP.md +0 -363
  73. package/_dsgn/templates/dashed-stroke-test/template.tsx +0 -73
  74. package/_dsgn/templates/path-follow-test/template.tsx +0 -176
  75. package/_dsgn/templates/path-simple-test/template.tsx +0 -98
  76. package/_dsgn/templates/stroke-dash-test/meta.json +0 -12
  77. package/_dsgn/templates/stroke-dash-test/template.tsx +0 -53
  78. package/dist/default-templates/image/template.d.ts +0 -20
  79. package/dist/default-templates/image/template.d.ts.map +0 -1
  80. package/dist/default-templates/image/template.js +0 -18
  81. package/dist/default-templates/image/template.js.map +0 -1
  82. package/dist/default-templates/image/template.tsx +0 -20
  83. package/dist/default-templates/kitchen-sink/template.tsx +0 -64
  84. package/dist/default-templates/page/template.tsx +0 -37
  85. package/dist/default-templates/video/template.d.ts +0 -26
  86. package/dist/default-templates/video/template.d.ts.map +0 -1
  87. package/dist/default-templates/video/template.js +0 -33
  88. package/dist/default-templates/video/template.js.map +0 -1
  89. package/dist/default-templates/video/template.tsx +0 -37
  90. package/dist/default-templates/website/pages/home.tsx +0 -17
  91. package/dist/default-templates/website/parts/footer.tsx +0 -17
  92. package/dist/default-templates/website/parts/header.tsx +0 -17
  93. package/dist/default-templates/website/template.tsx +0 -17
  94. package/dist/default-templates/website-template/pages/home.tsx +0 -13
  95. package/dist/default-templates/website-template/parts/footer.tsx +0 -15
  96. package/dist/default-templates/website-template/parts/header.tsx +0 -15
  97. package/dist/default-templates/website-template/template.tsx +0 -32
  98. package/dist/lib/encode-worker.d.ts +0 -2
  99. package/dist/lib/encode-worker.d.ts.map +0 -1
  100. package/dist/lib/encode-worker.js +0 -29
  101. package/dist/lib/encode-worker.js.map +0 -1
  102. package/dist/lib/mjpeg-muxer.d.ts +0 -46
  103. package/dist/lib/mjpeg-muxer.d.ts.map +0 -1
  104. package/dist/lib/mjpeg-muxer.js +0 -513
  105. package/dist/lib/mjpeg-muxer.js.map +0 -1
  106. package/dist/lib/tailwind-browser.d.ts +0 -27
  107. package/dist/lib/tailwind-browser.d.ts.map +0 -1
  108. package/dist/lib/tailwind-browser.js +0 -853
  109. package/dist/lib/tailwind-browser.js.map +0 -1
  110. package/dist/lib/video-player.d.ts +0 -25
  111. package/dist/lib/video-player.d.ts.map +0 -1
  112. package/dist/lib/video-player.js +0 -392
  113. package/dist/lib/video-player.js.map +0 -1
  114. package/dist/sdk/compiler.d.ts +0 -94
  115. package/dist/sdk/compiler.d.ts.map +0 -1
  116. package/dist/sdk/compiler.js +0 -122
  117. package/dist/sdk/compiler.js.map +0 -1
  118. package/dist/sdk/index.d.ts +0 -62
  119. package/dist/sdk/index.d.ts.map +0 -1
  120. package/dist/sdk/index.js +0 -141
  121. package/dist/sdk/index.js.map +0 -1
  122. package/dist/sdk/preview.d.ts +0 -65
  123. package/dist/sdk/preview.d.ts.map +0 -1
  124. package/dist/sdk/preview.js +0 -262
  125. package/dist/sdk/preview.js.map +0 -1
  126. package/dist/sdk/template.d.ts +0 -162
  127. package/dist/sdk/template.d.ts.map +0 -1
  128. package/dist/sdk/template.js +0 -231
  129. package/dist/sdk/template.js.map +0 -1
  130. package/examples/code-editor-templates.ts +0 -173
  131. package/examples/nextjs-api/README.md +0 -180
  132. package/examples/nextjs-api/package.json +0 -21
  133. package/examples/nextjs-api/pages/api/intro-video.ts +0 -53
  134. package/examples/nextjs-api/pages/api/og-image.ts +0 -50
  135. package/examples/nextjs-template-import.ts +0 -58
  136. package/examples/sdk-video-preview.tsx +0 -120
  137. package/examples/template-compiler-workflow.ts +0 -251
  138. package/examples/visual-builder-templates.ts +0 -336
  139. package/render-examples-600x400.mjs +0 -161
  140. package/render-spring-variants-fixed.mjs +0 -60
  141. package/render-staggered-text.mjs +0 -56
  142. package/test-font-files.mjs +0 -72
  143. package/test-jsx-support.mjs +0 -146
  144. package/test-sdk-config.mjs +0 -454
  145. package/test-sdk-source-config.mjs +0 -427
  146. package/test-sdk-user-templates.mjs +0 -469
  147. package/test-static-debug.tsx +0 -19
  148. package/test-templates/TESTS.md +0 -63
  149. package/test-templates/config-test.mjs +0 -17
  150. package/test-templates/demo-intro-props.json +0 -4
  151. package/test-templates/run-tests.sh +0 -44
  152. package/test-templates/test-sdk.mjs +0 -139
  153. package/test-video-props.json +0 -3
  154. package/website/.astro/content.db +0 -0
  155. package/website/.astro/integrations/_inox-tools_astro-when/types.d.ts +0 -1
  156. package/website/.astro/integrations/astro_db/db.d.ts +0 -15
  157. package/website/.astro/settings.json +0 -5
  158. package/website/.astro/types.d.ts +0 -2
  159. package/website/DEPLOYMENT.md +0 -143
  160. package/website/OG_IMAGES.md +0 -142
  161. package/website/README.md +0 -158
  162. package/website/astro.config.mjs +0 -46
  163. package/website/dist/.gitkeep +0 -5
  164. package/website/dist/_astro/agents.Yx-L_igG.css +0 -1
  165. package/website/dist/_routes.json +0 -30
  166. package/website/dist/_worker.js/_@astrojs-ssr-adapter.mjs +0 -1033
  167. package/website/dist/_worker.js/_astro-internal_middleware.mjs +0 -40
  168. package/website/dist/_worker.js/chunks/abap_BTmsHiP5.mjs +0 -1
  169. package/website/dist/_worker.js/chunks/actionscript-3_DmBelb1E.mjs +0 -1
  170. package/website/dist/_worker.js/chunks/ada_8-E0ahCN.mjs +0 -1
  171. package/website/dist/_worker.js/chunks/andromeeda_XI-CXx50.mjs +0 -1
  172. package/website/dist/_worker.js/chunks/angular-html_DKGh3gGH.mjs +0 -1
  173. package/website/dist/_worker.js/chunks/angular-ts_-qZGsJoA.mjs +0 -1
  174. package/website/dist/_worker.js/chunks/apache_ijTUt0Ee.mjs +0 -1
  175. package/website/dist/_worker.js/chunks/apex_agu1c6Sh.mjs +0 -1
  176. package/website/dist/_worker.js/chunks/apl_Bj2f7Art.mjs +0 -1
  177. package/website/dist/_worker.js/chunks/applescript_B_vXrOh3.mjs +0 -1
  178. package/website/dist/_worker.js/chunks/ara_DCEQ2rnh.mjs +0 -1
  179. package/website/dist/_worker.js/chunks/asciidoc_CGN_EkYS.mjs +0 -1
  180. package/website/dist/_worker.js/chunks/asm_BBWZgnDp.mjs +0 -1
  181. package/website/dist/_worker.js/chunks/astro/assets-service_j52rQLzU.mjs +0 -721
  182. package/website/dist/_worker.js/chunks/astro/server_Y5_QHO8v.mjs +0 -2401
  183. package/website/dist/_worker.js/chunks/astro-designed-error-pages_BNTLO-TA.mjs +0 -542
  184. package/website/dist/_worker.js/chunks/astro_Dr_hht3h.mjs +0 -1
  185. package/website/dist/_worker.js/chunks/aurora-x_9GHG8nSq.mjs +0 -1
  186. package/website/dist/_worker.js/chunks/awk_DHRvhXot.mjs +0 -1
  187. package/website/dist/_worker.js/chunks/ayu-dark_CcvqmEHE.mjs +0 -1
  188. package/website/dist/_worker.js/chunks/ballerina_C7SdeSZb.mjs +0 -1
  189. package/website/dist/_worker.js/chunks/bat_Dv4A3u45.mjs +0 -1
  190. package/website/dist/_worker.js/chunks/beancount_BfPf9Luv.mjs +0 -1
  191. package/website/dist/_worker.js/chunks/berry_B8rfM3lL.mjs +0 -1
  192. package/website/dist/_worker.js/chunks/bibtex_TcjYgtJM.mjs +0 -1
  193. package/website/dist/_worker.js/chunks/bicep_CrlFWCdN.mjs +0 -1
  194. package/website/dist/_worker.js/chunks/blade_lanKVYID.mjs +0 -1
  195. package/website/dist/_worker.js/chunks/bsl_BhppzXMB.mjs +0 -1
  196. package/website/dist/_worker.js/chunks/c_6FBALJTK.mjs +0 -1
  197. package/website/dist/_worker.js/chunks/cadence_2txU9LVE.mjs +0 -1
  198. package/website/dist/_worker.js/chunks/cairo_BkrFAIlP.mjs +0 -1
  199. package/website/dist/_worker.js/chunks/catppuccin-frappe_CkEqIYhU.mjs +0 -1
  200. package/website/dist/_worker.js/chunks/catppuccin-latte_DG4Gx_-v.mjs +0 -1
  201. package/website/dist/_worker.js/chunks/catppuccin-macchiato_Cwi3vCXf.mjs +0 -1
  202. package/website/dist/_worker.js/chunks/catppuccin-mocha_L9_OPlFX.mjs +0 -1
  203. package/website/dist/_worker.js/chunks/clarity_BEAe4Ulu.mjs +0 -1
  204. package/website/dist/_worker.js/chunks/clojure_VnUX6p2g.mjs +0 -1
  205. package/website/dist/_worker.js/chunks/cmake_0-SGkZEj.mjs +0 -1
  206. package/website/dist/_worker.js/chunks/cobol_92M_KGaE.mjs +0 -1
  207. package/website/dist/_worker.js/chunks/codeowners_CzMwskBv.mjs +0 -1
  208. package/website/dist/_worker.js/chunks/codeql_DWJZNHv1.mjs +0 -1
  209. package/website/dist/_worker.js/chunks/coffee_CQjKU2fh.mjs +0 -1
  210. package/website/dist/_worker.js/chunks/common-lisp_BBLWDpS5.mjs +0 -1
  211. package/website/dist/_worker.js/chunks/coq_hedRFV3D.mjs +0 -1
  212. package/website/dist/_worker.js/chunks/cpp_DlS1i6Zs.mjs +0 -1
  213. package/website/dist/_worker.js/chunks/crystal_D6n65fKV.mjs +0 -1
  214. package/website/dist/_worker.js/chunks/csharp_C6FCVFzc.mjs +0 -1
  215. package/website/dist/_worker.js/chunks/css_C5uJEgmJ.mjs +0 -1
  216. package/website/dist/_worker.js/chunks/csv_CtMYuuJl.mjs +0 -1
  217. package/website/dist/_worker.js/chunks/cue_BsPexqx6.mjs +0 -1
  218. package/website/dist/_worker.js/chunks/cypher_apzf6OBi.mjs +0 -1
  219. package/website/dist/_worker.js/chunks/d_DcvIRcgm.mjs +0 -1
  220. package/website/dist/_worker.js/chunks/dark-plus_C01ONtzj.mjs +0 -1
  221. package/website/dist/_worker.js/chunks/dart_WkzM5WrV.mjs +0 -1
  222. package/website/dist/_worker.js/chunks/dax_DjXAO5V4.mjs +0 -1
  223. package/website/dist/_worker.js/chunks/desktop_C92LCxdc.mjs +0 -1
  224. package/website/dist/_worker.js/chunks/diff_CVwM_9XJ.mjs +0 -1
  225. package/website/dist/_worker.js/chunks/docker_DPzgJf6Z.mjs +0 -1
  226. package/website/dist/_worker.js/chunks/dotenv_D_vgANvA.mjs +0 -1
  227. package/website/dist/_worker.js/chunks/dracula-soft_CLnUBwFm.mjs +0 -1
  228. package/website/dist/_worker.js/chunks/dracula_lBVpb6Lb.mjs +0 -1
  229. package/website/dist/_worker.js/chunks/dream-maker_DTLbzd_J.mjs +0 -1
  230. package/website/dist/_worker.js/chunks/edge_i54JYm3_.mjs +0 -1
  231. package/website/dist/_worker.js/chunks/elixir_BJCIjTu4.mjs +0 -1
  232. package/website/dist/_worker.js/chunks/elm_BbXD39-_.mjs +0 -1
  233. package/website/dist/_worker.js/chunks/emacs-lisp_pxa5cXaN.mjs +0 -1
  234. package/website/dist/_worker.js/chunks/erb_Ccjijeee.mjs +0 -1
  235. package/website/dist/_worker.js/chunks/erlang_B2VM_hi7.mjs +0 -1
  236. package/website/dist/_worker.js/chunks/everforest-dark_BxvIPBim.mjs +0 -1
  237. package/website/dist/_worker.js/chunks/everforest-light_B7VoyaJM.mjs +0 -1
  238. package/website/dist/_worker.js/chunks/fennel_D-uo7X6c.mjs +0 -1
  239. package/website/dist/_worker.js/chunks/fish_BjePoK3m.mjs +0 -1
  240. package/website/dist/_worker.js/chunks/fluent_C8fgkzLX.mjs +0 -1
  241. package/website/dist/_worker.js/chunks/fortran-fixed-form_D1pu5zrc.mjs +0 -1
  242. package/website/dist/_worker.js/chunks/fortran-free-form_CSGOhJD6.mjs +0 -1
  243. package/website/dist/_worker.js/chunks/fsharp_B0xy-A4Y.mjs +0 -1
  244. package/website/dist/_worker.js/chunks/gdresource_CWppjlHq.mjs +0 -1
  245. package/website/dist/_worker.js/chunks/gdscript_eQCHchcS.mjs +0 -1
  246. package/website/dist/_worker.js/chunks/gdshader_C4kxepX7.mjs +0 -1
  247. package/website/dist/_worker.js/chunks/genie_ACtQLcDW.mjs +0 -1
  248. package/website/dist/_worker.js/chunks/gherkin_BFp2uKUd.mjs +0 -1
  249. package/website/dist/_worker.js/chunks/git-commit_CLg9ZwMV.mjs +0 -1
  250. package/website/dist/_worker.js/chunks/git-rebase_DG8A80Nt.mjs +0 -1
  251. package/website/dist/_worker.js/chunks/github-dark-default_BI0EP2Kv.mjs +0 -1
  252. package/website/dist/_worker.js/chunks/github-dark-dimmed_a_NIC0Xb.mjs +0 -1
  253. package/website/dist/_worker.js/chunks/github-dark-high-contrast_jZGqT7hk.mjs +0 -1
  254. package/website/dist/_worker.js/chunks/github-dark_CHCDNd2O.mjs +0 -1
  255. package/website/dist/_worker.js/chunks/github-light-default_DRbOW5RG.mjs +0 -1
  256. package/website/dist/_worker.js/chunks/github-light-high-contrast_tn_kWutM.mjs +0 -1
  257. package/website/dist/_worker.js/chunks/github-light_D9brYzot.mjs +0 -1
  258. package/website/dist/_worker.js/chunks/gleam_Dmhu1oxW.mjs +0 -1
  259. package/website/dist/_worker.js/chunks/glimmer-js_BfZbXy8A.mjs +0 -1
  260. package/website/dist/_worker.js/chunks/glimmer-ts_B9QVICrD.mjs +0 -1
  261. package/website/dist/_worker.js/chunks/glsl_DD2PPwOs.mjs +0 -1
  262. package/website/dist/_worker.js/chunks/gnuplot_D2OYChUX.mjs +0 -1
  263. package/website/dist/_worker.js/chunks/go_DYGFTe3h.mjs +0 -1
  264. package/website/dist/_worker.js/chunks/graphql_B7XsT3nH.mjs +0 -1
  265. package/website/dist/_worker.js/chunks/groovy_BO12Uwkl.mjs +0 -1
  266. package/website/dist/_worker.js/chunks/hack_CB2_ztCP.mjs +0 -1
  267. package/website/dist/_worker.js/chunks/haml_CyfDcDD3.mjs +0 -1
  268. package/website/dist/_worker.js/chunks/handlebars_CfpxpWm2.mjs +0 -1
  269. package/website/dist/_worker.js/chunks/haskell_jUeC5uN5.mjs +0 -1
  270. package/website/dist/_worker.js/chunks/haxe_B6GxP1WB.mjs +0 -1
  271. package/website/dist/_worker.js/chunks/hcl_DwoHV2oh.mjs +0 -1
  272. package/website/dist/_worker.js/chunks/hjson_DV7cJRk4.mjs +0 -1
  273. package/website/dist/_worker.js/chunks/hlsl_BlFCscPI.mjs +0 -1
  274. package/website/dist/_worker.js/chunks/houston_COBFG1Mx.mjs +0 -1
  275. package/website/dist/_worker.js/chunks/html-derivative_C9pJ337h.mjs +0 -1
  276. package/website/dist/_worker.js/chunks/html_D1OkrZS5.mjs +0 -1
  277. package/website/dist/_worker.js/chunks/http_DIGXRqvJ.mjs +0 -1
  278. package/website/dist/_worker.js/chunks/hxml_DEwh9i-c.mjs +0 -1
  279. package/website/dist/_worker.js/chunks/hy_DDoIgW1K.mjs +0 -1
  280. package/website/dist/_worker.js/chunks/imba_B00zbHo4.mjs +0 -1
  281. package/website/dist/_worker.js/chunks/index_C1UTDwYg.mjs +0 -1861
  282. package/website/dist/_worker.js/chunks/ini_D7XQA_p8.mjs +0 -1
  283. package/website/dist/_worker.js/chunks/java_B9wdFd8K.mjs +0 -1
  284. package/website/dist/_worker.js/chunks/javascript_CLsPGOON.mjs +0 -1
  285. package/website/dist/_worker.js/chunks/jinja_jarBCAN1.mjs +0 -1
  286. package/website/dist/_worker.js/chunks/jison_oGg3J708.mjs +0 -1
  287. package/website/dist/_worker.js/chunks/json5_DlZ1Kyaa.mjs +0 -1
  288. package/website/dist/_worker.js/chunks/json_DaYk_FMp.mjs +0 -1
  289. package/website/dist/_worker.js/chunks/jsonc_DlwgfSDs.mjs +0 -1
  290. package/website/dist/_worker.js/chunks/jsonl_BbCCVaZF.mjs +0 -1
  291. package/website/dist/_worker.js/chunks/jsonnet_Dt-G75xe.mjs +0 -1
  292. package/website/dist/_worker.js/chunks/jssm_BtKFTj2A.mjs +0 -1
  293. package/website/dist/_worker.js/chunks/jsx_DDx_xAZ8.mjs +0 -1
  294. package/website/dist/_worker.js/chunks/julia_CK0lv68l.mjs +0 -1
  295. package/website/dist/_worker.js/chunks/kanagawa-dragon_BldAK3Oo.mjs +0 -1
  296. package/website/dist/_worker.js/chunks/kanagawa-lotus_DVM8FX9_.mjs +0 -1
  297. package/website/dist/_worker.js/chunks/kanagawa-wave_Dpih0AKP.mjs +0 -1
  298. package/website/dist/_worker.js/chunks/kotlin_kWneB9V_.mjs +0 -1
  299. package/website/dist/_worker.js/chunks/kusto_BKVATd95.mjs +0 -1
  300. package/website/dist/_worker.js/chunks/laserwave_BqatxsVl.mjs +0 -1
  301. package/website/dist/_worker.js/chunks/latex_LVDcGBbc.mjs +0 -1
  302. package/website/dist/_worker.js/chunks/lean_W7qo-5M2.mjs +0 -1
  303. package/website/dist/_worker.js/chunks/less_DFNwJnBH.mjs +0 -1
  304. package/website/dist/_worker.js/chunks/light-plus_Dp0AoWsO.mjs +0 -1
  305. package/website/dist/_worker.js/chunks/liquid_D24qs0pc.mjs +0 -1
  306. package/website/dist/_worker.js/chunks/log_IPWMXriF.mjs +0 -1
  307. package/website/dist/_worker.js/chunks/logo_C6KaatrQ.mjs +0 -1
  308. package/website/dist/_worker.js/chunks/lua_CwnEf-T7.mjs +0 -1
  309. package/website/dist/_worker.js/chunks/luau_Br3-CXjS.mjs +0 -1
  310. package/website/dist/_worker.js/chunks/make_UBNG-kOo.mjs +0 -1
  311. package/website/dist/_worker.js/chunks/markdown_C7mhJFCm.mjs +0 -1
  312. package/website/dist/_worker.js/chunks/marko_4tchUvI7.mjs +0 -1
  313. package/website/dist/_worker.js/chunks/material-theme-darker_SKtaNEPn.mjs +0 -1
  314. package/website/dist/_worker.js/chunks/material-theme-lighter_zOX_DZCH.mjs +0 -1
  315. package/website/dist/_worker.js/chunks/material-theme-ocean_BN9WbhdC.mjs +0 -1
  316. package/website/dist/_worker.js/chunks/material-theme-palenight_DT_covjH.mjs +0 -1
  317. package/website/dist/_worker.js/chunks/material-theme_6RpeM3kc.mjs +0 -1
  318. package/website/dist/_worker.js/chunks/matlab_DCOXsPKR.mjs +0 -1
  319. package/website/dist/_worker.js/chunks/mdc_B9gb2UFP.mjs +0 -1
  320. package/website/dist/_worker.js/chunks/mdx_DGU7Nu9u.mjs +0 -1
  321. package/website/dist/_worker.js/chunks/mermaid_B69URzsZ.mjs +0 -1
  322. package/website/dist/_worker.js/chunks/min-dark_BgxifOMI.mjs +0 -1
  323. package/website/dist/_worker.js/chunks/min-light_BrPjXxUp.mjs +0 -1
  324. package/website/dist/_worker.js/chunks/mipsasm_9U-4_t7k.mjs +0 -1
  325. package/website/dist/_worker.js/chunks/mojo_B0wt7ug3.mjs +0 -1
  326. package/website/dist/_worker.js/chunks/monokai_B6Pxpoyi.mjs +0 -1
  327. package/website/dist/_worker.js/chunks/move_1eid4CyR.mjs +0 -1
  328. package/website/dist/_worker.js/chunks/narrat_Ds6-p5JZ.mjs +0 -1
  329. package/website/dist/_worker.js/chunks/nextflow_v2N1Qlqa.mjs +0 -1
  330. package/website/dist/_worker.js/chunks/nginx_Bp9Ab2NH.mjs +0 -1
  331. package/website/dist/_worker.js/chunks/night-owl_CdwOw_sc.mjs +0 -1
  332. package/website/dist/_worker.js/chunks/nim_BXGDUe53.mjs +0 -1
  333. package/website/dist/_worker.js/chunks/nix_CUig1nJH.mjs +0 -1
  334. package/website/dist/_worker.js/chunks/noop-middleware_DlWGj5t5.mjs +0 -10
  335. package/website/dist/_worker.js/chunks/nord_SPoG1iae.mjs +0 -1
  336. package/website/dist/_worker.js/chunks/nushell_DJw1Lca8.mjs +0 -1
  337. package/website/dist/_worker.js/chunks/objective-c_Bktzl_CO.mjs +0 -1
  338. package/website/dist/_worker.js/chunks/objective-cpp_CP4DWdDp.mjs +0 -1
  339. package/website/dist/_worker.js/chunks/ocaml_CeEAs7bZ.mjs +0 -1
  340. package/website/dist/_worker.js/chunks/one-dark-pro_-hIwCNMi.mjs +0 -1
  341. package/website/dist/_worker.js/chunks/one-light_DSmYvJ05.mjs +0 -1
  342. package/website/dist/_worker.js/chunks/pascal_C-S_Ms_o.mjs +0 -1
  343. package/website/dist/_worker.js/chunks/perl_CKamvo15.mjs +0 -1
  344. package/website/dist/_worker.js/chunks/php_BlmcX_F3.mjs +0 -1
  345. package/website/dist/_worker.js/chunks/plastic_Ryt8tVoA.mjs +0 -1
  346. package/website/dist/_worker.js/chunks/plsql_Cb3v7cBj.mjs +0 -1
  347. package/website/dist/_worker.js/chunks/po_DZbdNRlo.mjs +0 -1
  348. package/website/dist/_worker.js/chunks/poimandres_bYmE3_5d.mjs +0 -1
  349. package/website/dist/_worker.js/chunks/polar_pJkMGwoW.mjs +0 -1
  350. package/website/dist/_worker.js/chunks/postcss_BAXSOKgk.mjs +0 -1
  351. package/website/dist/_worker.js/chunks/powerquery_oITMGN4x.mjs +0 -1
  352. package/website/dist/_worker.js/chunks/powershell_6306-xIF.mjs +0 -1
  353. package/website/dist/_worker.js/chunks/prisma_DSDxnZGz.mjs +0 -1
  354. package/website/dist/_worker.js/chunks/prolog_CxG7tjZR.mjs +0 -1
  355. package/website/dist/_worker.js/chunks/proto_CS9ByXm1.mjs +0 -1
  356. package/website/dist/_worker.js/chunks/pug_BMtLJo6U.mjs +0 -1
  357. package/website/dist/_worker.js/chunks/puppet_BfeeSzee.mjs +0 -1
  358. package/website/dist/_worker.js/chunks/purescript_BFfueNaH.mjs +0 -1
  359. package/website/dist/_worker.js/chunks/python_Cc4Faapv.mjs +0 -1
  360. package/website/dist/_worker.js/chunks/qml_C1CTJTK8.mjs +0 -1
  361. package/website/dist/_worker.js/chunks/qmldir_nG1KaqKR.mjs +0 -1
  362. package/website/dist/_worker.js/chunks/qss_Cncxk263.mjs +0 -1
  363. package/website/dist/_worker.js/chunks/r_ChR54Ihi.mjs +0 -1
  364. package/website/dist/_worker.js/chunks/racket_BDrhptDs.mjs +0 -1
  365. package/website/dist/_worker.js/chunks/raku_07OUHa0P.mjs +0 -1
  366. package/website/dist/_worker.js/chunks/razor_DIP3INLa.mjs +0 -1
  367. package/website/dist/_worker.js/chunks/red_DOPXfj-6.mjs +0 -1
  368. package/website/dist/_worker.js/chunks/reg_B64SwEDj.mjs +0 -1
  369. package/website/dist/_worker.js/chunks/regexp_ButFGoB5.mjs +0 -1
  370. package/website/dist/_worker.js/chunks/rel_BWJAWqZD.mjs +0 -1
  371. package/website/dist/_worker.js/chunks/riscv_79gXlbsF.mjs +0 -1
  372. package/website/dist/_worker.js/chunks/rose-pine-dawn_DHIjVGd3.mjs +0 -1
  373. package/website/dist/_worker.js/chunks/rose-pine-moon_t86aEbs0.mjs +0 -1
  374. package/website/dist/_worker.js/chunks/rose-pine_BHgrcDCs.mjs +0 -1
  375. package/website/dist/_worker.js/chunks/rst_D3F4Fcpj.mjs +0 -1
  376. package/website/dist/_worker.js/chunks/ruby_Cs7vM9iv.mjs +0 -1
  377. package/website/dist/_worker.js/chunks/rust_DpyRVatH.mjs +0 -1
  378. package/website/dist/_worker.js/chunks/sas_DW45xZXN.mjs +0 -1
  379. package/website/dist/_worker.js/chunks/sass_C6SiMwN_.mjs +0 -1
  380. package/website/dist/_worker.js/chunks/scala_DlZOjNZk.mjs +0 -1
  381. package/website/dist/_worker.js/chunks/scheme_D2ezSJXu.mjs +0 -1
  382. package/website/dist/_worker.js/chunks/scss_DG5Spjqu.mjs +0 -1
  383. package/website/dist/_worker.js/chunks/sdbl_ZCYaj4VN.mjs +0 -1
  384. package/website/dist/_worker.js/chunks/shaderlab_CAcRkg1_.mjs +0 -1
  385. package/website/dist/_worker.js/chunks/shellscript_BWwhkDVh.mjs +0 -1
  386. package/website/dist/_worker.js/chunks/shellsession_BfEA3juK.mjs +0 -1
  387. package/website/dist/_worker.js/chunks/slack-dark_CL3lSpCc.mjs +0 -1
  388. package/website/dist/_worker.js/chunks/slack-ochin_DdZKOQVh.mjs +0 -1
  389. package/website/dist/_worker.js/chunks/smalltalk_DgilzSui.mjs +0 -1
  390. package/website/dist/_worker.js/chunks/snazzy-light_eJU08Pz_.mjs +0 -1
  391. package/website/dist/_worker.js/chunks/solarized-dark_Dg_YQywx.mjs +0 -1
  392. package/website/dist/_worker.js/chunks/solarized-light_BnIsrA6p.mjs +0 -1
  393. package/website/dist/_worker.js/chunks/solidity_DkseH8pQ.mjs +0 -1
  394. package/website/dist/_worker.js/chunks/soy_DU7bOYoG.mjs +0 -1
  395. package/website/dist/_worker.js/chunks/sparql_BuI1DBDH.mjs +0 -1
  396. package/website/dist/_worker.js/chunks/splunk_B8Ha9Pkg.mjs +0 -1
  397. package/website/dist/_worker.js/chunks/sql_BniHwea5.mjs +0 -1
  398. package/website/dist/_worker.js/chunks/ssh-config_CkE1GuVe.mjs +0 -1
  399. package/website/dist/_worker.js/chunks/stata_Dtqpbd_l.mjs +0 -1
  400. package/website/dist/_worker.js/chunks/stylus_CXTtglzO.mjs +0 -1
  401. package/website/dist/_worker.js/chunks/svelte_BjWYcUCN.mjs +0 -1
  402. package/website/dist/_worker.js/chunks/swift_BzHql_rM.mjs +0 -1
  403. package/website/dist/_worker.js/chunks/synthwave-84_DLRNhxNA.mjs +0 -1
  404. package/website/dist/_worker.js/chunks/system-verilog_ChyInPph.mjs +0 -1
  405. package/website/dist/_worker.js/chunks/systemd_Bi9Qa2qD.mjs +0 -1
  406. package/website/dist/_worker.js/chunks/talonscript_B3sH_Y-V.mjs +0 -1
  407. package/website/dist/_worker.js/chunks/tasl_BJ5yipRs.mjs +0 -1
  408. package/website/dist/_worker.js/chunks/tcl_CoJQjNoP.mjs +0 -1
  409. package/website/dist/_worker.js/chunks/templ_CrU7Ffil.mjs +0 -1
  410. package/website/dist/_worker.js/chunks/terraform_DT9JSFpC.mjs +0 -1
  411. package/website/dist/_worker.js/chunks/tex_5PKu2yA0.mjs +0 -1
  412. package/website/dist/_worker.js/chunks/tokyo-night_Buo8OK7-.mjs +0 -1
  413. package/website/dist/_worker.js/chunks/toml_CPuXX3oc.mjs +0 -1
  414. package/website/dist/_worker.js/chunks/ts-tags_D0M_1VSH.mjs +0 -1
  415. package/website/dist/_worker.js/chunks/tsv_CuivVNot.mjs +0 -1
  416. package/website/dist/_worker.js/chunks/tsx_MkuGr8MY.mjs +0 -1
  417. package/website/dist/_worker.js/chunks/turtle_BqgEPK7f.mjs +0 -1
  418. package/website/dist/_worker.js/chunks/twig_r1G9rpYJ.mjs +0 -1
  419. package/website/dist/_worker.js/chunks/typescript_Au5buqzM.mjs +0 -1
  420. package/website/dist/_worker.js/chunks/typespec_47rhBK_z.mjs +0 -1
  421. package/website/dist/_worker.js/chunks/typst_BAtuQLh-.mjs +0 -1
  422. package/website/dist/_worker.js/chunks/v_BIvWImHg.mjs +0 -1
  423. package/website/dist/_worker.js/chunks/vala_DYEacj30.mjs +0 -1
  424. package/website/dist/_worker.js/chunks/vb_CikQuqGJ.mjs +0 -1
  425. package/website/dist/_worker.js/chunks/verilog_BQRENwI-.mjs +0 -1
  426. package/website/dist/_worker.js/chunks/vesper_DA0kvTmj.mjs +0 -1
  427. package/website/dist/_worker.js/chunks/vhdl_DHscJIyg.mjs +0 -1
  428. package/website/dist/_worker.js/chunks/viml_F2pvMwvG.mjs +0 -1
  429. package/website/dist/_worker.js/chunks/vitesse-black_D9tjNzd0.mjs +0 -1
  430. package/website/dist/_worker.js/chunks/vitesse-dark_Bnm5d0hd.mjs +0 -1
  431. package/website/dist/_worker.js/chunks/vitesse-light_CHwbyjNR.mjs +0 -1
  432. package/website/dist/_worker.js/chunks/vue-html_DyYtbbMK.mjs +0 -1
  433. package/website/dist/_worker.js/chunks/vue_DofN6juy.mjs +0 -1
  434. package/website/dist/_worker.js/chunks/vyper_CiR0m-OV.mjs +0 -1
  435. package/website/dist/_worker.js/chunks/wasm_CwIGgRGf.mjs +0 -1
  436. package/website/dist/_worker.js/chunks/wasm_jKWhg0J0.mjs +0 -1
  437. package/website/dist/_worker.js/chunks/wenyan_DKvVZKXW.mjs +0 -1
  438. package/website/dist/_worker.js/chunks/wgsl_BOWZY7yw.mjs +0 -1
  439. package/website/dist/_worker.js/chunks/wikitext_CXDhhHPy.mjs +0 -1
  440. package/website/dist/_worker.js/chunks/wolfram_ChkmGnW0.mjs +0 -1
  441. package/website/dist/_worker.js/chunks/xml_DXH3hHIu.mjs +0 -1
  442. package/website/dist/_worker.js/chunks/xsl_DuP2mFjg.mjs +0 -1
  443. package/website/dist/_worker.js/chunks/yaml_IGiEkTge.mjs +0 -1
  444. package/website/dist/_worker.js/chunks/zenscript_59iXGyNw.mjs +0 -1
  445. package/website/dist/_worker.js/chunks/zig_DKzb0zdT.mjs +0 -1
  446. package/website/dist/_worker.js/index.js +0 -53
  447. package/website/dist/_worker.js/manifest_CT_D-YDe.mjs +0 -98
  448. package/website/dist/_worker.js/pages/_image.astro.mjs +0 -24
  449. package/website/dist/_worker.js/pages/agents.astro.mjs +0 -1
  450. package/website/dist/_worker.js/pages/animation.astro.mjs +0 -1
  451. package/website/dist/_worker.js/pages/api/raw-markdown/_---path_.astro.mjs +0 -44
  452. package/website/dist/_worker.js/pages/config.astro.mjs +0 -1
  453. package/website/dist/_worker.js/pages/fonts.astro.mjs +0 -1
  454. package/website/dist/_worker.js/pages/getting-started.astro.mjs +0 -1
  455. package/website/dist/_worker.js/pages/helpers.astro.mjs +0 -1
  456. package/website/dist/_worker.js/pages/images.astro.mjs +0 -1
  457. package/website/dist/_worker.js/pages/index.astro.mjs +0 -1
  458. package/website/dist/_worker.js/pages/llm.txt.astro.mjs +0 -1
  459. package/website/dist/_worker.js/pages/preview.astro.mjs +0 -1
  460. package/website/dist/_worker.js/pages/sdk.astro.mjs +0 -1
  461. package/website/dist/_worker.js/pages/sitemap.xml.astro.mjs +0 -1
  462. package/website/dist/_worker.js/pages/styling.astro.mjs +0 -1
  463. package/website/dist/_worker.js/pages/templates.astro.mjs +0 -1
  464. package/website/dist/_worker.js/pages/video.astro.mjs +0 -1
  465. package/website/dist/_worker.js/renderers.mjs +0 -57
  466. package/website/dist/agents/index.html +0 -52
  467. package/website/dist/animation/index.html +0 -879
  468. package/website/dist/config/index.html +0 -184
  469. package/website/dist/fonts/index.html +0 -198
  470. package/website/dist/getting-started/index.html +0 -107
  471. package/website/dist/helpers/index.html +0 -164
  472. package/website/dist/images/index.html +0 -335
  473. package/website/dist/index.html +0 -140
  474. package/website/dist/llm.txt +0 -2776
  475. package/website/dist/preview/index.html +0 -111
  476. package/website/dist/robots.txt +0 -40
  477. package/website/dist/sdk/index.html +0 -1076
  478. package/website/dist/sitemap.xml +0 -76
  479. package/website/dist/styling/index.html +0 -366
  480. package/website/dist/templates/index.html +0 -74
  481. package/website/dist/video/index.html +0 -319
  482. package/website/package-lock.json +0 -8089
  483. package/website/package.json +0 -41
  484. package/website/public/.gitkeep +0 -5
  485. package/website/public/robots.txt +0 -40
  486. package/website/templates/og-image.tsx +0 -60
@@ -1,139 +0,0 @@
1
- import { defineTemplate, renderImage, renderVideo } from '../dist/sdk/index.js';
2
- import fs from 'fs/promises';
3
- import React from 'react';
4
-
5
- // Helper to create inline template modules for testing
6
- function createTemplateModule(meta, render) {
7
- return { meta, default: render };
8
- }
9
-
10
- // Test 1: Static image template
11
- const staticTemplateModule = createTemplateModule(
12
- {
13
- name: 'sdk-static',
14
- type: 'image',
15
- size: { width: 1200, height: 630 },
16
- props: {
17
- title: 'string',
18
- subtitle: 'string',
19
- },
20
- },
21
- ({ tw, title, subtitle }) => (
22
- React.createElement('div', { style: tw('flex flex-col w-full h-full bg-gradient-to-br from-green-600 to-teal-700 p-12 justify-center items-center') },
23
- React.createElement('h1', { style: tw('text-6xl font-bold text-white mb-4') }, title),
24
- React.createElement('p', { style: tw('text-2xl text-white/80') }, subtitle),
25
- React.createElement('p', { style: tw('text-white/60 mt-8') }, 'Rendered via SDK')
26
- )
27
- )
28
- );
29
- const staticTemplate = defineTemplate(staticTemplateModule);
30
-
31
- // Test 2: Animated video template
32
- const animatedTemplateModule = createTemplateModule(
33
- {
34
- name: 'sdk-animated',
35
- type: 'video',
36
- size: { width: 1920, height: 1080 },
37
- video: { fps: 30, duration: 2 },
38
- props: {
39
- title: 'string',
40
- },
41
- },
42
- ({ tw, title }) => (
43
- React.createElement('div', { style: tw('flex flex-col items-center justify-center w-full h-full bg-gray-900') },
44
- React.createElement('div', { style: tw('w-20 h-20 rounded-full bg-gradient-to-br from-pink-500 to-orange-500 mb-8 ease-out enter-bounce-in/0/300') }),
45
- React.createElement('h1', { style: tw('text-7xl font-bold text-white ease-out enter-fade-in-up/200/600') }, title),
46
- React.createElement('p', { style: tw('text-2xl text-white/60 mt-4 ease-out enter-fade-in/500/900') }, 'SDK Video Test')
47
- )
48
- )
49
- );
50
- const animatedTemplate = defineTemplate(animatedTemplateModule);
51
-
52
- // Test 3: QR code template
53
- const qrTemplateModule = createTemplateModule(
54
- {
55
- name: 'sdk-qr',
56
- type: 'image',
57
- size: { width: 800, height: 800 },
58
- props: {
59
- url: 'string',
60
- },
61
- },
62
- ({ tw, qr, url }) => (
63
- React.createElement('div', { style: tw('flex flex-col items-center justify-center w-full h-full bg-white p-8') },
64
- React.createElement('h2', { style: tw('text-3xl font-bold text-gray-900 mb-6') }, 'SDK QR Test'),
65
- React.createElement('img', {
66
- src: qr(url, { width: 400, margin: 2 }),
67
- style: tw('w-80 h-80')
68
- }),
69
- React.createElement('p', { style: tw('text-gray-600 mt-6') }, url)
70
- )
71
- )
72
- );
73
- const qrTemplate = defineTemplate(qrTemplateModule);
74
-
75
- async function runTests() {
76
- console.log('Testing loopwind SDK...\n');
77
-
78
- // Test 1: Static image
79
- console.log('1. Rendering static image...');
80
- try {
81
- const imageBuffer = await renderImage(staticTemplate, {
82
- title: 'Hello SDK',
83
- subtitle: 'Programmatic rendering works!'
84
- }, { format: 'png' });
85
- await fs.writeFile('output/sdk-static.png', imageBuffer);
86
- console.log(` ✔ sdk-static.png (${(imageBuffer.length / 1024).toFixed(1)}KB)\n`);
87
- } catch (err) {
88
- console.log(` ✖ Failed: ${err.message}\n`);
89
- }
90
-
91
- // Test 2: Animated video
92
- console.log('2. Rendering animated video...');
93
- try {
94
- const videoBuffer = await renderVideo(animatedTemplate, {
95
- title: 'SDK Animation'
96
- }, { format: 'mp4' });
97
- await fs.writeFile('output/sdk-animated.mp4', videoBuffer);
98
- console.log(` ✔ sdk-animated.mp4 (${(videoBuffer.length / 1024).toFixed(1)}KB)\n`);
99
- } catch (err) {
100
- console.log(` ✖ Failed: ${err.message}\n`);
101
- }
102
-
103
- // Test 3: QR code
104
- console.log('3. Rendering QR code...');
105
- try {
106
- const qrBuffer = await renderImage(qrTemplate, {
107
- url: 'https://loopwind.dev'
108
- }, { format: 'png' });
109
- await fs.writeFile('output/sdk-qr.png', qrBuffer);
110
- console.log(` ✔ sdk-qr.png (${(qrBuffer.length / 1024).toFixed(1)}KB)\n`);
111
- } catch (err) {
112
- console.log(` ✖ Failed: ${err.message}\n`);
113
- }
114
-
115
- // Test 4: Different formats
116
- console.log('4. Testing different formats (JPEG, WebP)...');
117
- try {
118
- const jpegBuffer = await renderImage(staticTemplate, {
119
- title: 'JPEG Test',
120
- subtitle: 'Quality 85'
121
- }, { format: 'jpeg', quality: 85 });
122
- await fs.writeFile('output/sdk-static.jpg', jpegBuffer);
123
-
124
- const webpBuffer = await renderImage(staticTemplate, {
125
- title: 'WebP Test',
126
- subtitle: 'Modern format'
127
- }, { format: 'webp' });
128
- await fs.writeFile('output/sdk-static.webp', webpBuffer);
129
-
130
- console.log(` ✔ sdk-static.jpg (${(jpegBuffer.length / 1024).toFixed(1)}KB)`);
131
- console.log(` ✔ sdk-static.webp (${(webpBuffer.length / 1024).toFixed(1)}KB)\n`);
132
- } catch (err) {
133
- console.log(` ✖ Failed: ${err.message}\n`);
134
- }
135
-
136
- console.log('SDK tests complete!');
137
- }
138
-
139
- runTests().catch(console.error);
@@ -1,3 +0,0 @@
1
- {
2
- "title": "Welcome!"
3
- }
Binary file
@@ -1 +0,0 @@
1
- import '@inox-tools/astro-when';
@@ -1,15 +0,0 @@
1
- // This file is generated by Astro DB
2
- declare module 'astro:db' {
3
- export const Team: import("@astrojs/db/runtime").Table<
4
- "Team",
5
- {"id":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"id","collection":"Team","primaryKey":true}},"name":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"name","collection":"Team","primaryKey":false,"optional":false}},"slug":{"type":"text","schema":{"unique":true,"deprecated":false,"name":"slug","collection":"Team","primaryKey":false,"optional":false}},"createdAt":{"type":"date","schema":{"optional":false,"unique":false,"deprecated":false,"name":"createdAt","collection":"Team","default":"2025-11-21T18:59:54.504Z"}},"updatedAt":{"type":"date","schema":{"optional":false,"unique":false,"deprecated":false,"name":"updatedAt","collection":"Team","default":"2025-11-21T18:59:54.504Z"}}}
6
- >;
7
- export const UserTeam: import("@astrojs/db/runtime").Table<
8
- "UserTeam",
9
- {"id":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"id","collection":"UserTeam","primaryKey":true}},"userId":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"userId","collection":"UserTeam","primaryKey":false,"optional":false}},"teamId":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"teamId","collection":"UserTeam","primaryKey":false,"optional":false,"references":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"id","collection":"Team","primaryKey":true}}}},"role":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"role","collection":"UserTeam","default":"member","primaryKey":false,"optional":false}},"joinedAt":{"type":"date","schema":{"optional":false,"unique":false,"deprecated":false,"name":"joinedAt","collection":"UserTeam","default":"2025-11-21T18:59:54.504Z"}}}
10
- >;
11
- export const Loop: import("@astrojs/db/runtime").Table<
12
- "Loop",
13
- {"id":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"id","collection":"Loop","primaryKey":true}},"userId":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"userId","collection":"Loop","primaryKey":false,"optional":false}},"teamId":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"teamId","collection":"Loop","primaryKey":false,"optional":false,"references":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"id","collection":"Team","primaryKey":true}}}},"name":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"name","collection":"Loop","primaryKey":false,"optional":false}},"slug":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"slug","collection":"Loop","primaryKey":false,"optional":false}},"description":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"description","collection":"Loop","primaryKey":false,"optional":true}},"templateCode":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"templateCode","collection":"Loop","primaryKey":false,"optional":false}},"propsCode":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"propsCode","collection":"Loop","primaryKey":false,"optional":false}},"configCode":{"type":"text","schema":{"unique":false,"deprecated":false,"name":"configCode","collection":"Loop","primaryKey":false,"optional":true}},"isPublic":{"type":"boolean","schema":{"optional":false,"unique":false,"deprecated":false,"name":"isPublic","collection":"Loop","default":false}},"createdAt":{"type":"date","schema":{"optional":false,"unique":false,"deprecated":false,"name":"createdAt","collection":"Loop","default":"2025-11-21T18:59:54.504Z"}},"updatedAt":{"type":"date","schema":{"optional":false,"unique":false,"deprecated":false,"name":"updatedAt","collection":"Loop","default":"2025-11-21T18:59:54.504Z"}}}
14
- >;
15
- }
@@ -1,5 +0,0 @@
1
- {
2
- "_variables": {
3
- "lastUpdateCheck": 1763410784506
4
- }
5
- }
@@ -1,2 +0,0 @@
1
- /// <reference types="astro/client" />
2
- /// <reference path="integrations/_inox-tools_astro-when/types.d.ts" />
@@ -1,143 +0,0 @@
1
- # Deployment Guide
2
-
3
- This documentation website is configured for deployment on **Cloudflare Pages/Workers** with hybrid rendering.
4
-
5
- ## Quick Deploy
6
-
7
- ```bash
8
- cd website
9
-
10
- # Install dependencies
11
- npm install
12
-
13
- # Build and deploy
14
- npm run deploy
15
- ```
16
-
17
- ## What's Included
18
-
19
- ### 1. Dynamic OG Image Generation
20
-
21
- Every documentation page automatically generates its own Open Graph image using **loopwind SDK**.
22
-
23
- - **API Route**: `/api/og/[...slug].tsx`
24
- - **Format**: 1200x630 PNG
25
- - **Generation**: Pre-rendered at build time for known pages, generated on-demand for others
26
- - **Caching**: Immutable cache headers for optimal performance
27
-
28
- **Example URLs:**
29
- - `/api/og/sdk` → SDK page OG image
30
- - `/api/og/config` → Config page OG image
31
- - `/api/og/getting-started` → Getting Started OG image
32
-
33
- ### 2. Cloudflare Workers Adapter
34
-
35
- - **File**: `astro.config.mjs`
36
- - **Adapter**: `@astrojs/cloudflare`
37
- - **Output**: Hybrid (SSG + SSR)
38
- - **Platform**: Cloudflare Workers with Assets
39
-
40
- ### 3. Build Configuration
41
-
42
- The Vite config externalizes Node.js built-ins for Cloudflare compatibility:
43
-
44
- ```javascript
45
- vite: {
46
- ssr: {
47
- external: ['node:fs', 'fs', 'path', etc.],
48
- noExternal: ['loopwind'], // Bundle loopwind SDK
49
- },
50
- }
51
- ```
52
-
53
- ## Deployment Steps
54
-
55
- ### First Time Setup
56
-
57
- 1. **Install Wrangler CLI** (if not already installed):
58
- ```bash
59
- npm install -g wrangler
60
- ```
61
-
62
- 2. **Login to Cloudflare**:
63
- ```bash
64
- npx wrangler login
65
- ```
66
-
67
- 3. **Build and Deploy**:
68
- ```bash
69
- npm run deploy
70
- ```
71
-
72
- ### Subsequent Deployments
73
-
74
- Just run:
75
-
76
- ```bash
77
- npm run deploy
78
- ```
79
-
80
- Or separately:
81
-
82
- ```bash
83
- npm run build
84
- npm run cf:deploy
85
- ```
86
-
87
- ## Environment
88
-
89
- - **Node.js**: 18+ recommended
90
- - **Package Manager**: npm
91
- - **Platform**: Cloudflare Workers + Assets
92
- - **Build Time**: ~2-3 seconds
93
-
94
- ## Performance
95
-
96
- - **Build**: ~2.7s
97
- - **OG Images**: Generated at build time (< 100ms each)
98
- - **Caching**: Immutable cache headers for all OG images
99
- - **CDN**: Cloudflare's global network
100
-
101
- ## Verify Deployment
102
-
103
- After deployment, test:
104
-
105
- 1. **Home page**: `https://your-domain.com`
106
- 2. **OG image**: `https://your-domain.com/api/og/sdk`
107
- 3. **API routes**: All `/api/*` routes should work
108
-
109
- ## Troubleshooting
110
-
111
- ### Build Fails
112
-
113
- - Check Node.js version (18+)
114
- - Run `npm install` to ensure dependencies are up to date
115
- - Check `npm run build` output for errors
116
-
117
- ### OG Images Not Generating
118
-
119
- - Verify loopwind is installed: `npm list loopwind`
120
- - Check `/api/og/[...slug].tsx` is present
121
- - Test locally: `npm run dev` then visit `http://localhost:4321/api/og/sdk`
122
-
123
- ### Cloudflare Deploy Fails
124
-
125
- - Ensure you're logged in: `npx wrangler whoami`
126
- - Check `wrangler.toml` configuration (should not exist for Pages)
127
- - Verify Cloudflare account has Pages enabled
128
-
129
- ## Local Development
130
-
131
- ```bash
132
- npm run dev
133
- # Visit: http://localhost:4321
134
- # Test OG: http://localhost:4321/api/og/sdk
135
- ```
136
-
137
- ## Documentation
138
-
139
- - [loopwind SDK Docs](/sdk)
140
- - [OG Images Setup](./OG_IMAGES.md)
141
- - [Cloudflare Astro Guide](https://developers.cloudflare.com/workers/framework-guides/web-apps/astro/)
142
-
143
-
@@ -1,142 +0,0 @@
1
- # Dynamic OG Image Generation with loopwind SDK
2
-
3
- This website generates Open Graph images dynamically for each documentation page using the **loopwind SDK**.
4
-
5
- ## How It Works
6
-
7
- 1. **API Route**: `/src/pages/api/og/[...slug].ts`
8
- - Uses `loopwind/sdk` to define and render OG image templates
9
- - Generates 1200x630 PNG images on-the-fly
10
- - Pre-renders images at build time for all known pages
11
- - Falls back to runtime generation for unknown pages
12
-
13
- 2. **Base Layout**: `/src/layouts/BaseLayout.astro`
14
- - Automatically generates OG image URL from page slug
15
- - Format: `/api/og/{page-slug}`
16
- - Falls back to static image if custom image is provided
17
-
18
- 3. **Docs Layout**: `/src/layouts/DocsLayout.astro`
19
- - Same dynamic OG image generation
20
- - Integrated with all MDX documentation pages
21
-
22
- ## OG Image Template
23
-
24
- The template uses:
25
- - **loopwind SDK** with `defineTemplate()` and `renderImage()`
26
- - **shadcn/ui dark theme** colors
27
- - **Responsive design** with title, description, logo, and branding
28
- - **Static rendering** at build time for performance
29
-
30
- ## Page Metadata
31
-
32
- Page metadata is defined in the API route at `/src/pages/api/og/[...slug].ts`:
33
-
34
- ```typescript
35
- const pageMetadata: Record<string, { title: string; description: string }> = {
36
- 'index': {
37
- title: 'Getting Started',
38
- description: 'CLI-based Image & Video Generator',
39
- },
40
- 'sdk': {
41
- title: 'SDK',
42
- description: 'Use loopwind programmatically',
43
- },
44
- // ... more pages
45
- };
46
- ```
47
-
48
- ## Adding a New Page
49
-
50
- When you add a new MDX page, add its metadata to the `pageMetadata` object:
51
-
52
- ```typescript
53
- 'your-new-page': {
54
- title: 'Your Page Title',
55
- description: 'Your page description for OG image',
56
- },
57
- ```
58
-
59
- The OG image will be automatically generated and available at:
60
- - Build time: `/api/og/your-new-page` (pre-rendered)
61
- - Runtime: Generated on first request if not pre-rendered
62
-
63
- ## Testing OG Images
64
-
65
- **Local development:**
66
- ```bash
67
- npm run dev
68
- # Visit: http://localhost:4321/api/og/sdk
69
- ```
70
-
71
- **Check OG tags:**
72
- ```bash
73
- curl -I http://localhost:4321/api/og/sdk
74
- # Should return: Content-Type: image/png
75
- ```
76
-
77
- **View in browser:**
78
- Open any page and check the `<meta property="og:image">` tag in the HTML source.
79
-
80
- ## Benefits
81
-
82
- ✅ **Zero static assets** - No need to generate and commit OG images
83
- ✅ **Auto-updates** - OG images update when content changes
84
- ✅ **Consistent design** - All pages use the same template
85
- ✅ **Fast** - Pre-rendered at build time for production
86
- ✅ **SEO-friendly** - Proper OG tags for social sharing
87
- ✅ **Type-safe** - Full TypeScript support with loopwind SDK
88
-
89
- ## Performance
90
-
91
- - **Build time**: ~50-100ms per image
92
- - **Runtime**: Cached with `immutable` headers
93
- - **Size**: ~50-80KB per PNG
94
- - **Format**: 1200x630 PNG (standard OG size)
95
-
96
- ## Example Usage
97
-
98
- Every MDX page automatically gets an OG image:
99
-
100
- ```astro
101
- ---
102
- layout: ../layouts/DocsLayout.astro
103
- title: My Page Title
104
- description: My page description
105
- ---
106
-
107
- # My Page
108
-
109
- Content here...
110
- ```
111
-
112
- This automatically generates:
113
- - OG image at `/api/og/my-page`
114
- - Meta tags: `<meta property="og:image" content="https://loopwind.dev/api/og/my-page" />`
115
- - Pre-rendered at build time for Cloudflare deployment
116
-
117
- ## Customization
118
-
119
- To customize the OG image template, edit `/src/pages/api/og/[...slug].ts`:
120
-
121
- ```typescript
122
- const ogTemplate = defineTemplate({
123
- name: 'loopwind-og',
124
- size: { width: 1200, height: 630 },
125
- config: {
126
- colors: {
127
- // Your custom colors
128
- },
129
- },
130
- render: ({ tw, title, description }) => (
131
- // Your custom JSX
132
- ),
133
- });
134
- ```
135
-
136
- ## Related Documentation
137
-
138
- - [loopwind SDK](/sdk) - Using loopwind programmatically
139
- - [Styling](/styling) - Tailwind CSS styling guide
140
- - [Config](/config) - loopwind.json configuration
141
-
142
-
package/website/README.md DELETED
@@ -1,158 +0,0 @@
1
- # loopwind Documentation Website
2
-
3
- This is the documentation website for loopwind, built with [Astro](https://astro.build/) and styled with [Tailwind CSS 4](https://tailwindcss.com/) using shadcn/ui design tokens.
4
-
5
- ## Features
6
-
7
- - **Dynamic OG Images**: Each page generates its own Open Graph image on-the-fly using the loopwind SDK
8
- - **Dark Theme**: Beautiful dark mode optimized for readability
9
- - **Responsive Design**: Works perfectly on desktop, tablet, and mobile
10
- - **AI-Friendly**: Copy raw markdown for LLM context
11
-
12
- ## Development
13
-
14
- Install dependencies:
15
-
16
- ```bash
17
- cd website
18
- npm install
19
- ```
20
-
21
- Start the dev server:
22
-
23
- ```bash
24
- npm run dev
25
- ```
26
-
27
- Open http://localhost:4321
28
-
29
- ## Build
30
-
31
- Build for production:
32
-
33
- ```bash
34
- npm run build
35
- ```
36
-
37
- Preview the build:
38
-
39
- ```bash
40
- npm run preview
41
- ```
42
-
43
- ## Dynamic OG Images
44
-
45
- Each documentation page automatically gets a custom OG image generated using the loopwind SDK. The images are:
46
-
47
- - Generated at build time (pre-rendered)
48
- - Cached indefinitely
49
- - Customized per page with title and description
50
-
51
- The OG image API route is at `src/pages/api/og/[...slug].ts`.
52
-
53
- ## Deployment
54
-
55
- ### Netlify (Current)
56
-
57
- This site is configured to deploy on Netlify. The `netlify.toml` file in the root directory handles the configuration.
58
-
59
- **Netlify Settings:**
60
- - Base directory: `website`
61
- - Build command: `npm run build`
62
- - Publish directory: `dist`
63
-
64
- Just connect your GitHub repo to Netlify and it will automatically deploy!
65
-
66
- ### Other Platforms
67
-
68
- You can also deploy to:
69
- - **Vercel**: Connect repo, set build settings
70
- - **Cloudflare Pages**: Install `@astrojs/cloudflare` adapter
71
- - **GitHub Pages**: May need additional configuration
72
-
73
- ## Adding Documentation
74
-
75
- Documentation pages are in `src/pages/` as `.mdx` files. They use the `DocsLayout` for consistent styling and navigation.
76
-
77
- To add a new page:
78
-
79
- 1. Create `src/pages/your-page.mdx`
80
- 2. Add frontmatter:
81
- ```yaml
82
- ---
83
- layout: ../layouts/DocsLayout.astro
84
- title: Your Page Title
85
- description: Page description
86
- ---
87
- ```
88
- 3. Add to navigation in `src/layouts/DocsLayout.astro`
89
- 4. Add metadata to `src/pages/api/og/[...slug].ts` for OG images
90
-
91
- ## Styling
92
-
93
- The site uses **Tailwind CSS 4** with shadcn/ui-inspired design tokens defined in `src/styles/global.css`:
94
-
95
- - Dark theme optimized for readability
96
- - Semantic color names (`background`, `foreground`, `muted`, `accent`, etc.)
97
- - Consistent spacing and typography
98
- - Custom brand gradient for the logo
99
-
100
- All styles use Tailwind utility classes and the `@theme` directive for design tokens.
101
-
102
- ## Structure
103
-
104
- ```
105
- website/
106
- ├── src/
107
- │ ├── components/
108
- │ │ ├── Hero.astro # Home page hero
109
- │ │ ├── Logo.astro # loopwind logo
110
- │ │ └── CodeVideoDemo.astro # Code + video side-by-side
111
- │ ├── layouts/
112
- │ │ ├── BaseLayout.astro # Base HTML with meta tags
113
- │ │ └── DocsLayout.astro # Docs with sidebar
114
- │ ├── pages/
115
- │ │ ├── index.mdx # Getting Started
116
- │ │ ├── getting-started.mdx # Installation guide
117
- │ │ ├── templates.mdx # Installing Templates
118
- │ │ ├── images.mdx # Image Rendering
119
- │ │ ├── video.mdx # Video Rendering
120
- │ │ ├── animation.mdx # Animation Classes
121
- │ │ ├── helpers.mdx # QR & Composition
122
- │ │ ├── styling.mdx # Tailwind & shadcn/ui
123
- │ │ ├── fonts.mdx # Font Handling
124
- │ │ ├── config.mdx # loopwind.json reference
125
- │ │ ├── agents.mdx # AI Agents & Cursor
126
- │ │ ├── sdk.mdx # Programmatic SDK
127
- │ │ ├── preview.mdx # Preview Mode
128
- │ │ ├── llm.txt.ts # Combined docs endpoint
129
- │ │ └── api/
130
- │ │ ├── og/[...slug].ts # Dynamic OG image generation
131
- │ │ └── raw-markdown/[...path].ts # Raw markdown API
132
- │ └── styles/
133
- │ └── global.css # Tailwind 4 + design tokens
134
- ├── public/
135
- │ ├── favicon.svg
136
- │ ├── demo-intro.mp4 # Generated demo video
137
- │ └── robots.txt
138
- ├── scripts/
139
- │ └── generate-demo-video.mjs # Script to generate demo
140
- ├── astro.config.mjs # Includes @tailwindcss/vite
141
- ├── package.json
142
- └── tsconfig.json
143
- ```
144
-
145
- ## Technologies
146
-
147
- - **[Astro](https://astro.build/)** - Static site generator
148
- - **[Tailwind CSS 4](https://tailwindcss.com/)** - Utility-first CSS
149
- - **[MDX](https://mdxjs.com/)** - Markdown with JSX
150
- - **[loopwind SDK](https://loopwind.dev/sdk)** - Dynamic OG image generation
151
- - **[shadcn/ui](https://ui.shadcn.com/)** - Design system tokens
152
-
153
- ## Performance
154
-
155
- - Fast page loads with Astro's static generation
156
- - Pre-rendered OG images for instant social previews
157
- - Optimized fonts and assets
158
- - Minimal JavaScript bundle
@@ -1,46 +0,0 @@
1
- import { defineConfig } from 'astro/config';
2
- import mdx from '@astrojs/mdx';
3
- import tailwindcss from '@tailwindcss/vite';
4
- import cloudflare from '@astrojs/cloudflare';
5
- import react from '@astrojs/react';
6
-
7
- // https://astro.build/config
8
- export default defineConfig({
9
- site: 'https://loopwind.dev',
10
- output: 'hybrid',
11
- adapter: cloudflare({
12
- platformProxy: {
13
- enabled: true,
14
- },
15
- }),
16
- integrations: [mdx(), react()],
17
- vite: {
18
- plugins: [tailwindcss()],
19
- ssr: {
20
- external: [
21
- 'node:fs/promises',
22
- 'node:fs',
23
- 'node:path',
24
- 'fs',
25
- 'fs/promises',
26
- 'path',
27
- 'loopwind',
28
- '@resvg/resvg-js',
29
- '@resvg/resvg-js-darwin-arm64',
30
- '@resvg/resvg-js-darwin-x64',
31
- '@resvg/resvg-js-linux-arm64-gnu',
32
- '@resvg/resvg-js-linux-x64-gnu',
33
- '@resvg/resvg-js-win32-x64-msvc',
34
- ],
35
- },
36
- optimizeDeps: {
37
- exclude: ['loopwind', '@resvg/resvg-js'],
38
- },
39
- },
40
- markdown: {
41
- shikiConfig: {
42
- theme: 'github-dark',
43
- },
44
- },
45
- });
46
-
@@ -1,5 +0,0 @@
1
- # Place demo videos here
2
- # Generate with: loopwind render video-intro '{"title":"loopwind","subtitle":"Generate videos with React + Tailwind"}' --out public/demo-intro.mp4
3
-
4
-
5
-