@dnyantra/dtly 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +21 -8
  2. package/dist/agents.d.ts +1 -0
  3. package/dist/agents.js +9 -4
  4. package/dist/agents.js.map +1 -1
  5. package/dist/cli.js +35 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/core/anim.js +20 -0
  8. package/dist/core/anim.js.map +1 -1
  9. package/dist/core/captions.d.ts +13 -0
  10. package/dist/core/captions.js +57 -0
  11. package/dist/core/captions.js.map +1 -0
  12. package/dist/core/geo.d.ts +13 -0
  13. package/dist/core/geo.js +41 -0
  14. package/dist/core/geo.js.map +1 -0
  15. package/dist/core/model.d.ts +112 -9
  16. package/dist/core/model.js.map +1 -1
  17. package/dist/core/path.d.ts +35 -0
  18. package/dist/core/path.js +324 -0
  19. package/dist/core/path.js.map +1 -0
  20. package/dist/core/svg.d.ts +22 -0
  21. package/dist/core/svg.js +217 -0
  22. package/dist/core/svg.js.map +1 -0
  23. package/dist/core/text.d.ts +3 -1
  24. package/dist/core/text.js +49 -3
  25. package/dist/core/text.js.map +1 -1
  26. package/dist/mcp/server.js +28 -1
  27. package/dist/mcp/server.js.map +1 -1
  28. package/dist/ops/ops.d.ts +7 -0
  29. package/dist/ops/ops.js +11 -1
  30. package/dist/ops/ops.js.map +1 -1
  31. package/dist/presets/app.d.ts +2 -0
  32. package/dist/presets/app.js +82 -0
  33. package/dist/presets/app.js.map +1 -0
  34. package/dist/presets/captions.d.ts +2 -0
  35. package/dist/presets/captions.js +48 -0
  36. package/dist/presets/captions.js.map +1 -0
  37. package/dist/presets/charts.d.ts +2 -0
  38. package/dist/presets/charts.js +162 -0
  39. package/dist/presets/charts.js.map +1 -0
  40. package/dist/presets/index.d.ts +1 -1
  41. package/dist/presets/index.js +62 -1
  42. package/dist/presets/index.js.map +1 -1
  43. package/dist/presets/maps.d.ts +2 -0
  44. package/dist/presets/maps.js +79 -0
  45. package/dist/presets/maps.js.map +1 -0
  46. package/dist/render/fx.d.ts +11 -0
  47. package/dist/render/fx.js +87 -0
  48. package/dist/render/fx.js.map +1 -0
  49. package/dist/render/grade.d.ts +20 -0
  50. package/dist/render/grade.js +178 -0
  51. package/dist/render/grade.js.map +1 -0
  52. package/dist/render/lottie.d.ts +36 -0
  53. package/dist/render/lottie.js +523 -0
  54. package/dist/render/lottie.js.map +1 -0
  55. package/dist/render/node-host.d.ts +1 -0
  56. package/dist/render/node-host.js +15 -4
  57. package/dist/render/node-host.js.map +1 -1
  58. package/dist/render/perspective.d.ts +5 -0
  59. package/dist/render/perspective.js +71 -0
  60. package/dist/render/perspective.js.map +1 -0
  61. package/dist/render/renderer.d.ts +6 -0
  62. package/dist/render/renderer.js +156 -95
  63. package/dist/render/renderer.js.map +1 -1
  64. package/dist/render/shapes.d.ts +6 -0
  65. package/dist/render/shapes.js +129 -0
  66. package/dist/render/shapes.js.map +1 -0
  67. package/dist/render/tiles.d.ts +11 -0
  68. package/dist/render/tiles.js +42 -0
  69. package/dist/render/tiles.js.map +1 -0
  70. package/dist/render/transcribe.d.ts +14 -0
  71. package/dist/render/transcribe.js +55 -0
  72. package/dist/render/transcribe.js.map +1 -0
  73. package/dist/studio/server.js +14 -1
  74. package/dist/studio/server.js.map +1 -1
  75. package/dist/studio-app/app.js +5 -4
  76. package/dist/studio-app/app.js.map +4 -4
  77. package/dist/version.d.ts +1 -1
  78. package/dist/version.js +1 -1
  79. package/package.json +1 -1
  80. package/plugin/skills/{dtly → moti}/SKILL.md +26 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maps.js","sourceRoot":"","sources":["../../src/presets/maps.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAA4B,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAGhD,MAAM,CAAC,GAAG,CAAC,CAAU,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,CAAC,GAAG,CAAC,CAAU,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACtD,MAAM,EAAE,GAAG,CAAI,GAAG,CAAuB,EAAE,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC;AACnI,MAAM,GAAG,GAAG,+FAA+F,CAAC;AAE5G,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,WAAW,EAAE;QACX,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,kLAAkL;QAC/L,MAAM,EAAE,0TAA0T;QAClU,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAI,CAAC,CAAC,KAAkB,IAAI,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACxF,MAAM,EAAE,GAAG,CAAC,CAAC,UAAiE,CAAC;YAC/E,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAI,CAAC,CAAC,IAAa,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9H,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrF,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzJ,CAAC;YACH,CAAC;;gBAAM,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAG,CAAC,CAAC,QAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAC,EAAa,EAAE,CAAC,CAAC,CAAC;YAC1L,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5D,kEAAkE;YAClE,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAa,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YACrI,MAAM,MAAM,GAAI,CAAC,CAAC,MAAmB,IAAI,EAAE,CAAC;YAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YACvC,kEAAkE;YAClE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;gBACpB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAAE,OAAO;gBACjC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAE,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;wBAClJ,GAAG,EAAE,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,EAAC;wBAC/G,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAC,EAAE,SAAS,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC,EAAC,CAAC,EAAa,CAAC,CAAC;gBACpK,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;oBACpK,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAC;oBACjJ,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAa,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;YACH,0FAA0F;YAC1F,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;gBAC7G,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;oBAChL,SAAS,EAAE,EAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,EAAC,EAAE,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,EAAa,CAAC,CAAC;YACvH,CAAC;YACD,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;gBAC3K,SAAS,EAAE,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,EAAE,IAAI,EAAE,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;YACnH,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE;gBACvH,SAAS,EAAE,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,EAAE,IAAI,EAAE,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;YACnH,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE;oBACpN,GAAG,EAAE,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,EAAC,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;YAC1I,CAAC;YACD,IAAI,EAAE;gBAAE,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;YAClK,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,uEAAuE,EAAC,CAAC;QAC1I,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Effect } from '../core/model.js';
2
+ type Ctx = CanvasRenderingContext2D;
3
+ type Canvasish = {
4
+ width: number;
5
+ height: number;
6
+ getContext(t: '2d'): Ctx;
7
+ };
8
+ type Acquire = (w: number, h: number) => Canvasish;
9
+ export declare const FX_TYPES: Set<"blur" | "brightness" | "colorBalance" | "contrast" | "cornerPin" | "curves" | "dropShadow" | "exposure" | "fill" | "glitch" | "glow" | "lut" | "rgbSplit" | "saturate" | "temperature" | "tilt" | "vignette" | "wave">;
10
+ export declare const drawWithFx: (target: Ctx, src: Canvasish, effects: Effect[], t: number, fps: number, acquire: Acquire, release: (c: Canvasish) => void) => boolean;
11
+ export {};
@@ -0,0 +1,87 @@
1
+ // Stylised compositing effects drawn from a layer's buffer: RGB split, glitch and wave.
2
+ // All are strip/offset based (no per-pixel loops), so they stay cheap at 1080p.
3
+ import { val } from '../core/anim.js';
4
+ export const FX_TYPES = new Set(['rgbSplit', 'glitch', 'wave']);
5
+ // Deterministic noise so renders are repeatable.
6
+ const rand = (n) => { const x = Math.sin(n * 12.9898 + 78.233) * 43758.5453; return x - Math.floor(x); };
7
+ const channel = (src, acquire, color) => {
8
+ const c = acquire(src.width, src.height), g = c.getContext('2d');
9
+ g.drawImage(src, 0, 0);
10
+ g.globalCompositeOperation = 'multiply';
11
+ g.fillStyle = color;
12
+ g.fillRect(0, 0, c.width, c.height);
13
+ g.globalCompositeOperation = 'destination-in';
14
+ g.drawImage(src, 0, 0);
15
+ return c;
16
+ };
17
+ const rgbSplit = (target, src, acquire, release, dx, dy) => {
18
+ if (Math.abs(dx) + Math.abs(dy) < 0.5) {
19
+ target.drawImage(src, 0, 0);
20
+ return;
21
+ }
22
+ const r = channel(src, acquire, '#ff0000'), g = channel(src, acquire, '#00ff00'), b = channel(src, acquire, '#0000ff');
23
+ target.save();
24
+ target.globalCompositeOperation = 'lighter';
25
+ target.drawImage(r, dx, dy);
26
+ target.drawImage(g, 0, 0);
27
+ target.drawImage(b, -dx, -dy);
28
+ target.restore();
29
+ [r, g, b].forEach(release);
30
+ };
31
+ // Draws `src` onto `target` through any stylised effects; returns false if none apply.
32
+ export const drawWithFx = (target, src, effects, t, fps, acquire, release) => {
33
+ const fx = effects.filter((e) => FX_TYPES.has(e.type));
34
+ if (!fx.length)
35
+ return false;
36
+ let cur = src;
37
+ const temps = [];
38
+ const stage = () => { const c = acquire(src.width, src.height); temps.push(c); return c; };
39
+ for (const e of fx) {
40
+ const out = stage(), o = out.getContext('2d');
41
+ const W = src.width, H = src.height;
42
+ if (e.type === 'wave') {
43
+ const amp = val(e.amplitude, t, 20), wl = e.wavelength ?? 240, ph = t * (e.speed ?? 1) * Math.PI * 2, strip = 4;
44
+ if (Math.abs(amp) < 0.1)
45
+ o.drawImage(cur, 0, 0);
46
+ else if ((e.direction ?? 'horizontal') === 'horizontal')
47
+ for (let y = 0; y < H; y += strip)
48
+ o.drawImage(cur, 0, y, W, strip, Math.sin((y / wl) * Math.PI * 2 + ph) * amp, y, W, strip);
49
+ else
50
+ for (let x = 0; x < W; x += strip)
51
+ o.drawImage(cur, x, 0, strip, H, x, Math.sin((x / wl) * Math.PI * 2 + ph) * amp, strip, H);
52
+ }
53
+ else if (e.type === 'glitch') {
54
+ const amount = val(e.amount, t, 50) / 100;
55
+ const frame = Math.floor(t * fps / (e.hold ?? 2)), seed = (e.seed ?? 1) * 1000 + frame;
56
+ if (amount <= 0.001)
57
+ o.drawImage(cur, 0, 0);
58
+ else {
59
+ // Horizontal slices pushed sideways by random amounts; some frames stay clean.
60
+ let y = 0, k = 0;
61
+ while (y < H) {
62
+ const hgt = Math.max(4, Math.round((0.01 + rand(seed + k * 7.1) * 0.08) * H));
63
+ const active = rand(seed + k * 3.3) < 0.35 + amount * 0.4;
64
+ const dx = active ? (rand(seed + k * 5.7) - 0.5) * 2 * amount * W * 0.08 : 0;
65
+ o.drawImage(cur, 0, y, W, hgt, dx, y, W, hgt);
66
+ y += hgt;
67
+ k++;
68
+ }
69
+ if (e.rgb !== false) {
70
+ const split = stage(), sg = split.getContext('2d');
71
+ rgbSplit(sg, out, acquire, release, amount * 14 * (rand(seed) > 0.5 ? 1 : -1), 0);
72
+ cur = split;
73
+ continue;
74
+ }
75
+ }
76
+ }
77
+ else if (e.type === 'rgbSplit') {
78
+ const amt = val(e.amount, t, 10), ang = ((e.angle ?? 0) * Math.PI) / 180;
79
+ rgbSplit(o, cur, acquire, release, Math.cos(ang) * amt, Math.sin(ang) * amt);
80
+ }
81
+ cur = out;
82
+ }
83
+ target.drawImage(cur, 0, 0);
84
+ temps.forEach(release);
85
+ return true;
86
+ };
87
+ //# sourceMappingURL=fx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fx.js","sourceRoot":"","sources":["../../src/render/fx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { Effect } from '../core/model.js';
2
+ type Ctx = CanvasRenderingContext2D;
3
+ type Grade = Extract<Effect, {
4
+ type: 'curves' | 'colorBalance' | 'exposure' | 'temperature' | 'lut';
5
+ }>;
6
+ export declare const GRADE_TYPES: Set<"blur" | "brightness" | "colorBalance" | "contrast" | "cornerPin" | "curves" | "dropShadow" | "exposure" | "fill" | "glitch" | "glow" | "lut" | "rgbSplit" | "saturate" | "temperature" | "tilt" | "vignette" | "wave">;
7
+ export interface Lut {
8
+ size: number;
9
+ data: Float32Array;
10
+ min: number[];
11
+ max: number[];
12
+ }
13
+ export declare const parseCube: (text: string) => Lut;
14
+ export interface GradeContext {
15
+ loadText(src: string): Promise<string>;
16
+ }
17
+ export declare const preloadLuts: (effects: Effect[], host: GradeContext) => Promise<void>;
18
+ export declare const applyGrade: (ctx: Ctx, w: number, h: number, effects: Grade[], t: number) => void;
19
+ export declare const drawVignette: (ctx: Ctx, w: number, h: number, amount: number, softness?: number, color?: string) => void;
20
+ export {};
@@ -0,0 +1,178 @@
1
+ // Colour grading: curves, colour wheels, exposure, temperature and 3D LUTs in one per-pixel pass,
2
+ // plus a cheap vignette. Per-channel steps fold into three 256-entry tables; LUTs use a prebuilt
3
+ // 33³ table with inline trilinear interpolation. Measured cost at 1080×1920: ~25 ms (tables) and
4
+ // ~60–90 ms (3D LUT) per frame on one CPU core.
5
+ import { val } from '../core/anim.js';
6
+ export const GRADE_TYPES = new Set(['curves', 'colorBalance', 'exposure', 'temperature', 'lut']);
7
+ // Monotone cubic interpolation through curve points (0..1), like the curves tool in most editors.
8
+ const curveTable = (pts) => {
9
+ if (!pts || pts.length < 2)
10
+ return null;
11
+ const p = [...pts].sort((a, b) => a[0] - b[0]);
12
+ const n = p.length, dx = [], m = [], sl = [];
13
+ for (let i = 0; i < n - 1; i++) {
14
+ dx.push(p[i + 1][0] - p[i][0] || 1e-6);
15
+ sl.push((p[i + 1][1] - p[i][1]) / dx[i]);
16
+ }
17
+ m.push(sl[0]);
18
+ for (let i = 1; i < n - 1; i++)
19
+ m.push(sl[i - 1] * sl[i] <= 0 ? 0 : (sl[i - 1] + sl[i]) / 2);
20
+ m.push(sl[n - 2]);
21
+ const out = new Float32Array(256);
22
+ for (let v = 0; v < 256; v++) {
23
+ const x = v / 255;
24
+ let i = 0;
25
+ while (i < n - 2 && x > p[i + 1][0])
26
+ i++;
27
+ if (x <= p[0][0]) {
28
+ out[v] = p[0][1];
29
+ continue;
30
+ }
31
+ if (x >= p[n - 1][0]) {
32
+ out[v] = p[n - 1][1];
33
+ continue;
34
+ }
35
+ const h = dx[i], t = (x - p[i][0]) / h, t2 = t * t, t3 = t2 * t;
36
+ out[v] = (2 * t3 - 3 * t2 + 1) * p[i][1] + (t3 - 2 * t2 + t) * h * m[i] + (-2 * t3 + 3 * t2) * p[i + 1][1] + (t3 - t2) * h * m[i + 1];
37
+ }
38
+ return out;
39
+ };
40
+ const lutCache = new Map();
41
+ export const parseCube = (text) => {
42
+ let size = 0, min = [0, 0, 0], max = [1, 1, 1];
43
+ const values = [];
44
+ for (const raw of text.split(/\r?\n/)) {
45
+ const line = raw.trim();
46
+ if (!line || line.startsWith('#'))
47
+ continue;
48
+ if (/^LUT_3D_SIZE/i.test(line))
49
+ size = parseInt(line.split(/\s+/)[1]);
50
+ else if (/^DOMAIN_MIN/i.test(line))
51
+ min = line.split(/\s+/).slice(1).map(Number);
52
+ else if (/^DOMAIN_MAX/i.test(line))
53
+ max = line.split(/\s+/).slice(1).map(Number);
54
+ else if (/^[-\d.]/.test(line)) {
55
+ const v = line.split(/\s+/).map(Number);
56
+ if (v.length >= 3)
57
+ values.push(v[0], v[1], v[2]);
58
+ }
59
+ }
60
+ if (!size || values.length < size ** 3 * 3)
61
+ throw new Error('Not a 3D .cube LUT');
62
+ return { size, data: Float32Array.from(values), min, max };
63
+ };
64
+ export const preloadLuts = async (effects, host) => {
65
+ for (const e of effects)
66
+ if (e.type === 'lut' && !lutCache.has(e.src))
67
+ lutCache.set(e.src, parseCube(await host.loadText(e.src)));
68
+ };
69
+ const clamp255 = (v) => (v < 0 ? 0 : v > 255 ? 255 : v);
70
+ // Applies all grade effects to the whole canvas in one pass.
71
+ export const applyGrade = (ctx, w, h, effects, t) => {
72
+ if (!effects.length)
73
+ return;
74
+ // Per-channel tables: exposure → temperature → colour wheels → curves.
75
+ const tables = [new Float32Array(256), new Float32Array(256), new Float32Array(256)];
76
+ for (let c = 0; c < 3; c++)
77
+ for (let v = 0; v < 256; v++)
78
+ tables[c][v] = v / 255;
79
+ let lut, lutMix = 1;
80
+ for (const e of effects) {
81
+ if (e.type === 'exposure') {
82
+ const k = Math.pow(2, val(e.stops, t, 0));
83
+ for (const tb of tables)
84
+ for (let v = 0; v < 256; v++)
85
+ tb[v] *= k;
86
+ }
87
+ else if (e.type === 'temperature') {
88
+ // -100 (cool) … +100 (warm): red up / blue down, gently.
89
+ const a = val(e.amount, t, 0) / 100;
90
+ for (let v = 0; v < 256; v++) {
91
+ tables[0][v] *= 1 + 0.18 * a;
92
+ tables[1][v] *= 1 + 0.03 * a;
93
+ tables[2][v] *= 1 - 0.2 * a;
94
+ }
95
+ }
96
+ else if (e.type === 'colorBalance') {
97
+ // Lift/gamma/gain style: shift shadows, midtones and highlights per channel (-1..1).
98
+ const sh = e.shadows ?? [0, 0, 0], mid = e.midtones ?? [0, 0, 0], hi = e.highlights ?? [0, 0, 0];
99
+ for (let c = 0; c < 3; c++)
100
+ for (let v = 0; v < 256; v++) {
101
+ const x = tables[c][v];
102
+ const ws = Math.max(0, 1 - x * 3), wh = Math.max(0, x * 3 - 2), wm = 1 - Math.abs(x - 0.5) * 2;
103
+ tables[c][v] = x + sh[c] * 0.25 * ws + mid[c] * 0.25 * wm + hi[c] * 0.25 * wh;
104
+ }
105
+ }
106
+ else if (e.type === 'curves') {
107
+ const master = curveTable(e.master), per = [curveTable(e.r), curveTable(e.g), curveTable(e.b)];
108
+ for (let c = 0; c < 3; c++)
109
+ for (let v = 0; v < 256; v++) {
110
+ let x = Math.min(1, Math.max(0, tables[c][v]));
111
+ if (master)
112
+ x = master[Math.round(x * 255)];
113
+ if (per[c])
114
+ x = per[c][Math.round(Math.min(1, Math.max(0, x)) * 255)];
115
+ tables[c][v] = x;
116
+ }
117
+ }
118
+ else if (e.type === 'lut') {
119
+ lut = lutCache.get(e.src);
120
+ lutMix = val(e.intensity, t, 100) / 100;
121
+ }
122
+ }
123
+ const R = new Uint8ClampedArray(256), G = new Uint8ClampedArray(256), B = new Uint8ClampedArray(256);
124
+ for (let v = 0; v < 256; v++) {
125
+ R[v] = tables[0][v] * 255;
126
+ G[v] = tables[1][v] * 255;
127
+ B[v] = tables[2][v] * 255;
128
+ }
129
+ const img = ctx.getImageData(0, 0, w, h), d = img.data;
130
+ if (!lut) {
131
+ for (let i = 0; i < d.length; i += 4) {
132
+ if (d[i + 3]) {
133
+ d[i] = R[d[i]];
134
+ d[i + 1] = G[d[i + 1]];
135
+ d[i + 2] = B[d[i + 2]];
136
+ }
137
+ }
138
+ }
139
+ else {
140
+ const S = lut.size, S2 = S * S, L = lut.data, k = (S - 1) / 255, mix = lutMix, inv = 1 - lutMix;
141
+ for (let i = 0; i < d.length; i += 4) {
142
+ if (!d[i + 3])
143
+ continue;
144
+ const r0v = R[d[i]], g0v = G[d[i + 1]], b0v = B[d[i + 2]];
145
+ const r = r0v * k, g = g0v * k, b = b0v * k;
146
+ const ri = r | 0, gi = g | 0, bi = b | 0;
147
+ const r1 = ri < S - 1 ? ri + 1 : ri, g1 = gi < S - 1 ? gi + 1 : gi, b1 = bi < S - 1 ? bi + 1 : bi;
148
+ const fr = r - ri, fg = g - gi, fb = b - bi;
149
+ // .cube order: red changes fastest.
150
+ const i000 = (ri + gi * S + bi * S2) * 3, i100 = (r1 + gi * S + bi * S2) * 3, i010 = (ri + g1 * S + bi * S2) * 3, i110 = (r1 + g1 * S + bi * S2) * 3;
151
+ const i001 = (ri + gi * S + b1 * S2) * 3, i101 = (r1 + gi * S + b1 * S2) * 3, i011 = (ri + g1 * S + b1 * S2) * 3, i111 = (r1 + g1 * S + b1 * S2) * 3;
152
+ for (let c = 0; c < 3; c++) {
153
+ const c00 = L[i000 + c] + (L[i100 + c] - L[i000 + c]) * fr, c10 = L[i010 + c] + (L[i110 + c] - L[i010 + c]) * fr;
154
+ const c01 = L[i001 + c] + (L[i101 + c] - L[i001 + c]) * fr, c11 = L[i011 + c] + (L[i111 + c] - L[i011 + c]) * fr;
155
+ const out = ((c00 + (c10 - c00) * fg) * (1 - fb) + (c01 + (c11 - c01) * fg) * fb) * 255;
156
+ const before = c === 0 ? r0v : c === 1 ? g0v : b0v;
157
+ d[i + c] = clamp255(out * mix + before * inv);
158
+ }
159
+ }
160
+ }
161
+ ctx.putImageData(img, 0, 0);
162
+ };
163
+ // Vignette as a radial-gradient overlay (no per-pixel work).
164
+ export const drawVignette = (ctx, w, h, amount, softness = 0.5, color = '#000') => {
165
+ if (amount <= 0)
166
+ return;
167
+ const r = Math.hypot(w, h) / 2;
168
+ const g = ctx.createRadialGradient(w / 2, h / 2, r * (1 - softness) * 0.75, w / 2, h / 2, r);
169
+ g.addColorStop(0, 'rgba(0,0,0,0)');
170
+ g.addColorStop(1, color.startsWith('#') && color.length === 7 ? `${color}${Math.round(Math.min(1, amount / 100) * 255).toString(16).padStart(2, '0')}` : color);
171
+ ctx.save();
172
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
173
+ ctx.globalCompositeOperation = 'source-atop';
174
+ ctx.fillStyle = g;
175
+ ctx.fillRect(0, 0, w, h);
176
+ ctx.restore();
177
+ };
178
+ //# sourceMappingURL=grade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grade.js","sourceRoot":"","sources":["../../src/render/grade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ type Ctx = CanvasRenderingContext2D;
2
+ type J = any;
3
+ export interface LottieHost {
4
+ createCanvas(w: number, h: number): {
5
+ width: number;
6
+ height: number;
7
+ getContext(t: '2d'): Ctx;
8
+ };
9
+ image(src: string): Promise<{
10
+ width: number;
11
+ height: number;
12
+ }>;
13
+ }
14
+ export declare class LottiePlayer {
15
+ data: J;
16
+ private host;
17
+ readonly w: number;
18
+ readonly h: number;
19
+ readonly fr: number;
20
+ readonly ip: number;
21
+ readonly op: number;
22
+ private assets;
23
+ private images;
24
+ private pool;
25
+ constructor(data: J, host: LottieHost);
26
+ get duration(): number;
27
+ preload(): Promise<void>;
28
+ private buf;
29
+ private release;
30
+ draw(ctx: Ctx, f: number): void;
31
+ private layerMatrix;
32
+ private drawLayers;
33
+ private applyMasks;
34
+ private drawLayer;
35
+ }
36
+ export {};