loopwind 0.19.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +83 -0
  2. package/dist/commands/preview.d.ts.map +1 -1
  3. package/dist/commands/preview.js +2 -1
  4. package/dist/commands/preview.js.map +1 -1
  5. package/dist/commands/render.d.ts.map +1 -1
  6. package/dist/commands/render.js +2 -0
  7. package/dist/commands/render.js.map +1 -1
  8. package/dist/default-templates/AGENTS.md +54 -0
  9. package/dist/lib/renderer.d.ts.map +1 -1
  10. package/dist/lib/renderer.js +3 -0
  11. package/dist/lib/renderer.js.map +1 -1
  12. package/dist/lib/tailwind-browser.d.ts.map +1 -1
  13. package/dist/lib/tailwind-browser.js +169 -6
  14. package/dist/lib/tailwind-browser.js.map +1 -1
  15. package/dist/lib/tailwind.d.ts.map +1 -1
  16. package/dist/lib/tailwind.js +178 -7
  17. package/dist/lib/tailwind.js.map +1 -1
  18. package/dist/lib/video-preview.d.ts +1 -1
  19. package/dist/lib/video-preview.d.ts.map +1 -1
  20. package/dist/lib/video-preview.js +266 -249
  21. package/dist/lib/video-preview.js.map +1 -1
  22. package/dist/lib/video-renderer.d.ts +2 -0
  23. package/dist/lib/video-renderer.d.ts.map +1 -1
  24. package/dist/lib/video-renderer.js +4 -4
  25. package/dist/lib/video-renderer.js.map +1 -1
  26. package/dist/sdk/index.d.ts +2 -0
  27. package/dist/sdk/index.d.ts.map +1 -1
  28. package/dist/sdk/index.js +1 -0
  29. package/dist/sdk/index.js.map +1 -1
  30. package/dist/sdk/preview.d.ts +65 -0
  31. package/dist/sdk/preview.d.ts.map +1 -0
  32. package/dist/sdk/preview.js +262 -0
  33. package/dist/sdk/preview.js.map +1 -0
  34. package/examples/nextjs-template-import.ts +2 -2
  35. package/examples/sdk-video-preview.tsx +120 -0
  36. package/package.json +1 -1
  37. package/render-examples-600x400.mjs +161 -0
  38. package/render-spring-variants-fixed.mjs +60 -0
  39. package/render-staggered-text.mjs +56 -0
  40. package/test-sdk-config.mjs +138 -81
  41. package/test-static-debug.tsx +19 -0
  42. package/test-templates/test-sdk.mjs +46 -22
  43. package/test-video-props.json +3 -0
  44. package/website/DEPLOYMENT.md +1 -0
  45. package/website/OG_IMAGES.md +1 -0
  46. package/website/astro.config.mjs +18 -2
  47. package/website/package-lock.json +2866 -7080
  48. package/website/package.json +1 -2
  49. package/website/public/.gitkeep +1 -0
  50. package/website/templates/og-image.tsx +20 -21
  51. package/website/test-playground.mjs +45 -0
  52. package/output/sdk-static.jpg +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"video-renderer.d.ts","sourceRoot":"","sources":["../../src/lib/video-renderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;CACT,GACL,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8H9E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GACA,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnF,MAAM,CAAC,EAAE,GAAG,CAAC;CACT,GACL,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnF,MAAM,CAAC,EAAE,GAAG,CAAC;CACT,GACL,OAAO,CAAC,IAAI,CAAC,CAsFf"}
1
+ {"version":3,"file":"video-renderer.d.ts","sourceRoot":"","sources":["../../src/lib/video-renderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;CACT,GACL,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8H9E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GACA,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnF,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnF,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,IAAI,CAAC,CAsFf"}
@@ -162,7 +162,7 @@ export async function encodeFramesToVideo(svgs, outputPath, options) {
162
162
  * Render a video template to MP4 using WASM encoder (works everywhere, no ffmpeg!)
163
163
  */
164
164
  export async function renderVideo(templateName, props, outputPath, options = {}) {
165
- const { quality = 23, onFrameProgress, config } = options;
165
+ const { quality = 23, onFrameProgress, config, debug } = options;
166
166
  // Load template metadata
167
167
  const meta = await loadTemplateMeta(templateName);
168
168
  if (meta.type !== 'video') {
@@ -181,7 +181,7 @@ export async function renderVideo(templateName, props, outputPath, options = {})
181
181
  for (let frame = 0; frame < totalFrames; frame++) {
182
182
  const progress = frame / (totalFrames - 1);
183
183
  const frameProps = { ...props, frame, progress };
184
- svgPromises.push(renderToSVG(templateName, frameProps, { config }).then(svg => {
184
+ svgPromises.push(renderToSVG(templateName, frameProps, { config, debug }).then(svg => {
185
185
  svgs[frame] = svg;
186
186
  }));
187
187
  }
@@ -227,7 +227,7 @@ export async function renderVideo(templateName, props, outputPath, options = {})
227
227
  * Render a video template to GIF using gifenc (pure JS, no ffmpeg required)
228
228
  */
229
229
  export async function renderVideoToGif(templateName, props, outputPath, options = {}) {
230
- const { onFrameProgress, config } = options;
230
+ const { onFrameProgress, config, debug } = options;
231
231
  // Load template metadata
232
232
  const meta = await loadTemplateMeta(templateName);
233
233
  if (meta.type !== 'video') {
@@ -246,7 +246,7 @@ export async function renderVideoToGif(templateName, props, outputPath, options
246
246
  for (let frame = 0; frame < totalFrames; frame++) {
247
247
  const progress = frame / (totalFrames - 1);
248
248
  const frameProps = { ...props, frame, progress };
249
- svgPromises.push(renderToSVG(templateName, frameProps, { config }).then(svg => {
249
+ svgPromises.push(renderToSVG(templateName, frameProps, { config, debug }).then(svg => {
250
250
  svgs[frame] = svg;
251
251
  }));
252
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"video-renderer.js","sourceRoot":"","sources":["../../src/lib/video-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA6B,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAAoB,EACpB,KAAoB,EACpB,SAAiB,EACjB,UAKI,EAAE;IAEN,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvE,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oCAAoC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;IAE/C,iCAAiC;IACjC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,mEAAmE;IACnE,4EAA4E;IAE5E,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,8DAA8D;QAC9D,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAEtF,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAC5F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/B,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,MAAM,IAAI,GAAa,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAE9C,8EAA8E;QAC9E,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAEjD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACpB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/B,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,sCAAsC;QACtC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,EAAE,CAAC;YAE3B,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,SAAS,EACT,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CACpD,CAAC;gBAEF,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;oBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oBAExB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBAC1C,sCAAsC;wBACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;4BAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;yBACjD,CAAC,CAAC;wBACH,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;wBAElC,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC9C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC3E,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,qCAAqC;wBACrC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;4BAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;yBACjD,CAAC,CAAC;wBACH,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClC,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;gBAEL,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEnC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,GAAG;QACH,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;QACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAc,EACd,UAAkB,EAClB,OAMC;IAED,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEjE,kFAAkF;IAClF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,sDAAsD;IAC5E,MAAM,UAAU,GAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExD,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,aAAa,CAAC,IAAI,CAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;iBACtC,WAAW,EAAE;iBACb,GAAG,EAAE;iBACL,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;iBACrC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;gBACjB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,CACL,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,IAAI,CAAC,CAAC;IAElE,wEAAwE;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACjD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;IACxB,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,CAAC,6CAA6C;IACtF,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,+CAA+C;IACnE,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,gCAAgC;IAC/D,OAAO,CAAC,UAAU,EAAE,CAAC;IAErB,sDAAsD;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,CAAC,CAAC;IAE/D,oBAAoB;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEnB,oBAAoB;IACpB,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE3C,UAAU;IACV,OAAO,CAAC,MAAM,EAAE,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,YAAoB,EACpB,KAAoB,EACpB,UAAkB,EAClB,UAII,EAAE;IAEN,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE1D,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oCAAoC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAEpC,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAa,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACjD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE/B,+CAA+C;IAC/C,MAAM,UAAU,GAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;aACtC,WAAW,EAAE;aACb,GAAG,EAAE;aACL,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;aACrC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;IAExD,sCAAsC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACjD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;IACxB,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACxC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;IACnB,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC;IAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,eAAe,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;IAEjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,KAAoB,EACpB,UAAkB,EAClB,UAGI,EAAE;IAEN,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE5C,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oCAAoC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAEpC,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAa,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACjD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE/B,2DAA2D;IAC3D,MAAM,WAAW,GAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;aACtC,WAAW,EAAE;aACb,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;IAExD,2CAA2C;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEtD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IAEzB,iEAAiE;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAEpC,4BAA4B;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAE5B,gDAAgD;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEpC,8CAA8C;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1C,qBAAqB;QACrB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YACnC,OAAO;YACP,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,GAAG,CAAC,MAAM,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"video-renderer.js","sourceRoot":"","sources":["../../src/lib/video-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA6B,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAAoB,EACpB,KAAoB,EACpB,SAAiB,EACjB,UAKI,EAAE;IAEN,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvE,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oCAAoC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;IAE/C,iCAAiC;IACjC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,mEAAmE;IACnE,4EAA4E;IAE5E,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,8DAA8D;QAC9D,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAEtF,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAC5F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/B,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,MAAM,IAAI,GAAa,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAE9C,8EAA8E;QAC9E,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAEjD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACpB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/B,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,sCAAsC;QACtC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,EAAE,CAAC;YAE3B,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,SAAS,EACT,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CACpD,CAAC;gBAEF,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;oBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oBAExB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBAC1C,sCAAsC;wBACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;4BAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;yBACjD,CAAC,CAAC;wBACH,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;wBAElC,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC9C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC3E,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,qCAAqC;wBACrC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;4BAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;yBACjD,CAAC,CAAC;wBACH,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClC,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;gBAEL,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEnC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,GAAG;QACH,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;QACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAc,EACd,UAAkB,EAClB,OAMC;IAED,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEjE,kFAAkF;IAClF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,sDAAsD;IAC5E,MAAM,UAAU,GAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExD,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,aAAa,CAAC,IAAI,CAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;iBACtC,WAAW,EAAE;iBACb,GAAG,EAAE;iBACL,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;iBACrC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;gBACjB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,CACL,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,IAAI,CAAC,CAAC;IAElE,wEAAwE;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACjD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;IACxB,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,CAAC,6CAA6C;IACtF,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,+CAA+C;IACnE,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,gCAAgC;IAC/D,OAAO,CAAC,UAAU,EAAE,CAAC;IAErB,sDAAsD;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,CAAC,CAAC;IAE/D,oBAAoB;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEnB,oBAAoB;IACpB,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE3C,UAAU;IACV,OAAO,CAAC,MAAM,EAAE,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,YAAoB,EACpB,KAAoB,EACpB,UAAkB,EAClB,UAKI,EAAE;IAEN,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEjE,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oCAAoC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAEpC,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAa,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACjD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE/B,+CAA+C;IAC/C,MAAM,UAAU,GAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;aACtC,WAAW,EAAE;aACb,GAAG,EAAE;aACL,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;aACrC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;IAExD,sCAAsC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACjD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;IACxB,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACxC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;IACnB,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC;IAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,eAAe,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;IAEjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,KAAoB,EACpB,UAAkB,EAClB,UAII,EAAE;IAEN,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEnD,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oCAAoC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAEpC,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAa,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACjD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE/B,2DAA2D;IAC3D,MAAM,WAAW,GAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;aACtC,WAAW,EAAE;aACb,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;IAExD,2CAA2C;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEtD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IAEzB,iEAAiE;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAEpC,4BAA4B;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAE5B,gDAAgD;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEpC,8CAA8C;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1C,qBAAqB;QACrB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YACnC,OAAO;YACP,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,GAAG,CAAC,MAAM,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { TemplateDefinition, StyleConfig } from './template.js';
2
2
  export { defineTemplate, defineTemplateFromSource, defineTemplateFromSchema } from './template.js';
3
3
  export type { TemplateDefinition, StyleConfig, TemplateSchema, SchemaElement } from './template.js';
4
+ export { previewVideo, VideoPreview } from './preview.js';
5
+ export type { PreviewFrames, VideoPreviewProps } from './preview.js';
4
6
  /**
5
7
  * Render options for image generation
6
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQrE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACnG,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC9E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,MAAM,GAAG,GAAG,EAC5C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAoDjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,WAAW,CAAC,MAAM,GAAG,GAAG,EAC5C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CA+CjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQrE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACnG,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC9E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,MAAM,GAAG,GAAG,EAC5C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAoDjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,WAAW,CAAC,MAAM,GAAG,GAAG,EAC5C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CA+CjB"}
package/dist/sdk/index.js CHANGED
@@ -5,6 +5,7 @@ import fs from 'fs/promises';
5
5
  import path from 'path';
6
6
  import os from 'os';
7
7
  export { defineTemplate, defineTemplateFromSource, defineTemplateFromSchema } from './template.js';
8
+ export { previewVideo, VideoPreview } from './preview.js';
8
9
  /**
9
10
  * Render an image from a template definition
10
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import type { TemplateDefinition, StyleConfig } from './template.js';
3
+ /**
4
+ * Pre-rendered video frames
5
+ */
6
+ export interface PreviewFrames {
7
+ frames: string[];
8
+ meta: {
9
+ name: string;
10
+ width: number;
11
+ height: number;
12
+ fps: number;
13
+ duration: number;
14
+ totalFrames: number;
15
+ };
16
+ }
17
+ /**
18
+ * Pre-render all frames of a video template for preview
19
+ * Call this on the server or at build time
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const template = defineTemplate({
24
+ * name: 'intro',
25
+ * type: 'video',
26
+ * size: { width: 1920, height: 1080 },
27
+ * video: { fps: 30, duration: 3 },
28
+ * render: ({ tw, progress }) => <div style={tw('flex')}>Frame</div>
29
+ * });
30
+ *
31
+ * const frames = await previewVideo(template, { title: 'Hello' });
32
+ * // Pass to <VideoPreview frames={frames} />
33
+ * ```
34
+ */
35
+ export declare function previewVideo<TProps = any>(template: TemplateDefinition<TProps>, props: TProps, options?: {
36
+ config?: StyleConfig;
37
+ format?: 'svg' | 'data-url';
38
+ }): Promise<PreviewFrames>;
39
+ /**
40
+ * Props for VideoPreview component
41
+ */
42
+ export interface VideoPreviewProps {
43
+ frames: PreviewFrames;
44
+ autoPlay?: boolean;
45
+ loop?: boolean;
46
+ controls?: boolean;
47
+ className?: string;
48
+ style?: React.CSSProperties;
49
+ onFrameChange?: (frame: number) => void;
50
+ }
51
+ /**
52
+ * Video preview component that displays pre-rendered frames
53
+ * Works in browser - no Node.js dependencies
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * // Server-side (Next.js, etc.)
58
+ * const frames = await previewVideo(template, props);
59
+ *
60
+ * // Client-side
61
+ * <VideoPreview frames={frames} autoPlay loop />
62
+ * ```
63
+ */
64
+ export declare function VideoPreview({ frames: previewFrames, autoPlay, loop, controls, className, style, onFrameChange, }: VideoPreviewProps): React.JSX.Element;
65
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/sdk/preview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMrE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAAC,MAAM,GAAG,GAAG,EAC7C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,GAAG,UAAU,CAAA;CAAO,GAClE,OAAO,CAAC,aAAa,CAAC,CAwExB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EAAE,aAAa,EACrB,QAAe,EACf,IAAW,EACX,QAAe,EACf,SAAS,EACT,KAAK,EACL,aAAa,GACd,EAAE,iBAAiB,qBA2PnB"}
@@ -0,0 +1,262 @@
1
+ import React, { useState, useEffect, useRef } from 'react';
2
+ import { renderToSVG } from '../lib/renderer.js';
3
+ import { templateToMeta } from './template.js';
4
+ import fs from 'fs/promises';
5
+ import path from 'path';
6
+ import os from 'os';
7
+ /**
8
+ * Pre-render all frames of a video template for preview
9
+ * Call this on the server or at build time
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const template = defineTemplate({
14
+ * name: 'intro',
15
+ * type: 'video',
16
+ * size: { width: 1920, height: 1080 },
17
+ * video: { fps: 30, duration: 3 },
18
+ * render: ({ tw, progress }) => <div style={tw('flex')}>Frame</div>
19
+ * });
20
+ *
21
+ * const frames = await previewVideo(template, { title: 'Hello' });
22
+ * // Pass to <VideoPreview frames={frames} />
23
+ * ```
24
+ */
25
+ export async function previewVideo(template, props, options = {}) {
26
+ const { config, format = 'svg' } = options;
27
+ const meta = templateToMeta(template);
28
+ if (meta.type !== 'video') {
29
+ throw new Error('Cannot preview image template. Only video templates are supported.');
30
+ }
31
+ if (!meta.video) {
32
+ throw new Error('Template is missing video metadata (fps, duration)');
33
+ }
34
+ const { fps, duration } = meta.video;
35
+ const totalFrames = Math.floor(fps * duration);
36
+ const frames = [];
37
+ // Save template to temp file so we can use the existing renderer
38
+ const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'loopwind-preview-'));
39
+ const templatePath = path.join(tempDir, 'template.tsx');
40
+ try {
41
+ // Write template component with embedded meta
42
+ const templateContent = `import React from 'react';
43
+
44
+ const h = React.createElement;
45
+
46
+ export const meta = ${JSON.stringify(meta, null, 2)};
47
+
48
+ export default ${template.render.toString()};`;
49
+ await fs.writeFile(templatePath, templateContent);
50
+ // Merge configs
51
+ const mergedConfig = {
52
+ ...template.config,
53
+ ...config,
54
+ colors: { ...template.config?.colors, ...config?.colors },
55
+ fonts: { ...template.config?.fonts, ...config?.fonts },
56
+ };
57
+ // Render each frame
58
+ for (let frame = 0; frame < totalFrames; frame++) {
59
+ const progress = frame / totalFrames;
60
+ const svg = await renderToSVG(templatePath, { ...props, frame, progress }, { config: mergedConfig });
61
+ if (format === 'data-url') {
62
+ // Convert SVG to data URL for easier browser usage
63
+ const dataUrl = `data:image/svg+xml;base64,${Buffer.from(svg).toString('base64')}`;
64
+ frames.push(dataUrl);
65
+ }
66
+ else {
67
+ frames.push(svg);
68
+ }
69
+ }
70
+ return {
71
+ frames,
72
+ meta: {
73
+ name: meta.name,
74
+ width: meta.size.width,
75
+ height: meta.size.height,
76
+ fps,
77
+ duration,
78
+ totalFrames,
79
+ },
80
+ };
81
+ }
82
+ finally {
83
+ // Cleanup temp files
84
+ await fs.rm(tempDir, { recursive: true, force: true });
85
+ }
86
+ }
87
+ /**
88
+ * Video preview component that displays pre-rendered frames
89
+ * Works in browser - no Node.js dependencies
90
+ *
91
+ * @example
92
+ * ```tsx
93
+ * // Server-side (Next.js, etc.)
94
+ * const frames = await previewVideo(template, props);
95
+ *
96
+ * // Client-side
97
+ * <VideoPreview frames={frames} autoPlay loop />
98
+ * ```
99
+ */
100
+ export function VideoPreview({ frames: previewFrames, autoPlay = true, loop = true, controls = true, className, style, onFrameChange, }) {
101
+ const [frame, setFrame] = useState(0);
102
+ const [isPlaying, setIsPlaying] = useState(autoPlay);
103
+ const [isLooping, setIsLooping] = useState(loop);
104
+ const animationRef = useRef(null);
105
+ const lastTimeRef = useRef(0);
106
+ const { frames, meta } = previewFrames;
107
+ const { fps, duration, totalFrames, width, height } = meta;
108
+ const durationMs = duration * 1000;
109
+ // Notify parent of frame changes
110
+ useEffect(() => {
111
+ if (onFrameChange) {
112
+ onFrameChange(Math.floor(frame));
113
+ }
114
+ }, [frame, onFrameChange]);
115
+ // Playback loop
116
+ useEffect(() => {
117
+ if (!isPlaying) {
118
+ if (animationRef.current) {
119
+ cancelAnimationFrame(animationRef.current);
120
+ animationRef.current = null;
121
+ }
122
+ return;
123
+ }
124
+ lastTimeRef.current = performance.now();
125
+ const animate = (time) => {
126
+ const delta = time - lastTimeRef.current;
127
+ lastTimeRef.current = time;
128
+ setFrame((prev) => {
129
+ const increment = (delta / 1000) * fps;
130
+ const next = prev + increment;
131
+ if (next >= totalFrames) {
132
+ if (isLooping) {
133
+ return next % totalFrames;
134
+ }
135
+ else {
136
+ setIsPlaying(false);
137
+ return totalFrames - 1;
138
+ }
139
+ }
140
+ return next;
141
+ });
142
+ animationRef.current = requestAnimationFrame(animate);
143
+ };
144
+ animationRef.current = requestAnimationFrame(animate);
145
+ return () => {
146
+ if (animationRef.current) {
147
+ cancelAnimationFrame(animationRef.current);
148
+ }
149
+ };
150
+ }, [isPlaying, fps, totalFrames, isLooping]);
151
+ const currentMs = (frame / totalFrames) * durationMs;
152
+ const progress = (frame / totalFrames) * 100;
153
+ const frameNum = Math.floor(frame);
154
+ const handleScrub = (e) => {
155
+ const value = parseFloat(e.target.value);
156
+ setFrame((value / 100) * totalFrames);
157
+ };
158
+ const handlePlayPause = () => {
159
+ if (!isPlaying && frame >= totalFrames - 1) {
160
+ setFrame(0);
161
+ }
162
+ setIsPlaying(!isPlaying);
163
+ };
164
+ const handleRestart = () => {
165
+ setFrame(0);
166
+ setIsPlaying(true);
167
+ };
168
+ const handleStepBackward = () => {
169
+ setIsPlaying(false);
170
+ setFrame((prev) => Math.max(0, prev - 1));
171
+ };
172
+ const handleStepForward = () => {
173
+ setIsPlaying(false);
174
+ setFrame((prev) => Math.min(totalFrames - 1, prev + 1));
175
+ };
176
+ return (React.createElement("div", { className: className, style: {
177
+ display: 'inline-flex',
178
+ flexDirection: 'column',
179
+ gap: '0.75rem',
180
+ ...style,
181
+ } },
182
+ React.createElement("div", { style: {
183
+ position: 'relative',
184
+ width,
185
+ height,
186
+ overflow: 'hidden',
187
+ borderRadius: '0.5rem',
188
+ boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1)',
189
+ } }, frames[frameNum]?.startsWith('data:') ? (React.createElement("img", { src: frames[frameNum], alt: `Frame ${frameNum}`, style: { display: 'block', width: '100%', height: '100%' } })) : (React.createElement("div", { dangerouslySetInnerHTML: { __html: frames[frameNum] || '' }, style: { width: '100%', height: '100%' } }))),
190
+ controls && (React.createElement("div", { style: {
191
+ display: 'flex',
192
+ flexDirection: 'column',
193
+ gap: '0.5rem',
194
+ width,
195
+ } },
196
+ React.createElement("input", { type: "range", min: "0", max: "100", step: "0.1", value: progress, onChange: handleScrub, style: {
197
+ width: '100%',
198
+ height: '6px',
199
+ background: `linear-gradient(to right, #7c3aed ${progress}%, #d1d5db ${progress}%)`,
200
+ borderRadius: '3px',
201
+ cursor: 'pointer',
202
+ WebkitAppearance: 'none',
203
+ appearance: 'none',
204
+ } }),
205
+ React.createElement("div", { style: {
206
+ display: 'flex',
207
+ alignItems: 'center',
208
+ justifyContent: 'space-between',
209
+ fontSize: '0.875rem',
210
+ } },
211
+ React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '0.5rem' } },
212
+ React.createElement("button", { onClick: handleRestart, title: "Restart", style: {
213
+ background: 'transparent',
214
+ border: 'none',
215
+ cursor: 'pointer',
216
+ padding: '0.25rem',
217
+ fontSize: '1.25rem',
218
+ } }, "\u23EE"),
219
+ React.createElement("button", { onClick: handleStepBackward, title: "Previous frame", style: {
220
+ background: 'transparent',
221
+ border: 'none',
222
+ cursor: 'pointer',
223
+ padding: '0.25rem',
224
+ fontSize: '1.25rem',
225
+ } }, "\u23EA"),
226
+ React.createElement("button", { onClick: handlePlayPause, style: {
227
+ background: '#7c3aed',
228
+ border: 'none',
229
+ color: 'white',
230
+ cursor: 'pointer',
231
+ padding: '0.5rem 0.75rem',
232
+ borderRadius: '0.375rem',
233
+ fontSize: '1rem',
234
+ minWidth: '3rem',
235
+ } }, isPlaying ? '⏸' : '▶'),
236
+ React.createElement("button", { onClick: handleStepForward, title: "Next frame", style: {
237
+ background: 'transparent',
238
+ border: 'none',
239
+ cursor: 'pointer',
240
+ padding: '0.25rem',
241
+ fontSize: '1.25rem',
242
+ } }, "\u23E9"),
243
+ React.createElement("button", { onClick: () => setIsLooping(!isLooping), title: isLooping ? 'Loop enabled' : 'Loop disabled', style: {
244
+ background: isLooping ? '#e5e7eb' : 'transparent',
245
+ border: '1px solid #d1d5db',
246
+ cursor: 'pointer',
247
+ padding: '0.25rem 0.5rem',
248
+ borderRadius: '0.375rem',
249
+ fontSize: '0.875rem',
250
+ } }, "\uD83D\uDD01")),
251
+ React.createElement("div", { style: { fontFamily: 'monospace', color: '#6b7280' } },
252
+ Math.floor(currentMs),
253
+ "ms / ",
254
+ Math.floor(durationMs),
255
+ "ms",
256
+ React.createElement("span", { style: { marginLeft: '0.5rem' } },
257
+ "Frame ",
258
+ frameNum,
259
+ " / ",
260
+ totalFrames)))))));
261
+ }
262
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/sdk/preview.tsx"],"names":[],"mappings":"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"}
@@ -6,13 +6,13 @@
6
6
  */
7
7
 
8
8
  import type { NextApiRequest, NextApiResponse } from 'next';
9
- import { defineTemplateFromFile, renderVideo } from 'loopwind/sdk';
9
+ import { defineTemplate, renderVideo } from 'loopwind/sdk';
10
10
 
11
11
  // Import your template file (Next.js/bundler handles TSX automatically)
12
12
  import * as videoIntroTemplate from '../../_loopwind/templates/video-intro/template';
13
13
 
14
14
  // Create SDK template from file with custom config
15
- const template = defineTemplateFromFile(videoIntroTemplate, {
15
+ const template = defineTemplate(videoIntroTemplate, {
16
16
  config: {
17
17
  colors: {
18
18
  primary: '#ff0000', // Override gradient colors
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Example: Using the SDK Video Preview Component
3
+ *
4
+ * This demonstrates how to use previewVideo() and <VideoPreview>
5
+ * to display video templates in React applications.
6
+ */
7
+
8
+ import { defineTemplate, previewVideo, VideoPreview, type PreviewFrames } from 'loopwind/sdk';
9
+ import { useState, useEffect } from 'react';
10
+
11
+ // Define a video template
12
+ const introTemplate = defineTemplate({
13
+ name: 'intro-animation',
14
+ type: 'video',
15
+ size: { width: 1920, height: 1080 },
16
+ video: { fps: 30, duration: 3 },
17
+ render: ({ tw, progress, title = 'Hello World' }) => (
18
+ <div style={tw('flex items-center justify-center w-full h-full bg-gradient-to-r from-blue-500 to-purple-600')}>
19
+ <h1
20
+ style={{
21
+ ...tw('text-8xl font-bold text-white enter-fade-in/0/1000'),
22
+ opacity: progress
23
+ }}
24
+ >
25
+ {title}
26
+ </h1>
27
+ </div>
28
+ )
29
+ });
30
+
31
+ /**
32
+ * Example 1: Pre-render at build time or on server
33
+ * (Next.js getStaticProps, getServerSideProps, etc.)
34
+ */
35
+ export async function getStaticProps() {
36
+ // Pre-render all frames on the server
37
+ const frames = await previewVideo(introTemplate, {
38
+ title: 'Welcome!'
39
+ });
40
+
41
+ return {
42
+ props: {
43
+ frames // Pass serialized frames to client
44
+ }
45
+ };
46
+ }
47
+
48
+ /**
49
+ * Example 2: Client component that displays pre-rendered frames
50
+ */
51
+ export function IntroPreview({ frames }: { frames: PreviewFrames }) {
52
+ return (
53
+ <div className="container">
54
+ <h2>Video Preview</h2>
55
+ <VideoPreview
56
+ frames={frames}
57
+ autoPlay={true}
58
+ loop={true}
59
+ controls={true}
60
+ onFrameChange={(frame) => console.log(`Current frame: ${frame}`)}
61
+ />
62
+ </div>
63
+ );
64
+ }
65
+
66
+ /**
67
+ * Example 3: Loading frames on demand (client-side)
68
+ * Note: This only works if you can run Node.js code (e.g., Electron, desktop apps)
69
+ */
70
+ export function DynamicPreview() {
71
+ const [frames, setFrames] = useState<PreviewFrames | null>(null);
72
+ const [loading, setLoading] = useState(true);
73
+
74
+ useEffect(() => {
75
+ // Load frames (only works in Node.js environment)
76
+ previewVideo(introTemplate, { title: 'Dynamic!' })
77
+ .then(setFrames)
78
+ .finally(() => setLoading(false));
79
+ }, []);
80
+
81
+ if (loading) return <div>Rendering preview...</div>;
82
+ if (!frames) return <div>Failed to load preview</div>;
83
+
84
+ return <VideoPreview frames={frames} autoPlay loop />;
85
+ }
86
+
87
+ /**
88
+ * Example 4: Minimal preview without controls
89
+ */
90
+ export function MinimalPreview({ frames }: { frames: PreviewFrames }) {
91
+ return (
92
+ <VideoPreview
93
+ frames={frames}
94
+ controls={false}
95
+ autoPlay={true}
96
+ loop={true}
97
+ style={{ border: '2px solid #7c3aed', borderRadius: '8px' }}
98
+ />
99
+ );
100
+ }
101
+
102
+ /**
103
+ * Example 5: Next.js API Route for on-demand preview generation
104
+ */
105
+ // pages/api/preview/[template].ts
106
+ export async function handler(req, res) {
107
+ const { template } = req.query;
108
+ const props = req.body;
109
+
110
+ try {
111
+ // Generate preview frames on-demand
112
+ const frames = await previewVideo(introTemplate, props, {
113
+ format: 'data-url' // Use data URLs for easy JSON serialization
114
+ });
115
+
116
+ res.json(frames);
117
+ } catch (error) {
118
+ res.status(500).json({ error: error.message });
119
+ }
120
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loopwind",
3
- "version": "0.19.0",
3
+ "version": "0.20.1",
4
4
  "description": "A CLI tool for AI code agents and developers for generating images and videos.",
5
5
  "type": "module",
6
6
  "bin": {