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.
- package/README.md +13 -117
- package/dist/cli.js +16 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +6 -10
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agent.d.ts +8 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +101 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +17 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/render.d.ts.map +1 -1
- package/dist/commands/render.js +17 -19
- package/dist/commands/render.js.map +1 -1
- package/dist/default-templates/AGENTS.md +10 -24
- package/dist/lib/config.d.ts +2 -3
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +4 -9
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +1 -3
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +2 -4
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/installer.d.ts +2 -0
- package/dist/lib/installer.d.ts.map +1 -1
- package/dist/lib/installer.js +6 -7
- package/dist/lib/installer.js.map +1 -1
- package/dist/lib/renderer.d.ts.map +1 -1
- package/dist/lib/renderer.js +14 -8
- package/dist/lib/renderer.js.map +1 -1
- package/dist/lib/resvg-init.d.ts +15 -0
- package/dist/lib/resvg-init.d.ts.map +1 -0
- package/dist/lib/resvg-init.js +55 -0
- package/dist/lib/resvg-init.js.map +1 -0
- package/dist/lib/tailwind/colors.d.ts +8 -0
- package/dist/lib/tailwind/colors.d.ts.map +1 -0
- package/dist/lib/tailwind/colors.js +102 -0
- package/dist/lib/tailwind/colors.js.map +1 -0
- package/dist/lib/tailwind/index.d.ts +10 -0
- package/dist/lib/tailwind/index.d.ts.map +1 -0
- package/dist/lib/tailwind/index.js +9 -0
- package/dist/lib/tailwind/index.js.map +1 -0
- package/dist/lib/tailwind/resolvers.d.ts +28 -0
- package/dist/lib/tailwind/resolvers.d.ts.map +1 -0
- package/dist/lib/tailwind/resolvers.js +94 -0
- package/dist/lib/tailwind/resolvers.js.map +1 -0
- package/dist/lib/tailwind/types.d.ts +29 -0
- package/dist/lib/tailwind/types.d.ts.map +1 -0
- package/dist/lib/tailwind/types.js +8 -0
- package/dist/lib/tailwind/types.js.map +1 -0
- package/dist/lib/tailwind-config-loader.d.ts +8 -45
- package/dist/lib/tailwind-config-loader.d.ts.map +1 -1
- package/dist/lib/tailwind-config-loader.js +6 -429
- package/dist/lib/tailwind-config-loader.js.map +1 -1
- package/dist/lib/tailwind.d.ts +1 -1
- package/dist/lib/tailwind.d.ts.map +1 -1
- package/dist/lib/tailwind.js +1 -1
- package/dist/lib/tailwind.js.map +1 -1
- package/dist/lib/utils.d.ts +13 -29
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +45 -155
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/video-renderer.d.ts.map +1 -1
- package/dist/lib/video-renderer.js +6 -5
- package/dist/lib/video-renderer.js.map +1 -1
- package/dist/types/config.d.ts +0 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/package.json +2 -12
- package/REGISTRY_SETUP.md +0 -363
- package/_dsgn/templates/dashed-stroke-test/template.tsx +0 -73
- package/_dsgn/templates/path-follow-test/template.tsx +0 -176
- package/_dsgn/templates/path-simple-test/template.tsx +0 -98
- package/_dsgn/templates/stroke-dash-test/meta.json +0 -12
- package/_dsgn/templates/stroke-dash-test/template.tsx +0 -53
- package/dist/default-templates/image/template.d.ts +0 -20
- package/dist/default-templates/image/template.d.ts.map +0 -1
- package/dist/default-templates/image/template.js +0 -18
- package/dist/default-templates/image/template.js.map +0 -1
- package/dist/default-templates/image/template.tsx +0 -20
- package/dist/default-templates/kitchen-sink/template.tsx +0 -64
- package/dist/default-templates/page/template.tsx +0 -37
- package/dist/default-templates/video/template.d.ts +0 -26
- package/dist/default-templates/video/template.d.ts.map +0 -1
- package/dist/default-templates/video/template.js +0 -33
- package/dist/default-templates/video/template.js.map +0 -1
- package/dist/default-templates/video/template.tsx +0 -37
- package/dist/default-templates/website/pages/home.tsx +0 -17
- package/dist/default-templates/website/parts/footer.tsx +0 -17
- package/dist/default-templates/website/parts/header.tsx +0 -17
- package/dist/default-templates/website/template.tsx +0 -17
- package/dist/default-templates/website-template/pages/home.tsx +0 -13
- package/dist/default-templates/website-template/parts/footer.tsx +0 -15
- package/dist/default-templates/website-template/parts/header.tsx +0 -15
- package/dist/default-templates/website-template/template.tsx +0 -32
- package/dist/lib/encode-worker.d.ts +0 -2
- package/dist/lib/encode-worker.d.ts.map +0 -1
- package/dist/lib/encode-worker.js +0 -29
- package/dist/lib/encode-worker.js.map +0 -1
- package/dist/lib/mjpeg-muxer.d.ts +0 -46
- package/dist/lib/mjpeg-muxer.d.ts.map +0 -1
- package/dist/lib/mjpeg-muxer.js +0 -513
- package/dist/lib/mjpeg-muxer.js.map +0 -1
- package/dist/lib/tailwind-browser.d.ts +0 -27
- package/dist/lib/tailwind-browser.d.ts.map +0 -1
- package/dist/lib/tailwind-browser.js +0 -853
- package/dist/lib/tailwind-browser.js.map +0 -1
- package/dist/lib/video-player.d.ts +0 -25
- package/dist/lib/video-player.d.ts.map +0 -1
- package/dist/lib/video-player.js +0 -392
- package/dist/lib/video-player.js.map +0 -1
- package/dist/sdk/compiler.d.ts +0 -94
- package/dist/sdk/compiler.d.ts.map +0 -1
- package/dist/sdk/compiler.js +0 -122
- package/dist/sdk/compiler.js.map +0 -1
- package/dist/sdk/index.d.ts +0 -62
- package/dist/sdk/index.d.ts.map +0 -1
- package/dist/sdk/index.js +0 -141
- package/dist/sdk/index.js.map +0 -1
- package/dist/sdk/preview.d.ts +0 -65
- package/dist/sdk/preview.d.ts.map +0 -1
- package/dist/sdk/preview.js +0 -262
- package/dist/sdk/preview.js.map +0 -1
- package/dist/sdk/template.d.ts +0 -162
- package/dist/sdk/template.d.ts.map +0 -1
- package/dist/sdk/template.js +0 -231
- package/dist/sdk/template.js.map +0 -1
- package/examples/code-editor-templates.ts +0 -173
- package/examples/nextjs-api/README.md +0 -180
- package/examples/nextjs-api/package.json +0 -21
- package/examples/nextjs-api/pages/api/intro-video.ts +0 -53
- package/examples/nextjs-api/pages/api/og-image.ts +0 -50
- package/examples/nextjs-template-import.ts +0 -58
- package/examples/sdk-video-preview.tsx +0 -120
- package/examples/template-compiler-workflow.ts +0 -251
- package/examples/visual-builder-templates.ts +0 -336
- package/render-examples-600x400.mjs +0 -161
- package/render-spring-variants-fixed.mjs +0 -60
- package/render-staggered-text.mjs +0 -56
- package/test-font-files.mjs +0 -72
- package/test-jsx-support.mjs +0 -146
- package/test-sdk-config.mjs +0 -454
- package/test-sdk-source-config.mjs +0 -427
- package/test-sdk-user-templates.mjs +0 -469
- package/test-static-debug.tsx +0 -19
- package/test-templates/TESTS.md +0 -63
- package/test-templates/config-test.mjs +0 -17
- package/test-templates/demo-intro-props.json +0 -4
- package/test-templates/run-tests.sh +0 -44
- package/test-templates/test-sdk.mjs +0 -139
- package/test-video-props.json +0 -3
- package/website/.astro/content.db +0 -0
- package/website/.astro/integrations/_inox-tools_astro-when/types.d.ts +0 -1
- package/website/.astro/integrations/astro_db/db.d.ts +0 -15
- package/website/.astro/settings.json +0 -5
- package/website/.astro/types.d.ts +0 -2
- package/website/DEPLOYMENT.md +0 -143
- package/website/OG_IMAGES.md +0 -142
- package/website/README.md +0 -158
- package/website/astro.config.mjs +0 -46
- package/website/dist/.gitkeep +0 -5
- package/website/dist/_astro/agents.Yx-L_igG.css +0 -1
- package/website/dist/_routes.json +0 -30
- package/website/dist/_worker.js/_@astrojs-ssr-adapter.mjs +0 -1033
- package/website/dist/_worker.js/_astro-internal_middleware.mjs +0 -40
- package/website/dist/_worker.js/chunks/abap_BTmsHiP5.mjs +0 -1
- package/website/dist/_worker.js/chunks/actionscript-3_DmBelb1E.mjs +0 -1
- package/website/dist/_worker.js/chunks/ada_8-E0ahCN.mjs +0 -1
- package/website/dist/_worker.js/chunks/andromeeda_XI-CXx50.mjs +0 -1
- package/website/dist/_worker.js/chunks/angular-html_DKGh3gGH.mjs +0 -1
- package/website/dist/_worker.js/chunks/angular-ts_-qZGsJoA.mjs +0 -1
- package/website/dist/_worker.js/chunks/apache_ijTUt0Ee.mjs +0 -1
- package/website/dist/_worker.js/chunks/apex_agu1c6Sh.mjs +0 -1
- package/website/dist/_worker.js/chunks/apl_Bj2f7Art.mjs +0 -1
- package/website/dist/_worker.js/chunks/applescript_B_vXrOh3.mjs +0 -1
- package/website/dist/_worker.js/chunks/ara_DCEQ2rnh.mjs +0 -1
- package/website/dist/_worker.js/chunks/asciidoc_CGN_EkYS.mjs +0 -1
- package/website/dist/_worker.js/chunks/asm_BBWZgnDp.mjs +0 -1
- package/website/dist/_worker.js/chunks/astro/assets-service_j52rQLzU.mjs +0 -721
- package/website/dist/_worker.js/chunks/astro/server_Y5_QHO8v.mjs +0 -2401
- package/website/dist/_worker.js/chunks/astro-designed-error-pages_BNTLO-TA.mjs +0 -542
- package/website/dist/_worker.js/chunks/astro_Dr_hht3h.mjs +0 -1
- package/website/dist/_worker.js/chunks/aurora-x_9GHG8nSq.mjs +0 -1
- package/website/dist/_worker.js/chunks/awk_DHRvhXot.mjs +0 -1
- package/website/dist/_worker.js/chunks/ayu-dark_CcvqmEHE.mjs +0 -1
- package/website/dist/_worker.js/chunks/ballerina_C7SdeSZb.mjs +0 -1
- package/website/dist/_worker.js/chunks/bat_Dv4A3u45.mjs +0 -1
- package/website/dist/_worker.js/chunks/beancount_BfPf9Luv.mjs +0 -1
- package/website/dist/_worker.js/chunks/berry_B8rfM3lL.mjs +0 -1
- package/website/dist/_worker.js/chunks/bibtex_TcjYgtJM.mjs +0 -1
- package/website/dist/_worker.js/chunks/bicep_CrlFWCdN.mjs +0 -1
- package/website/dist/_worker.js/chunks/blade_lanKVYID.mjs +0 -1
- package/website/dist/_worker.js/chunks/bsl_BhppzXMB.mjs +0 -1
- package/website/dist/_worker.js/chunks/c_6FBALJTK.mjs +0 -1
- package/website/dist/_worker.js/chunks/cadence_2txU9LVE.mjs +0 -1
- package/website/dist/_worker.js/chunks/cairo_BkrFAIlP.mjs +0 -1
- package/website/dist/_worker.js/chunks/catppuccin-frappe_CkEqIYhU.mjs +0 -1
- package/website/dist/_worker.js/chunks/catppuccin-latte_DG4Gx_-v.mjs +0 -1
- package/website/dist/_worker.js/chunks/catppuccin-macchiato_Cwi3vCXf.mjs +0 -1
- package/website/dist/_worker.js/chunks/catppuccin-mocha_L9_OPlFX.mjs +0 -1
- package/website/dist/_worker.js/chunks/clarity_BEAe4Ulu.mjs +0 -1
- package/website/dist/_worker.js/chunks/clojure_VnUX6p2g.mjs +0 -1
- package/website/dist/_worker.js/chunks/cmake_0-SGkZEj.mjs +0 -1
- package/website/dist/_worker.js/chunks/cobol_92M_KGaE.mjs +0 -1
- package/website/dist/_worker.js/chunks/codeowners_CzMwskBv.mjs +0 -1
- package/website/dist/_worker.js/chunks/codeql_DWJZNHv1.mjs +0 -1
- package/website/dist/_worker.js/chunks/coffee_CQjKU2fh.mjs +0 -1
- package/website/dist/_worker.js/chunks/common-lisp_BBLWDpS5.mjs +0 -1
- package/website/dist/_worker.js/chunks/coq_hedRFV3D.mjs +0 -1
- package/website/dist/_worker.js/chunks/cpp_DlS1i6Zs.mjs +0 -1
- package/website/dist/_worker.js/chunks/crystal_D6n65fKV.mjs +0 -1
- package/website/dist/_worker.js/chunks/csharp_C6FCVFzc.mjs +0 -1
- package/website/dist/_worker.js/chunks/css_C5uJEgmJ.mjs +0 -1
- package/website/dist/_worker.js/chunks/csv_CtMYuuJl.mjs +0 -1
- package/website/dist/_worker.js/chunks/cue_BsPexqx6.mjs +0 -1
- package/website/dist/_worker.js/chunks/cypher_apzf6OBi.mjs +0 -1
- package/website/dist/_worker.js/chunks/d_DcvIRcgm.mjs +0 -1
- package/website/dist/_worker.js/chunks/dark-plus_C01ONtzj.mjs +0 -1
- package/website/dist/_worker.js/chunks/dart_WkzM5WrV.mjs +0 -1
- package/website/dist/_worker.js/chunks/dax_DjXAO5V4.mjs +0 -1
- package/website/dist/_worker.js/chunks/desktop_C92LCxdc.mjs +0 -1
- package/website/dist/_worker.js/chunks/diff_CVwM_9XJ.mjs +0 -1
- package/website/dist/_worker.js/chunks/docker_DPzgJf6Z.mjs +0 -1
- package/website/dist/_worker.js/chunks/dotenv_D_vgANvA.mjs +0 -1
- package/website/dist/_worker.js/chunks/dracula-soft_CLnUBwFm.mjs +0 -1
- package/website/dist/_worker.js/chunks/dracula_lBVpb6Lb.mjs +0 -1
- package/website/dist/_worker.js/chunks/dream-maker_DTLbzd_J.mjs +0 -1
- package/website/dist/_worker.js/chunks/edge_i54JYm3_.mjs +0 -1
- package/website/dist/_worker.js/chunks/elixir_BJCIjTu4.mjs +0 -1
- package/website/dist/_worker.js/chunks/elm_BbXD39-_.mjs +0 -1
- package/website/dist/_worker.js/chunks/emacs-lisp_pxa5cXaN.mjs +0 -1
- package/website/dist/_worker.js/chunks/erb_Ccjijeee.mjs +0 -1
- package/website/dist/_worker.js/chunks/erlang_B2VM_hi7.mjs +0 -1
- package/website/dist/_worker.js/chunks/everforest-dark_BxvIPBim.mjs +0 -1
- package/website/dist/_worker.js/chunks/everforest-light_B7VoyaJM.mjs +0 -1
- package/website/dist/_worker.js/chunks/fennel_D-uo7X6c.mjs +0 -1
- package/website/dist/_worker.js/chunks/fish_BjePoK3m.mjs +0 -1
- package/website/dist/_worker.js/chunks/fluent_C8fgkzLX.mjs +0 -1
- package/website/dist/_worker.js/chunks/fortran-fixed-form_D1pu5zrc.mjs +0 -1
- package/website/dist/_worker.js/chunks/fortran-free-form_CSGOhJD6.mjs +0 -1
- package/website/dist/_worker.js/chunks/fsharp_B0xy-A4Y.mjs +0 -1
- package/website/dist/_worker.js/chunks/gdresource_CWppjlHq.mjs +0 -1
- package/website/dist/_worker.js/chunks/gdscript_eQCHchcS.mjs +0 -1
- package/website/dist/_worker.js/chunks/gdshader_C4kxepX7.mjs +0 -1
- package/website/dist/_worker.js/chunks/genie_ACtQLcDW.mjs +0 -1
- package/website/dist/_worker.js/chunks/gherkin_BFp2uKUd.mjs +0 -1
- package/website/dist/_worker.js/chunks/git-commit_CLg9ZwMV.mjs +0 -1
- package/website/dist/_worker.js/chunks/git-rebase_DG8A80Nt.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-dark-default_BI0EP2Kv.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-dark-dimmed_a_NIC0Xb.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-dark-high-contrast_jZGqT7hk.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-dark_CHCDNd2O.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-light-default_DRbOW5RG.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-light-high-contrast_tn_kWutM.mjs +0 -1
- package/website/dist/_worker.js/chunks/github-light_D9brYzot.mjs +0 -1
- package/website/dist/_worker.js/chunks/gleam_Dmhu1oxW.mjs +0 -1
- package/website/dist/_worker.js/chunks/glimmer-js_BfZbXy8A.mjs +0 -1
- package/website/dist/_worker.js/chunks/glimmer-ts_B9QVICrD.mjs +0 -1
- package/website/dist/_worker.js/chunks/glsl_DD2PPwOs.mjs +0 -1
- package/website/dist/_worker.js/chunks/gnuplot_D2OYChUX.mjs +0 -1
- package/website/dist/_worker.js/chunks/go_DYGFTe3h.mjs +0 -1
- package/website/dist/_worker.js/chunks/graphql_B7XsT3nH.mjs +0 -1
- package/website/dist/_worker.js/chunks/groovy_BO12Uwkl.mjs +0 -1
- package/website/dist/_worker.js/chunks/hack_CB2_ztCP.mjs +0 -1
- package/website/dist/_worker.js/chunks/haml_CyfDcDD3.mjs +0 -1
- package/website/dist/_worker.js/chunks/handlebars_CfpxpWm2.mjs +0 -1
- package/website/dist/_worker.js/chunks/haskell_jUeC5uN5.mjs +0 -1
- package/website/dist/_worker.js/chunks/haxe_B6GxP1WB.mjs +0 -1
- package/website/dist/_worker.js/chunks/hcl_DwoHV2oh.mjs +0 -1
- package/website/dist/_worker.js/chunks/hjson_DV7cJRk4.mjs +0 -1
- package/website/dist/_worker.js/chunks/hlsl_BlFCscPI.mjs +0 -1
- package/website/dist/_worker.js/chunks/houston_COBFG1Mx.mjs +0 -1
- package/website/dist/_worker.js/chunks/html-derivative_C9pJ337h.mjs +0 -1
- package/website/dist/_worker.js/chunks/html_D1OkrZS5.mjs +0 -1
- package/website/dist/_worker.js/chunks/http_DIGXRqvJ.mjs +0 -1
- package/website/dist/_worker.js/chunks/hxml_DEwh9i-c.mjs +0 -1
- package/website/dist/_worker.js/chunks/hy_DDoIgW1K.mjs +0 -1
- package/website/dist/_worker.js/chunks/imba_B00zbHo4.mjs +0 -1
- package/website/dist/_worker.js/chunks/index_C1UTDwYg.mjs +0 -1861
- package/website/dist/_worker.js/chunks/ini_D7XQA_p8.mjs +0 -1
- package/website/dist/_worker.js/chunks/java_B9wdFd8K.mjs +0 -1
- package/website/dist/_worker.js/chunks/javascript_CLsPGOON.mjs +0 -1
- package/website/dist/_worker.js/chunks/jinja_jarBCAN1.mjs +0 -1
- package/website/dist/_worker.js/chunks/jison_oGg3J708.mjs +0 -1
- package/website/dist/_worker.js/chunks/json5_DlZ1Kyaa.mjs +0 -1
- package/website/dist/_worker.js/chunks/json_DaYk_FMp.mjs +0 -1
- package/website/dist/_worker.js/chunks/jsonc_DlwgfSDs.mjs +0 -1
- package/website/dist/_worker.js/chunks/jsonl_BbCCVaZF.mjs +0 -1
- package/website/dist/_worker.js/chunks/jsonnet_Dt-G75xe.mjs +0 -1
- package/website/dist/_worker.js/chunks/jssm_BtKFTj2A.mjs +0 -1
- package/website/dist/_worker.js/chunks/jsx_DDx_xAZ8.mjs +0 -1
- package/website/dist/_worker.js/chunks/julia_CK0lv68l.mjs +0 -1
- package/website/dist/_worker.js/chunks/kanagawa-dragon_BldAK3Oo.mjs +0 -1
- package/website/dist/_worker.js/chunks/kanagawa-lotus_DVM8FX9_.mjs +0 -1
- package/website/dist/_worker.js/chunks/kanagawa-wave_Dpih0AKP.mjs +0 -1
- package/website/dist/_worker.js/chunks/kotlin_kWneB9V_.mjs +0 -1
- package/website/dist/_worker.js/chunks/kusto_BKVATd95.mjs +0 -1
- package/website/dist/_worker.js/chunks/laserwave_BqatxsVl.mjs +0 -1
- package/website/dist/_worker.js/chunks/latex_LVDcGBbc.mjs +0 -1
- package/website/dist/_worker.js/chunks/lean_W7qo-5M2.mjs +0 -1
- package/website/dist/_worker.js/chunks/less_DFNwJnBH.mjs +0 -1
- package/website/dist/_worker.js/chunks/light-plus_Dp0AoWsO.mjs +0 -1
- package/website/dist/_worker.js/chunks/liquid_D24qs0pc.mjs +0 -1
- package/website/dist/_worker.js/chunks/log_IPWMXriF.mjs +0 -1
- package/website/dist/_worker.js/chunks/logo_C6KaatrQ.mjs +0 -1
- package/website/dist/_worker.js/chunks/lua_CwnEf-T7.mjs +0 -1
- package/website/dist/_worker.js/chunks/luau_Br3-CXjS.mjs +0 -1
- package/website/dist/_worker.js/chunks/make_UBNG-kOo.mjs +0 -1
- package/website/dist/_worker.js/chunks/markdown_C7mhJFCm.mjs +0 -1
- package/website/dist/_worker.js/chunks/marko_4tchUvI7.mjs +0 -1
- package/website/dist/_worker.js/chunks/material-theme-darker_SKtaNEPn.mjs +0 -1
- package/website/dist/_worker.js/chunks/material-theme-lighter_zOX_DZCH.mjs +0 -1
- package/website/dist/_worker.js/chunks/material-theme-ocean_BN9WbhdC.mjs +0 -1
- package/website/dist/_worker.js/chunks/material-theme-palenight_DT_covjH.mjs +0 -1
- package/website/dist/_worker.js/chunks/material-theme_6RpeM3kc.mjs +0 -1
- package/website/dist/_worker.js/chunks/matlab_DCOXsPKR.mjs +0 -1
- package/website/dist/_worker.js/chunks/mdc_B9gb2UFP.mjs +0 -1
- package/website/dist/_worker.js/chunks/mdx_DGU7Nu9u.mjs +0 -1
- package/website/dist/_worker.js/chunks/mermaid_B69URzsZ.mjs +0 -1
- package/website/dist/_worker.js/chunks/min-dark_BgxifOMI.mjs +0 -1
- package/website/dist/_worker.js/chunks/min-light_BrPjXxUp.mjs +0 -1
- package/website/dist/_worker.js/chunks/mipsasm_9U-4_t7k.mjs +0 -1
- package/website/dist/_worker.js/chunks/mojo_B0wt7ug3.mjs +0 -1
- package/website/dist/_worker.js/chunks/monokai_B6Pxpoyi.mjs +0 -1
- package/website/dist/_worker.js/chunks/move_1eid4CyR.mjs +0 -1
- package/website/dist/_worker.js/chunks/narrat_Ds6-p5JZ.mjs +0 -1
- package/website/dist/_worker.js/chunks/nextflow_v2N1Qlqa.mjs +0 -1
- package/website/dist/_worker.js/chunks/nginx_Bp9Ab2NH.mjs +0 -1
- package/website/dist/_worker.js/chunks/night-owl_CdwOw_sc.mjs +0 -1
- package/website/dist/_worker.js/chunks/nim_BXGDUe53.mjs +0 -1
- package/website/dist/_worker.js/chunks/nix_CUig1nJH.mjs +0 -1
- package/website/dist/_worker.js/chunks/noop-middleware_DlWGj5t5.mjs +0 -10
- package/website/dist/_worker.js/chunks/nord_SPoG1iae.mjs +0 -1
- package/website/dist/_worker.js/chunks/nushell_DJw1Lca8.mjs +0 -1
- package/website/dist/_worker.js/chunks/objective-c_Bktzl_CO.mjs +0 -1
- package/website/dist/_worker.js/chunks/objective-cpp_CP4DWdDp.mjs +0 -1
- package/website/dist/_worker.js/chunks/ocaml_CeEAs7bZ.mjs +0 -1
- package/website/dist/_worker.js/chunks/one-dark-pro_-hIwCNMi.mjs +0 -1
- package/website/dist/_worker.js/chunks/one-light_DSmYvJ05.mjs +0 -1
- package/website/dist/_worker.js/chunks/pascal_C-S_Ms_o.mjs +0 -1
- package/website/dist/_worker.js/chunks/perl_CKamvo15.mjs +0 -1
- package/website/dist/_worker.js/chunks/php_BlmcX_F3.mjs +0 -1
- package/website/dist/_worker.js/chunks/plastic_Ryt8tVoA.mjs +0 -1
- package/website/dist/_worker.js/chunks/plsql_Cb3v7cBj.mjs +0 -1
- package/website/dist/_worker.js/chunks/po_DZbdNRlo.mjs +0 -1
- package/website/dist/_worker.js/chunks/poimandres_bYmE3_5d.mjs +0 -1
- package/website/dist/_worker.js/chunks/polar_pJkMGwoW.mjs +0 -1
- package/website/dist/_worker.js/chunks/postcss_BAXSOKgk.mjs +0 -1
- package/website/dist/_worker.js/chunks/powerquery_oITMGN4x.mjs +0 -1
- package/website/dist/_worker.js/chunks/powershell_6306-xIF.mjs +0 -1
- package/website/dist/_worker.js/chunks/prisma_DSDxnZGz.mjs +0 -1
- package/website/dist/_worker.js/chunks/prolog_CxG7tjZR.mjs +0 -1
- package/website/dist/_worker.js/chunks/proto_CS9ByXm1.mjs +0 -1
- package/website/dist/_worker.js/chunks/pug_BMtLJo6U.mjs +0 -1
- package/website/dist/_worker.js/chunks/puppet_BfeeSzee.mjs +0 -1
- package/website/dist/_worker.js/chunks/purescript_BFfueNaH.mjs +0 -1
- package/website/dist/_worker.js/chunks/python_Cc4Faapv.mjs +0 -1
- package/website/dist/_worker.js/chunks/qml_C1CTJTK8.mjs +0 -1
- package/website/dist/_worker.js/chunks/qmldir_nG1KaqKR.mjs +0 -1
- package/website/dist/_worker.js/chunks/qss_Cncxk263.mjs +0 -1
- package/website/dist/_worker.js/chunks/r_ChR54Ihi.mjs +0 -1
- package/website/dist/_worker.js/chunks/racket_BDrhptDs.mjs +0 -1
- package/website/dist/_worker.js/chunks/raku_07OUHa0P.mjs +0 -1
- package/website/dist/_worker.js/chunks/razor_DIP3INLa.mjs +0 -1
- package/website/dist/_worker.js/chunks/red_DOPXfj-6.mjs +0 -1
- package/website/dist/_worker.js/chunks/reg_B64SwEDj.mjs +0 -1
- package/website/dist/_worker.js/chunks/regexp_ButFGoB5.mjs +0 -1
- package/website/dist/_worker.js/chunks/rel_BWJAWqZD.mjs +0 -1
- package/website/dist/_worker.js/chunks/riscv_79gXlbsF.mjs +0 -1
- package/website/dist/_worker.js/chunks/rose-pine-dawn_DHIjVGd3.mjs +0 -1
- package/website/dist/_worker.js/chunks/rose-pine-moon_t86aEbs0.mjs +0 -1
- package/website/dist/_worker.js/chunks/rose-pine_BHgrcDCs.mjs +0 -1
- package/website/dist/_worker.js/chunks/rst_D3F4Fcpj.mjs +0 -1
- package/website/dist/_worker.js/chunks/ruby_Cs7vM9iv.mjs +0 -1
- package/website/dist/_worker.js/chunks/rust_DpyRVatH.mjs +0 -1
- package/website/dist/_worker.js/chunks/sas_DW45xZXN.mjs +0 -1
- package/website/dist/_worker.js/chunks/sass_C6SiMwN_.mjs +0 -1
- package/website/dist/_worker.js/chunks/scala_DlZOjNZk.mjs +0 -1
- package/website/dist/_worker.js/chunks/scheme_D2ezSJXu.mjs +0 -1
- package/website/dist/_worker.js/chunks/scss_DG5Spjqu.mjs +0 -1
- package/website/dist/_worker.js/chunks/sdbl_ZCYaj4VN.mjs +0 -1
- package/website/dist/_worker.js/chunks/shaderlab_CAcRkg1_.mjs +0 -1
- package/website/dist/_worker.js/chunks/shellscript_BWwhkDVh.mjs +0 -1
- package/website/dist/_worker.js/chunks/shellsession_BfEA3juK.mjs +0 -1
- package/website/dist/_worker.js/chunks/slack-dark_CL3lSpCc.mjs +0 -1
- package/website/dist/_worker.js/chunks/slack-ochin_DdZKOQVh.mjs +0 -1
- package/website/dist/_worker.js/chunks/smalltalk_DgilzSui.mjs +0 -1
- package/website/dist/_worker.js/chunks/snazzy-light_eJU08Pz_.mjs +0 -1
- package/website/dist/_worker.js/chunks/solarized-dark_Dg_YQywx.mjs +0 -1
- package/website/dist/_worker.js/chunks/solarized-light_BnIsrA6p.mjs +0 -1
- package/website/dist/_worker.js/chunks/solidity_DkseH8pQ.mjs +0 -1
- package/website/dist/_worker.js/chunks/soy_DU7bOYoG.mjs +0 -1
- package/website/dist/_worker.js/chunks/sparql_BuI1DBDH.mjs +0 -1
- package/website/dist/_worker.js/chunks/splunk_B8Ha9Pkg.mjs +0 -1
- package/website/dist/_worker.js/chunks/sql_BniHwea5.mjs +0 -1
- package/website/dist/_worker.js/chunks/ssh-config_CkE1GuVe.mjs +0 -1
- package/website/dist/_worker.js/chunks/stata_Dtqpbd_l.mjs +0 -1
- package/website/dist/_worker.js/chunks/stylus_CXTtglzO.mjs +0 -1
- package/website/dist/_worker.js/chunks/svelte_BjWYcUCN.mjs +0 -1
- package/website/dist/_worker.js/chunks/swift_BzHql_rM.mjs +0 -1
- package/website/dist/_worker.js/chunks/synthwave-84_DLRNhxNA.mjs +0 -1
- package/website/dist/_worker.js/chunks/system-verilog_ChyInPph.mjs +0 -1
- package/website/dist/_worker.js/chunks/systemd_Bi9Qa2qD.mjs +0 -1
- package/website/dist/_worker.js/chunks/talonscript_B3sH_Y-V.mjs +0 -1
- package/website/dist/_worker.js/chunks/tasl_BJ5yipRs.mjs +0 -1
- package/website/dist/_worker.js/chunks/tcl_CoJQjNoP.mjs +0 -1
- package/website/dist/_worker.js/chunks/templ_CrU7Ffil.mjs +0 -1
- package/website/dist/_worker.js/chunks/terraform_DT9JSFpC.mjs +0 -1
- package/website/dist/_worker.js/chunks/tex_5PKu2yA0.mjs +0 -1
- package/website/dist/_worker.js/chunks/tokyo-night_Buo8OK7-.mjs +0 -1
- package/website/dist/_worker.js/chunks/toml_CPuXX3oc.mjs +0 -1
- package/website/dist/_worker.js/chunks/ts-tags_D0M_1VSH.mjs +0 -1
- package/website/dist/_worker.js/chunks/tsv_CuivVNot.mjs +0 -1
- package/website/dist/_worker.js/chunks/tsx_MkuGr8MY.mjs +0 -1
- package/website/dist/_worker.js/chunks/turtle_BqgEPK7f.mjs +0 -1
- package/website/dist/_worker.js/chunks/twig_r1G9rpYJ.mjs +0 -1
- package/website/dist/_worker.js/chunks/typescript_Au5buqzM.mjs +0 -1
- package/website/dist/_worker.js/chunks/typespec_47rhBK_z.mjs +0 -1
- package/website/dist/_worker.js/chunks/typst_BAtuQLh-.mjs +0 -1
- package/website/dist/_worker.js/chunks/v_BIvWImHg.mjs +0 -1
- package/website/dist/_worker.js/chunks/vala_DYEacj30.mjs +0 -1
- package/website/dist/_worker.js/chunks/vb_CikQuqGJ.mjs +0 -1
- package/website/dist/_worker.js/chunks/verilog_BQRENwI-.mjs +0 -1
- package/website/dist/_worker.js/chunks/vesper_DA0kvTmj.mjs +0 -1
- package/website/dist/_worker.js/chunks/vhdl_DHscJIyg.mjs +0 -1
- package/website/dist/_worker.js/chunks/viml_F2pvMwvG.mjs +0 -1
- package/website/dist/_worker.js/chunks/vitesse-black_D9tjNzd0.mjs +0 -1
- package/website/dist/_worker.js/chunks/vitesse-dark_Bnm5d0hd.mjs +0 -1
- package/website/dist/_worker.js/chunks/vitesse-light_CHwbyjNR.mjs +0 -1
- package/website/dist/_worker.js/chunks/vue-html_DyYtbbMK.mjs +0 -1
- package/website/dist/_worker.js/chunks/vue_DofN6juy.mjs +0 -1
- package/website/dist/_worker.js/chunks/vyper_CiR0m-OV.mjs +0 -1
- package/website/dist/_worker.js/chunks/wasm_CwIGgRGf.mjs +0 -1
- package/website/dist/_worker.js/chunks/wasm_jKWhg0J0.mjs +0 -1
- package/website/dist/_worker.js/chunks/wenyan_DKvVZKXW.mjs +0 -1
- package/website/dist/_worker.js/chunks/wgsl_BOWZY7yw.mjs +0 -1
- package/website/dist/_worker.js/chunks/wikitext_CXDhhHPy.mjs +0 -1
- package/website/dist/_worker.js/chunks/wolfram_ChkmGnW0.mjs +0 -1
- package/website/dist/_worker.js/chunks/xml_DXH3hHIu.mjs +0 -1
- package/website/dist/_worker.js/chunks/xsl_DuP2mFjg.mjs +0 -1
- package/website/dist/_worker.js/chunks/yaml_IGiEkTge.mjs +0 -1
- package/website/dist/_worker.js/chunks/zenscript_59iXGyNw.mjs +0 -1
- package/website/dist/_worker.js/chunks/zig_DKzb0zdT.mjs +0 -1
- package/website/dist/_worker.js/index.js +0 -53
- package/website/dist/_worker.js/manifest_CT_D-YDe.mjs +0 -98
- package/website/dist/_worker.js/pages/_image.astro.mjs +0 -24
- package/website/dist/_worker.js/pages/agents.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/animation.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/api/raw-markdown/_---path_.astro.mjs +0 -44
- package/website/dist/_worker.js/pages/config.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/fonts.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/getting-started.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/helpers.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/images.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/index.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/llm.txt.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/preview.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/sdk.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/sitemap.xml.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/styling.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/templates.astro.mjs +0 -1
- package/website/dist/_worker.js/pages/video.astro.mjs +0 -1
- package/website/dist/_worker.js/renderers.mjs +0 -57
- package/website/dist/agents/index.html +0 -52
- package/website/dist/animation/index.html +0 -879
- package/website/dist/config/index.html +0 -184
- package/website/dist/fonts/index.html +0 -198
- package/website/dist/getting-started/index.html +0 -107
- package/website/dist/helpers/index.html +0 -164
- package/website/dist/images/index.html +0 -335
- package/website/dist/index.html +0 -140
- package/website/dist/llm.txt +0 -2776
- package/website/dist/preview/index.html +0 -111
- package/website/dist/robots.txt +0 -40
- package/website/dist/sdk/index.html +0 -1076
- package/website/dist/sitemap.xml +0 -76
- package/website/dist/styling/index.html +0 -366
- package/website/dist/templates/index.html +0 -74
- package/website/dist/video/index.html +0 -319
- package/website/package-lock.json +0 -8089
- package/website/package.json +0 -41
- package/website/public/.gitkeep +0 -5
- package/website/public/robots.txt +0 -40
- package/website/templates/og-image.tsx +0 -60
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { defineTemplate, renderVideo } from './dist/sdk/index.js';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
const { createElement: h } = React;
|
|
6
|
-
|
|
7
|
-
function createTemplateModule(meta, render) {
|
|
8
|
-
return { meta, default: render };
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const templates = [
|
|
12
|
-
// 1. Bouncing ball with spring
|
|
13
|
-
createTemplateModule(
|
|
14
|
-
{
|
|
15
|
-
name: 'bouncing-ball',
|
|
16
|
-
description: 'Bouncing ball with spring easing animation',
|
|
17
|
-
type: 'video',
|
|
18
|
-
size: { width: 600, height: 400 },
|
|
19
|
-
video: { fps: 60, duration: 4 },
|
|
20
|
-
},
|
|
21
|
-
({ tw }) =>
|
|
22
|
-
h('div', { style: tw('flex items-center justify-center w-full h-full bg-gradient-to-br from-blue-900 to-purple-900') },
|
|
23
|
-
h('div', { style: tw('w-48 h-48 rounded-full bg-gradient-to-br from-yellow-400 to-orange-500 shadow-2xl spring loop-translate-y-16/1000') })
|
|
24
|
-
)
|
|
25
|
-
),
|
|
26
|
-
|
|
27
|
-
// 2. Linear easing
|
|
28
|
-
createTemplateModule(
|
|
29
|
-
{
|
|
30
|
-
name: 'easing-linear',
|
|
31
|
-
description: 'Bouncing ball with linear easing (constant speed)',
|
|
32
|
-
type: 'video',
|
|
33
|
-
size: { width: 600, height: 400 },
|
|
34
|
-
video: { fps: 60, duration: 4 },
|
|
35
|
-
},
|
|
36
|
-
({ tw }) =>
|
|
37
|
-
h('div', { style: tw('flex flex-col items-center justify-center gap-6 w-full h-full bg-gradient-to-br from-slate-900 to-slate-800') },
|
|
38
|
-
h('div', { style: tw('w-32 h-32 rounded-full bg-gradient-to-br from-cyan-400 to-blue-500 shadow-2xl linear loop-translate-y-12/1000') }),
|
|
39
|
-
h('div', { style: tw('text-white text-2xl font-bold') }, 'Linear Easing'),
|
|
40
|
-
h('div', { style: tw('text-white/60 text-sm text-center max-w-md px-4') }, 'Constant speed')
|
|
41
|
-
)
|
|
42
|
-
),
|
|
43
|
-
|
|
44
|
-
// 3. Ease-in
|
|
45
|
-
createTemplateModule(
|
|
46
|
-
{
|
|
47
|
-
name: 'easing-ease-in',
|
|
48
|
-
description: 'Bouncing ball with ease-in (accelerating)',
|
|
49
|
-
type: 'video',
|
|
50
|
-
size: { width: 600, height: 400 },
|
|
51
|
-
video: { fps: 60, duration: 4 },
|
|
52
|
-
},
|
|
53
|
-
({ tw }) =>
|
|
54
|
-
h('div', { style: tw('flex flex-col items-center justify-center gap-6 w-full h-full bg-gradient-to-br from-emerald-900 to-teal-800') },
|
|
55
|
-
h('div', { style: tw('w-32 h-32 rounded-full bg-gradient-to-br from-emerald-400 to-green-500 shadow-2xl ease-in loop-translate-y-12/1000') }),
|
|
56
|
-
h('div', { style: tw('text-white text-2xl font-bold') }, 'Ease In'),
|
|
57
|
-
h('div', { style: tw('text-white/60 text-sm text-center max-w-md px-4') }, 'Slow start, fast end')
|
|
58
|
-
)
|
|
59
|
-
),
|
|
60
|
-
|
|
61
|
-
// 4. Ease-out
|
|
62
|
-
createTemplateModule(
|
|
63
|
-
{
|
|
64
|
-
name: 'easing-ease-out',
|
|
65
|
-
description: 'Bouncing ball with ease-out (decelerating)',
|
|
66
|
-
type: 'video',
|
|
67
|
-
size: { width: 600, height: 400 },
|
|
68
|
-
video: { fps: 60, duration: 4 },
|
|
69
|
-
},
|
|
70
|
-
({ tw }) =>
|
|
71
|
-
h('div', { style: tw('flex flex-col items-center justify-center gap-6 w-full h-full bg-gradient-to-br from-rose-900 to-pink-800') },
|
|
72
|
-
h('div', { style: tw('w-32 h-32 rounded-full bg-gradient-to-br from-rose-400 to-pink-500 shadow-2xl ease-out loop-translate-y-12/1000') }),
|
|
73
|
-
h('div', { style: tw('text-white text-2xl font-bold') }, 'Ease Out'),
|
|
74
|
-
h('div', { style: tw('text-white/60 text-sm text-center max-w-md px-4') }, 'Fast start, slow end')
|
|
75
|
-
)
|
|
76
|
-
),
|
|
77
|
-
|
|
78
|
-
// 5. Easing comparison (3 balls)
|
|
79
|
-
createTemplateModule(
|
|
80
|
-
{
|
|
81
|
-
name: 'easing-comparison',
|
|
82
|
-
description: 'Three balls with different easings side-by-side',
|
|
83
|
-
type: 'video',
|
|
84
|
-
size: { width: 600, height: 400 },
|
|
85
|
-
video: { fps: 60, duration: 4 },
|
|
86
|
-
},
|
|
87
|
-
({ tw }) =>
|
|
88
|
-
h('div', { style: tw('flex items-center justify-center gap-8 w-full h-full bg-gradient-to-br from-slate-900 to-gray-900 px-8') },
|
|
89
|
-
h('div', { style: tw('flex flex-col items-center gap-4') },
|
|
90
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-cyan-400 to-blue-500 shadow-2xl linear loop-translate-y-10/800') }),
|
|
91
|
-
h('div', { style: tw('text-white text-sm font-bold') }, 'Linear'),
|
|
92
|
-
h('div', { style: tw('text-white/50 text-xs') }, '800ms')
|
|
93
|
-
),
|
|
94
|
-
h('div', { style: tw('flex flex-col items-center gap-4') },
|
|
95
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-pink-400 to-rose-500 shadow-2xl ease-out loop-translate-y-10/1000') }),
|
|
96
|
-
h('div', { style: tw('text-white text-sm font-bold') }, 'Ease Out'),
|
|
97
|
-
h('div', { style: tw('text-white/50 text-xs') }, '1000ms')
|
|
98
|
-
),
|
|
99
|
-
h('div', { style: tw('flex flex-col items-center gap-4') },
|
|
100
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-yellow-400 to-orange-500 shadow-2xl spring loop-translate-y-10/1200') }),
|
|
101
|
-
h('div', { style: tw('text-white text-sm font-bold') }, 'Spring'),
|
|
102
|
-
h('div', { style: tw('text-white/50 text-xs') }, '1200ms')
|
|
103
|
-
)
|
|
104
|
-
)
|
|
105
|
-
),
|
|
106
|
-
|
|
107
|
-
// 6. Spring variants
|
|
108
|
-
createTemplateModule(
|
|
109
|
-
{
|
|
110
|
-
name: 'spring-variants',
|
|
111
|
-
description: 'Different spring configurations with varying bounce',
|
|
112
|
-
type: 'video',
|
|
113
|
-
size: { width: 600, height: 400 },
|
|
114
|
-
video: { fps: 60, duration: 4 },
|
|
115
|
-
},
|
|
116
|
-
({ tw }) =>
|
|
117
|
-
h('div', { style: tw('flex items-center justify-center gap-6 w-full h-full bg-gradient-to-br from-indigo-900 to-purple-900 px-6') },
|
|
118
|
-
h('div', { style: tw('flex flex-col items-center gap-3') },
|
|
119
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-blue-400 to-cyan-500 shadow-2xl spring/1/100/10 loop-translate-y-10/1000') }),
|
|
120
|
-
h('div', { style: tw('text-white text-xs font-bold') }, 'Gentle'),
|
|
121
|
-
h('div', { style: tw('text-white/50 text-[10px]') }, '1/100/10')
|
|
122
|
-
),
|
|
123
|
-
h('div', { style: tw('flex flex-col items-center gap-3') },
|
|
124
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-pink-400 to-rose-500 shadow-2xl spring/1/170/8 loop-translate-y-10/1000') }),
|
|
125
|
-
h('div', { style: tw('text-white text-xs font-bold') }, 'Bouncy'),
|
|
126
|
-
h('div', { style: tw('text-white/50 text-[10px]') }, '1/170/8')
|
|
127
|
-
),
|
|
128
|
-
h('div', { style: tw('flex flex-col items-center gap-3') },
|
|
129
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-emerald-400 to-green-500 shadow-2xl spring/1/200/15 loop-translate-y-10/1000') }),
|
|
130
|
-
h('div', { style: tw('text-white text-xs font-bold') }, 'Snappy'),
|
|
131
|
-
h('div', { style: tw('text-white/50 text-[10px]') }, '1/200/15')
|
|
132
|
-
)
|
|
133
|
-
)
|
|
134
|
-
),
|
|
135
|
-
];
|
|
136
|
-
|
|
137
|
-
async function renderAll() {
|
|
138
|
-
console.log('Rendering all examples at 600x400...\n');
|
|
139
|
-
|
|
140
|
-
for (let i = 0; i < templates.length; i++) {
|
|
141
|
-
const templateModule = templates[i];
|
|
142
|
-
const template = defineTemplate(templateModule);
|
|
143
|
-
const outputName = `example-${templateModule.meta.name}.mp4`;
|
|
144
|
-
const outputPath = `output/${outputName}`;
|
|
145
|
-
|
|
146
|
-
console.log(`📹 Rendering ${outputName}...`);
|
|
147
|
-
|
|
148
|
-
try {
|
|
149
|
-
const buffer = await renderVideo(template, {}, { quality: 20 });
|
|
150
|
-
await fs.writeFile(outputPath, buffer);
|
|
151
|
-
console.log(` ✔ ${outputName} (${(buffer.length / 1024).toFixed(1)}KB)\n`);
|
|
152
|
-
} catch (err) {
|
|
153
|
-
console.log(` ✖ Failed: ${err.message}\n`);
|
|
154
|
-
console.error(err);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
console.log('✅ All examples rendered at 600x400!');
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
renderAll().catch(console.error);
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { defineTemplate, renderVideo } from './dist/sdk/index.js';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
const { createElement: h } = React;
|
|
6
|
-
|
|
7
|
-
function createTemplateModule(meta, render) {
|
|
8
|
-
return { meta, default: render };
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// Spring variants with enter animations to show the bounce better
|
|
12
|
-
const springVariantsTemplate = createTemplateModule(
|
|
13
|
-
{
|
|
14
|
-
name: 'spring-variants',
|
|
15
|
-
description: 'Different spring configurations with varying bounce',
|
|
16
|
-
type: 'video',
|
|
17
|
-
size: { width: 600, height: 400 },
|
|
18
|
-
video: { fps: 60, duration: 3 },
|
|
19
|
-
},
|
|
20
|
-
({ tw }) =>
|
|
21
|
-
h('div', { style: tw('flex items-center justify-center gap-6 w-full h-full bg-gradient-to-br from-indigo-900 to-purple-900 px-6') },
|
|
22
|
-
h('div', { style: tw('flex flex-col items-center gap-3') },
|
|
23
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-blue-400 to-cyan-500 shadow-2xl opacity-0 enter-ease-spring/1/100/10 enter-fade-in/0/1500 enter--translate-y-32/0/1500') }),
|
|
24
|
-
h('div', { style: tw('text-white text-xs font-bold opacity-0 enter-fade-in/0/800') }, 'Gentle'),
|
|
25
|
-
h('div', { style: tw('text-white/50 text-[10px] opacity-0 enter-fade-in/0/800') }, '1/100/10')
|
|
26
|
-
),
|
|
27
|
-
h('div', { style: tw('flex flex-col items-center gap-3') },
|
|
28
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-pink-400 to-rose-500 shadow-2xl opacity-0 enter-ease-spring/1/170/8 enter-fade-in/0/1500 enter--translate-y-32/0/1500') }),
|
|
29
|
-
h('div', { style: tw('text-white text-xs font-bold opacity-0 enter-fade-in/200/800') }, 'Bouncy'),
|
|
30
|
-
h('div', { style: tw('text-white/50 text-[10px] opacity-0 enter-fade-in/200/800') }, '1/170/8')
|
|
31
|
-
),
|
|
32
|
-
h('div', { style: tw('flex flex-col items-center gap-3') },
|
|
33
|
-
h('div', { style: tw('w-24 h-24 rounded-full bg-gradient-to-br from-emerald-400 to-green-500 shadow-2xl opacity-0 enter-ease-spring/1/200/15 enter-fade-in/0/1500 enter--translate-y-32/0/1500') }),
|
|
34
|
-
h('div', { style: tw('text-white text-xs font-bold opacity-0 enter-fade-in/400/800') }, 'Snappy'),
|
|
35
|
-
h('div', { style: tw('text-white/50 text-[10px] opacity-0 enter-fade-in/400/800') }, '1/200/15')
|
|
36
|
-
)
|
|
37
|
-
)
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
async function render() {
|
|
41
|
-
console.log('Rendering spring-variants with enter animations...\n');
|
|
42
|
-
|
|
43
|
-
const template = defineTemplate(springVariantsTemplate);
|
|
44
|
-
const outputPath = 'output/example-spring-variants.mp4';
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
const buffer = await renderVideo(template, {}, { quality: 20 });
|
|
48
|
-
await fs.writeFile(outputPath, buffer);
|
|
49
|
-
console.log(`✔ example-spring-variants.mp4 (${(buffer.length / 1024).toFixed(1)}KB)\n`);
|
|
50
|
-
console.log('✅ Now you can see the spring differences!');
|
|
51
|
-
console.log(' - Gentle: smooth drop with slight overshoot bounce');
|
|
52
|
-
console.log(' - Bouncy: exaggerated drop with lots of bounce');
|
|
53
|
-
console.log(' - Snappy: fast drop with minimal/no bounce');
|
|
54
|
-
} catch (err) {
|
|
55
|
-
console.log(`✖ Failed: ${err.message}\n`);
|
|
56
|
-
console.error(err);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
render().catch(console.error);
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { defineTemplate, renderVideo } from './dist/sdk/index.js';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
const { createElement: h } = React;
|
|
6
|
-
|
|
7
|
-
function createTemplateModule(meta, render) {
|
|
8
|
-
return { meta, default: render };
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const staggeredTextTemplate = createTemplateModule(
|
|
12
|
-
{
|
|
13
|
-
name: 'staggered-text',
|
|
14
|
-
description: 'Staggered text animation with spring easing',
|
|
15
|
-
type: 'video',
|
|
16
|
-
size: { width: 600, height: 400 },
|
|
17
|
-
video: { fps: 60, duration: 3 },
|
|
18
|
-
},
|
|
19
|
-
({ tw }) => {
|
|
20
|
-
const text = 'loopwind';
|
|
21
|
-
const letters = text.split('');
|
|
22
|
-
const staggerDelay = 80; // ms between each letter
|
|
23
|
-
|
|
24
|
-
return h('div', { style: tw('flex items-center justify-center w-full h-full bg-gradient-to-br from-violet-900 via-purple-900 to-fuchsia-900') },
|
|
25
|
-
h('div', { style: tw('flex items-center justify-center gap-1') },
|
|
26
|
-
...letters.map((letter, i) =>
|
|
27
|
-
h('span', {
|
|
28
|
-
key: i,
|
|
29
|
-
style: tw(`text-8xl font-black bg-clip-text text-transparent bg-gradient-to-br from-cyan-400 via-blue-400 to-purple-400 opacity-0 enter-ease-spring enter-fade-in/${i * staggerDelay}/600 enter--translate-y-12/${i * staggerDelay}/600`)
|
|
30
|
-
}, letter)
|
|
31
|
-
)
|
|
32
|
-
)
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
async function render() {
|
|
38
|
-
console.log('Rendering staggered-text animation...\n');
|
|
39
|
-
|
|
40
|
-
const template = defineTemplate(staggeredTextTemplate);
|
|
41
|
-
const outputPath = 'output/example-staggered-text.mp4';
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
const buffer = await renderVideo(template, {}, { quality: 20 });
|
|
45
|
-
await fs.writeFile(outputPath, buffer);
|
|
46
|
-
console.log(`✔ example-staggered-text.mp4 (${(buffer.length / 1024).toFixed(1)}KB)\n`);
|
|
47
|
-
console.log('✅ Staggered text animation complete!');
|
|
48
|
-
console.log(' Each letter animates in with spring easing');
|
|
49
|
-
console.log(' 80ms delay between each letter');
|
|
50
|
-
} catch (err) {
|
|
51
|
-
console.log(`✖ Failed: ${err.message}\n`);
|
|
52
|
-
console.error(err);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
render().catch(console.error);
|
package/test-font-files.mjs
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Test for font files in SDK StyleConfig
|
|
3
|
-
* Run with: node test-font-files.mjs
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { defineTemplate, renderImage } from './dist/sdk/index.js';
|
|
7
|
-
import React from 'react';
|
|
8
|
-
|
|
9
|
-
const { createElement: h } = React;
|
|
10
|
-
|
|
11
|
-
console.log('📝 Testing font files in StyleConfig...\n');
|
|
12
|
-
|
|
13
|
-
// Test with external URL (Google Fonts mirror)
|
|
14
|
-
const config = {
|
|
15
|
-
colors: {
|
|
16
|
-
text: '#000000',
|
|
17
|
-
},
|
|
18
|
-
fonts: {
|
|
19
|
-
sans: {
|
|
20
|
-
family: ['Inter', 'sans-serif'],
|
|
21
|
-
files: [
|
|
22
|
-
{
|
|
23
|
-
path: 'https://unpkg.com/@fontsource/inter@5.0.18/files/inter-latin-400-normal.woff',
|
|
24
|
-
weight: 400,
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
path: 'https://unpkg.com/@fontsource/inter@5.0.18/files/inter-latin-700-normal.woff',
|
|
28
|
-
weight: 700,
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const template = defineTemplate({
|
|
36
|
-
name: 'test-font-files',
|
|
37
|
-
size: { width: 600, height: 400 },
|
|
38
|
-
config,
|
|
39
|
-
render: ({ tw }) =>
|
|
40
|
-
h('div', { style: tw('flex flex-col items-center justify-center w-full h-full bg-white p-8') },
|
|
41
|
-
h('h1', { style: tw('font-sans text-6xl font-bold text-text') }, 'Bold Text'),
|
|
42
|
-
h('p', { style: tw('font-sans text-3xl font-normal text-text') }, 'Normal Text')
|
|
43
|
-
),
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
console.log('⏳ Rendering with external font URLs...');
|
|
48
|
-
const svg = await renderImage(template, {}, { format: 'svg' });
|
|
49
|
-
|
|
50
|
-
console.log('✅ SUCCESS: Font files loaded from URLs');
|
|
51
|
-
console.log(`✅ Generated SVG: ${svg.length} bytes`);
|
|
52
|
-
|
|
53
|
-
// Also test PNG to ensure fonts render correctly
|
|
54
|
-
console.log('\n⏳ Testing PNG rendering with fonts...');
|
|
55
|
-
const png = await renderImage(template, {}, { format: 'png' });
|
|
56
|
-
|
|
57
|
-
if (png[0] === 0x89 && png[1] === 0x50 && png[2] === 0x4e && png[3] === 0x47) {
|
|
58
|
-
console.log('✅ SUCCESS: PNG generated with fonts');
|
|
59
|
-
console.log(`✅ PNG size: ${png.length} bytes`);
|
|
60
|
-
} else {
|
|
61
|
-
console.error('❌ FAIL: Invalid PNG signature');
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
console.log('\n🎉 All font file tests passed!');
|
|
66
|
-
console.log('\n✨ Font files with URLs work correctly in SDK StyleConfig');
|
|
67
|
-
|
|
68
|
-
} catch (error) {
|
|
69
|
-
console.error('❌ ERROR:', error.message);
|
|
70
|
-
console.error(error.stack);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
package/test-jsx-support.mjs
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Test JSX support with compileTemplate + defineTemplateFromSource
|
|
3
|
-
*
|
|
4
|
-
* This test demonstrates the recommended workflow:
|
|
5
|
-
* 1. compileTemplate() - transforms JSX to JavaScript (admin/build time)
|
|
6
|
-
* 2. defineTemplateFromSource() - loads pre-compiled JavaScript (production)
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { defineTemplateFromSource, renderImage } from './dist/sdk/index.js';
|
|
10
|
-
import { compileTemplate } from './dist/sdk/compiler.js';
|
|
11
|
-
|
|
12
|
-
console.log('Testing JSX Support with Pre-compilation\n');
|
|
13
|
-
|
|
14
|
-
// Test 1: Simple JSX template
|
|
15
|
-
const simpleJSX = `
|
|
16
|
-
export const meta = {
|
|
17
|
-
name: 'jsx-test',
|
|
18
|
-
type: 'image',
|
|
19
|
-
size: { width: 400, height: 200 }
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default ({ tw, title }) => (
|
|
23
|
-
<div style={tw('flex items-center justify-center w-full h-full bg-blue-500')}>
|
|
24
|
-
<h1 style={tw('text-4xl font-bold text-white')}>{title}</h1>
|
|
25
|
-
</div>
|
|
26
|
-
);
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
|
-
try {
|
|
30
|
-
// Step 1: Compile JSX to JavaScript (admin/build time)
|
|
31
|
-
const compiledJS = compileTemplate(simpleJSX);
|
|
32
|
-
|
|
33
|
-
// Step 2: Load compiled template (production runtime)
|
|
34
|
-
const template1 = defineTemplateFromSource(compiledJS);
|
|
35
|
-
const png1 = await renderImage(template1, { title: 'JSX Works!' });
|
|
36
|
-
console.log('✓ Simple JSX template works');
|
|
37
|
-
console.log(' PNG size:', png1.length, 'bytes\n');
|
|
38
|
-
} catch (error) {
|
|
39
|
-
console.error('✗ Simple JSX template failed:', error.message);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Test 2: Nested JSX
|
|
43
|
-
const nestedJSX = `
|
|
44
|
-
export const meta = {
|
|
45
|
-
name: 'nested-jsx',
|
|
46
|
-
size: { width: 600, height: 300 }
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export default ({ tw, title, subtitle, items }) => (
|
|
50
|
-
<div style={tw('flex flex-col w-full h-full bg-white p-8')}>
|
|
51
|
-
<h1 style={tw('text-5xl font-bold text-gray-900 mb-4')}>{title}</h1>
|
|
52
|
-
<p style={tw('text-2xl text-gray-600 mb-6')}>{subtitle}</p>
|
|
53
|
-
<div style={tw('flex gap-4')}>
|
|
54
|
-
{items.map((item, i) => (
|
|
55
|
-
<div style={tw('px-4 py-2 bg-blue-500 text-white rounded')}>
|
|
56
|
-
{item}
|
|
57
|
-
</div>
|
|
58
|
-
))}
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
);
|
|
62
|
-
`;
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
// Step 1: Compile JSX to JavaScript
|
|
66
|
-
const compiledJS2 = compileTemplate(nestedJSX);
|
|
67
|
-
|
|
68
|
-
// Step 2: Load compiled template
|
|
69
|
-
const template2 = defineTemplateFromSource(compiledJS2);
|
|
70
|
-
const png2 = await renderImage(template2, {
|
|
71
|
-
title: 'Nested JSX',
|
|
72
|
-
subtitle: 'With multiple levels',
|
|
73
|
-
items: ['One', 'Two', 'Three']
|
|
74
|
-
});
|
|
75
|
-
console.log('✓ Nested JSX template works');
|
|
76
|
-
console.log(' PNG size:', png2.length, 'bytes\n');
|
|
77
|
-
} catch (error) {
|
|
78
|
-
console.error('✗ Nested JSX template failed:', error.message);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Test 3: Self-closing tags
|
|
82
|
-
const selfClosing = `
|
|
83
|
-
export const meta = {
|
|
84
|
-
name: 'self-closing',
|
|
85
|
-
size: { width: 400, height: 200 }
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
export default ({ tw }) => (
|
|
89
|
-
<div style={tw('flex flex-col items-center justify-center w-full h-full bg-gray-100 gap-4')}>
|
|
90
|
-
<div style={tw('w-32 h-32 bg-red-500 rounded-full')} />
|
|
91
|
-
<div style={tw('w-32 h-32 bg-blue-500 rounded-lg')} />
|
|
92
|
-
<div style={tw('w-32 h-32 bg-green-500')} />
|
|
93
|
-
</div>
|
|
94
|
-
);
|
|
95
|
-
`;
|
|
96
|
-
|
|
97
|
-
try {
|
|
98
|
-
// Step 1: Compile JSX to JavaScript
|
|
99
|
-
const compiledJS3 = compileTemplate(selfClosing);
|
|
100
|
-
|
|
101
|
-
// Step 2: Load compiled template
|
|
102
|
-
const template3 = defineTemplateFromSource(compiledJS3);
|
|
103
|
-
const png3 = await renderImage(template3, {});
|
|
104
|
-
console.log('✓ Self-closing tags work');
|
|
105
|
-
console.log(' PNG size:', png3.length, 'bytes\n');
|
|
106
|
-
} catch (error) {
|
|
107
|
-
console.error('✗ Self-closing tags failed:', error.message);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Test 4: Complex attributes
|
|
111
|
-
const complexAttrs = `
|
|
112
|
-
export const meta = {
|
|
113
|
-
name: 'complex-attrs',
|
|
114
|
-
size: { width: 500, height: 250 }
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
export default ({ tw, title, count }) => (
|
|
118
|
-
<div style={tw('flex flex-col w-full h-full bg-gradient-to-br from-purple-600 to-pink-500 p-8')}>
|
|
119
|
-
<h1 style={tw('text-4xl font-bold text-white mb-4')}>{title}</h1>
|
|
120
|
-
<div style={tw('flex items-center gap-2')}>
|
|
121
|
-
<span style={tw('text-2xl text-white')}>Count:</span>
|
|
122
|
-
<span style={tw('text-3xl font-bold text-yellow-300')}>{count}</span>
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
);
|
|
126
|
-
`;
|
|
127
|
-
|
|
128
|
-
try {
|
|
129
|
-
// Step 1: Compile JSX to JavaScript
|
|
130
|
-
const compiledJS4 = compileTemplate(complexAttrs);
|
|
131
|
-
|
|
132
|
-
// Step 2: Load compiled template
|
|
133
|
-
const template4 = defineTemplateFromSource(compiledJS4);
|
|
134
|
-
const png4 = await renderImage(template4, { title: 'Complex JSX', count: 42 });
|
|
135
|
-
console.log('✓ Complex attributes work');
|
|
136
|
-
console.log(' PNG size:', png4.length, 'bytes\n');
|
|
137
|
-
} catch (error) {
|
|
138
|
-
console.error('✗ Complex attributes failed:', error.message);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
console.log('✅ All JSX tests completed!');
|
|
142
|
-
console.log('\nWorkflow Summary:');
|
|
143
|
-
console.log('1. compileTemplate() - Transform JSX → JS (admin panel)');
|
|
144
|
-
console.log('2. defineTemplateFromSource() - Load compiled JS (production)');
|
|
145
|
-
console.log('3. renderImage() - Render with props');
|
|
146
|
-
console.log('\nBenefit: No @babel/standalone in production! 🎉');
|